@protonradio/proton-ui 0.7.0-beta.2 → 0.7.0
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.
- package/README.md +73 -73
- package/dist/colors-BdogYmJi.js.map +1 -1
- package/dist/colors-Dwh4VIMR.mjs.map +1 -1
- package/dist/constants.cjs.js.map +1 -1
- package/dist/constants.es.js.map +1 -1
- package/dist/icons.svg +10 -10
- package/dist/index.cjs.js +3 -3
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.es.js +19 -23
- package/dist/index.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/utils-BNyA6Kte.js +2 -0
- package/dist/utils-BNyA6Kte.js.map +1 -0
- package/dist/utils-CZQIdhYj.mjs +125 -0
- package/dist/utils-CZQIdhYj.mjs.map +1 -0
- package/dist/utils.cjs.js +1 -1
- package/dist/utils.es.js +1 -1
- package/package.json +91 -91
- package/dist/utils-D9D3Fg9O.mjs +0 -145
- package/dist/utils-D9D3Fg9O.mjs.map +0 -1
- package/dist/utils-DbIphMSk.js +0 -2
- package/dist/utils-DbIphMSk.js.map +0 -1
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--proton-rem: calc(12px + .39vw) ;--proton-color__primary:#e26014;--proton-color__primary-light:#fbe5d7;--proton-color__secondary:#f2f2f2;--proton-color__gray-super-dark:#141211;--proton-color__gray-dark:#4d4d4d;--proton-color__gray-medium:#7d7d7d;--proton-color__gray-medium-light:#b1b1b1;--proton-color__gray-light:#ddd;--proton-color__gray-lightest:#f0f1f2;--proton-color__gray-super-light:#f7f8f9;--proton-color__white:#fff;--proton-color__danger-super-dark:#991b1b;--proton-color__danger-dark:#a80724;--proton-color__danger-medium:#e23f5c;--proton-color__danger-light:#f16880;--proton-color__danger-super-light:#ffe1e1;--proton-color__warning-dark:#8b5600;--proton-color__warning-medium:#b37208;--proton-color__warning-light:#ffac23;--proton-color__warning-super-light:#fff0c9;--proton-color__success-dark:#247800;--proton-color__success-medium:#339a07;--proton-color__success-light:#66cf39;--proton-color__success-super-light:#deffd1;--proton-control__text-color:var(--proton-color__white);--proton-control__background-color:var(--proton-color__white);--proton-control__border-color:var(--proton-color__gray-dark);--proton-control__shadow-color:var(--proton-color__gray-dark)}.proton-ActionMenu__background{z-index:10;background:#000000bf;width:100%;height:100%;transition:opacity .3s ease-in-out;position:fixed;top:0;left:0}@media (min-width:768px){.proton-ActionMenu__background{display:none}}.proton-ActionMenu__wrapper{z-index:10;max-height:100vh;overflow:none;flex:1;width:100%;position:fixed;bottom:0;left:0}@media (min-width:768px){.proton-ActionMenu__wrapper{display:none}}.proton-ActionMenu__wrapper--scrollable{overflow-y:scroll}.proton-ActionMenu__card{background:var(--proton-control__background-color);color:var(--proton-control__text-color);z-index:1;border-radius:14px 14px 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__card>div{flex-direction:column;flex:1;display:flex}@media (min-width:768px){.proton-ActionMenu__card{border-radius:.8rem;min-width:300px}}.proton-ui__theme--custom-dark .proton-ActionMenu__card{background:var(--proton-control__background-color)}.proton-ActionMenu__close-button{fill:var(--proton-color__white);color:var(--proton-color__white);pointer-events:none;text-align:center;margin-right:12px;transition:visibility ease-out,opacity .35s ease-out;position:fixed;top:1rem;right:0}.proton-ActionMenu__close-button div{letter-spacing:.1em;margin:.5rem;font-weight:500;display:block}.proton-ActionMenu__cancel-button{margin:0 12px 16px}.proton-ActionMenu__cancel-button button{justify-content:center;width:100%}.proton-ActionMenu__content{padding:12px 12px 0}.proton-ActionMenu__list{flex-direction:column;margin:10px 0;display:flex}.proton-ActionMenu__list--disabled{opacity:.5;cursor:not-allowed}.proton-ActionMenu__item{color:inherit;cursor:pointer;padding:12px 8px 12px 12px;text-decoration:none;transition:background-color .1s}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-color__gray-super-light);border:none;outline:none}.proton-ui__theme--dark .proton-ActionMenu__item:hover,.proton-ui__theme--dark .proton-ActionMenu__item:focus,.proton-ui__theme--custom-dark .proton-ActionMenu__item:focus,.proton-ui__theme--custom-dark .proton-ActionMenu__item:hover{background-color:#606060fa}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-ActionMenu__item[aria-checked=true],.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]{opacity:.5;cursor:not-allowed}.proton-ActionMenu__item[aria-disabled=true]:hover{background-color:#0000}.proton-ActionMenu__content:has(.proton-ListBox){padding:0}html .proton-ActionMenu__content>.proton-ListBox{box-shadow:none;background:0 0;border:none;border-radius:0;margin-bottom:12px}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;border-radius:10rem;height:1.6rem;padding-bottom:calc(1rem - 1.1em);padding-left:1rem;padding-right:calc(1rem - .2em);font-size:max(11px,min(.6875rem + .1vw,16px));font-weight:500;line-height:1.8rem;display:inline-block}.proton-Badge:not([class*=proton-Badge--]){background-color:var(--proton-color__primary);color:var(--proton-color__white)}.proton-Badge--secondary{background-color:var(--proton-color__secondary);color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Badge--secondary{color:var(--proton-color__gray-dark)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__white)}.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-Button{font-size:var(--proton-rem);letter-spacing:.05em;border:0;border-radius:4px;align-items:center;column-gap:.4em;padding:.4em .86em;font-weight:300;text-decoration:none;transition:filter .1s,background-color .1s;display:flex}.proton-Button:hover{filter:brightness(1.08);cursor:pointer;text-decoration:none}.proton-Button--primary,.proton-Button--primary:hover{color:var(--proton-color__white);background-color:var(--proton-color__primary)}.proton-Button--secondary,.proton-Button--secondary:hover{color:var(--proton-color__gray-dark);background-color:var(--proton-color__gray-light)}.proton-Button--danger{color:var(--proton-color__white);background-color:var(--proton-color__danger-medium)}.proton-Button--success{color:var(--proton-color__white);background-color:var(--proton-color__success-medium)}.proton-Button--translucent{color:var(--proton-color__white);background-color:#ffffff1a}.proton-Button--translucent:hover{background-color:#ffffff24}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:solid var(--proton-color__primary)1px;border:none}.proton-Button:focus-visible{outline:solid var(--proton-color__primary)1px;border:none}:root{--banner__default-background:var(--proton-color__gray-lightest);--banner__default-title:var(--proton-color__gray-dark);--banner__default-content:var(--proton-color__gray-medium);--banner__default-icon:var(--proton-color__gray-medium-light);--banner__warning-background:var(--proton-color__warning-super-light);--banner__warning-title:var(--proton-color__warning-dark);--banner__warning-content:var(--proton-color__warning-medium);--banner__warning-icon:var(--proton-color__warning-light);--banner__success-background:var(--proton-color__success-super-light);--banner__success-title:var(--proton-color__success-dark);--banner__success-content:var(--proton-color__success-medium);--banner__success-icon:var(--proton-color__success-light);--banner__danger-background:var(--proton-color__danger-super-light);--banner__danger-title:var(--proton-color__danger-dark);--banner__danger-content:var(--proton-color__danger-medium);--banner__danger-icon:var(--proton-color__danger-light)}.proton-Banner{margin:0}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{flex:1;min-width:0}.proton-Banner__container{flex-direction:column;padding:0 10px;display:flex}.proton-Banner__title{letter-spacing:.01rem;margin:0;font-size:max(14px,min(1.8rem,20px));font-weight:600}.proton-Banner__actions{gap:.5rem;margin:6px 0 0;display:flex}.proton-Banner__icon{margin-top:2px}@media (min-width:768px){.proton-Banner__container{grid-template-columns:1fr auto;align-items:center;display:grid}.proton-Banner__container>.proton-Banner__title,.proton-Banner__container>.proton-Banner__content{grid-column:1}.proton-Banner__container>div:last-child{grid-area:1/2/span 2}.proton-Banner__actions{margin:0 0 0 12px}}.proton-Banner--default{background-color:var(--banner__default-background)}.proton-Banner--default__title{color:var(--banner__default-title)}.proton-Banner--default__content{color:var(--banner__default-content)}.proton-Banner--default__icon{fill:var(--banner__default-icon)}.proton-Banner--warning{background-color:var(--banner__warning-background)}.proton-Banner--warning__title{color:var(--banner__warning-title)}.proton-Banner--warning__content{color:var(--banner__warning-content)}.proton-Banner--warning__icon{fill:var(--banner__warning-icon)}.proton-Banner--success{background-color:var(--banner__success-background)}.proton-Banner--success__title{color:var(--banner__success-title)}.proton-Banner--success__content{color:var(--banner__success-content)}.proton-Banner--success__icon{fill:var(--banner__success-icon)}.proton-Banner--danger{background-color:var(--banner__danger-background)}.proton-Banner--danger__title{color:var(--banner__danger-title)}.proton-Banner--danger__content{color:var(--banner__danger-content)}.proton-Banner--danger__icon{fill:var(--banner__danger-icon)}.proton-ButtonGroup{font-size:var(--proton-rem);border:1px solid var(--proton-color__gray-light);border-radius:4px;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;border-radius:0;flex:1;padding:.5em 1em}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option--selected{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 6px #00000026}.proton-ButtonGroup__option--selected+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-Dialog{background-color:var(--dialog-background);box-shadow:0 0 2px 0 var(--proton-control__shadow-color),0 0 12px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);border-radius:4px;outline:none;padding:.65rem .85rem;font-weight:300}.proton-Dialog__header{margin-top:0;margin-bottom:5px}.proton-Input{box-sizing:border-box;background-color:var(--input-background);outline:1px solid var(--proton-control__border-color);width:100%;min-height:40px;color:var(--proton-control__text-color);border:1px solid #0000;border-radius:4px;flex:1;padding-left:12px;transition:all .2s ease-in-out}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:1px solid var(--proton-color__danger-dark)}.proton-Input__container{flex-direction:column;flex:1;width:100%;display:flex}.proton-Input__container-inner{flex:1;align-items:center;display:flex;position:relative}.proton-Input__descriptor{z-index:1;background-position:50%;background-repeat:no-repeat;background-size:50%;justify-content:center;align-items:center;height:100%;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{flex:0 0 32px;justify-content:center;align-items:center;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;margin-left:12px;left:0}.proton-Input__suffix{outline:none;padding-right:12px;right:0}.proton-Input__container-inner:has(.proton-Input__prefix) .proton-Input{padding-left:32px}.proton-Input__container-inner:has(.proton-Input__suffix) .proton-Input{padding-right:44px}.proton-Input__text{color:var(--proton-color__gray-medium);padding:4px 0;font-size:.75rem}.proton-ui__theme--custom-dark .proton-Input__text{color:var(--proton-color__gray-medium-light)}.proton-Input__error{color:var(--proton-color__danger-medium)}.proton-Input__label-top{padding-top:24px;padding-bottom:8px}.proton-Input__label{color:var(--proton-color__gray-medium-light);pointer-events:none;transform-origin:left center 0px;transition:color .2s,font-size .5s,top .5s;position:absolute;top:15px;left:14px}.proton-Input:focus+.proton-Input__label,.proton-Input__label--filled{font-size:.75rem;top:7px}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light)}.proton-Input__label--hide{display:none}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__wrapper input{border-radius:50px;padding-left:44px!important}.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]::-ms-clear{width:0;height:0;display:none}.proton-SearchInput__wrapper input[type=search]::-ms-reveal{width:0;height:0;display:none}.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-Popover{transform-origin:top}.proton-Popover[data-entering]{animation:.2s ease-out forwards slideDown}@keyframes slideDown{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.arrow{fill:var(--dialog-background);stroke-width:1px;width:12px;height:12px;position:absolute}.arrow[data-placement=top]{top:100%;transform:translate(-50%)}.arrow[data-placement=bottom]{bottom:100%;transform:translate(-50%)rotate(180deg)}.arrow[data-placement=left]{left:100%;transform:translateY(-50%)rotate(-90deg)}.arrow[data-placement=right]{right:100%;transform:translateY(-50%)rotate(90deg)}.proton-ResponsiveMenuTrigger{display:inline-block;position:relative}.proton-ResponsiveMenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.proton-ResponsiveMenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-ResponsiveMenuTrigger__button:disabled:hover,.proton-ResponsiveMenuTrigger__button:disabled:hover{background:0 0}.proton-ResponsiveMenuTrigger__button:focus{outline:2px solid var(--proton-control__border-color)}.proton-ResponsiveMenuTrigger__button:hover{background-color:#60606026}.proton-ui__theme--dark .proton-ResponsiveMenuTrigger__button:hover{background-color:#ffffff1a}.proton-ListBox{letter-spacing:.05em;background:var(--proton-control__background-color);border:1px solid var(--proton-control__border-color);min-width:100px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);border-radius:10px;margin:.5rem 0 0;padding:0;list-style:none;overflow:auto}.proton-ui__theme--custom-dark .proton-ListBox{background:var(--proton-color__primary)}.proton-ListBox:focus{outline:none}.proton-ListBox:focus-visible{outline:none}.proton-ListBox__item{cursor:pointer;outline:none;justify-content:space-between;padding:8px 16px;transition:background-color .1s;display:flex}.proton-ListBox__item:hover{background:#0000000a}.proton-ui__theme--dark .proton-ListBox__item:hover,.proton-ui__theme--custom-dark .proton-ListBox__item:hover{background:#ffffff1a}.proton-ListBox__item--disabled{opacity:.5;cursor:not-allowed}.proton-ListBox__item--selected{background:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-ListBox__item--selected{color:var(--proton-control__text-color)}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:2px}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:50px;flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color);outline:1px solid var(--proton-control__border-color);border:1px solid #0000;font-weight:400;transition:outline .2s;position:relative}.proton-ui__theme--custom-dark button.proton-Select__trigger{background:var(--proton-color__primary)}button.proton-Select__trigger:hover:after{content:"";-webkit-backdrop-filter:brightness(98%);backdrop-filter:brightness(98%);z-index:1;border-radius:50px;width:100%;height:100%;position:absolute;left:0}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary)1px;border:1px solid #0000}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary)1px;border:1px solid #0000}.proton-ui__theme--custom-dark button.proton-Select__trigger:focus{outline:solid var(--proton-color__gray-medium-light)1px;border:1px solid #0000}.proton-ui__theme--custom-dark button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__gray-medium-light)1px;border:1px solid #0000}.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;overflow:hidden}.proton-Switch{font-size:var(--proton-rem);flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-color__gray-dark);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-color__gray-medium);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-ui__theme--dark .proton-Switch__toggle,.proton-ui__theme--custom-dark .proton-Switch__toggle{background-color:var(--proton-color__gray-dark)}.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-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:7px 10px;font-size:.75rem;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 2px}.proton-Table__row{cursor:default;border-top:1px solid #ccc;outline:none}.proton-Table__row:last-child{border-bottom:1px solid #ccc}.proton-Table__cell{vertical-align:middle;outline:none;padding:7px 10px}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-TextEmphasis{background-image:linear-gradient(to top,#0000 0,#0000 15%,var(--text-emphasis-highlight)15%,var(--text-emphasis-highlight)35%,transparent 35%,transparent 100%);color:var(--proton-color__gray-super-dark);padding:0 .05rem;font-style:normal;font-weight:700}.proton-TextEmphasis a{color:inherit;text-decoration:none;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary);text-decoration:none}.proton-ui__theme--custom-dark .proton-TextEmphasis,.proton-ui__theme--dark .proton-TextEmphasis{color:var(--proton-color__gray-lightest)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(to top,#0000 0,#0000 15%,var(--text-emphasis-highlight)25%,var(--text-emphasis-highlight)87%,transparent 80%,transparent 100%);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:2px}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip{background-color:var(--tooltip-background);color:var(--proton-control__text-color);position:absolute}.proton__TooltipTrigger{all:unset}.proton__Tooltip[data-placement=top]{--origin:translateY(4px);margin-bottom:8px}.proton__Tooltip[data-placement=bottom]{--origin:translateY(-4px);margin-top:8px}.proton__Tooltip[data-placement=bottom] .proton__TooltipArrow svg{transform:rotate(180deg)}.proton__Tooltip[data-placement=right]{--origin:translateX(-4px);margin-left:8px}.proton__Tooltip[data-placement=right] .proton__TooltipArrow svg{transform:rotate(90deg)}.proton__Tooltip[data-placement=left]{--origin:translateX(4px);margin-right:8px}.proton__Tooltip[data-placement=left] .proton__TooltipArrow svg{transform:rotate(-90deg)}.proton__Tooltip .proton__TooltipArrow svg{fill:var(--tooltip-background);display:block}.proton__Tooltip[data-entering]{animation:.2s slide}.proton__Tooltip[data-exiting]{animation:.2s reverse slide}@keyframes slide{0%{opacity:0;transform:var(--origin)}to{opacity:1;transform:translateY(0)}}:root{--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}.proton-Waveform{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__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
|
+
:root{--proton-rem: calc(12px + .39vw) ;--proton-color__primary:#e26014;--proton-color__primary-light:#fbe5d7;--proton-color__secondary:#f2f2f2;--proton-color__gray-super-dark:#141211;--proton-color__gray-dark:#4d4d4d;--proton-color__gray-medium:#7d7d7d;--proton-color__gray-medium-light:#b1b1b1;--proton-color__gray-light:#ddd;--proton-color__gray-lightest:#f0f1f2;--proton-color__gray-super-light:#f7f8f9;--proton-color__white:#fff;--proton-color__danger-super-dark:#991b1b;--proton-color__danger-dark:#a80724;--proton-color__danger-medium:#e23f5c;--proton-color__danger-light:#f16880;--proton-color__danger-super-light:#ffe1e1;--proton-color__warning-dark:#8b5600;--proton-color__warning-medium:#b37208;--proton-color__warning-light:#ffac23;--proton-color__warning-super-light:#fff0c9;--proton-color__success-dark:#247800;--proton-color__success-medium:#339a07;--proton-color__success-light:#66cf39;--proton-color__success-super-light:#deffd1;--proton-control__text-color:var(--proton-color__white);--proton-control__background-color:var(--proton-color__white);--proton-control__border-color:var(--proton-color__gray-dark);--proton-control__shadow-color:var(--proton-color__gray-dark)}.proton-ActionMenu__background{z-index:10;background:#000000bf;width:100%;height:100%;transition:opacity .3s ease-in-out;position:fixed;top:0;left:0}@media (min-width:768px){.proton-ActionMenu__background{display:none}}.proton-ActionMenu__wrapper{z-index:10;max-height:100vh;overflow:none;flex:1;width:100%;position:fixed;bottom:0;left:0}@media (min-width:768px){.proton-ActionMenu__wrapper{display:none}}.proton-ActionMenu__wrapper--scrollable{overflow-y:scroll}.proton-ActionMenu__card{background:var(--proton-control__background-color);color:var(--proton-control__text-color);z-index:1;border-radius:14px 14px 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__card>div{flex-direction:column;flex:1;display:flex}@media (min-width:768px){.proton-ActionMenu__card{border-radius:.8rem;min-width:300px}}.proton-ui__theme--custom-dark .proton-ActionMenu__card{background:var(--proton-control__background-color)}.proton-ActionMenu__close-button{fill:var(--proton-color__white);color:var(--proton-color__white);pointer-events:none;text-align:center;margin-right:12px;transition:visibility ease-out,opacity .35s ease-out;position:fixed;top:1rem;right:0}.proton-ActionMenu__close-button div{letter-spacing:.1em;margin:.5rem;font-weight:500;display:block}.proton-ActionMenu__cancel-button{margin:0 12px 16px}.proton-ActionMenu__cancel-button button{justify-content:center;width:100%}.proton-ActionMenu__content{padding:12px 12px 0}.proton-ActionMenu__list{flex-direction:column;margin:10px 0;display:flex}.proton-ActionMenu__list--disabled{opacity:.5;cursor:not-allowed}.proton-ActionMenu__item{color:inherit;cursor:pointer;padding:12px 8px 12px 12px;text-decoration:none;transition:background-color .1s}.proton-ActionMenu__item:hover,.proton-ActionMenu__item:focus{background-color:var(--proton-color__gray-super-light);border:none;outline:none}.proton-ui__theme--dark .proton-ActionMenu__item:hover,.proton-ui__theme--dark .proton-ActionMenu__item:focus,.proton-ui__theme--custom-dark .proton-ActionMenu__item:focus,.proton-ui__theme--custom-dark .proton-ActionMenu__item:hover{background-color:#606060fa}.proton-ActionMenu__item[aria-checked=true]{background-color:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-ActionMenu__item[aria-checked=true],.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]{opacity:.5;cursor:not-allowed}.proton-ActionMenu__item[aria-disabled=true]:hover{background-color:#0000}.proton-ActionMenu__content:has(.proton-ListBox){padding:0}html .proton-ActionMenu__content>.proton-ListBox{box-shadow:none;background:0 0;border:none;border-radius:0;margin-bottom:12px}.proton-Badge{letter-spacing:.2em;text-align:center;text-transform:uppercase;white-space:nowrap;border-radius:10rem;height:1.6rem;padding-bottom:calc(1rem - 1.1em);padding-left:1rem;padding-right:calc(1rem - .2em);font-size:max(11px,min(.6875rem + .1vw,16px));font-weight:500;line-height:1.8rem;display:inline-block}.proton-Badge:not([class*=proton-Badge--]){background-color:var(--proton-color__primary);color:var(--proton-color__white)}.proton-Badge--secondary{background-color:var(--proton-color__secondary);color:var(--proton-control__text-color)}.proton-ui__theme--dark .proton-Badge--secondary{color:var(--proton-color__gray-dark)}.proton-Badge--primary{background-color:var(--proton-color__primary);color:var(--proton-color__white)}.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-Button{font-size:var(--proton-rem);letter-spacing:.05em;border:0;border-radius:4px;align-items:center;column-gap:.4em;padding:.4em .86em;font-weight:300;text-decoration:none;transition:filter .1s,background-color .1s;display:flex}.proton-Button:hover{filter:brightness(1.08);cursor:pointer;text-decoration:none}.proton-Button--primary,.proton-Button--primary:hover{color:var(--proton-color__white);background-color:var(--proton-color__primary)}.proton-Button--secondary,.proton-Button--secondary:hover{color:var(--proton-color__gray-dark);background-color:var(--proton-color__gray-light)}.proton-Button--danger{color:var(--proton-color__white);background-color:var(--proton-color__danger-medium)}.proton-Button--success{color:var(--proton-color__white);background-color:var(--proton-color__success-medium)}.proton-Button--translucent{color:var(--proton-color__white);background-color:#ffffff1a}.proton-Button--translucent:hover{background-color:#ffffff24}.proton-Button--disabled,.proton-Button--disabled:hover{opacity:.5;filter:none;cursor:not-allowed}.proton-Button:focus{outline:solid var(--proton-color__primary)1px;border:none}.proton-Button:focus-visible{outline:solid var(--proton-color__primary)1px;border:none}:root{--banner__default-background:var(--proton-color__gray-lightest);--banner__default-title:var(--proton-color__gray-dark);--banner__default-content:var(--proton-color__gray-medium);--banner__default-icon:var(--proton-color__gray-medium-light);--banner__warning-background:var(--proton-color__warning-super-light);--banner__warning-title:var(--proton-color__warning-dark);--banner__warning-content:var(--proton-color__warning-medium);--banner__warning-icon:var(--proton-color__warning-light);--banner__success-background:var(--proton-color__success-super-light);--banner__success-title:var(--proton-color__success-dark);--banner__success-content:var(--proton-color__success-medium);--banner__success-icon:var(--proton-color__success-light);--banner__danger-background:var(--proton-color__danger-super-light);--banner__danger-title:var(--proton-color__danger-dark);--banner__danger-content:var(--proton-color__danger-medium);--banner__danger-icon:var(--proton-color__danger-light)}.proton-Banner{margin:0}.proton-Banner--rounded{border-radius:.375rem}.proton-Banner__wrapper{padding:2rem;display:flex}.proton-Banner__wrapper--compact{padding:1rem}.proton-Banner__content-wrapper{flex:1;min-width:0}.proton-Banner__container{flex-direction:column;padding:0 10px;display:flex}.proton-Banner__title{letter-spacing:.01rem;margin:0;font-size:max(14px,min(1.8rem,20px));font-weight:600}.proton-Banner__actions{gap:.5rem;margin:6px 0 0;display:flex}.proton-Banner__icon{margin-top:2px}@media (min-width:768px){.proton-Banner__container{grid-template-columns:1fr auto;align-items:center;display:grid}.proton-Banner__container>.proton-Banner__title,.proton-Banner__container>.proton-Banner__content{grid-column:1}.proton-Banner__container>div:last-child{grid-area:1/2/span 2}.proton-Banner__actions{margin:0 0 0 12px}}.proton-Banner--default{background-color:var(--banner__default-background)}.proton-Banner--default__title{color:var(--banner__default-title)}.proton-Banner--default__content{color:var(--banner__default-content)}.proton-Banner--default__icon{fill:var(--banner__default-icon)}.proton-Banner--warning{background-color:var(--banner__warning-background)}.proton-Banner--warning__title{color:var(--banner__warning-title)}.proton-Banner--warning__content{color:var(--banner__warning-content)}.proton-Banner--warning__icon{fill:var(--banner__warning-icon)}.proton-Banner--success{background-color:var(--banner__success-background)}.proton-Banner--success__title{color:var(--banner__success-title)}.proton-Banner--success__content{color:var(--banner__success-content)}.proton-Banner--success__icon{fill:var(--banner__success-icon)}.proton-Banner--danger{background-color:var(--banner__danger-background)}.proton-Banner--danger__title{color:var(--banner__danger-title)}.proton-Banner--danger__content{color:var(--banner__danger-content)}.proton-Banner--danger__icon{fill:var(--banner__danger-icon)}.proton-ButtonGroup{font-size:var(--proton-rem);border:1px solid var(--proton-color__gray-light);border-radius:4px;font-weight:400;display:flex;overflow:hidden}.proton-ButtonGroup__option{background-color:var(--proton-color__gray-super-light);cursor:pointer;border-left:1px solid var(--proton-color__gray-light);color:var(--proton-color__gray-dark);text-align:center;border-radius:0;flex:1;padding:.5em 1em}.proton-ButtonGroup__option:first-child{border-left:0}.proton-ButtonGroup__option--selected{background-color:var(--proton-color__white);color:var(--proton-color__primary);z-index:2;cursor:default;border-radius:inherit;box-shadow:0 0 6px #00000026}.proton-ButtonGroup__option--selected+.proton-ButtonGroup__option{border-left:1px solid #0000}.proton-Dialog{background-color:var(--dialog-background);box-shadow:0 0 2px 0 var(--proton-control__shadow-color),0 0 12px 0 var(--proton-control__shadow-color);color:var(--proton-control__text-color);border-radius:4px;outline:none;padding:.65rem .85rem;font-weight:300}.proton-Dialog__header{margin-top:0;margin-bottom:5px}.proton-Input{box-sizing:border-box;background-color:var(--input-background);outline:1px solid var(--proton-control__border-color);width:100%;min-height:40px;color:var(--proton-control__text-color);border:1px solid #0000;border-radius:4px;flex:1;padding-left:12px;transition:all .2s ease-in-out}.proton-Input:disabled{opacity:.6;cursor:not-allowed}.proton-Input:not(.proton-Input--error):focus{outline:1px solid var(--proton-color__primary)}.proton-Input:not(.proton-Input--error):focus-visible{outline:1px solid var(--proton-color__primary)}.proton-Input.proton-Input--error{outline:1px solid var(--proton-color__danger-dark)}.proton-Input__container{flex-direction:column;flex:1;width:100%;display:flex}.proton-Input__container-inner{flex:1;align-items:center;display:flex;position:relative}.proton-Input__descriptor{z-index:1;background-position:50%;background-repeat:no-repeat;background-size:50%;justify-content:center;align-items:center;height:100%;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.proton-Input__prefix,.proton-Input__suffix{flex:0 0 32px;justify-content:center;align-items:center;display:flex}.proton-Input__prefix{opacity:.5;cursor:text;margin-left:12px;left:0}.proton-Input__suffix{outline:none;padding-right:12px;right:0}.proton-Input__container-inner:has(.proton-Input__prefix) .proton-Input{padding-left:32px}.proton-Input__container-inner:has(.proton-Input__suffix) .proton-Input{padding-right:44px}.proton-Input__text{color:var(--proton-color__gray-medium);padding:4px 0;font-size:.75rem}.proton-ui__theme--custom-dark .proton-Input__text{color:var(--proton-color__gray-medium-light)}.proton-Input__error{color:var(--proton-color__danger-medium)}.proton-Input__label-top{padding-top:24px;padding-bottom:8px}.proton-Input__label{color:var(--proton-color__gray-medium-light);pointer-events:none;transform-origin:left center 0px;transition:color .2s,font-size .5s,top .5s;position:absolute;top:15px;left:14px}.proton-Input:focus+.proton-Input__label,.proton-Input__label--filled{font-size:.75rem;top:7px}.proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-Input:focus+.proton-Input__label{color:var(--proton-color__primary-light)}.proton-Input__label--hide{display:none}.proton-SearchInput__wrapper{width:100%}.proton-SearchInput__wrapper input{border-radius:50px;padding-left:44px!important}.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]::-ms-clear{width:0;height:0;display:none}.proton-SearchInput__wrapper input[type=search]::-ms-reveal{width:0;height:0;display:none}.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}.arrow{fill:var(--dialog-background);stroke-width:1px;width:12px;height:12px;position:absolute}.arrow[data-placement=top]{top:100%;transform:translate(-50%)}.arrow[data-placement=bottom]{bottom:100%;transform:translate(-50%)rotate(180deg)}.arrow[data-placement=left]{left:100%;transform:translateY(-50%)rotate(-90deg)}.arrow[data-placement=right]{right:100%;transform:translateY(-50%)rotate(90deg)}.proton-ResponsiveMenuTrigger{display:inline-block;position:relative}.proton-ResponsiveMenuTrigger__button{cursor:pointer;color:var(--proton-control__text-color);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.proton-ResponsiveMenuTrigger__button:disabled{cursor:not-allowed;opacity:.5}.proton-ui__theme--dark .proton-ResponsiveMenuTrigger__button:disabled:hover,.proton-ResponsiveMenuTrigger__button:disabled:hover{background:0 0}.proton-ResponsiveMenuTrigger__button:focus{outline:2px solid var(--proton-control__border-color)}.proton-ResponsiveMenuTrigger__button:hover{background-color:#60606026}.proton-ui__theme--dark .proton-ResponsiveMenuTrigger__button:hover{background-color:#ffffff1a}.proton-ListBox{letter-spacing:.05em;background:var(--proton-control__background-color);border:1px solid var(--proton-control__border-color);min-width:100px;color:var(--proton-control__text-color);box-shadow:0 0 3px var(--proton-control__shadow-color);border-radius:10px;margin:.5rem 0 0;padding:0;list-style:none;overflow:auto}.proton-ui__theme--custom-dark .proton-ListBox{background:var(--proton-color__primary)}.proton-ListBox:focus{outline:none}.proton-ListBox:focus-visible{outline:none}.proton-ListBox__item{cursor:pointer;outline:none;justify-content:space-between;padding:8px 16px;transition:background-color .1s;display:flex}.proton-ListBox__item:hover{background:#0000000a}.proton-ui__theme--dark .proton-ListBox__item:hover,.proton-ui__theme--custom-dark .proton-ListBox__item:hover{background:#ffffff1a}.proton-ListBox__item--disabled{opacity:.5;cursor:not-allowed}.proton-ListBox__item--selected{background:var(--proton-color__primary-light);color:var(--proton-color__primary)}.proton-ui__theme--custom-dark .proton-ListBox__item--selected{color:var(--proton-control__text-color)}.proton-Select{flex-direction:column;width:100%;margin:0;display:flex}.proton-Select__label{color:var(--proton-control__text-color);margin-bottom:2px}.proton-Select__trigger{color:var(--proton-control__text-color);font-size:inherit;border-radius:50px;flex:1;justify-content:space-between;align-items:center;width:100%;padding:.2rem .6rem .2rem 1rem;display:flex}button.proton-Select__trigger{letter-spacing:.05em;cursor:pointer;background:var(--proton-control__background-color);outline:1px solid var(--proton-control__border-color);border:1px solid #0000;font-weight:400;transition:outline .2s;position:relative}.proton-ui__theme--custom-dark button.proton-Select__trigger{background:var(--proton-color__primary)}button.proton-Select__trigger:hover:after{content:"";-webkit-backdrop-filter:brightness(98%);backdrop-filter:brightness(98%);z-index:1;border-radius:50px;width:100%;height:100%;position:absolute;left:0}button.proton-Select__trigger:focus{outline:solid var(--proton-color__primary)1px;border:1px solid #0000}button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__primary)1px;border:1px solid #0000}.proton-ui__theme--custom-dark button.proton-Select__trigger:focus{outline:solid var(--proton-color__gray-medium-light)1px;border:1px solid #0000}.proton-ui__theme--custom-dark button.proton-Select__trigger:focus-visible{outline:solid var(--proton-color__gray-medium-light)1px;border:1px solid #0000}.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;overflow:hidden}.proton-Switch{font-size:var(--proton-rem);flex-flow:column;row-gap:5px;display:flex}.proton-Switch__label{text-transform:uppercase;letter-spacing:.1em;color:var(--proton-color__gray-dark);font-size:.7em;font-weight:600}.proton-Switch__description{color:var(--proton-color__gray-medium);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-ui__theme--dark .proton-Switch__toggle,.proton-ui__theme--custom-dark .proton-Switch__toggle{background-color:var(--proton-color__gray-dark)}.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-Table{border-collapse:collapse;color:var(--proton-control__text-color);width:100%;font-weight:300}.proton-Table__header{cursor:default;letter-spacing:.1em;text-transform:uppercase;text-align:left;outline:none;padding:7px 10px;font-size:.75rem;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 2px}.proton-Table__row{cursor:default;border-top:1px solid #ccc;outline:none}.proton-Table__row:last-child{border-bottom:1px solid #ccc}.proton-Table__cell{vertical-align:middle;outline:none;padding:7px 10px}.proton-Table__cell--center{text-align:center}.proton-Table__cell--right{text-align:right}.proton-TextEmphasis{background-image:linear-gradient(to top,#0000 0,#0000 15%,var(--text-emphasis-highlight)15%,var(--text-emphasis-highlight)35%,transparent 35%,transparent 100%);color:var(--proton-color__gray-super-dark);padding:0 .05rem;font-style:normal;font-weight:700}.proton-TextEmphasis a{color:inherit;text-decoration:none;transition:color .15s}.proton-TextEmphasis a:hover{color:var(--proton-color__primary);text-decoration:none}.proton-ui__theme--custom-dark .proton-TextEmphasis,.proton-ui__theme--dark .proton-TextEmphasis{color:var(--proton-color__gray-lightest)}.proton-TextEmphasis--tooltip{background-image:linear-gradient(to top,#0000 0,#0000 15%,var(--text-emphasis-highlight)25%,var(--text-emphasis-highlight)87%,transparent 80%,transparent 100%);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:2px}.proton-TextEmphasis--tooltip:not(:hover){transition-delay:.2s}.proton__Tooltip{background-color:var(--tooltip-background);color:var(--proton-control__text-color);position:absolute}.proton__TooltipTrigger{all:unset}.proton__Tooltip[data-placement=top]{--origin:translateY(4px);margin-bottom:8px}.proton__Tooltip[data-placement=bottom]{--origin:translateY(-4px);margin-top:8px}.proton__Tooltip[data-placement=bottom] .proton__TooltipArrow svg{transform:rotate(180deg)}.proton__Tooltip[data-placement=right]{--origin:translateX(-4px);margin-left:8px}.proton__Tooltip[data-placement=right] .proton__TooltipArrow svg{transform:rotate(90deg)}.proton__Tooltip[data-placement=left]{--origin:translateX(4px);margin-right:8px}.proton__Tooltip[data-placement=left] .proton__TooltipArrow svg{transform:rotate(-90deg)}.proton__Tooltip .proton__TooltipArrow svg{fill:var(--tooltip-background);display:block}.proton__Tooltip[data-entering]{animation:.2s slide}.proton__Tooltip[data-exiting]{animation:.2s reverse slide}@keyframes slide{0%{opacity:0;transform:var(--origin)}to{opacity:1;transform:translateY(0)}}:root{--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}.proton-Waveform{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__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}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const n=require("./colors-BdogYmJi.js"),e=require("color2k"),u={BRAND:{PRIMARY:n.BRAND.PRIMARY,PRIMARY_LIGHT:n.BRAND.PRIMARY_LIGHT,SECONDARY:n.BRAND.SECONDARY},PRIMARY:{PRIMARY_SUPER_DARK:n.GRAYSCALE.GRAY_SUPER_DARK,PRIMARY_DARK:n.GRAYSCALE.GRAY_DARK,PRIMARY_MEDIUM:n.GRAYSCALE.GRAY_MEDIUM,PRIMARY_MEDIUM_LIGHT:n.GRAYSCALE.GRAY_MEDIUM_LIGHT,PRIMARY_LIGHT:n.GRAYSCALE.GRAY_LIGHT,PRIMARY_LIGHTEST:n.GRAYSCALE.GRAY_LIGHTEST,PRIMARY_SUPER_LIGHT:n.GRAYSCALE.GRAY_SUPER_LIGHT},SECONDARY:{SECONDARY_SUPER_DARK:n.GRAYSCALE.GRAY_SUPER_DARK,SECONDARY_DARK:n.GRAYSCALE.GRAY_DARK,SECONDARY_MEDIUM:n.GRAYSCALE.GRAY_MEDIUM,SECONDARY_MEDIUM_LIGHT:n.GRAYSCALE.GRAY_MEDIUM_LIGHT,SECONDARY_LIGHT:n.GRAYSCALE.GRAY_LIGHT,SECONDARY_LIGHTEST:n.GRAYSCALE.GRAY_LIGHTEST,SECONDARY_SUPER_LIGHT:n.GRAYSCALE.GRAY_SUPER_LIGHT}},D=(t,R)=>R===void 0?`rgb(${t[0]}, ${t[1]}, ${t[2]})`:`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${R})`,P=(t,R)=>e.toRgba(e.transparentize(t,R)),a=(t,R)=>e.toRgba(e.saturate(t,R)),E=(t,R)=>e.toRgba(e.desaturate(t,R)),l=(t,R=!0)=>{const A=D(t),o=e.getScale("#FFFFFF",A,"#000000"),r=Array.from({length:12},(_,G)=>{const c=o(G/11);return E(c,.0085)}),s=R?r.map(_=>a(L(_),.005)):r,M=e.toRgba(a(e.adjustHue(A,180),1)),T=e.getScale("#FFFFFF",M,"#000000"),I=Array.from({length:12},(_,G)=>{const c=T(G/11);return E(c,.1)}),Y=R?I.map(_=>E(L(_),.22)):I;return{BRAND:{PRIMARY:E(S(s[5]),.085),PRIMARY_LIGHT:E(i(s[5]),.1),SECONDARY:E(Y[4],.02)},PRIMARY:{PRIMARY_SUPER_DARK:S(r[9]),PRIMARY_DARK:S(r[8]),PRIMARY_MEDIUM:a(s[7],.2),PRIMARY_MEDIUM_LIGHT:a(s[6],.25),PRIMARY_LIGHT:a(s[5],.3),PRIMARY_LIGHTEST:e.lighten(s[5],.25),PRIMARY_SUPER_LIGHT:i(s[3])},SECONDARY:{SECONDARY_SUPER_DARK:S(I[10]),SECONDARY_DARK:S(I[9]),SECONDARY_MEDIUM:a(Y[7],.2),SECONDARY_MEDIUM_LIGHT:a(Y[6],.25),SECONDARY_LIGHT:a(Y[5],.3),SECONDARY_LIGHTEST:e.lighten(Y[5],.25),SECONDARY_SUPER_LIGHT:i(Y[3])}}},i=t=>{for(;e.hasBadContrast(t,"readable",n.GRAYSCALE.GRAY_MEDIUM);)t=e.lighten(t,.01);return e.toRgba(t)},S=t=>{for(;e.hasBadContrast(n.GRAYSCALE.GRAY_LIGHT,"readable",t);)t=e.darken(t,.01);return e.toRgba(t)},L=t=>{let R=t,A=e.getLuminance(e.toRgba(R)),o=0;const r=6;for(;A<.16&&o<r;)o++,R=e.lighten(R,.1),A=e.getLuminance(e.toRgba(R));for(;A>.6&&o<r;)o++,R=e.darken(R,.1),A=e.getLuminance(e.toRgba(R));return e.toRgba(t)},C=t=>typeof t=="string"||t instanceof String;function g(...t){return t.filter(C).join(" ")}const H=t=>{if(/^https?:\/\//.test(t)){const R=document.createElement("a");return R.href=t,R.hostname}return window.location.hostname},d=t=>{const R=window.location.hostname,A=H(t);return R!==A},U=(t,R)=>{if(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.button&&t.button!==0)return;t.preventDefault();const A=R.startsWith("/")?R:`/${R}`;window.history.pushState({},"",A),window.dispatchEvent(new PopStateEvent("popstate"))};exports.DEFAULT_PALETTE=u;exports.arrayToRgbString=D;exports.csx=g;exports.desaturate=E;exports.generatePalette=l;exports.handleInternalNavigation=U;exports.isUrlExternal=d;exports.saturate=a;exports.transparentize=P;
|
|
2
|
+
//# sourceMappingURL=utils-BNyA6Kte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-BNyA6Kte.js","sources":["../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["import { COLORS } from \"../constants\";\nimport {\n adjustHue,\n getScale,\n saturate as _saturate,\n transparentize as _transparentize,\n desaturate as _desaturate,\n hasBadContrast,\n getLuminance,\n lighten,\n darken,\n toRgba,\n} from \"color2k\";\n\nexport type RGBArray = [number, number, number];\n\nexport type Palette = {\n BRAND: {\n PRIMARY: string;\n PRIMARY_LIGHT: string;\n SECONDARY: string;\n };\n PRIMARY: {\n //backgrounds\n PRIMARY_SUPER_DARK: string;\n PRIMARY_DARK: string;\n //interactive components\n PRIMARY_MEDIUM: string;\n //borders and seperators\n PRIMARY_MEDIUM_LIGHT: string;\n //solid colors\n PRIMARY_LIGHT: string;\n //accessible text\n PRIMARY_LIGHTEST: string;\n PRIMARY_SUPER_LIGHT: string;\n };\n SECONDARY: {\n //backgrounds\n SECONDARY_SUPER_DARK: string;\n SECONDARY_DARK: string;\n //interactive components\n SECONDARY_MEDIUM: string;\n //borders and seperators\n SECONDARY_MEDIUM_LIGHT: string;\n //solid colors\n SECONDARY_LIGHT: string;\n //accessible text\n SECONDARY_LIGHTEST: string;\n SECONDARY_SUPER_LIGHT: string;\n };\n};\n\nexport const DEFAULT_PALETTE: Palette = {\n BRAND: {\n PRIMARY: COLORS.BRAND.PRIMARY,\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\n SECONDARY: COLORS.BRAND.SECONDARY,\n },\n PRIMARY: {\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\n },\n SECONDARY: {\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\n },\n // Success, Warning & Danger palettes go here...\n};\n\n/**\n * Converts an RGB array to a CSS string representation.\n * @param rgb - The RGB array to convert.\n * @param opacity - Optional opacity value.\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\n */\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\n return opacity === undefined\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\n};\n\n/**\n * Transparentizes an input color.\n *\n * @param color - The color string to transparentize.\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\n * @returns An RGBA color string.\n */\nexport const transparentize = (color: string, amount: number): string => {\n return toRgba(_transparentize(color, amount));\n};\n\n/**\n * Saturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const saturate = (color: string, amount: number): string => {\n return toRgba(_saturate(color, amount));\n};\n\n/**\n * Desaturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const desaturate = (color: string, amount: number): string => {\n return toRgba(_desaturate(color, amount));\n};\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 * @param adjustForLuminance - Whether to adjust the generated colors for better luminance/contrast. Defaults to true.\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 = (\n primaryColor: RGBArray,\n adjustForLuminance: boolean = true\n): Palette => {\n const primaryRgba = arrayToRgbString(primaryColor);\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 = adjustForLuminance\n ? primaryScale.map((color) =>\n saturate(adjustBrightnessForLuminance(color), 0.005)\n )\n : primaryScale;\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 = adjustForLuminance\n ? secondaryScale.map((color) =>\n desaturate(adjustBrightnessForLuminance(color), 0.22)\n )\n : secondaryScale;\n\n return {\n BRAND: {\n PRIMARY: desaturate(darkenForContrast(adjustedPrimaryScale[5]), 0.085),\n PRIMARY_LIGHT: desaturate(\n lightenForContrast(adjustedPrimaryScale[5]),\n 0.1\n ),\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\n },\n PRIMARY: {\n //backgrounds\n PRIMARY_SUPER_DARK: darkenForContrast(primaryScale[9]),\n PRIMARY_DARK: darkenForContrast(primaryScale[8]),\n //interactive components\n PRIMARY_MEDIUM: saturate(adjustedPrimaryScale[7], 0.2),\n //borders and seperators\n PRIMARY_MEDIUM_LIGHT: saturate(adjustedPrimaryScale[6], 0.25),\n //solid colors\n PRIMARY_LIGHT: saturate(adjustedPrimaryScale[5], 0.3),\n //accessible text\n PRIMARY_LIGHTEST: lighten(adjustedPrimaryScale[5], 0.25),\n PRIMARY_SUPER_LIGHT: lightenForContrast(adjustedPrimaryScale[3]),\n },\n SECONDARY: {\n //backgrounds\n SECONDARY_SUPER_DARK: darkenForContrast(secondaryScale[10]),\n SECONDARY_DARK: darkenForContrast(secondaryScale[9]),\n // interactive components\n SECONDARY_MEDIUM: saturate(adjustedSecondaryScale[7], 0.2),\n //borders and seperators\n SECONDARY_MEDIUM_LIGHT: saturate(adjustedSecondaryScale[6], 0.25),\n //solid colors\n SECONDARY_LIGHT: saturate(adjustedSecondaryScale[5], 0.3),\n //accessible text\n SECONDARY_LIGHTEST: lighten(adjustedSecondaryScale[5], 0.25),\n SECONDARY_SUPER_LIGHT: lightenForContrast(adjustedSecondaryScale[3]),\n },\n };\n};\n\nconst lightenForContrast = (color: string): string => {\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_MEDIUM)) {\n color = lighten(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst darkenForContrast = (color: string): string => {\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_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 return toRgba(color);\n};\n","const isString = (x: unknown): boolean =>\n typeof x === \"string\" || x instanceof String;\n\nexport function csx(...classnames: unknown[]): string {\n return classnames.filter(isString).join(\" \");\n}\n\n/**\n * [getLinkHost] - get the host of a link.\n * Referenced from is-url-external npm package\n * https://github.com/mrded/is-url-external/blob/master/index.js\n */\nconst getLinkHost = (url) => {\n if (/^https?:\\/\\//.test(url)) {\n // Absolute URL.\n // The easy way to parse an URL, is to create <a> element.\n // @see: https://gist.github.com/jlong/2428561\n const parser = document.createElement(\"a\");\n parser.href = url;\n return parser.hostname;\n }\n return window.location.hostname;\n};\n\n/**\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\n */\nexport const isUrlExternal = (url) => {\n const host = window.location.hostname;\n const linkHost = getLinkHost(url);\n\n return host !== linkHost;\n};\n\n/**\n * Handles internal navigation clicks by preventing default browser behavior and\n * programmatically updating the URL and history state.\n *\n * @param e - The click event from the anchor element\n * @param to - The destination path to navigate to\n *\n * @remarks\n * - Converts relative paths to absolute by prepending \"/\" if needed\n * - Updates browser history using pushState and dispatches a popstate event\n */\nexport const handleInternalNavigation = (\n e: React.MouseEvent<HTMLAnchorElement>,\n to: string\n) => {\n // Don't handle navigation if modifier keys are pressed\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\n return;\n }\n\n // Don't handle middle clicks or right clicks\n if (e.button && e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n\n // Handle relative paths\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\n window.history.pushState({}, \"\", resolvedPath);\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n};\n"],"names":["DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","generatePalette","primaryColor","adjustForLuminance","primaryRgba","primaryScaleFunc","getScale","primaryScale","i","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","darkenForContrast","lightenForContrast","lighten","hasBadContrast","darken","currentColor","currentLuminance","getLuminance","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","e","to","resolvedPath"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { B as i, G as e } from "./colors-Dwh4VIMR.mjs";
|
|
2
|
+
import { toRgba as a, transparentize as U, saturate as C, desaturate as h, getScale as P, adjustHue as N, lighten as D, hasBadContrast as L, darken as H, getLuminance as G } from "color2k";
|
|
3
|
+
const K = {
|
|
4
|
+
BRAND: {
|
|
5
|
+
PRIMARY: i.PRIMARY,
|
|
6
|
+
PRIMARY_LIGHT: i.PRIMARY_LIGHT,
|
|
7
|
+
SECONDARY: i.SECONDARY
|
|
8
|
+
},
|
|
9
|
+
PRIMARY: {
|
|
10
|
+
PRIMARY_SUPER_DARK: e.GRAY_SUPER_DARK,
|
|
11
|
+
PRIMARY_DARK: e.GRAY_DARK,
|
|
12
|
+
PRIMARY_MEDIUM: e.GRAY_MEDIUM,
|
|
13
|
+
PRIMARY_MEDIUM_LIGHT: e.GRAY_MEDIUM_LIGHT,
|
|
14
|
+
PRIMARY_LIGHT: e.GRAY_LIGHT,
|
|
15
|
+
PRIMARY_LIGHTEST: e.GRAY_LIGHTEST,
|
|
16
|
+
PRIMARY_SUPER_LIGHT: e.GRAY_SUPER_LIGHT
|
|
17
|
+
},
|
|
18
|
+
SECONDARY: {
|
|
19
|
+
SECONDARY_SUPER_DARK: e.GRAY_SUPER_DARK,
|
|
20
|
+
SECONDARY_DARK: e.GRAY_DARK,
|
|
21
|
+
SECONDARY_MEDIUM: e.GRAY_MEDIUM,
|
|
22
|
+
SECONDARY_MEDIUM_LIGHT: e.GRAY_MEDIUM_LIGHT,
|
|
23
|
+
SECONDARY_LIGHT: e.GRAY_LIGHT,
|
|
24
|
+
SECONDARY_LIGHTEST: e.GRAY_LIGHTEST,
|
|
25
|
+
SECONDARY_SUPER_LIGHT: e.GRAY_SUPER_LIGHT
|
|
26
|
+
}
|
|
27
|
+
// Success, Warning & Danger palettes go here...
|
|
28
|
+
}, m = (t, R) => R === void 0 ? `rgb(${t[0]}, ${t[1]}, ${t[2]})` : `rgba(${t[0]}, ${t[1]}, ${t[2]}, ${R})`, g = (t, R) => a(U(t, R)), r = (t, R) => a(C(t, R)), I = (t, R) => a(h(t, R)), f = (t, R = !0) => {
|
|
29
|
+
const n = m(t), _ = P("#FFFFFF", n, "#000000"), s = Array.from({ length: 12 }, (E, M) => {
|
|
30
|
+
const c = _(M / 11);
|
|
31
|
+
return I(c, 85e-4);
|
|
32
|
+
}), A = R ? s.map(
|
|
33
|
+
(E) => r(u(E), 5e-3)
|
|
34
|
+
) : s, l = a(r(N(n, 180), 1)), d = P("#FFFFFF", l, "#000000"), S = Array.from({ length: 12 }, (E, M) => {
|
|
35
|
+
const c = d(M / 11);
|
|
36
|
+
return I(c, 0.1);
|
|
37
|
+
}), o = R ? S.map(
|
|
38
|
+
(E) => I(u(E), 0.22)
|
|
39
|
+
) : S;
|
|
40
|
+
return {
|
|
41
|
+
BRAND: {
|
|
42
|
+
PRIMARY: I(Y(A[5]), 0.085),
|
|
43
|
+
PRIMARY_LIGHT: I(
|
|
44
|
+
T(A[5]),
|
|
45
|
+
0.1
|
|
46
|
+
),
|
|
47
|
+
SECONDARY: I(o[4], 0.02)
|
|
48
|
+
},
|
|
49
|
+
PRIMARY: {
|
|
50
|
+
//backgrounds
|
|
51
|
+
PRIMARY_SUPER_DARK: Y(s[9]),
|
|
52
|
+
PRIMARY_DARK: Y(s[8]),
|
|
53
|
+
//interactive components
|
|
54
|
+
PRIMARY_MEDIUM: r(A[7], 0.2),
|
|
55
|
+
//borders and seperators
|
|
56
|
+
PRIMARY_MEDIUM_LIGHT: r(A[6], 0.25),
|
|
57
|
+
//solid colors
|
|
58
|
+
PRIMARY_LIGHT: r(A[5], 0.3),
|
|
59
|
+
//accessible text
|
|
60
|
+
PRIMARY_LIGHTEST: D(A[5], 0.25),
|
|
61
|
+
PRIMARY_SUPER_LIGHT: T(A[3])
|
|
62
|
+
},
|
|
63
|
+
SECONDARY: {
|
|
64
|
+
//backgrounds
|
|
65
|
+
SECONDARY_SUPER_DARK: Y(S[10]),
|
|
66
|
+
SECONDARY_DARK: Y(S[9]),
|
|
67
|
+
// interactive components
|
|
68
|
+
SECONDARY_MEDIUM: r(o[7], 0.2),
|
|
69
|
+
//borders and seperators
|
|
70
|
+
SECONDARY_MEDIUM_LIGHT: r(o[6], 0.25),
|
|
71
|
+
//solid colors
|
|
72
|
+
SECONDARY_LIGHT: r(o[5], 0.3),
|
|
73
|
+
//accessible text
|
|
74
|
+
SECONDARY_LIGHTEST: D(o[5], 0.25),
|
|
75
|
+
SECONDARY_SUPER_LIGHT: T(o[3])
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}, T = (t) => {
|
|
79
|
+
for (; L(t, "readable", e.GRAY_MEDIUM); )
|
|
80
|
+
t = D(t, 0.01);
|
|
81
|
+
return a(t);
|
|
82
|
+
}, Y = (t) => {
|
|
83
|
+
for (; L(e.GRAY_LIGHT, "readable", t); )
|
|
84
|
+
t = H(t, 0.01);
|
|
85
|
+
return a(t);
|
|
86
|
+
}, u = (t) => {
|
|
87
|
+
let R = t, n = G(a(R)), _ = 0;
|
|
88
|
+
const s = 6;
|
|
89
|
+
for (; n < 0.16 && _ < s; )
|
|
90
|
+
_++, R = D(R, 0.1), n = G(a(R));
|
|
91
|
+
for (; n > 0.6 && _ < s; )
|
|
92
|
+
_++, R = H(R, 0.1), n = G(a(R));
|
|
93
|
+
return a(t);
|
|
94
|
+
}, p = (t) => typeof t == "string" || t instanceof String;
|
|
95
|
+
function w(...t) {
|
|
96
|
+
return t.filter(p).join(" ");
|
|
97
|
+
}
|
|
98
|
+
const O = (t) => {
|
|
99
|
+
if (/^https?:\/\//.test(t)) {
|
|
100
|
+
const R = document.createElement("a");
|
|
101
|
+
return R.href = t, R.hostname;
|
|
102
|
+
}
|
|
103
|
+
return window.location.hostname;
|
|
104
|
+
}, $ = (t) => {
|
|
105
|
+
const R = window.location.hostname, n = O(t);
|
|
106
|
+
return R !== n;
|
|
107
|
+
}, v = (t, R) => {
|
|
108
|
+
if (t.metaKey || t.altKey || t.ctrlKey || t.shiftKey || t.button && t.button !== 0)
|
|
109
|
+
return;
|
|
110
|
+
t.preventDefault();
|
|
111
|
+
const n = R.startsWith("/") ? R : `/${R}`;
|
|
112
|
+
window.history.pushState({}, "", n), window.dispatchEvent(new PopStateEvent("popstate"));
|
|
113
|
+
};
|
|
114
|
+
export {
|
|
115
|
+
K as D,
|
|
116
|
+
m as a,
|
|
117
|
+
w as c,
|
|
118
|
+
I as d,
|
|
119
|
+
f as g,
|
|
120
|
+
v as h,
|
|
121
|
+
$ as i,
|
|
122
|
+
r as s,
|
|
123
|
+
g as t
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=utils-CZQIdhYj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-CZQIdhYj.mjs","sources":["../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["import { COLORS } from \"../constants\";\nimport {\n adjustHue,\n getScale,\n saturate as _saturate,\n transparentize as _transparentize,\n desaturate as _desaturate,\n hasBadContrast,\n getLuminance,\n lighten,\n darken,\n toRgba,\n} from \"color2k\";\n\nexport type RGBArray = [number, number, number];\n\nexport type Palette = {\n BRAND: {\n PRIMARY: string;\n PRIMARY_LIGHT: string;\n SECONDARY: string;\n };\n PRIMARY: {\n //backgrounds\n PRIMARY_SUPER_DARK: string;\n PRIMARY_DARK: string;\n //interactive components\n PRIMARY_MEDIUM: string;\n //borders and seperators\n PRIMARY_MEDIUM_LIGHT: string;\n //solid colors\n PRIMARY_LIGHT: string;\n //accessible text\n PRIMARY_LIGHTEST: string;\n PRIMARY_SUPER_LIGHT: string;\n };\n SECONDARY: {\n //backgrounds\n SECONDARY_SUPER_DARK: string;\n SECONDARY_DARK: string;\n //interactive components\n SECONDARY_MEDIUM: string;\n //borders and seperators\n SECONDARY_MEDIUM_LIGHT: string;\n //solid colors\n SECONDARY_LIGHT: string;\n //accessible text\n SECONDARY_LIGHTEST: string;\n SECONDARY_SUPER_LIGHT: string;\n };\n};\n\nexport const DEFAULT_PALETTE: Palette = {\n BRAND: {\n PRIMARY: COLORS.BRAND.PRIMARY,\n PRIMARY_LIGHT: COLORS.BRAND.PRIMARY_LIGHT,\n SECONDARY: COLORS.BRAND.SECONDARY,\n },\n PRIMARY: {\n PRIMARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\n PRIMARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\n PRIMARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\n PRIMARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\n PRIMARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\n PRIMARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\n PRIMARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\n },\n SECONDARY: {\n SECONDARY_SUPER_DARK: COLORS.GRAYSCALE.GRAY_SUPER_DARK,\n SECONDARY_DARK: COLORS.GRAYSCALE.GRAY_DARK,\n SECONDARY_MEDIUM: COLORS.GRAYSCALE.GRAY_MEDIUM,\n SECONDARY_MEDIUM_LIGHT: COLORS.GRAYSCALE.GRAY_MEDIUM_LIGHT,\n SECONDARY_LIGHT: COLORS.GRAYSCALE.GRAY_LIGHT,\n SECONDARY_LIGHTEST: COLORS.GRAYSCALE.GRAY_LIGHTEST,\n SECONDARY_SUPER_LIGHT: COLORS.GRAYSCALE.GRAY_SUPER_LIGHT,\n },\n // Success, Warning & Danger palettes go here...\n};\n\n/**\n * Converts an RGB array to a CSS string representation.\n * @param rgb - The RGB array to convert.\n * @param opacity - Optional opacity value.\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\n */\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\n return opacity === undefined\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\n};\n\n/**\n * Transparentizes an input color.\n *\n * @param color - The color string to transparentize.\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\n * @returns An RGBA color string.\n */\nexport const transparentize = (color: string, amount: number): string => {\n return toRgba(_transparentize(color, amount));\n};\n\n/**\n * Saturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const saturate = (color: string, amount: number): string => {\n return toRgba(_saturate(color, amount));\n};\n\n/**\n * Desaturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const desaturate = (color: string, amount: number): string => {\n return toRgba(_desaturate(color, amount));\n};\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 * @param adjustForLuminance - Whether to adjust the generated colors for better luminance/contrast. Defaults to true.\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 = (\n primaryColor: RGBArray,\n adjustForLuminance: boolean = true\n): Palette => {\n const primaryRgba = arrayToRgbString(primaryColor);\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 = adjustForLuminance\n ? primaryScale.map((color) =>\n saturate(adjustBrightnessForLuminance(color), 0.005)\n )\n : primaryScale;\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 = adjustForLuminance\n ? secondaryScale.map((color) =>\n desaturate(adjustBrightnessForLuminance(color), 0.22)\n )\n : secondaryScale;\n\n return {\n BRAND: {\n PRIMARY: desaturate(darkenForContrast(adjustedPrimaryScale[5]), 0.085),\n PRIMARY_LIGHT: desaturate(\n lightenForContrast(adjustedPrimaryScale[5]),\n 0.1\n ),\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\n },\n PRIMARY: {\n //backgrounds\n PRIMARY_SUPER_DARK: darkenForContrast(primaryScale[9]),\n PRIMARY_DARK: darkenForContrast(primaryScale[8]),\n //interactive components\n PRIMARY_MEDIUM: saturate(adjustedPrimaryScale[7], 0.2),\n //borders and seperators\n PRIMARY_MEDIUM_LIGHT: saturate(adjustedPrimaryScale[6], 0.25),\n //solid colors\n PRIMARY_LIGHT: saturate(adjustedPrimaryScale[5], 0.3),\n //accessible text\n PRIMARY_LIGHTEST: lighten(adjustedPrimaryScale[5], 0.25),\n PRIMARY_SUPER_LIGHT: lightenForContrast(adjustedPrimaryScale[3]),\n },\n SECONDARY: {\n //backgrounds\n SECONDARY_SUPER_DARK: darkenForContrast(secondaryScale[10]),\n SECONDARY_DARK: darkenForContrast(secondaryScale[9]),\n // interactive components\n SECONDARY_MEDIUM: saturate(adjustedSecondaryScale[7], 0.2),\n //borders and seperators\n SECONDARY_MEDIUM_LIGHT: saturate(adjustedSecondaryScale[6], 0.25),\n //solid colors\n SECONDARY_LIGHT: saturate(adjustedSecondaryScale[5], 0.3),\n //accessible text\n SECONDARY_LIGHTEST: lighten(adjustedSecondaryScale[5], 0.25),\n SECONDARY_SUPER_LIGHT: lightenForContrast(adjustedSecondaryScale[3]),\n },\n };\n};\n\nconst lightenForContrast = (color: string): string => {\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_MEDIUM)) {\n color = lighten(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst darkenForContrast = (color: string): string => {\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_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 return toRgba(color);\n};\n","const isString = (x: unknown): boolean =>\n typeof x === \"string\" || x instanceof String;\n\nexport function csx(...classnames: unknown[]): string {\n return classnames.filter(isString).join(\" \");\n}\n\n/**\n * [getLinkHost] - get the host of a link.\n * Referenced from is-url-external npm package\n * https://github.com/mrded/is-url-external/blob/master/index.js\n */\nconst getLinkHost = (url) => {\n if (/^https?:\\/\\//.test(url)) {\n // Absolute URL.\n // The easy way to parse an URL, is to create <a> element.\n // @see: https://gist.github.com/jlong/2428561\n const parser = document.createElement(\"a\");\n parser.href = url;\n return parser.hostname;\n }\n return window.location.hostname;\n};\n\n/**\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\n */\nexport const isUrlExternal = (url) => {\n const host = window.location.hostname;\n const linkHost = getLinkHost(url);\n\n return host !== linkHost;\n};\n\n/**\n * Handles internal navigation clicks by preventing default browser behavior and\n * programmatically updating the URL and history state.\n *\n * @param e - The click event from the anchor element\n * @param to - The destination path to navigate to\n *\n * @remarks\n * - Converts relative paths to absolute by prepending \"/\" if needed\n * - Updates browser history using pushState and dispatches a popstate event\n */\nexport const handleInternalNavigation = (\n e: React.MouseEvent<HTMLAnchorElement>,\n to: string\n) => {\n // Don't handle navigation if modifier keys are pressed\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\n return;\n }\n\n // Don't handle middle clicks or right clicks\n if (e.button && e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n\n // Handle relative paths\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\n window.history.pushState({}, \"\", resolvedPath);\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n};\n"],"names":["DEFAULT_PALETTE","COLORS.BRAND","COLORS.GRAYSCALE","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","generatePalette","primaryColor","adjustForLuminance","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","i","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","darkenForContrast","lightenForContrast","lighten","hasBadContrast","darken","currentColor","currentLuminance","getLuminance","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","getLinkHost","url","parser","isUrlExternal","host","linkHost","handleInternalNavigation","e","to","resolvedPath"],"mappings":"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"}
|
package/dist/utils.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./utils-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./utils-BNyA6Kte.js");exports.DEFAULT_PALETTE=e.DEFAULT_PALETTE;exports.arrayToRgbString=e.arrayToRgbString;exports.csx=e.csx;exports.desaturate=e.desaturate;exports.generatePalette=e.generatePalette;exports.handleInternalNavigation=e.handleInternalNavigation;exports.isUrlExternal=e.isUrlExternal;exports.saturate=e.saturate;exports.transparentize=e.transparentize;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.js.map
|
package/dist/utils.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as t, a as e, c as r, d as n, g as i, h as g, i as l, s as o, t as E } from "./utils-
|
|
1
|
+
import { D as t, a as e, c as r, d as n, g as i, h as g, i as l, s as o, t as E } from "./utils-CZQIdhYj.mjs";
|
|
2
2
|
export {
|
|
3
3
|
t as DEFAULT_PALETTE,
|
|
4
4
|
e as arrayToRgbString,
|
package/package.json
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@protonradio/proton-ui",
|
|
3
|
-
"version": "0.7.0
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "./dist/proton-ui.umd.js",
|
|
6
|
-
"module": "./dist/proton-ui.es.js",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/index.es.js",
|
|
11
|
-
"require": "./dist/index.cjs.js"
|
|
12
|
-
},
|
|
13
|
-
"./styles": "./dist/style.css",
|
|
14
|
-
"./utils": {
|
|
15
|
-
"types": "./dist/utils.d.ts",
|
|
16
|
-
"import": "./dist/utils.es.js",
|
|
17
|
-
"require": "./dist/utils.cjs.js"
|
|
18
|
-
},
|
|
19
|
-
"./constants": {
|
|
20
|
-
"types": "./dist/constants.d.ts",
|
|
21
|
-
"import": "./dist/constants.es.js",
|
|
22
|
-
"require": "./dist/constants.cjs.js"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"typesVersions": {
|
|
26
|
-
"*": {
|
|
27
|
-
"*": [
|
|
28
|
-
"./dist/index.d.ts"
|
|
29
|
-
],
|
|
30
|
-
"constants": [
|
|
31
|
-
"./dist/constants.d.ts"
|
|
32
|
-
],
|
|
33
|
-
"utils": [
|
|
34
|
-
"./dist/utils.d.ts"
|
|
35
|
-
]
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
"scripts": {
|
|
39
|
-
"dev": "vite",
|
|
40
|
-
"build": "vite build",
|
|
41
|
-
"preview": "vite preview",
|
|
42
|
-
"storybook": "storybook dev -p 6006",
|
|
43
|
-
"build-storybook": "storybook build",
|
|
44
|
-
"test": "jest",
|
|
45
|
-
"dev-test": "jest --watch",
|
|
46
|
-
"prepare": "vite build",
|
|
47
|
-
"chromatic": "npx chromatic --exit-once-uploaded flag --force-rebuild --project-token=$CHROMATIC_PROJECT_TOKEN",
|
|
48
|
-
"omlet:analyze": "npx @omlet/cli analyze"
|
|
49
|
-
},
|
|
50
|
-
"files": [
|
|
51
|
-
"dist"
|
|
52
|
-
],
|
|
53
|
-
"author": "",
|
|
54
|
-
"license": "MIT",
|
|
55
|
-
"dependencies": {
|
|
56
|
-
"@storybook/cli": "^8.4.2",
|
|
57
|
-
"color2k": "^2.0.3",
|
|
58
|
-
"react": "^18.3.1",
|
|
59
|
-
"react-aria": "^3.35.1",
|
|
60
|
-
"react-aria-components": "^1.4.1",
|
|
61
|
-
"react-dom": "^18.3.1",
|
|
62
|
-
"react-stately": "^3.33.0"
|
|
63
|
-
},
|
|
64
|
-
"devDependencies": {
|
|
65
|
-
"@chromatic-com/storybook": "^3.2.2",
|
|
66
|
-
"@storybook/addon-a11y": "^8.4.2",
|
|
67
|
-
"@storybook/addon-essentials": "^8.4.2",
|
|
68
|
-
"@storybook/addon-interactions": "^8.4.2",
|
|
69
|
-
"@storybook/addon-links": "^8.4.2",
|
|
70
|
-
"@storybook/addon-onboarding": "^8.4.2",
|
|
71
|
-
"@storybook/blocks": "^8.4.2",
|
|
72
|
-
"@storybook/react": "^8.4.2",
|
|
73
|
-
"@storybook/react-vite": "^8.4.2",
|
|
74
|
-
"@storybook/test": "^8.4.2",
|
|
75
|
-
"@testing-library/jest-dom": "^6.6.3",
|
|
76
|
-
"@testing-library/react": "^16.0.1",
|
|
77
|
-
"@testing-library/user-event": "^14.5.2",
|
|
78
|
-
"@types/jest": "^29.5.14",
|
|
79
|
-
"@vitejs/plugin-react": "^4.3.3",
|
|
80
|
-
"colorthief": "^2.6.0",
|
|
81
|
-
"jest": "^29.7.0",
|
|
82
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
83
|
-
"lightningcss": "^1.28.1",
|
|
84
|
-
"react-docgen-typescript": "^2.2.2",
|
|
85
|
-
"storybook": "^8.4.2",
|
|
86
|
-
"ts-jest": "^29.2.5",
|
|
87
|
-
"ts-node": "^10.9.2",
|
|
88
|
-
"vite": "^5.4.10",
|
|
89
|
-
"vite-plugin-dts": "^4.3.0"
|
|
90
|
-
}
|
|
91
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@protonradio/proton-ui",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "./dist/proton-ui.umd.js",
|
|
6
|
+
"module": "./dist/proton-ui.es.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.es.js",
|
|
11
|
+
"require": "./dist/index.cjs.js"
|
|
12
|
+
},
|
|
13
|
+
"./styles": "./dist/style.css",
|
|
14
|
+
"./utils": {
|
|
15
|
+
"types": "./dist/utils.d.ts",
|
|
16
|
+
"import": "./dist/utils.es.js",
|
|
17
|
+
"require": "./dist/utils.cjs.js"
|
|
18
|
+
},
|
|
19
|
+
"./constants": {
|
|
20
|
+
"types": "./dist/constants.d.ts",
|
|
21
|
+
"import": "./dist/constants.es.js",
|
|
22
|
+
"require": "./dist/constants.cjs.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"typesVersions": {
|
|
26
|
+
"*": {
|
|
27
|
+
"*": [
|
|
28
|
+
"./dist/index.d.ts"
|
|
29
|
+
],
|
|
30
|
+
"constants": [
|
|
31
|
+
"./dist/constants.d.ts"
|
|
32
|
+
],
|
|
33
|
+
"utils": [
|
|
34
|
+
"./dist/utils.d.ts"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "vite",
|
|
40
|
+
"build": "vite build",
|
|
41
|
+
"preview": "vite preview",
|
|
42
|
+
"storybook": "storybook dev -p 6006",
|
|
43
|
+
"build-storybook": "storybook build",
|
|
44
|
+
"test": "jest",
|
|
45
|
+
"dev-test": "jest --watch",
|
|
46
|
+
"prepare": "vite build",
|
|
47
|
+
"chromatic": "npx chromatic --exit-once-uploaded flag --force-rebuild --project-token=$CHROMATIC_PROJECT_TOKEN",
|
|
48
|
+
"omlet:analyze": "npx @omlet/cli analyze"
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist"
|
|
52
|
+
],
|
|
53
|
+
"author": "",
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@storybook/cli": "^8.4.2",
|
|
57
|
+
"color2k": "^2.0.3",
|
|
58
|
+
"react": "^18.3.1",
|
|
59
|
+
"react-aria": "^3.35.1",
|
|
60
|
+
"react-aria-components": "^1.4.1",
|
|
61
|
+
"react-dom": "^18.3.1",
|
|
62
|
+
"react-stately": "^3.33.0"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@chromatic-com/storybook": "^3.2.2",
|
|
66
|
+
"@storybook/addon-a11y": "^8.4.2",
|
|
67
|
+
"@storybook/addon-essentials": "^8.4.2",
|
|
68
|
+
"@storybook/addon-interactions": "^8.4.2",
|
|
69
|
+
"@storybook/addon-links": "^8.4.2",
|
|
70
|
+
"@storybook/addon-onboarding": "^8.4.2",
|
|
71
|
+
"@storybook/blocks": "^8.4.2",
|
|
72
|
+
"@storybook/react": "^8.4.2",
|
|
73
|
+
"@storybook/react-vite": "^8.4.2",
|
|
74
|
+
"@storybook/test": "^8.4.2",
|
|
75
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
76
|
+
"@testing-library/react": "^16.0.1",
|
|
77
|
+
"@testing-library/user-event": "^14.5.2",
|
|
78
|
+
"@types/jest": "^29.5.14",
|
|
79
|
+
"@vitejs/plugin-react": "^4.3.3",
|
|
80
|
+
"colorthief": "^2.6.0",
|
|
81
|
+
"jest": "^29.7.0",
|
|
82
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
83
|
+
"lightningcss": "^1.28.1",
|
|
84
|
+
"react-docgen-typescript": "^2.2.2",
|
|
85
|
+
"storybook": "^8.4.2",
|
|
86
|
+
"ts-jest": "^29.2.5",
|
|
87
|
+
"ts-node": "^10.9.2",
|
|
88
|
+
"vite": "^5.4.10",
|
|
89
|
+
"vite-plugin-dts": "^4.3.0"
|
|
90
|
+
}
|
|
91
|
+
}
|