tintora 0.25.0 → 0.26.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/dist/BottomSheet/BottomSheet.d.ts +18 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +184 -140
- package/dist/tintora.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type DrawerProps } from '../Drawer/Drawer';
|
|
3
|
+
import './BottomSheet.css';
|
|
4
|
+
export interface BottomSheetProps extends Omit<DrawerProps, 'from' | 'width' | 'height' | 'title'> {
|
|
5
|
+
/** Names the dialog and shows as its heading. */
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A Drawer that slides up from the bottom: the mobile version of a popover or
|
|
10
|
+
* menu. A scrim click or Esc closes it. Put `BottomSheetOption`s in it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function BottomSheet({ title, children, className, ...props }: BottomSheetProps): import("react").JSX.Element;
|
|
13
|
+
export interface BottomSheetOptionProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'aria-pressed'> {
|
|
14
|
+
/** Tints the row and shows a check. @default false */
|
|
15
|
+
selected?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** A 48px row for a choice in a `BottomSheet`. */
|
|
18
|
+
export declare function BottomSheetOption({ selected, className, children, ...props }: BottomSheetOptionProps): import("react").JSX.Element;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react/jsx-runtime"),t=require("react");function n(e){var t,r,i=``;if(typeof e==`string`||typeof e==`number`)i+=e;else if(typeof e==`object`){if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=n(e[t]))&&(i&&(i+=` `),i+=r)}else for(r in e)e[r]&&(i&&(i+=` `),i+=r)}return i}function r(){for(var e,t,r=0,i=``,a=arguments.length;r<a;r++)(e=arguments[r])&&(t=n(e))&&(i&&(i+=` `),i+=t);return i}var i={info:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01`}),success:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12.5l2.7 2.7L16 9.8`}),warning:(0,e.jsx)(`path`,{d:`M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01`}),error:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM15 9l-6 6M9 9l6 6`})},a=({status:t})=>(0,e.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-status-${t}-fg)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`,marginTop:1},children:i[t]});function o({status:t=`info`,variant:n=`alert`,title:i,children:o,action:s,onDismiss:c,className:l,...u}){return(0,e.jsxs)(`div`,{...u,role:n===`alert`&&t===`error`?`alert`:`status`,className:r(`tintora-alert`,n===`announcement`?`tintora-alert--announcement`:`tintora-alert--${t}`,l),children:[n===`alert`&&(0,e.jsx)(a,{status:t}),(0,e.jsxs)(`div`,{className:r(`tintora-alert__content`,n===`announcement`&&`tintora-alert__content--announcement`),children:[i&&(0,e.jsx)(`span`,{className:`tintora-alert__content__title`,children:i}),o&&(0,e.jsx)(`span`,{className:`tintora-alert__content__sub-title`,children:o}),s&&(0,e.jsx)(`button`,{type:`button`,onClick:s.onClick,className:r(`tintora-alert__content__action`,n===`alert`&&`tintora-alert__content__action--${t}`),children:s.label})]}),n===`alert`&&c&&(0,e.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`tintora-alert__close`,onClick:c,children:(0,e.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})})})]})}function s(e){if(!e.length)return``;let t=e.trim().split(/\s+/).map(e=>e.match(/\p{L}\p{M}*/u)?.[0]).filter(e=>!!e);return`${t[0]??``}${t.length>1?t.at(-1)??``:``}`.toLocaleUpperCase()}function c({name:n,src:i,size:a=`medium`,className:o,...c}){let[l,u]=(0,t.useState)(),d=!!i&&i!==l;return(0,e.jsx)(`span`,{role:`img`,"aria-label":n,...c,className:r(`tintora-avatar`,`tintora-avatar--${a}`,o),children:d?(0,e.jsx)(`img`,{src:i,alt:``,onError:()=>u(i)}):s(n)})}var l={small:{width:16,height:16,strokeWidth:3.5},medium:{width:24,height:24,strokeWidth:3},large:{width:40,height:40,strokeWidth:2.4}};function u({size:t=`medium`,color:n=`accent`}){let{width:r,height:i,strokeWidth:a}=l[t];return(0,e.jsxs)(`svg`,{className:`tintora-spinner`,width:r,height:i,viewBox:`0 0 24 24`,fill:`none`,role:`img`,"aria-label":`Loading`,children:[(0,e.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:n===`accent`?.25:.35,strokeWidth:a}),(0,e.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:n===`accent`?`var(--tintora-control-fill)`:`currentColor`,strokeWidth:a,strokeLinecap:`round`})]})}function d({children:t,className:n,variant:i,size:a=`medium`,leadingIcon:o,trailingIcon:s,type:c=`button`,loading:l=!1,disabled:d,...f}){return(0,e.jsxs)(`button`,{type:c,className:r(`tintora-button`,`tintora-button--${i}`,`tintora-button--${a}`,{"tintora-button--leading-icon":!!o||l,"tintora-button--loading":l,"tintora-button--trailing-icon":!!s},n),disabled:d||l,"aria-busy":l||void 0,...f,children:[l&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:(0,e.jsx)(u,{size:`small`,color:`current`})}),!l&&o&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:o}),t,s&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:s})]})}function f({as:t=`article`,variant:n=`surface`,className:i,...a}){return(0,e.jsx)(t,{...a,className:r(`tintora-card`,`tintora-card--${n}`,i)})}function p({selected:t=!1,className:n,...i}){return(0,e.jsx)(`button`,{...i,type:`button`,"aria-pressed":t,className:r(`tintora-card`,`tintora-card--surface`,`tintora-card--selectable`,t&&`tintora-card--selected`,n)})}function m({checked:e,defaultChecked:n=!1,onCheckedChange:r}){let[i,a]=(0,t.useState)(n),o=e!==void 0;return{checked:o?e:i,onChange:e=>{o||a(e.target.checked),r?.(e.target.checked)}}}function h({checked:n,defaultChecked:i,onCheckedChange:a,indeterminate:o=!1,className:s,...c}){let l=(0,t.useRef)(null),u=m({checked:n,defaultChecked:i,onCheckedChange:a});return(0,t.useLayoutEffect)(()=>{l.current&&(l.current.indeterminate=o)}),(0,e.jsxs)(`span`,{className:r(`tintora-checkbox`,s),children:[(0,e.jsx)(`input`,{...c,ref:l,type:`checkbox`,className:`tintora-checkbox__input`,checked:u.checked,onChange:u.onChange}),(0,e.jsxs)(`span`,{className:`tintora-checkbox__box`,"aria-hidden":`true`,children:[(0,e.jsx)(`svg`,{className:`tintora-checkbox__check`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,strokeWidth:`3.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,e.jsx)(`path`,{d:`M5 12.5l4.5 4.5L19 7.5`})}),(0,e.jsx)(`svg`,{className:`tintora-checkbox__dash`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,strokeWidth:`3.2`,strokeLinecap:`round`,children:(0,e.jsx)(`path`,{d:`M6 12h12`})})]})]})}function g({children:t,selected:n,className:i,"aria-pressed":a,...o}){return(0,e.jsx)(`button`,{...o,type:`button`,className:r(`tintora-chip`,i),"aria-pressed":n??a,children:t})}function _({variant:t=`unread`,label:n,className:i,...a}){return(0,e.jsx)(`span`,{...a,className:r(`tintora-dot`,`tintora-dot--${t}`,i),role:n?`img`:void 0,"aria-label":n,"aria-hidden":!n||void 0})}function v(e,t){if(e.target!==e.currentTarget)return;let{left:n,right:r,top:i,bottom:a}=e.currentTarget.getBoundingClientRect();(e.clientX<n||e.clientX>r||e.clientY<i||e.clientY>a)&&t()}var y=e=>typeof e==`number`?`${e}px`:e;function b({open:n,from:i=`right`,width:a,height:o,children:s,onClose:c,className:l,...u}){let d=(0,t.useRef)(null);(0,t.useEffect)(()=>{let e=d.current;e&&(n&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!n&&e.open&&e.close())},[n]);let f={...u.style,...a!==void 0&&{"--tintora-drawer-width":y(a)},...o!==void 0&&{"--tintora-drawer-height":y(o)}};return(0,e.jsx)(`dialog`,{...u,ref:d,className:r(`tintora-drawer`,`tintora-drawer--from-${i}`,l),onCancel:e=>{e.preventDefault(),c()},onClick:e=>v(e,c),style:f,children:s})}var x={round:`secondary`,field:`secondary`,nav:`ghost`};function S({icon:t,variant:n=`round`,size:i,selected:a,className:o,...s}){let c=n===`round`?i??`large`:void 0;return(0,e.jsx)(d,{...s,variant:x[n],"aria-current":a?`page`:void 0,className:r(`tintora-icon-button`,`tintora-icon-button--${n}`,c&&`tintora-icon-button--${c}`,o),...c&&{size:c},children:(0,e.jsx)(`span`,{className:`tintora-icon-button__icon`,"aria-hidden":`true`,children:t})})}var C=()=>(0,e.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})});function w({open:n,onClose:i,title:a,description:o,icon:s,status:c=`info`,actions:l,size:u=`md`,align:d=`start`,role:f=`dialog`,closeButton:p=!0,className:m,children:h,...g}){let _=(0,t.useRef)(null),y=(0,t.useId)(),b=(0,t.useId)();return(0,t.useEffect)(()=>{let e=_.current;e&&(n&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!n&&e.open&&e.close())},[n]),(0,e.jsxs)(`dialog`,{...g,ref:_,role:f,"aria-labelledby":y,"aria-describedby":o?b:void 0,className:r(`tintora-modal`,`tintora-modal--${u}`,d===`center`&&`tintora-modal--center`,m),onCancel:e=>{e.preventDefault(),i()},onClick:e=>{f===`dialog`&&v(e,i)},children:[s&&(0,e.jsx)(`span`,{className:r(`tintora-modal__icon`,`tintora-modal__icon--${c}`),"aria-hidden":`true`,children:s}),(0,e.jsxs)(`div`,{className:`tintora-modal__text`,children:[(0,e.jsx)(`h2`,{id:y,className:`tintora-modal__title`,children:a}),o&&(0,e.jsx)(`p`,{id:b,className:`tintora-modal__description`,children:o})]}),p&&(0,e.jsx)(S,{className:`tintora-modal__close`,size:`medium`,"aria-label":`Close`,icon:(0,e.jsx)(C,{}),onClick:i}),h,l&&(0,e.jsx)(`div`,{className:`tintora-modal__actions`,children:l})]})}function T(e){let n=(0,t.useRef)(e);return(0,t.useEffect)(()=>{n.current=e},[e]),n}function E(e,n){let r=T(n);(0,t.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&r.current()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,r])}function D(e,n,r){let i=T(r);(0,t.useEffect)(()=>{if(!e)return;let t=e=>{n.current?.contains(e.target)||i.current()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},[e,n,i])}function O(e,n,r,i){let[a,o]=(0,t.useState)(null);return(0,t.useLayoutEffect)(()=>{let t=n.current;if(!e||!t){o(null);return}t.showPopover();let i=()=>o(r()),a=e=>{t.contains(e.target)||i()};return i(),window.addEventListener(`scroll`,a,!0),window.addEventListener(`resize`,i),()=>{window.removeEventListener(`scroll`,a,!0),window.removeEventListener(`resize`,i)}},[e,n,...i]),a}var k={gap:10,margin:8,arrowInset:12},A={top:`bottom`,bottom:`top`,left:`right`,right:`left`},j=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function M(e,t,n,r,{gap:i,margin:a}){let o=t=>{switch(t){case`top`:return e.top;case`bottom`:return r.height-e.bottom;case`left`:return e.left;case`right`:return r.width-e.right}},s=(n===`top`||n===`bottom`?t.height:t.width)+i+a,c=o(n);return c>=s||o(A[n])<=c?n:A[n]}function N(e,t,n,r={width:window.innerWidth,height:window.innerHeight},i={}){let a={...k,...i},{gap:o,margin:s,arrowInset:c}=a,l=M(e,t,n,r,a),u=l===`top`||l===`bottom`,d,f;switch(l){case`top`:d=e.y-t.height-o,f=e.x+e.width/2-t.width/2;break;case`bottom`:d=e.y+e.height+o,f=e.x+e.width/2-t.width/2;break;case`left`:d=e.y+e.height/2-t.height/2,f=e.x-t.width-o;break;case`right`:d=e.y+e.height/2-t.height/2,f=e.x+e.width+o}u?f=j(f,s,r.width-t.width-s):d=j(d,s,r.height-t.height-s);let p=u?e.x+e.width/2-f:e.y+e.height/2-d,m=u?t.width:t.height;return{top:d,left:f,placement:l,arrowOffset:j(p,c,m-c)}}var P=[`button:not([disabled])`,`[href]`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);function F({open:n,onOpenChange:i,trigger:a,title:o,children:s,role:c=`dialog`,size:l=`md`,placement:u=`bottom`,className:d}){let f=(0,t.useId)(),p=(0,t.useRef)(null),m=(0,t.useRef)(null),h=(0,t.useRef)(!1),g=()=>i(!1);E(n,g),D(n,p,g);let _=e=>{a.props.onClick?.(e),e.defaultPrevented||i(!n)},v=O(n,m,()=>{let e=m.current,t=p.current?.firstElementChild;return!e||!t?null:N(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},u,void 0,{gap:12})},[u,o,s]),y=v?{top:v.top,left:v.left,"--tintora-popover-arrow-offset":`${v.arrowOffset}px`}:{visibility:`hidden`},b=v!==null;return(0,t.useLayoutEffect)(()=>{let e=m.current;n&&b&&e&&(e.querySelector(`[data-autofocus]`)??e.querySelector(P)??e).focus()},[n,b]),(0,t.useEffect)(()=>{if(h.current&&!n){let e=document.activeElement;(!e||e===document.body)&&p.current?.querySelector(`*`)?.focus()}h.current=n},[n]),(0,e.jsxs)(`span`,{ref:p,className:`tintora-popover-root`,children:[(0,t.cloneElement)(a,{"aria-haspopup":`dialog`,"aria-expanded":n,"aria-controls":n?f:void 0,onClick:_}),n&&(0,e.jsx)(`div`,{id:f,ref:m,role:c,"aria-label":o,popover:`manual`,tabIndex:-1,className:r(`tintora-popover`,`tintora-popover--${l}`,`tintora-popover--${v?.placement??u}`,d),style:y,children:s})]})}function I({title:n,progress:i,indeterminate:a,valueLabel:o,className:s,"aria-label":c}){let l=(0,t.useId)(),u=a?void 0:Math.min(100,Math.max(0,Number.isFinite(i)?i:0)),d=u===100,f=o??(a?`Indeterminate`:`${u}%`);return(0,e.jsxs)(`div`,{className:r(`tintora-progress-bar`,s),children:[n&&(0,e.jsxs)(`div`,{className:`tintora-progress-bar__header`,children:[(0,e.jsx)(`span`,{id:l,children:n}),(0,e.jsx)(`span`,{className:`tintora-progress-bar__value`,children:f})]}),(0,e.jsx)(`div`,{role:`progressbar`,"aria-label":c,"aria-labelledby":n?l:void 0,"aria-valuemin":a?void 0:0,"aria-valuemax":a?void 0:100,"aria-valuenow":u,"aria-valuetext":o,className:`tintora-progress-bar__track`,children:(0,e.jsx)(`div`,{className:r(`tintora-progress-bar__fill`,{"tintora-progress-bar__fill--indeterminate":a,"tintora-progress-bar__fill--complete":d}),style:u===void 0?void 0:{width:`${u}%`}})})]})}var L=(0,t.createContext)(null);function R(){let e=(0,t.useContext)(L);if(!e)throw Error(`Radio must be rendered inside a RadioGroup`);return e}function z({value:t,className:n,disabled:i,...a}){let o=R();return(0,e.jsxs)(`span`,{className:r(`tintora-radio`,n),children:[(0,e.jsx)(`input`,{...a,type:`radio`,className:`tintora-radio__input`,name:o.name,value:t,checked:o.value===t,disabled:i||o.disabled,onChange:()=>o.select(t)}),(0,e.jsx)(`span`,{className:`tintora-radio__circle`,"aria-hidden":`true`})]})}function B({value:n,defaultValue:i,onValueChange:a,disabled:o=!1,name:s,className:c,...l}){let u=(0,t.useId)(),[d,f]=(0,t.useState)(i??null),p=n!==void 0,m=p?n:d;return(0,e.jsx)(L.Provider,{value:{name:s??u,value:m,select:e=>{e!==m&&(p||f(e),a?.(e))},disabled:o},children:(0,e.jsx)(`div`,{...l,role:`radiogroup`,className:r(`tintora-radio-group`,c)})})}function V({className:t,disabled:n,...i}){return(0,e.jsxs)(`label`,{className:r(`tintora-search-input`,n&&`tintora-search-input--disabled`,t),children:[(0,e.jsxs)(`svg`,{className:`tintora-search-input__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,e.jsx)(`circle`,{cx:`11`,cy:`11`,r:`7`}),(0,e.jsx)(`path`,{d:`M20 20l-3.5-3.5`})]}),(0,e.jsx)(`input`,{...i,type:`search`,disabled:n,className:`tintora-search-input__input`})]})}var H=(0,t.createContext)(null),U=()=>{let e=(0,t.useContext)(H);if(!e)throw Error(`SelectOption must be rendered inside a Select`);return e};function W({label:t,value:n,disabled:i}){let{select:a,activate:o,optionId:s,value:c,activeValue:l}=U();return(0,e.jsx)(`div`,{id:s(n),role:`option`,"aria-selected":c===n,"aria-disabled":i||void 0,className:r(`tintora-select__option`,l===n&&`tintora-select__option--active`),onClick:()=>a(n),onMouseMove:()=>!i&&o(n),children:t})}var G=4;function K({defaultValue:n,options:i,disabled:a,value:o,placeholder:s,onValueChange:c,name:l,className:u,onClick:d,onKeyDown:f,onKeyUp:p,"aria-label":m,...h}){let g=(0,t.useId)(),_=(0,t.useRef)(null),v=(0,t.useRef)(null),y=(0,t.useRef)(null),[b,x]=(0,t.useState)(n??null),[S,C]=(0,t.useState)(!1),[w,T]=(0,t.useState)(-1),E=o!==void 0,k=E?o:b,A=i.findIndex(e=>e.value===k),j=e=>i[e]?.disabled!==!0,M=()=>i.findIndex((e,t)=>j(t)),N=(e,t)=>{for(let n=e+t;n>=0&&n<i.length;n+=t)if(j(n))return n;return e},P=()=>{let e=N(i.length,-1);return e===i.length?-1:e},F=e=>i.findIndex(t=>t.value===e),I=()=>{T(A>=0&&j(A)?A:M()),C(!0)},L=()=>C(!1),R=e=>{let t=F(e);t<0||!j(t)||(L(),e!==k&&(E||x(e),c?.(e)))},z=e=>{if(f?.(e),e.defaultPrevented)return;let{key:t}=e;if(t===`Tab`)return L();if(!S){[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(t)&&(e.preventDefault(),I());return}let n={ArrowDown:()=>w<0?M():N(w,1),ArrowUp:()=>w<0?M():N(w,-1),Home:M,End:P};t in n?(e.preventDefault(),T(n[t]())):t===`Enter`||t===` `?(e.preventDefault(),w>=0?R(i[w].value):L()):t===`Escape`&&(e.preventDefault(),L())},B=e=>{p?.(e),e.key===` `&&e.preventDefault()},V=O(S,y,()=>{let e=y.current,t=v.current;if(!e||!t)return null;let n=t.getBoundingClientRect(),r=e.offsetHeight,i=n.bottom+G+r<=window.innerHeight,a=n.top-G-r>=0;return{top:i||!a?n.bottom+G:n.top-G-r,left:n.left,minWidth:n.width}},[]),U=e=>{d?.(e),!e.defaultPrevented&&(S?L():I())};D(S,_,L),(0,t.useEffect)(()=>{S&&w>=0&&y.current?.children.item(w)?.scrollIntoView?.({block:`nearest`})},[S,w]);let K=e=>`${g}-option-${F(e)}`,q=S?i[w]?.value??null:null,J=i[A]?.label;return(0,e.jsx)(H.Provider,{value:{value:k,activeValue:q,select:R,optionId:K,activate:e=>T(F(e))},children:(0,e.jsxs)(`div`,{ref:_,className:`tintora-select`,children:[(0,e.jsxs)(`button`,{...h,ref:v,type:`button`,role:`combobox`,"aria-label":m,"aria-haspopup":`listbox`,"aria-expanded":S,"aria-controls":S?g:void 0,"aria-activedescendant":q===null?void 0:K(q),disabled:a,className:r(`tintora-select__trigger`,u),onClick:U,onKeyDown:z,onKeyUp:B,children:[(0,e.jsx)(`span`,{className:r(`tintora-select__value`,J===void 0&&`tintora-select__value--placeholder`),children:J??s}),(0,e.jsx)(`svg`,{className:`tintora-select__chevron`,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M6 9l6 6 6-6`})})]}),S&&(0,e.jsx)(`div`,{ref:y,id:g,role:`listbox`,"aria-label":m,popover:`manual`,className:`tintora-select__menu`,style:V??{},onMouseDown:e=>e.preventDefault(),children:i.map(t=>(0,e.jsx)(W,{...t},t.value))}),l&&(0,e.jsx)(`input`,{type:`hidden`,name:l,value:k??``,disabled:a})]})})}function q({width:t,height:n,className:i,style:a,...o}){let s={...t!==void 0&&{width:t},...n!==void 0&&{height:n}};return(0,e.jsx)(`span`,{...o,"aria-hidden":`true`,className:r(`tintora-skeleton`,i),style:{...s,...a}})}function J({checked:t,defaultChecked:n,onCheckedChange:i,className:a,...o}){let s=m({checked:t,defaultChecked:n,onCheckedChange:i});return(0,e.jsxs)(`span`,{className:r(`tintora-switch`,a),children:[(0,e.jsx)(`input`,{...o,type:`checkbox`,role:`switch`,className:`tintora-switch__input`,checked:s.checked,onChange:s.onChange}),(0,e.jsx)(`span`,{className:`tintora-switch__track`,"aria-hidden":`true`})]})}function Y({children:t,className:n,variant:i=`neutral`,size:a=`medium`,...o}){return(0,e.jsx)(`span`,{...o,className:r(`tintora-tag`,`tintora-tag--${i}`,`tintora-tag--${a}`,n),children:t})}function X({label:n,hint:i,error:a,id:o,className:s,disabled:c,"aria-describedby":l,"aria-invalid":u,...d}){let f=(0,t.useId)(),p=o??f,m=`${p}-message`,h=a??i;return(0,e.jsxs)(`div`,{className:r(`tintora-textfield`,c&&`tintora-textfield--disabled`,s),children:[(0,e.jsx)(`label`,{htmlFor:p,className:`tintora-textfield__label`,children:n}),(0,e.jsx)(`input`,{...d,id:p,disabled:c,className:`tintora-textfield__input`,"aria-invalid":a?!0:u,"aria-describedby":r(h&&m,l)||void 0}),h&&(0,e.jsx)(`span`,{id:m,className:r(`tintora-textfield__hint`,a&&`tintora-textfield__hint--error`),children:h})]})}function Z(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-success)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12.5l2.7 2.7L16 9.8`})})}function Q(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-error)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM15 9l-6 6M9 9l6 6`})})}function ee(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-info)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01`})})}function te(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-warning)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01`})})}function ne(){return(0,e.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})})}var re={success:(0,e.jsx)(Z,{}),error:(0,e.jsx)(Q,{}),info:(0,e.jsx)(ee,{}),warning:(0,e.jsx)(te,{})};function ie({status:n,children:i,action:a,onDismiss:o,duration:s=5e3,timerBar:c=!1,className:l,...u}){let[d,f]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1),h=d||p,g=T(o),_=(0,t.useRef)(s);(0,t.useEffect)(()=>{_.current=s},[s]),(0,t.useEffect)(()=>{if(s<=0||h)return;let e=Date.now(),t=setTimeout(()=>g.current(),_.current);return()=>{clearTimeout(t),_.current-=Date.now()-e}},[s,h,g]);let v=c&&s>0,y={"--tintora-toast-animation-duration":`${s}ms`};return(0,e.jsxs)(`div`,{...u,role:`status`,className:r(`tintora-toast`,v&&`tintora-toast--timer`,h&&`tintora-toast--paused`,l),onMouseEnter:e=>{u.onMouseEnter?.(e),f(!0)},onMouseLeave:e=>{u.onMouseLeave?.(e),f(!1)},onFocus:e=>{u.onFocus?.(e),m(!0)},onBlur:e=>{u.onBlur?.(e),e.currentTarget.contains(e.relatedTarget)||m(!1)},children:[n&&re[n],(0,e.jsx)(`span`,{className:`tintora-toast__message`,children:i}),a&&(0,e.jsx)(`button`,{type:`button`,className:`tintora-toast__action`,onClick:a.onClick,children:a.label}),(0,e.jsx)(`button`,{type:`button`,className:`tintora-toast__close`,"aria-label":`Dismiss`,onClick:o,children:(0,e.jsx)(ne,{})}),v&&(0,e.jsx)(`span`,{className:`tintora-toast__progress`,style:y})]})}var $=(0,t.createContext)(null);function ae(){let e=(0,t.useContext)($);if(!e)throw Error(`ToggleItem must be rendered inside a Toggle`);return e}function oe({children:n,value:i,defaultValue:a,onValueChange:o,disabled:s=!1,className:c,...l}){let[u,d]=(0,t.useState)(a),f=i!==void 0,p=f?i:u,m=n.findIndex(e=>e.props.value===p),h=(0,t.useRef)(null),[g,_]=(0,t.useState)({x:0,width:0});(0,t.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=()=>{let t=e.children.item(m);if(!t)return;let n={x:t.offsetLeft,width:t.offsetWidth};_(e=>e.x===n.x&&e.width===n.width?e:n)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m]);let v={"--tintora-toggle-thumb-x":`${g.x}px`,"--tintora-toggle-thumb-width":`${g.width}px`};return(0,e.jsx)($.Provider,{value:{value:p,select:e=>{e!==p&&(f||d(e),o?.(e))},disabled:s},children:(0,e.jsxs)(`div`,{...l,role:`group`,ref:h,className:r(`tintora-toggle`,s&&`tintora-toggle--disabled`,c),children:[n,(0,e.jsx)(`span`,{"aria-hidden":`true`,className:`tintora-toggle__thumb`,style:v})]})})}function se({value:t,children:n,className:i,disabled:a,onClick:o,...s}){let c=ae(),l=e=>{o?.(e),e.defaultPrevented||c.select(t)};return(0,e.jsx)(`button`,{...s,type:`button`,className:r(`tintora-toggle__item`,i),"aria-pressed":c.value===t,disabled:a||c.disabled,onClick:l,children:n})}var ce=100;function le({title:n,content:i,shortcut:a,children:o,className:s,placement:c=`top`}){let l=(0,t.useId)(),[u,d]=(0,t.useState)(!1),f=(0,t.useRef)(null),p=(0,t.useRef)(null),m=(0,t.useRef)(void 0),h=()=>{window.clearTimeout(m.current),d(!0)},g=()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>d(!1),ce)},_=O(u,p,()=>{let e=p.current,t=f.current?.firstElementChild;return!e||!t?null:N(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},c)},[c,n,i,a]);E(u,()=>d(!1)),(0,t.useEffect)(()=>()=>window.clearTimeout(m.current),[]);let v=_?{top:_.top,left:_.left,"--tintora-tooltip-arrow-offset":`${_.arrowOffset}px`}:{visibility:`hidden`};return(0,e.jsxs)(`span`,{ref:f,className:`tintora-tooltip`,onMouseEnter:h,onMouseLeave:g,onFocus:h,onBlur:g,children:[(0,t.cloneElement)(o,{"aria-describedby":r(o.props[`aria-describedby`],u&&l)||void 0}),u&&(0,e.jsxs)(`div`,{id:l,ref:p,role:`tooltip`,popover:`manual`,style:v,className:r(`tintora-tooltip__content`,`tintora-tooltip__content--${_?.placement??c}`,n&&`tintora-tooltip__content--rich`,s),children:[n&&(0,e.jsx)(`span`,{className:`tintora-tooltip__title`,children:n}),(0,e.jsx)(`span`,{className:`tintora-tooltip__text`,children:i}),a&&(0,e.jsx)(`kbd`,{className:`tintora-tooltip__shortcut`,children:a})]})]})}exports.Alert=o,exports.Avatar=c,exports.Button=d,exports.Card=f,exports.Checkbox=h,exports.Chip=g,exports.Dot=_,exports.Drawer=b,exports.IconButton=S,exports.Modal=w,exports.Popover=F,exports.ProgressBar=I,exports.Radio=z,exports.RadioGroup=B,exports.SearchInput=V,exports.Select=K,exports.SelectableCard=p,exports.Skeleton=q,exports.Spinner=u,exports.Switch=J,exports.Tag=Y,exports.TextField=X,exports.Toast=ie,exports.Toggle=oe,exports.ToggleItem=se,exports.Tooltip=le;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react/jsx-runtime"),t=require("react");function n(e){var t,r,i=``;if(typeof e==`string`||typeof e==`number`)i+=e;else if(typeof e==`object`){if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=n(e[t]))&&(i&&(i+=` `),i+=r)}else for(r in e)e[r]&&(i&&(i+=` `),i+=r)}return i}function r(){for(var e,t,r=0,i=``,a=arguments.length;r<a;r++)(e=arguments[r])&&(t=n(e))&&(i&&(i+=` `),i+=t);return i}var i={info:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01`}),success:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12.5l2.7 2.7L16 9.8`}),warning:(0,e.jsx)(`path`,{d:`M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01`}),error:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM15 9l-6 6M9 9l6 6`})},a=({status:t})=>(0,e.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-status-${t}-fg)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`,marginTop:1},children:i[t]});function o({status:t=`info`,variant:n=`alert`,title:i,children:o,action:s,onDismiss:c,className:l,...u}){return(0,e.jsxs)(`div`,{...u,role:n===`alert`&&t===`error`?`alert`:`status`,className:r(`tintora-alert`,n===`announcement`?`tintora-alert--announcement`:`tintora-alert--${t}`,l),children:[n===`alert`&&(0,e.jsx)(a,{status:t}),(0,e.jsxs)(`div`,{className:r(`tintora-alert__content`,n===`announcement`&&`tintora-alert__content--announcement`),children:[i&&(0,e.jsx)(`span`,{className:`tintora-alert__content__title`,children:i}),o&&(0,e.jsx)(`span`,{className:`tintora-alert__content__sub-title`,children:o}),s&&(0,e.jsx)(`button`,{type:`button`,onClick:s.onClick,className:r(`tintora-alert__content__action`,n===`alert`&&`tintora-alert__content__action--${t}`),children:s.label})]}),n===`alert`&&c&&(0,e.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,className:`tintora-alert__close`,onClick:c,children:(0,e.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})})})]})}function s(e){if(!e.length)return``;let t=e.trim().split(/\s+/).map(e=>e.match(/\p{L}\p{M}*/u)?.[0]).filter(e=>!!e);return`${t[0]??``}${t.length>1?t.at(-1)??``:``}`.toLocaleUpperCase()}function c({name:n,src:i,size:a=`medium`,className:o,...c}){let[l,u]=(0,t.useState)(),d=!!i&&i!==l;return(0,e.jsx)(`span`,{role:`img`,"aria-label":n,...c,className:r(`tintora-avatar`,`tintora-avatar--${a}`,o),children:d?(0,e.jsx)(`img`,{src:i,alt:``,onError:()=>u(i)}):s(n)})}function l(e,t){if(e.target!==e.currentTarget)return;let{left:n,right:r,top:i,bottom:a}=e.currentTarget.getBoundingClientRect();(e.clientX<n||e.clientX>r||e.clientY<i||e.clientY>a)&&t()}var u=e=>typeof e==`number`?`${e}px`:e;function d({open:n,from:i=`right`,width:a,height:o,children:s,onClose:c,className:d,...f}){let p=(0,t.useRef)(null);(0,t.useEffect)(()=>{let e=p.current;e&&(n&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!n&&e.open&&e.close())},[n]);let m={...f.style,...a!==void 0&&{"--tintora-drawer-width":u(a)},...o!==void 0&&{"--tintora-drawer-height":u(o)}};return(0,e.jsx)(`dialog`,{...f,ref:p,className:r(`tintora-drawer`,`tintora-drawer--from-${i}`,d),onCancel:e=>{e.preventDefault(),c()},onClick:e=>l(e,c),style:m,children:s})}function f({title:n,children:i,className:a,...o}){let s=(0,t.useId)();return(0,e.jsxs)(d,{...o,from:`bottom`,"aria-labelledby":s,className:r(`tintora-bottom-sheet`,a),children:[(0,e.jsx)(`span`,{className:`tintora-bottom-sheet__grabber`,"aria-hidden":`true`}),(0,e.jsx)(`div`,{id:s,className:`tintora-bottom-sheet__title`,children:n}),i]})}function p({selected:t=!1,className:n,children:i,...a}){return(0,e.jsxs)(`button`,{type:`button`,...a,"aria-pressed":t,className:r(`tintora-bottom-sheet__option`,n),children:[(0,e.jsx)(`span`,{children:i}),(0,e.jsx)(`svg`,{className:`tintora-bottom-sheet__check`,width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.4`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M5 12.5l4.5 4.5L19 7.5`})})]})}var m={small:{width:16,height:16,strokeWidth:3.5},medium:{width:24,height:24,strokeWidth:3},large:{width:40,height:40,strokeWidth:2.4}};function h({size:t=`medium`,color:n=`accent`}){let{width:r,height:i,strokeWidth:a}=m[t];return(0,e.jsxs)(`svg`,{className:`tintora-spinner`,width:r,height:i,viewBox:`0 0 24 24`,fill:`none`,role:`img`,"aria-label":`Loading`,children:[(0,e.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:n===`accent`?.25:.35,strokeWidth:a}),(0,e.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:n===`accent`?`var(--tintora-control-fill)`:`currentColor`,strokeWidth:a,strokeLinecap:`round`})]})}function g({children:t,className:n,variant:i,size:a=`medium`,leadingIcon:o,trailingIcon:s,type:c=`button`,loading:l=!1,disabled:u,...d}){return(0,e.jsxs)(`button`,{type:c,className:r(`tintora-button`,`tintora-button--${i}`,`tintora-button--${a}`,{"tintora-button--leading-icon":!!o||l,"tintora-button--loading":l,"tintora-button--trailing-icon":!!s},n),disabled:u||l,"aria-busy":l||void 0,...d,children:[l&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:(0,e.jsx)(h,{size:`small`,color:`current`})}),!l&&o&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:o}),t,s&&(0,e.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:s})]})}function _({as:t=`article`,variant:n=`surface`,className:i,...a}){return(0,e.jsx)(t,{...a,className:r(`tintora-card`,`tintora-card--${n}`,i)})}function v({selected:t=!1,className:n,...i}){return(0,e.jsx)(`button`,{...i,type:`button`,"aria-pressed":t,className:r(`tintora-card`,`tintora-card--surface`,`tintora-card--selectable`,t&&`tintora-card--selected`,n)})}function y({checked:e,defaultChecked:n=!1,onCheckedChange:r}){let[i,a]=(0,t.useState)(n),o=e!==void 0;return{checked:o?e:i,onChange:e=>{o||a(e.target.checked),r?.(e.target.checked)}}}function b({checked:n,defaultChecked:i,onCheckedChange:a,indeterminate:o=!1,className:s,...c}){let l=(0,t.useRef)(null),u=y({checked:n,defaultChecked:i,onCheckedChange:a});return(0,t.useLayoutEffect)(()=>{l.current&&(l.current.indeterminate=o)}),(0,e.jsxs)(`span`,{className:r(`tintora-checkbox`,s),children:[(0,e.jsx)(`input`,{...c,ref:l,type:`checkbox`,className:`tintora-checkbox__input`,checked:u.checked,onChange:u.onChange}),(0,e.jsxs)(`span`,{className:`tintora-checkbox__box`,"aria-hidden":`true`,children:[(0,e.jsx)(`svg`,{className:`tintora-checkbox__check`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,strokeWidth:`3.2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,e.jsx)(`path`,{d:`M5 12.5l4.5 4.5L19 7.5`})}),(0,e.jsx)(`svg`,{className:`tintora-checkbox__dash`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,strokeWidth:`3.2`,strokeLinecap:`round`,children:(0,e.jsx)(`path`,{d:`M6 12h12`})})]})]})}function x({children:t,selected:n,className:i,"aria-pressed":a,...o}){return(0,e.jsx)(`button`,{...o,type:`button`,className:r(`tintora-chip`,i),"aria-pressed":n??a,children:t})}function S({variant:t=`unread`,label:n,className:i,...a}){return(0,e.jsx)(`span`,{...a,className:r(`tintora-dot`,`tintora-dot--${t}`,i),role:n?`img`:void 0,"aria-label":n,"aria-hidden":!n||void 0})}var C={round:`secondary`,field:`secondary`,nav:`ghost`};function w({icon:t,variant:n=`round`,size:i,selected:a,className:o,...s}){let c=n===`round`?i??`large`:void 0;return(0,e.jsx)(g,{...s,variant:C[n],"aria-current":a?`page`:void 0,className:r(`tintora-icon-button`,`tintora-icon-button--${n}`,c&&`tintora-icon-button--${c}`,o),...c&&{size:c},children:(0,e.jsx)(`span`,{className:`tintora-icon-button__icon`,"aria-hidden":`true`,children:t})})}var T=()=>(0,e.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})});function E({open:n,onClose:i,title:a,description:o,icon:s,status:c=`info`,actions:u,size:d=`md`,align:f=`start`,role:p=`dialog`,closeButton:m=!0,className:h,children:g,..._}){let v=(0,t.useRef)(null),y=(0,t.useId)(),b=(0,t.useId)();return(0,t.useEffect)(()=>{let e=v.current;e&&(n&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!n&&e.open&&e.close())},[n]),(0,e.jsxs)(`dialog`,{..._,ref:v,role:p,"aria-labelledby":y,"aria-describedby":o?b:void 0,className:r(`tintora-modal`,`tintora-modal--${d}`,f===`center`&&`tintora-modal--center`,h),onCancel:e=>{e.preventDefault(),i()},onClick:e=>{p===`dialog`&&l(e,i)},children:[s&&(0,e.jsx)(`span`,{className:r(`tintora-modal__icon`,`tintora-modal__icon--${c}`),"aria-hidden":`true`,children:s}),(0,e.jsxs)(`div`,{className:`tintora-modal__text`,children:[(0,e.jsx)(`h2`,{id:y,className:`tintora-modal__title`,children:a}),o&&(0,e.jsx)(`p`,{id:b,className:`tintora-modal__description`,children:o})]}),m&&(0,e.jsx)(w,{className:`tintora-modal__close`,size:`medium`,"aria-label":`Close`,icon:(0,e.jsx)(T,{}),onClick:i}),g,u&&(0,e.jsx)(`div`,{className:`tintora-modal__actions`,children:u})]})}function D(e){let n=(0,t.useRef)(e);return(0,t.useEffect)(()=>{n.current=e},[e]),n}function O(e,n){let r=D(n);(0,t.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&r.current()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,r])}function k(e,n,r){let i=D(r);(0,t.useEffect)(()=>{if(!e)return;let t=e=>{n.current?.contains(e.target)||i.current()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},[e,n,i])}function A(e,n,r,i){let[a,o]=(0,t.useState)(null);return(0,t.useLayoutEffect)(()=>{let t=n.current;if(!e||!t){o(null);return}t.showPopover();let i=()=>o(r()),a=e=>{t.contains(e.target)||i()};return i(),window.addEventListener(`scroll`,a,!0),window.addEventListener(`resize`,i),()=>{window.removeEventListener(`scroll`,a,!0),window.removeEventListener(`resize`,i)}},[e,n,...i]),a}var j={gap:10,margin:8,arrowInset:12},M={top:`bottom`,bottom:`top`,left:`right`,right:`left`},N=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function P(e,t,n,r,{gap:i,margin:a}){let o=t=>{switch(t){case`top`:return e.top;case`bottom`:return r.height-e.bottom;case`left`:return e.left;case`right`:return r.width-e.right}},s=(n===`top`||n===`bottom`?t.height:t.width)+i+a,c=o(n);return c>=s||o(M[n])<=c?n:M[n]}function F(e,t,n,r={width:window.innerWidth,height:window.innerHeight},i={}){let a={...j,...i},{gap:o,margin:s,arrowInset:c}=a,l=P(e,t,n,r,a),u=l===`top`||l===`bottom`,d,f;switch(l){case`top`:d=e.y-t.height-o,f=e.x+e.width/2-t.width/2;break;case`bottom`:d=e.y+e.height+o,f=e.x+e.width/2-t.width/2;break;case`left`:d=e.y+e.height/2-t.height/2,f=e.x-t.width-o;break;case`right`:d=e.y+e.height/2-t.height/2,f=e.x+e.width+o}u?f=N(f,s,r.width-t.width-s):d=N(d,s,r.height-t.height-s);let p=u?e.x+e.width/2-f:e.y+e.height/2-d,m=u?t.width:t.height;return{top:d,left:f,placement:l,arrowOffset:N(p,c,m-c)}}var I=[`button:not([disabled])`,`[href]`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);function L({open:n,onOpenChange:i,trigger:a,title:o,children:s,role:c=`dialog`,size:l=`md`,placement:u=`bottom`,className:d}){let f=(0,t.useId)(),p=(0,t.useRef)(null),m=(0,t.useRef)(null),h=(0,t.useRef)(!1),g=()=>i(!1);O(n,g),k(n,p,g);let _=e=>{a.props.onClick?.(e),e.defaultPrevented||i(!n)},v=A(n,m,()=>{let e=m.current,t=p.current?.firstElementChild;return!e||!t?null:F(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},u,void 0,{gap:12})},[u,o,s]),y=v?{top:v.top,left:v.left,"--tintora-popover-arrow-offset":`${v.arrowOffset}px`}:{visibility:`hidden`},b=v!==null;return(0,t.useLayoutEffect)(()=>{let e=m.current;n&&b&&e&&(e.querySelector(`[data-autofocus]`)??e.querySelector(I)??e).focus()},[n,b]),(0,t.useEffect)(()=>{if(h.current&&!n){let e=document.activeElement;(!e||e===document.body)&&p.current?.querySelector(`*`)?.focus()}h.current=n},[n]),(0,e.jsxs)(`span`,{ref:p,className:`tintora-popover-root`,children:[(0,t.cloneElement)(a,{"aria-haspopup":`dialog`,"aria-expanded":n,"aria-controls":n?f:void 0,onClick:_}),n&&(0,e.jsx)(`div`,{id:f,ref:m,role:c,"aria-label":o,popover:`manual`,tabIndex:-1,className:r(`tintora-popover`,`tintora-popover--${l}`,`tintora-popover--${v?.placement??u}`,d),style:y,children:s})]})}function R({title:n,progress:i,indeterminate:a,valueLabel:o,className:s,"aria-label":c}){let l=(0,t.useId)(),u=a?void 0:Math.min(100,Math.max(0,Number.isFinite(i)?i:0)),d=u===100,f=o??(a?`Indeterminate`:`${u}%`);return(0,e.jsxs)(`div`,{className:r(`tintora-progress-bar`,s),children:[n&&(0,e.jsxs)(`div`,{className:`tintora-progress-bar__header`,children:[(0,e.jsx)(`span`,{id:l,children:n}),(0,e.jsx)(`span`,{className:`tintora-progress-bar__value`,children:f})]}),(0,e.jsx)(`div`,{role:`progressbar`,"aria-label":c,"aria-labelledby":n?l:void 0,"aria-valuemin":a?void 0:0,"aria-valuemax":a?void 0:100,"aria-valuenow":u,"aria-valuetext":o,className:`tintora-progress-bar__track`,children:(0,e.jsx)(`div`,{className:r(`tintora-progress-bar__fill`,{"tintora-progress-bar__fill--indeterminate":a,"tintora-progress-bar__fill--complete":d}),style:u===void 0?void 0:{width:`${u}%`}})})]})}var z=(0,t.createContext)(null);function B(){let e=(0,t.useContext)(z);if(!e)throw Error(`Radio must be rendered inside a RadioGroup`);return e}function V({value:t,className:n,disabled:i,...a}){let o=B();return(0,e.jsxs)(`span`,{className:r(`tintora-radio`,n),children:[(0,e.jsx)(`input`,{...a,type:`radio`,className:`tintora-radio__input`,name:o.name,value:t,checked:o.value===t,disabled:i||o.disabled,onChange:()=>o.select(t)}),(0,e.jsx)(`span`,{className:`tintora-radio__circle`,"aria-hidden":`true`})]})}function H({value:n,defaultValue:i,onValueChange:a,disabled:o=!1,name:s,className:c,...l}){let u=(0,t.useId)(),[d,f]=(0,t.useState)(i??null),p=n!==void 0,m=p?n:d;return(0,e.jsx)(z.Provider,{value:{name:s??u,value:m,select:e=>{e!==m&&(p||f(e),a?.(e))},disabled:o},children:(0,e.jsx)(`div`,{...l,role:`radiogroup`,className:r(`tintora-radio-group`,c)})})}function U({className:t,disabled:n,...i}){return(0,e.jsxs)(`label`,{className:r(`tintora-search-input`,n&&`tintora-search-input--disabled`,t),children:[(0,e.jsxs)(`svg`,{className:`tintora-search-input__icon`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,e.jsx)(`circle`,{cx:`11`,cy:`11`,r:`7`}),(0,e.jsx)(`path`,{d:`M20 20l-3.5-3.5`})]}),(0,e.jsx)(`input`,{...i,type:`search`,disabled:n,className:`tintora-search-input__input`})]})}var W=(0,t.createContext)(null),G=()=>{let e=(0,t.useContext)(W);if(!e)throw Error(`SelectOption must be rendered inside a Select`);return e};function K({label:t,value:n,disabled:i}){let{select:a,activate:o,optionId:s,value:c,activeValue:l}=G();return(0,e.jsx)(`div`,{id:s(n),role:`option`,"aria-selected":c===n,"aria-disabled":i||void 0,className:r(`tintora-select__option`,l===n&&`tintora-select__option--active`),onClick:()=>a(n),onMouseMove:()=>!i&&o(n),children:t})}var q=4;function J({defaultValue:n,options:i,disabled:a,value:o,placeholder:s,onValueChange:c,name:l,className:u,onClick:d,onKeyDown:f,onKeyUp:p,"aria-label":m,...h}){let g=(0,t.useId)(),_=(0,t.useRef)(null),v=(0,t.useRef)(null),y=(0,t.useRef)(null),[b,x]=(0,t.useState)(n??null),[S,C]=(0,t.useState)(!1),[w,T]=(0,t.useState)(-1),E=o!==void 0,D=E?o:b,O=i.findIndex(e=>e.value===D),j=e=>i[e]?.disabled!==!0,M=()=>i.findIndex((e,t)=>j(t)),N=(e,t)=>{for(let n=e+t;n>=0&&n<i.length;n+=t)if(j(n))return n;return e},P=()=>{let e=N(i.length,-1);return e===i.length?-1:e},F=e=>i.findIndex(t=>t.value===e),I=()=>{T(O>=0&&j(O)?O:M()),C(!0)},L=()=>C(!1),R=e=>{let t=F(e);t<0||!j(t)||(L(),e!==D&&(E||x(e),c?.(e)))},z=e=>{if(f?.(e),e.defaultPrevented)return;let{key:t}=e;if(t===`Tab`)return L();if(!S){[`Enter`,` `,`ArrowDown`,`ArrowUp`].includes(t)&&(e.preventDefault(),I());return}let n={ArrowDown:()=>w<0?M():N(w,1),ArrowUp:()=>w<0?M():N(w,-1),Home:M,End:P};t in n?(e.preventDefault(),T(n[t]())):t===`Enter`||t===` `?(e.preventDefault(),w>=0?R(i[w].value):L()):t===`Escape`&&(e.preventDefault(),L())},B=e=>{p?.(e),e.key===` `&&e.preventDefault()},V=A(S,y,()=>{let e=y.current,t=v.current;if(!e||!t)return null;let n=t.getBoundingClientRect(),r=e.offsetHeight,i=n.bottom+q+r<=window.innerHeight,a=n.top-q-r>=0;return{top:i||!a?n.bottom+q:n.top-q-r,left:n.left,minWidth:n.width}},[]),H=e=>{d?.(e),!e.defaultPrevented&&(S?L():I())};k(S,_,L),(0,t.useEffect)(()=>{S&&w>=0&&y.current?.children.item(w)?.scrollIntoView?.({block:`nearest`})},[S,w]);let U=e=>`${g}-option-${F(e)}`,G=S?i[w]?.value??null:null,J=i[O]?.label;return(0,e.jsx)(W.Provider,{value:{value:D,activeValue:G,select:R,optionId:U,activate:e=>T(F(e))},children:(0,e.jsxs)(`div`,{ref:_,className:`tintora-select`,children:[(0,e.jsxs)(`button`,{...h,ref:v,type:`button`,role:`combobox`,"aria-label":m,"aria-haspopup":`listbox`,"aria-expanded":S,"aria-controls":S?g:void 0,"aria-activedescendant":G===null?void 0:U(G),disabled:a,className:r(`tintora-select__trigger`,u),onClick:H,onKeyDown:z,onKeyUp:B,children:[(0,e.jsx)(`span`,{className:r(`tintora-select__value`,J===void 0&&`tintora-select__value--placeholder`),children:J??s}),(0,e.jsx)(`svg`,{className:`tintora-select__chevron`,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M6 9l6 6 6-6`})})]}),S&&(0,e.jsx)(`div`,{ref:y,id:g,role:`listbox`,"aria-label":m,popover:`manual`,className:`tintora-select__menu`,style:V??{},onMouseDown:e=>e.preventDefault(),children:i.map(t=>(0,e.jsx)(K,{...t},t.value))}),l&&(0,e.jsx)(`input`,{type:`hidden`,name:l,value:D??``,disabled:a})]})})}function Y({width:t,height:n,className:i,style:a,...o}){let s={...t!==void 0&&{width:t},...n!==void 0&&{height:n}};return(0,e.jsx)(`span`,{...o,"aria-hidden":`true`,className:r(`tintora-skeleton`,i),style:{...s,...a}})}function X({checked:t,defaultChecked:n,onCheckedChange:i,className:a,...o}){let s=y({checked:t,defaultChecked:n,onCheckedChange:i});return(0,e.jsxs)(`span`,{className:r(`tintora-switch`,a),children:[(0,e.jsx)(`input`,{...o,type:`checkbox`,role:`switch`,className:`tintora-switch__input`,checked:s.checked,onChange:s.onChange}),(0,e.jsx)(`span`,{className:`tintora-switch__track`,"aria-hidden":`true`})]})}function Z({children:t,className:n,variant:i=`neutral`,size:a=`medium`,...o}){return(0,e.jsx)(`span`,{...o,className:r(`tintora-tag`,`tintora-tag--${i}`,`tintora-tag--${a}`,n),children:t})}function Q({label:n,hint:i,error:a,id:o,className:s,disabled:c,"aria-describedby":l,"aria-invalid":u,...d}){let f=(0,t.useId)(),p=o??f,m=`${p}-message`,h=a??i;return(0,e.jsxs)(`div`,{className:r(`tintora-textfield`,c&&`tintora-textfield--disabled`,s),children:[(0,e.jsx)(`label`,{htmlFor:p,className:`tintora-textfield__label`,children:n}),(0,e.jsx)(`input`,{...d,id:p,disabled:c,className:`tintora-textfield__input`,"aria-invalid":a?!0:u,"aria-describedby":r(h&&m,l)||void 0}),h&&(0,e.jsx)(`span`,{id:m,className:r(`tintora-textfield__hint`,a&&`tintora-textfield__hint--error`),children:h})]})}function ee(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-success)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12.5l2.7 2.7L16 9.8`})})}function te(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-error)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM15 9l-6 6M9 9l6 6`})})}function ne(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-info)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01`})})}function re(){return(0,e.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`var(--tintora-toast-icon-warning)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`0 0 auto`},children:(0,e.jsx)(`path`,{d:`M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01`})})}function ie(){return(0,e.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.2`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,e.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})})}var ae={success:(0,e.jsx)(ee,{}),error:(0,e.jsx)(te,{}),info:(0,e.jsx)(ne,{}),warning:(0,e.jsx)(re,{})};function oe({status:n,children:i,action:a,onDismiss:o,duration:s=5e3,timerBar:c=!1,className:l,...u}){let[d,f]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1),h=d||p,g=D(o),_=(0,t.useRef)(s);(0,t.useEffect)(()=>{_.current=s},[s]),(0,t.useEffect)(()=>{if(s<=0||h)return;let e=Date.now(),t=setTimeout(()=>g.current(),_.current);return()=>{clearTimeout(t),_.current-=Date.now()-e}},[s,h,g]);let v=c&&s>0,y={"--tintora-toast-animation-duration":`${s}ms`};return(0,e.jsxs)(`div`,{...u,role:`status`,className:r(`tintora-toast`,v&&`tintora-toast--timer`,h&&`tintora-toast--paused`,l),onMouseEnter:e=>{u.onMouseEnter?.(e),f(!0)},onMouseLeave:e=>{u.onMouseLeave?.(e),f(!1)},onFocus:e=>{u.onFocus?.(e),m(!0)},onBlur:e=>{u.onBlur?.(e),e.currentTarget.contains(e.relatedTarget)||m(!1)},children:[n&&ae[n],(0,e.jsx)(`span`,{className:`tintora-toast__message`,children:i}),a&&(0,e.jsx)(`button`,{type:`button`,className:`tintora-toast__action`,onClick:a.onClick,children:a.label}),(0,e.jsx)(`button`,{type:`button`,className:`tintora-toast__close`,"aria-label":`Dismiss`,onClick:o,children:(0,e.jsx)(ie,{})}),v&&(0,e.jsx)(`span`,{className:`tintora-toast__progress`,style:y})]})}var $=(0,t.createContext)(null);function se(){let e=(0,t.useContext)($);if(!e)throw Error(`ToggleItem must be rendered inside a Toggle`);return e}function ce({children:n,value:i,defaultValue:a,onValueChange:o,disabled:s=!1,className:c,...l}){let[u,d]=(0,t.useState)(a),f=i!==void 0,p=f?i:u,m=n.findIndex(e=>e.props.value===p),h=(0,t.useRef)(null),[g,_]=(0,t.useState)({x:0,width:0});(0,t.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=()=>{let t=e.children.item(m);if(!t)return;let n={x:t.offsetLeft,width:t.offsetWidth};_(e=>e.x===n.x&&e.width===n.width?e:n)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m]);let v={"--tintora-toggle-thumb-x":`${g.x}px`,"--tintora-toggle-thumb-width":`${g.width}px`};return(0,e.jsx)($.Provider,{value:{value:p,select:e=>{e!==p&&(f||d(e),o?.(e))},disabled:s},children:(0,e.jsxs)(`div`,{...l,role:`group`,ref:h,className:r(`tintora-toggle`,s&&`tintora-toggle--disabled`,c),children:[n,(0,e.jsx)(`span`,{"aria-hidden":`true`,className:`tintora-toggle__thumb`,style:v})]})})}function le({value:t,children:n,className:i,disabled:a,onClick:o,...s}){let c=se(),l=e=>{o?.(e),e.defaultPrevented||c.select(t)};return(0,e.jsx)(`button`,{...s,type:`button`,className:r(`tintora-toggle__item`,i),"aria-pressed":c.value===t,disabled:a||c.disabled,onClick:l,children:n})}var ue=100;function de({title:n,content:i,shortcut:a,children:o,className:s,placement:c=`top`}){let l=(0,t.useId)(),[u,d]=(0,t.useState)(!1),f=(0,t.useRef)(null),p=(0,t.useRef)(null),m=(0,t.useRef)(void 0),h=()=>{window.clearTimeout(m.current),d(!0)},g=()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>d(!1),ue)},_=A(u,p,()=>{let e=p.current,t=f.current?.firstElementChild;return!e||!t?null:F(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},c)},[c,n,i,a]);O(u,()=>d(!1)),(0,t.useEffect)(()=>()=>window.clearTimeout(m.current),[]);let v=_?{top:_.top,left:_.left,"--tintora-tooltip-arrow-offset":`${_.arrowOffset}px`}:{visibility:`hidden`};return(0,e.jsxs)(`span`,{ref:f,className:`tintora-tooltip`,onMouseEnter:h,onMouseLeave:g,onFocus:h,onBlur:g,children:[(0,t.cloneElement)(o,{"aria-describedby":r(o.props[`aria-describedby`],u&&l)||void 0}),u&&(0,e.jsxs)(`div`,{id:l,ref:p,role:`tooltip`,popover:`manual`,style:v,className:r(`tintora-tooltip__content`,`tintora-tooltip__content--${_?.placement??c}`,n&&`tintora-tooltip__content--rich`,s),children:[n&&(0,e.jsx)(`span`,{className:`tintora-tooltip__title`,children:n}),(0,e.jsx)(`span`,{className:`tintora-tooltip__text`,children:i}),a&&(0,e.jsx)(`kbd`,{className:`tintora-tooltip__shortcut`,children:a})]})]})}exports.Alert=o,exports.Avatar=c,exports.BottomSheet=f,exports.BottomSheetOption=p,exports.Button=g,exports.Card=_,exports.Checkbox=b,exports.Chip=x,exports.Dot=S,exports.Drawer=d,exports.IconButton=w,exports.Modal=E,exports.Popover=L,exports.ProgressBar=R,exports.Radio=V,exports.RadioGroup=H,exports.SearchInput=U,exports.Select=J,exports.SelectableCard=v,exports.Skeleton=Y,exports.Spinner=h,exports.Switch=X,exports.Tag=Z,exports.TextField=Q,exports.Toast=oe,exports.Toggle=ce,exports.ToggleItem=le,exports.Tooltip=de;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import './tokens.css';
|
|
2
2
|
export { Alert, type AlertProps } from './Alert/Alert';
|
|
3
3
|
export { Avatar } from './Avatar/Avatar';
|
|
4
|
+
export { BottomSheet, BottomSheetOption, type BottomSheetOptionProps, type BottomSheetProps, } from './BottomSheet/BottomSheet';
|
|
4
5
|
export { Button } from './Button/Button';
|
|
5
6
|
export { Card, SelectableCard, type CardProps, type SelectableCardProps, } from './Card/Card';
|
|
6
7
|
export { Checkbox, type CheckboxProps } from './Checkbox/Checkbox';
|
package/dist/index.js
CHANGED
|
@@ -110,8 +110,85 @@ function g({ name: t, src: n, size: r = "medium", className: i, ...a }) {
|
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
//#endregion
|
|
113
|
+
//#region src/utils/outside.ts
|
|
114
|
+
function _(e, t) {
|
|
115
|
+
if (e.target !== e.currentTarget) return;
|
|
116
|
+
let { left: n, right: r, top: i, bottom: a } = e.currentTarget.getBoundingClientRect();
|
|
117
|
+
(e.clientX < n || e.clientX > r || e.clientY < i || e.clientY > a) && t();
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/Drawer/Drawer.tsx
|
|
121
|
+
var v = (e) => typeof e == "number" ? `${e}px` : e;
|
|
122
|
+
function y({ open: t, from: n = "right", width: r, height: i, children: o, onClose: s, className: l, ...u }) {
|
|
123
|
+
let f = c(null);
|
|
124
|
+
a(() => {
|
|
125
|
+
let e = f.current;
|
|
126
|
+
e && (t && !e.open ? (e.showModal(), e.querySelector("[data-autofocus]")?.focus()) : !t && e.open && e.close());
|
|
127
|
+
}, [t]);
|
|
128
|
+
let p = {
|
|
129
|
+
...u.style,
|
|
130
|
+
...r !== void 0 && { "--tintora-drawer-width": v(r) },
|
|
131
|
+
...i !== void 0 && { "--tintora-drawer-height": v(i) }
|
|
132
|
+
};
|
|
133
|
+
return /* @__PURE__ */ e("dialog", {
|
|
134
|
+
...u,
|
|
135
|
+
ref: f,
|
|
136
|
+
className: d("tintora-drawer", `tintora-drawer--from-${n}`, l),
|
|
137
|
+
onCancel: (e) => {
|
|
138
|
+
e.preventDefault(), s();
|
|
139
|
+
},
|
|
140
|
+
onClick: (e) => _(e, s),
|
|
141
|
+
style: p,
|
|
142
|
+
children: o
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/BottomSheet/BottomSheet.tsx
|
|
147
|
+
function b({ title: n, children: r, className: i, ...a }) {
|
|
148
|
+
let s = o();
|
|
149
|
+
return /* @__PURE__ */ t(y, {
|
|
150
|
+
...a,
|
|
151
|
+
from: "bottom",
|
|
152
|
+
"aria-labelledby": s,
|
|
153
|
+
className: d("tintora-bottom-sheet", i),
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ e("span", {
|
|
156
|
+
className: "tintora-bottom-sheet__grabber",
|
|
157
|
+
"aria-hidden": "true"
|
|
158
|
+
}),
|
|
159
|
+
/* @__PURE__ */ e("div", {
|
|
160
|
+
id: s,
|
|
161
|
+
className: "tintora-bottom-sheet__title",
|
|
162
|
+
children: n
|
|
163
|
+
}),
|
|
164
|
+
r
|
|
165
|
+
]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
function x({ selected: n = !1, className: r, children: i, ...a }) {
|
|
169
|
+
return /* @__PURE__ */ t("button", {
|
|
170
|
+
type: "button",
|
|
171
|
+
...a,
|
|
172
|
+
"aria-pressed": n,
|
|
173
|
+
className: d("tintora-bottom-sheet__option", r),
|
|
174
|
+
children: [/* @__PURE__ */ e("span", { children: i }), /* @__PURE__ */ e("svg", {
|
|
175
|
+
className: "tintora-bottom-sheet__check",
|
|
176
|
+
width: "18",
|
|
177
|
+
height: "18",
|
|
178
|
+
viewBox: "0 0 24 24",
|
|
179
|
+
fill: "none",
|
|
180
|
+
stroke: "currentColor",
|
|
181
|
+
strokeWidth: "2.4",
|
|
182
|
+
strokeLinecap: "round",
|
|
183
|
+
strokeLinejoin: "round",
|
|
184
|
+
"aria-hidden": "true",
|
|
185
|
+
children: /* @__PURE__ */ e("path", { d: "M5 12.5l4.5 4.5L19 7.5" })
|
|
186
|
+
})]
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
//#endregion
|
|
113
190
|
//#region src/Spinner/Spinner.tsx
|
|
114
|
-
var
|
|
191
|
+
var S = {
|
|
115
192
|
small: {
|
|
116
193
|
width: 16,
|
|
117
194
|
height: 16,
|
|
@@ -128,8 +205,8 @@ var _ = {
|
|
|
128
205
|
strokeWidth: 2.4
|
|
129
206
|
}
|
|
130
207
|
};
|
|
131
|
-
function
|
|
132
|
-
let { width: i, height: a, strokeWidth: o } =
|
|
208
|
+
function C({ size: n = "medium", color: r = "accent" }) {
|
|
209
|
+
let { width: i, height: a, strokeWidth: o } = S[n];
|
|
133
210
|
return /* @__PURE__ */ t("svg", {
|
|
134
211
|
className: "tintora-spinner",
|
|
135
212
|
width: i,
|
|
@@ -155,7 +232,7 @@ function v({ size: n = "medium", color: r = "accent" }) {
|
|
|
155
232
|
}
|
|
156
233
|
//#endregion
|
|
157
234
|
//#region src/Button/Button.tsx
|
|
158
|
-
function
|
|
235
|
+
function w({ children: n, className: r, variant: i, size: a = "medium", leadingIcon: o, trailingIcon: s, type: c = "button", loading: l = !1, disabled: u, ...f }) {
|
|
159
236
|
return /* @__PURE__ */ t("button", {
|
|
160
237
|
type: c,
|
|
161
238
|
className: d("tintora-button", `tintora-button--${i}`, `tintora-button--${a}`, {
|
|
@@ -170,7 +247,7 @@ function y({ children: n, className: r, variant: i, size: a = "medium", leadingI
|
|
|
170
247
|
l && /* @__PURE__ */ e("span", {
|
|
171
248
|
className: "tintora-button__icon",
|
|
172
249
|
"aria-hidden": "true",
|
|
173
|
-
children: /* @__PURE__ */ e(
|
|
250
|
+
children: /* @__PURE__ */ e(C, {
|
|
174
251
|
size: "small",
|
|
175
252
|
color: "current"
|
|
176
253
|
})
|
|
@@ -191,13 +268,13 @@ function y({ children: n, className: r, variant: i, size: a = "medium", leadingI
|
|
|
191
268
|
}
|
|
192
269
|
//#endregion
|
|
193
270
|
//#region src/Card/Card.tsx
|
|
194
|
-
function
|
|
271
|
+
function T({ as: t = "article", variant: n = "surface", className: r, ...i }) {
|
|
195
272
|
return /* @__PURE__ */ e(t, {
|
|
196
273
|
...i,
|
|
197
274
|
className: d("tintora-card", `tintora-card--${n}`, r)
|
|
198
275
|
});
|
|
199
276
|
}
|
|
200
|
-
function
|
|
277
|
+
function E({ selected: t = !1, className: n, ...r }) {
|
|
201
278
|
return /* @__PURE__ */ e("button", {
|
|
202
279
|
...r,
|
|
203
280
|
type: "button",
|
|
@@ -207,7 +284,7 @@ function x({ selected: t = !1, className: n, ...r }) {
|
|
|
207
284
|
}
|
|
208
285
|
//#endregion
|
|
209
286
|
//#region src/hooks/useCheckedState.ts
|
|
210
|
-
function
|
|
287
|
+
function D({ checked: e, defaultChecked: t = !1, onCheckedChange: n }) {
|
|
211
288
|
let [r, i] = l(t), a = e !== void 0;
|
|
212
289
|
return {
|
|
213
290
|
checked: a ? e : r,
|
|
@@ -218,8 +295,8 @@ function S({ checked: e, defaultChecked: t = !1, onCheckedChange: n }) {
|
|
|
218
295
|
}
|
|
219
296
|
//#endregion
|
|
220
297
|
//#region src/Checkbox/Checkbox.tsx
|
|
221
|
-
function
|
|
222
|
-
let u = c(null), f =
|
|
298
|
+
function O({ checked: n, defaultChecked: r, onCheckedChange: i, indeterminate: a = !1, className: o, ...l }) {
|
|
299
|
+
let u = c(null), f = D({
|
|
223
300
|
checked: n,
|
|
224
301
|
defaultChecked: r,
|
|
225
302
|
onCheckedChange: i
|
|
@@ -263,7 +340,7 @@ function C({ checked: n, defaultChecked: r, onCheckedChange: i, indeterminate: a
|
|
|
263
340
|
}
|
|
264
341
|
//#endregion
|
|
265
342
|
//#region src/Chip/Chip.tsx
|
|
266
|
-
function
|
|
343
|
+
function k({ children: t, selected: n, className: r, "aria-pressed": i, ...a }) {
|
|
267
344
|
return /* @__PURE__ */ e("button", {
|
|
268
345
|
...a,
|
|
269
346
|
type: "button",
|
|
@@ -274,7 +351,7 @@ function w({ children: t, selected: n, className: r, "aria-pressed": i, ...a })
|
|
|
274
351
|
}
|
|
275
352
|
//#endregion
|
|
276
353
|
//#region src/Dot/Dot.tsx
|
|
277
|
-
function
|
|
354
|
+
function A({ variant: t = "unread", label: n, className: r, ...i }) {
|
|
278
355
|
return /* @__PURE__ */ e("span", {
|
|
279
356
|
...i,
|
|
280
357
|
className: d("tintora-dot", `tintora-dot--${t}`, r),
|
|
@@ -284,50 +361,17 @@ function T({ variant: t = "unread", label: n, className: r, ...i }) {
|
|
|
284
361
|
});
|
|
285
362
|
}
|
|
286
363
|
//#endregion
|
|
287
|
-
//#region src/utils/outside.ts
|
|
288
|
-
function E(e, t) {
|
|
289
|
-
if (e.target !== e.currentTarget) return;
|
|
290
|
-
let { left: n, right: r, top: i, bottom: a } = e.currentTarget.getBoundingClientRect();
|
|
291
|
-
(e.clientX < n || e.clientX > r || e.clientY < i || e.clientY > a) && t();
|
|
292
|
-
}
|
|
293
|
-
//#endregion
|
|
294
|
-
//#region src/Drawer/Drawer.tsx
|
|
295
|
-
var D = (e) => typeof e == "number" ? `${e}px` : e;
|
|
296
|
-
function O({ open: t, from: n = "right", width: r, height: i, children: o, onClose: s, className: l, ...u }) {
|
|
297
|
-
let f = c(null);
|
|
298
|
-
a(() => {
|
|
299
|
-
let e = f.current;
|
|
300
|
-
e && (t && !e.open ? (e.showModal(), e.querySelector("[data-autofocus]")?.focus()) : !t && e.open && e.close());
|
|
301
|
-
}, [t]);
|
|
302
|
-
let p = {
|
|
303
|
-
...u.style,
|
|
304
|
-
...r !== void 0 && { "--tintora-drawer-width": D(r) },
|
|
305
|
-
...i !== void 0 && { "--tintora-drawer-height": D(i) }
|
|
306
|
-
};
|
|
307
|
-
return /* @__PURE__ */ e("dialog", {
|
|
308
|
-
...u,
|
|
309
|
-
ref: f,
|
|
310
|
-
className: d("tintora-drawer", `tintora-drawer--from-${n}`, l),
|
|
311
|
-
onCancel: (e) => {
|
|
312
|
-
e.preventDefault(), s();
|
|
313
|
-
},
|
|
314
|
-
onClick: (e) => E(e, s),
|
|
315
|
-
style: p,
|
|
316
|
-
children: o
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
//#endregion
|
|
320
364
|
//#region src/IconButton/IconButton.tsx
|
|
321
|
-
var
|
|
365
|
+
var j = {
|
|
322
366
|
round: "secondary",
|
|
323
367
|
field: "secondary",
|
|
324
368
|
nav: "ghost"
|
|
325
369
|
};
|
|
326
|
-
function
|
|
370
|
+
function M({ icon: t, variant: n = "round", size: r, selected: i, className: a, ...o }) {
|
|
327
371
|
let s = n === "round" ? r ?? "large" : void 0;
|
|
328
|
-
return /* @__PURE__ */ e(
|
|
372
|
+
return /* @__PURE__ */ e(w, {
|
|
329
373
|
...o,
|
|
330
|
-
variant:
|
|
374
|
+
variant: j[n],
|
|
331
375
|
"aria-current": i ? "page" : void 0,
|
|
332
376
|
className: d("tintora-icon-button", `tintora-icon-button--${n}`, s && `tintora-icon-button--${s}`, a),
|
|
333
377
|
...s && { size: s },
|
|
@@ -340,7 +384,7 @@ function A({ icon: t, variant: n = "round", size: r, selected: i, className: a,
|
|
|
340
384
|
}
|
|
341
385
|
//#endregion
|
|
342
386
|
//#region src/Modal/Modal.tsx
|
|
343
|
-
var
|
|
387
|
+
var N = () => /* @__PURE__ */ e("svg", {
|
|
344
388
|
width: "16",
|
|
345
389
|
height: "16",
|
|
346
390
|
viewBox: "0 0 24 24",
|
|
@@ -350,23 +394,23 @@ var j = () => /* @__PURE__ */ e("svg", {
|
|
|
350
394
|
strokeLinecap: "round",
|
|
351
395
|
children: /* @__PURE__ */ e("path", { d: "M18 6L6 18M6 6l12 12" })
|
|
352
396
|
});
|
|
353
|
-
function
|
|
354
|
-
let
|
|
397
|
+
function P({ open: n, onClose: r, title: i, description: s, icon: l, status: u = "info", actions: f, size: p = "md", align: m = "start", role: h = "dialog", closeButton: g = !0, className: v, children: y, ...b }) {
|
|
398
|
+
let x = c(null), S = o(), C = o();
|
|
355
399
|
return a(() => {
|
|
356
|
-
let e =
|
|
400
|
+
let e = x.current;
|
|
357
401
|
e && (n && !e.open ? (e.showModal(), e.querySelector("[data-autofocus]")?.focus()) : !n && e.open && e.close());
|
|
358
402
|
}, [n]), /* @__PURE__ */ t("dialog", {
|
|
359
|
-
...
|
|
360
|
-
ref:
|
|
403
|
+
...b,
|
|
404
|
+
ref: x,
|
|
361
405
|
role: h,
|
|
362
|
-
"aria-labelledby":
|
|
363
|
-
"aria-describedby": s ?
|
|
364
|
-
className: d("tintora-modal", `tintora-modal--${p}`, m === "center" && "tintora-modal--center",
|
|
406
|
+
"aria-labelledby": S,
|
|
407
|
+
"aria-describedby": s ? C : void 0,
|
|
408
|
+
className: d("tintora-modal", `tintora-modal--${p}`, m === "center" && "tintora-modal--center", v),
|
|
365
409
|
onCancel: (e) => {
|
|
366
410
|
e.preventDefault(), r();
|
|
367
411
|
},
|
|
368
412
|
onClick: (e) => {
|
|
369
|
-
h === "dialog" &&
|
|
413
|
+
h === "dialog" && _(e, r);
|
|
370
414
|
},
|
|
371
415
|
children: [
|
|
372
416
|
l && /* @__PURE__ */ e("span", {
|
|
@@ -377,23 +421,23 @@ function M({ open: n, onClose: r, title: i, description: s, icon: l, status: u =
|
|
|
377
421
|
/* @__PURE__ */ t("div", {
|
|
378
422
|
className: "tintora-modal__text",
|
|
379
423
|
children: [/* @__PURE__ */ e("h2", {
|
|
380
|
-
id:
|
|
424
|
+
id: S,
|
|
381
425
|
className: "tintora-modal__title",
|
|
382
426
|
children: i
|
|
383
427
|
}), s && /* @__PURE__ */ e("p", {
|
|
384
|
-
id:
|
|
428
|
+
id: C,
|
|
385
429
|
className: "tintora-modal__description",
|
|
386
430
|
children: s
|
|
387
431
|
})]
|
|
388
432
|
}),
|
|
389
|
-
g && /* @__PURE__ */ e(
|
|
433
|
+
g && /* @__PURE__ */ e(M, {
|
|
390
434
|
className: "tintora-modal__close",
|
|
391
435
|
size: "medium",
|
|
392
436
|
"aria-label": "Close",
|
|
393
|
-
icon: /* @__PURE__ */ e(
|
|
437
|
+
icon: /* @__PURE__ */ e(N, {}),
|
|
394
438
|
onClick: r
|
|
395
439
|
}),
|
|
396
|
-
|
|
440
|
+
y,
|
|
397
441
|
f && /* @__PURE__ */ e("div", {
|
|
398
442
|
className: "tintora-modal__actions",
|
|
399
443
|
children: f
|
|
@@ -403,7 +447,7 @@ function M({ open: n, onClose: r, title: i, description: s, icon: l, status: u =
|
|
|
403
447
|
}
|
|
404
448
|
//#endregion
|
|
405
449
|
//#region src/hooks/useLatest.ts
|
|
406
|
-
function
|
|
450
|
+
function F(e) {
|
|
407
451
|
let t = c(e);
|
|
408
452
|
return a(() => {
|
|
409
453
|
t.current = e;
|
|
@@ -411,8 +455,8 @@ function N(e) {
|
|
|
411
455
|
}
|
|
412
456
|
//#endregion
|
|
413
457
|
//#region src/hooks/useEscapeKey.ts
|
|
414
|
-
function
|
|
415
|
-
let n =
|
|
458
|
+
function I(e, t) {
|
|
459
|
+
let n = F(t);
|
|
416
460
|
a(() => {
|
|
417
461
|
if (!e) return;
|
|
418
462
|
let t = (e) => {
|
|
@@ -423,8 +467,8 @@ function P(e, t) {
|
|
|
423
467
|
}
|
|
424
468
|
//#endregion
|
|
425
469
|
//#region src/hooks/useOutsidePress.ts
|
|
426
|
-
function
|
|
427
|
-
let r =
|
|
470
|
+
function L(e, t, n) {
|
|
471
|
+
let r = F(n);
|
|
428
472
|
a(() => {
|
|
429
473
|
if (!e) return;
|
|
430
474
|
let n = (e) => {
|
|
@@ -439,7 +483,7 @@ function F(e, t, n) {
|
|
|
439
483
|
}
|
|
440
484
|
//#endregion
|
|
441
485
|
//#region src/hooks/useTopLayerPosition.ts
|
|
442
|
-
function
|
|
486
|
+
function R(e, t, n, r) {
|
|
443
487
|
let [i, a] = l(null);
|
|
444
488
|
return s(() => {
|
|
445
489
|
let r = t.current;
|
|
@@ -462,17 +506,17 @@ function I(e, t, n, r) {
|
|
|
462
506
|
}
|
|
463
507
|
//#endregion
|
|
464
508
|
//#region src/utils/placement.ts
|
|
465
|
-
var
|
|
509
|
+
var z = {
|
|
466
510
|
gap: 10,
|
|
467
511
|
margin: 8,
|
|
468
512
|
arrowInset: 12
|
|
469
|
-
},
|
|
513
|
+
}, B = {
|
|
470
514
|
top: "bottom",
|
|
471
515
|
bottom: "top",
|
|
472
516
|
left: "right",
|
|
473
517
|
right: "left"
|
|
474
|
-
},
|
|
475
|
-
function
|
|
518
|
+
}, V = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n));
|
|
519
|
+
function H(e, t, n, r, { gap: i, margin: a }) {
|
|
476
520
|
let o = (t) => {
|
|
477
521
|
switch (t) {
|
|
478
522
|
case "top": return e.top;
|
|
@@ -481,16 +525,16 @@ function B(e, t, n, r, { gap: i, margin: a }) {
|
|
|
481
525
|
case "right": return r.width - e.right;
|
|
482
526
|
}
|
|
483
527
|
}, s = (n === "top" || n === "bottom" ? t.height : t.width) + i + a, c = o(n);
|
|
484
|
-
return c >= s || o(
|
|
528
|
+
return c >= s || o(B[n]) <= c ? n : B[n];
|
|
485
529
|
}
|
|
486
|
-
function
|
|
530
|
+
function U(e, t, n, r = {
|
|
487
531
|
width: window.innerWidth,
|
|
488
532
|
height: window.innerHeight
|
|
489
533
|
}, i = {}) {
|
|
490
534
|
let a = {
|
|
491
|
-
...
|
|
535
|
+
...z,
|
|
492
536
|
...i
|
|
493
|
-
}, { gap: o, margin: s, arrowInset: c } = a, l =
|
|
537
|
+
}, { gap: o, margin: s, arrowInset: c } = a, l = H(e, t, n, r, a), u = l === "top" || l === "bottom", d, f;
|
|
494
538
|
switch (l) {
|
|
495
539
|
case "top":
|
|
496
540
|
d = e.y - t.height - o, f = e.x + e.width / 2 - t.width / 2;
|
|
@@ -503,18 +547,18 @@ function V(e, t, n, r = {
|
|
|
503
547
|
break;
|
|
504
548
|
case "right": d = e.y + e.height / 2 - t.height / 2, f = e.x + e.width + o;
|
|
505
549
|
}
|
|
506
|
-
u ? f =
|
|
550
|
+
u ? f = V(f, s, r.width - t.width - s) : d = V(d, s, r.height - t.height - s);
|
|
507
551
|
let p = u ? e.x + e.width / 2 - f : e.y + e.height / 2 - d, m = u ? t.width : t.height;
|
|
508
552
|
return {
|
|
509
553
|
top: d,
|
|
510
554
|
left: f,
|
|
511
555
|
placement: l,
|
|
512
|
-
arrowOffset:
|
|
556
|
+
arrowOffset: V(p, c, m - c)
|
|
513
557
|
};
|
|
514
558
|
}
|
|
515
559
|
//#endregion
|
|
516
560
|
//#region src/Popover/Popover.tsx
|
|
517
|
-
var
|
|
561
|
+
var W = [
|
|
518
562
|
"button:not([disabled])",
|
|
519
563
|
"[href]",
|
|
520
564
|
"input:not([disabled])",
|
|
@@ -522,14 +566,14 @@ var H = [
|
|
|
522
566
|
"textarea:not([disabled])",
|
|
523
567
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
524
568
|
].join(", ");
|
|
525
|
-
function
|
|
569
|
+
function G({ open: r, onOpenChange: i, trigger: l, title: u, children: f, role: p = "dialog", size: m = "md", placement: h = "bottom", className: g }) {
|
|
526
570
|
let _ = o(), v = c(null), y = c(null), b = c(!1), x = () => i(!1);
|
|
527
|
-
|
|
571
|
+
I(r, x), L(r, v, x);
|
|
528
572
|
let S = (e) => {
|
|
529
573
|
l.props.onClick?.(e), e.defaultPrevented || i(!r);
|
|
530
|
-
}, C =
|
|
574
|
+
}, C = R(r, y, () => {
|
|
531
575
|
let e = y.current, t = v.current?.firstElementChild;
|
|
532
|
-
return !e || !t ? null :
|
|
576
|
+
return !e || !t ? null : U(t.getBoundingClientRect(), {
|
|
533
577
|
width: e.offsetWidth,
|
|
534
578
|
height: e.offsetHeight
|
|
535
579
|
}, h, void 0, { gap: 12 });
|
|
@@ -544,7 +588,7 @@ function U({ open: r, onOpenChange: i, trigger: l, title: u, children: f, role:
|
|
|
544
588
|
} : { visibility: "hidden" }, T = C !== null;
|
|
545
589
|
return s(() => {
|
|
546
590
|
let e = y.current;
|
|
547
|
-
r && T && e && (e.querySelector("[data-autofocus]") ?? e.querySelector(
|
|
591
|
+
r && T && e && (e.querySelector("[data-autofocus]") ?? e.querySelector(W) ?? e).focus();
|
|
548
592
|
}, [r, T]), a(() => {
|
|
549
593
|
if (b.current && !r) {
|
|
550
594
|
let e = document.activeElement;
|
|
@@ -574,7 +618,7 @@ function U({ open: r, onOpenChange: i, trigger: l, title: u, children: f, role:
|
|
|
574
618
|
}
|
|
575
619
|
//#endregion
|
|
576
620
|
//#region src/ProgressBar/ProgressBar.tsx
|
|
577
|
-
function
|
|
621
|
+
function K({ title: n, progress: r, indeterminate: i, valueLabel: a, className: s, "aria-label": c }) {
|
|
578
622
|
let l = o(), u = i ? void 0 : Math.min(100, Math.max(0, Number.isFinite(r) ? r : 0)), f = u === 100, p = a ?? (i ? "Indeterminate" : `${u}%`);
|
|
579
623
|
return /* @__PURE__ */ t("div", {
|
|
580
624
|
className: d("tintora-progress-bar", s),
|
|
@@ -608,16 +652,16 @@ function W({ title: n, progress: r, indeterminate: i, valueLabel: a, className:
|
|
|
608
652
|
}
|
|
609
653
|
//#endregion
|
|
610
654
|
//#region src/Radio/RadioContext.ts
|
|
611
|
-
var
|
|
612
|
-
function
|
|
613
|
-
let e = i(
|
|
655
|
+
var q = r(null);
|
|
656
|
+
function J() {
|
|
657
|
+
let e = i(q);
|
|
614
658
|
if (!e) throw Error("Radio must be rendered inside a RadioGroup");
|
|
615
659
|
return e;
|
|
616
660
|
}
|
|
617
661
|
//#endregion
|
|
618
662
|
//#region src/Radio/Radio.tsx
|
|
619
|
-
function
|
|
620
|
-
let o =
|
|
663
|
+
function Y({ value: n, className: r, disabled: i, ...a }) {
|
|
664
|
+
let o = J();
|
|
621
665
|
return /* @__PURE__ */ t("span", {
|
|
622
666
|
className: d("tintora-radio", r),
|
|
623
667
|
children: [/* @__PURE__ */ e("input", {
|
|
@@ -637,9 +681,9 @@ function q({ value: n, className: r, disabled: i, ...a }) {
|
|
|
637
681
|
}
|
|
638
682
|
//#endregion
|
|
639
683
|
//#region src/Radio/RadioGroup.tsx
|
|
640
|
-
function
|
|
684
|
+
function X({ value: t, defaultValue: n, onValueChange: r, disabled: i = !1, name: a, className: s, ...c }) {
|
|
641
685
|
let u = o(), [f, p] = l(n ?? null), m = t !== void 0, h = m ? t : f;
|
|
642
|
-
return /* @__PURE__ */ e(
|
|
686
|
+
return /* @__PURE__ */ e(q.Provider, {
|
|
643
687
|
value: {
|
|
644
688
|
name: a ?? u,
|
|
645
689
|
value: h,
|
|
@@ -657,7 +701,7 @@ function J({ value: t, defaultValue: n, onValueChange: r, disabled: i = !1, name
|
|
|
657
701
|
}
|
|
658
702
|
//#endregion
|
|
659
703
|
//#region src/SearchInput/SearchInput.tsx
|
|
660
|
-
function
|
|
704
|
+
function ee({ className: n, disabled: r, ...i }) {
|
|
661
705
|
return /* @__PURE__ */ t("label", {
|
|
662
706
|
className: d("tintora-search-input", r && "tintora-search-input--disabled", n),
|
|
663
707
|
children: [/* @__PURE__ */ t("svg", {
|
|
@@ -683,15 +727,15 @@ function Y({ className: n, disabled: r, ...i }) {
|
|
|
683
727
|
}
|
|
684
728
|
//#endregion
|
|
685
729
|
//#region src/Select/SelectContext.ts
|
|
686
|
-
var
|
|
687
|
-
let e = i(
|
|
730
|
+
var Z = r(null), te = () => {
|
|
731
|
+
let e = i(Z);
|
|
688
732
|
if (!e) throw Error("SelectOption must be rendered inside a Select");
|
|
689
733
|
return e;
|
|
690
734
|
};
|
|
691
735
|
//#endregion
|
|
692
736
|
//#region src/Select/SelectOption.tsx
|
|
693
|
-
function
|
|
694
|
-
let { select: i, activate: a, optionId: o, value: s, activeValue: c } =
|
|
737
|
+
function ne({ label: t, value: n, disabled: r }) {
|
|
738
|
+
let { select: i, activate: a, optionId: o, value: s, activeValue: c } = te();
|
|
695
739
|
return /* @__PURE__ */ e("div", {
|
|
696
740
|
id: o(n),
|
|
697
741
|
role: "option",
|
|
@@ -706,12 +750,12 @@ function ee({ label: t, value: n, disabled: r }) {
|
|
|
706
750
|
//#endregion
|
|
707
751
|
//#region src/Select/Select.tsx
|
|
708
752
|
var Q = 4;
|
|
709
|
-
function
|
|
710
|
-
let b = o(), x = c(null), S = c(null), C = c(null), [w, T] = l(n ?? null), [E, D] = l(!1), [O, k] = l(-1), A = s !== void 0, j = A ? s : w, M = r.findIndex((e) => e.value === j), N = (e) => r[e]?.disabled !== !0, P = () => r.findIndex((e, t) => N(t)),
|
|
753
|
+
function re({ defaultValue: n, options: r, disabled: i, value: s, placeholder: u, onValueChange: f, name: p, className: m, onClick: h, onKeyDown: g, onKeyUp: _, "aria-label": v, ...y }) {
|
|
754
|
+
let b = o(), x = c(null), S = c(null), C = c(null), [w, T] = l(n ?? null), [E, D] = l(!1), [O, k] = l(-1), A = s !== void 0, j = A ? s : w, M = r.findIndex((e) => e.value === j), N = (e) => r[e]?.disabled !== !0, P = () => r.findIndex((e, t) => N(t)), F = (e, t) => {
|
|
711
755
|
for (let n = e + t; n >= 0 && n < r.length; n += t) if (N(n)) return n;
|
|
712
756
|
return e;
|
|
713
|
-
},
|
|
714
|
-
let e =
|
|
757
|
+
}, I = () => {
|
|
758
|
+
let e = F(r.length, -1);
|
|
715
759
|
return e === r.length ? -1 : e;
|
|
716
760
|
}, z = (e) => r.findIndex((t) => t.value === e), B = () => {
|
|
717
761
|
k(M >= 0 && N(M) ? M : P()), D(!0);
|
|
@@ -732,15 +776,15 @@ function te({ defaultValue: n, options: r, disabled: i, value: s, placeholder: u
|
|
|
732
776
|
return;
|
|
733
777
|
}
|
|
734
778
|
let n = {
|
|
735
|
-
ArrowDown: () => O < 0 ? P() :
|
|
736
|
-
ArrowUp: () => O < 0 ? P() :
|
|
779
|
+
ArrowDown: () => O < 0 ? P() : F(O, 1),
|
|
780
|
+
ArrowUp: () => O < 0 ? P() : F(O, -1),
|
|
737
781
|
Home: P,
|
|
738
|
-
End:
|
|
782
|
+
End: I
|
|
739
783
|
};
|
|
740
784
|
t in n ? (e.preventDefault(), k(n[t]())) : t === "Enter" || t === " " ? (e.preventDefault(), O >= 0 ? H(r[O].value) : V()) : t === "Escape" && (e.preventDefault(), V());
|
|
741
785
|
}, W = (e) => {
|
|
742
786
|
_?.(e), e.key === " " && e.preventDefault();
|
|
743
|
-
}, G =
|
|
787
|
+
}, G = R(E, C, () => {
|
|
744
788
|
let e = C.current, t = S.current;
|
|
745
789
|
if (!e || !t) return null;
|
|
746
790
|
let n = t.getBoundingClientRect(), r = e.offsetHeight, i = n.bottom + Q + r <= window.innerHeight, a = n.top - Q - r >= 0;
|
|
@@ -752,11 +796,11 @@ function te({ defaultValue: n, options: r, disabled: i, value: s, placeholder: u
|
|
|
752
796
|
}, []), K = (e) => {
|
|
753
797
|
h?.(e), !e.defaultPrevented && (E ? V() : B());
|
|
754
798
|
};
|
|
755
|
-
|
|
799
|
+
L(E, x, V), a(() => {
|
|
756
800
|
E && O >= 0 && C.current?.children.item(O)?.scrollIntoView?.({ block: "nearest" });
|
|
757
801
|
}, [E, O]);
|
|
758
802
|
let q = (e) => `${b}-option-${z(e)}`, J = E ? r[O]?.value ?? null : null, Y = r[M]?.label;
|
|
759
|
-
return /* @__PURE__ */ e(
|
|
803
|
+
return /* @__PURE__ */ e(Z.Provider, {
|
|
760
804
|
value: {
|
|
761
805
|
value: j,
|
|
762
806
|
activeValue: J,
|
|
@@ -809,7 +853,7 @@ function te({ defaultValue: n, options: r, disabled: i, value: s, placeholder: u
|
|
|
809
853
|
className: "tintora-select__menu",
|
|
810
854
|
style: G ?? {},
|
|
811
855
|
onMouseDown: (e) => e.preventDefault(),
|
|
812
|
-
children: r.map((t) => /* @__PURE__ */ e(
|
|
856
|
+
children: r.map((t) => /* @__PURE__ */ e(ne, { ...t }, t.value))
|
|
813
857
|
}),
|
|
814
858
|
p && /* @__PURE__ */ e("input", {
|
|
815
859
|
type: "hidden",
|
|
@@ -823,7 +867,7 @@ function te({ defaultValue: n, options: r, disabled: i, value: s, placeholder: u
|
|
|
823
867
|
}
|
|
824
868
|
//#endregion
|
|
825
869
|
//#region src/Skeleton/Skeleton.tsx
|
|
826
|
-
function
|
|
870
|
+
function ie({ width: t, height: n, className: r, style: i, ...a }) {
|
|
827
871
|
let o = {
|
|
828
872
|
...t !== void 0 && { width: t },
|
|
829
873
|
...n !== void 0 && { height: n }
|
|
@@ -840,8 +884,8 @@ function ne({ width: t, height: n, className: r, style: i, ...a }) {
|
|
|
840
884
|
}
|
|
841
885
|
//#endregion
|
|
842
886
|
//#region src/Switch/Switch.tsx
|
|
843
|
-
function
|
|
844
|
-
let s =
|
|
887
|
+
function ae({ checked: n, defaultChecked: r, onCheckedChange: i, className: a, ...o }) {
|
|
888
|
+
let s = D({
|
|
845
889
|
checked: n,
|
|
846
890
|
defaultChecked: r,
|
|
847
891
|
onCheckedChange: i
|
|
@@ -863,7 +907,7 @@ function re({ checked: n, defaultChecked: r, onCheckedChange: i, className: a, .
|
|
|
863
907
|
}
|
|
864
908
|
//#endregion
|
|
865
909
|
//#region src/Tag/Tag.tsx
|
|
866
|
-
function
|
|
910
|
+
function oe({ children: t, className: n, variant: r = "neutral", size: i = "medium", ...a }) {
|
|
867
911
|
return /* @__PURE__ */ e("span", {
|
|
868
912
|
...a,
|
|
869
913
|
className: d("tintora-tag", `tintora-tag--${r}`, `tintora-tag--${i}`, n),
|
|
@@ -872,7 +916,7 @@ function ie({ children: t, className: n, variant: r = "neutral", size: i = "medi
|
|
|
872
916
|
}
|
|
873
917
|
//#endregion
|
|
874
918
|
//#region src/TextField/TextField.tsx
|
|
875
|
-
function
|
|
919
|
+
function se({ label: n, hint: r, error: i, id: a, className: s, disabled: c, "aria-describedby": l, "aria-invalid": u, ...f }) {
|
|
876
920
|
let p = o(), m = a ?? p, h = `${m}-message`, g = i ?? r;
|
|
877
921
|
return /* @__PURE__ */ t("div", {
|
|
878
922
|
className: d("tintora-textfield", c && "tintora-textfield--disabled", s),
|
|
@@ -900,7 +944,7 @@ function ae({ label: n, hint: r, error: i, id: a, className: s, disabled: c, "ar
|
|
|
900
944
|
}
|
|
901
945
|
//#endregion
|
|
902
946
|
//#region src/Toast/ToastIcons.tsx
|
|
903
|
-
function
|
|
947
|
+
function ce() {
|
|
904
948
|
return /* @__PURE__ */ e("svg", {
|
|
905
949
|
width: "20",
|
|
906
950
|
height: "20",
|
|
@@ -915,7 +959,7 @@ function oe() {
|
|
|
915
959
|
children: /* @__PURE__ */ e("path", { d: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM8 12.5l2.7 2.7L16 9.8" })
|
|
916
960
|
});
|
|
917
961
|
}
|
|
918
|
-
function
|
|
962
|
+
function le() {
|
|
919
963
|
return /* @__PURE__ */ e("svg", {
|
|
920
964
|
width: "20",
|
|
921
965
|
height: "20",
|
|
@@ -930,7 +974,7 @@ function se() {
|
|
|
930
974
|
children: /* @__PURE__ */ e("path", { d: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM15 9l-6 6M9 9l6 6" })
|
|
931
975
|
});
|
|
932
976
|
}
|
|
933
|
-
function
|
|
977
|
+
function ue() {
|
|
934
978
|
return /* @__PURE__ */ e("svg", {
|
|
935
979
|
width: "20",
|
|
936
980
|
height: "20",
|
|
@@ -945,7 +989,7 @@ function ce() {
|
|
|
945
989
|
children: /* @__PURE__ */ e("path", { d: "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01" })
|
|
946
990
|
});
|
|
947
991
|
}
|
|
948
|
-
function
|
|
992
|
+
function de() {
|
|
949
993
|
return /* @__PURE__ */ e("svg", {
|
|
950
994
|
width: "20",
|
|
951
995
|
height: "20",
|
|
@@ -960,7 +1004,7 @@ function le() {
|
|
|
960
1004
|
children: /* @__PURE__ */ e("path", { d: "M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01" })
|
|
961
1005
|
});
|
|
962
1006
|
}
|
|
963
|
-
function
|
|
1007
|
+
function fe() {
|
|
964
1008
|
return /* @__PURE__ */ e("svg", {
|
|
965
1009
|
width: "14",
|
|
966
1010
|
height: "14",
|
|
@@ -975,14 +1019,14 @@ function ue() {
|
|
|
975
1019
|
}
|
|
976
1020
|
//#endregion
|
|
977
1021
|
//#region src/Toast/Toast.tsx
|
|
978
|
-
var
|
|
979
|
-
success: /* @__PURE__ */ e(
|
|
980
|
-
error: /* @__PURE__ */ e(
|
|
981
|
-
info: /* @__PURE__ */ e(
|
|
982
|
-
warning: /* @__PURE__ */ e(
|
|
1022
|
+
var pe = {
|
|
1023
|
+
success: /* @__PURE__ */ e(ce, {}),
|
|
1024
|
+
error: /* @__PURE__ */ e(le, {}),
|
|
1025
|
+
info: /* @__PURE__ */ e(ue, {}),
|
|
1026
|
+
warning: /* @__PURE__ */ e(de, {})
|
|
983
1027
|
};
|
|
984
|
-
function
|
|
985
|
-
let [m, h] = l(!1), [g, _] = l(!1), v = m || g, y =
|
|
1028
|
+
function me({ status: n, children: r, action: i, onDismiss: o, duration: s = 5e3, timerBar: u = !1, className: f, ...p }) {
|
|
1029
|
+
let [m, h] = l(!1), [g, _] = l(!1), v = m || g, y = F(o), b = c(s);
|
|
986
1030
|
a(() => {
|
|
987
1031
|
b.current = s;
|
|
988
1032
|
}, [s]), a(() => {
|
|
@@ -1014,7 +1058,7 @@ function fe({ status: n, children: r, action: i, onDismiss: o, duration: s = 5e3
|
|
|
1014
1058
|
p.onBlur?.(e), e.currentTarget.contains(e.relatedTarget) || _(!1);
|
|
1015
1059
|
},
|
|
1016
1060
|
children: [
|
|
1017
|
-
n &&
|
|
1061
|
+
n && pe[n],
|
|
1018
1062
|
/* @__PURE__ */ e("span", {
|
|
1019
1063
|
className: "tintora-toast__message",
|
|
1020
1064
|
children: r
|
|
@@ -1030,7 +1074,7 @@ function fe({ status: n, children: r, action: i, onDismiss: o, duration: s = 5e3
|
|
|
1030
1074
|
className: "tintora-toast__close",
|
|
1031
1075
|
"aria-label": "Dismiss",
|
|
1032
1076
|
onClick: o,
|
|
1033
|
-
children: /* @__PURE__ */ e(
|
|
1077
|
+
children: /* @__PURE__ */ e(fe, {})
|
|
1034
1078
|
}),
|
|
1035
1079
|
x && /* @__PURE__ */ e("span", {
|
|
1036
1080
|
className: "tintora-toast__progress",
|
|
@@ -1042,14 +1086,14 @@ function fe({ status: n, children: r, action: i, onDismiss: o, duration: s = 5e3
|
|
|
1042
1086
|
//#endregion
|
|
1043
1087
|
//#region src/Toggle/ToggleContext.ts
|
|
1044
1088
|
var $ = r(null);
|
|
1045
|
-
function
|
|
1089
|
+
function he() {
|
|
1046
1090
|
let e = i($);
|
|
1047
1091
|
if (!e) throw Error("ToggleItem must be rendered inside a Toggle");
|
|
1048
1092
|
return e;
|
|
1049
1093
|
}
|
|
1050
1094
|
//#endregion
|
|
1051
1095
|
//#region src/Toggle/Toggle.tsx
|
|
1052
|
-
function
|
|
1096
|
+
function ge({ children: n, value: r, defaultValue: i, onValueChange: a, disabled: o = !1, className: u, ...f }) {
|
|
1053
1097
|
let [p, m] = l(i), h = r !== void 0, g = h ? r : p, _ = n.findIndex((e) => e.props.value === g), v = c(null), [y, b] = l({
|
|
1054
1098
|
x: 0,
|
|
1055
1099
|
width: 0
|
|
@@ -1099,8 +1143,8 @@ function me({ children: n, value: r, defaultValue: i, onValueChange: a, disabled
|
|
|
1099
1143
|
}
|
|
1100
1144
|
//#endregion
|
|
1101
1145
|
//#region src/Toggle/ToggleItem.tsx
|
|
1102
|
-
function
|
|
1103
|
-
let s =
|
|
1146
|
+
function _e({ value: t, children: n, className: r, disabled: i, onClick: a, ...o }) {
|
|
1147
|
+
let s = he(), c = (e) => {
|
|
1104
1148
|
a?.(e), e.defaultPrevented || s.select(t);
|
|
1105
1149
|
};
|
|
1106
1150
|
return /* @__PURE__ */ e("button", {
|
|
@@ -1115,15 +1159,15 @@ function he({ value: t, children: n, className: r, disabled: i, onClick: a, ...o
|
|
|
1115
1159
|
}
|
|
1116
1160
|
//#endregion
|
|
1117
1161
|
//#region src/Tooltip/Tooltip.tsx
|
|
1118
|
-
var
|
|
1119
|
-
function
|
|
1162
|
+
var ve = 100;
|
|
1163
|
+
function ye({ title: r, content: i, shortcut: s, children: u, className: f, placement: p = "top" }) {
|
|
1120
1164
|
let m = o(), [h, g] = l(!1), _ = c(null), v = c(null), y = c(void 0), b = () => {
|
|
1121
1165
|
window.clearTimeout(y.current), g(!0);
|
|
1122
1166
|
}, x = () => {
|
|
1123
|
-
window.clearTimeout(y.current), y.current = window.setTimeout(() => g(!1),
|
|
1124
|
-
}, S =
|
|
1167
|
+
window.clearTimeout(y.current), y.current = window.setTimeout(() => g(!1), ve);
|
|
1168
|
+
}, S = R(h, v, () => {
|
|
1125
1169
|
let e = v.current, t = _.current?.firstElementChild;
|
|
1126
|
-
return !e || !t ? null :
|
|
1170
|
+
return !e || !t ? null : U(t.getBoundingClientRect(), {
|
|
1127
1171
|
width: e.offsetWidth,
|
|
1128
1172
|
height: e.offsetHeight
|
|
1129
1173
|
}, p);
|
|
@@ -1133,7 +1177,7 @@ function _e({ title: r, content: i, shortcut: s, children: u, className: f, plac
|
|
|
1133
1177
|
i,
|
|
1134
1178
|
s
|
|
1135
1179
|
]);
|
|
1136
|
-
|
|
1180
|
+
I(h, () => g(!1)), a(() => () => window.clearTimeout(y.current), []);
|
|
1137
1181
|
let C = S ? {
|
|
1138
1182
|
top: S.top,
|
|
1139
1183
|
left: S.left,
|
|
@@ -1171,4 +1215,4 @@ function _e({ title: r, content: i, shortcut: s, children: u, className: f, plac
|
|
|
1171
1215
|
});
|
|
1172
1216
|
}
|
|
1173
1217
|
//#endregion
|
|
1174
|
-
export { m as Alert, g as Avatar,
|
|
1218
|
+
export { m as Alert, g as Avatar, b as BottomSheet, x as BottomSheetOption, w as Button, T as Card, O as Checkbox, k as Chip, A as Dot, y as Drawer, M as IconButton, P as Modal, G as Popover, K as ProgressBar, Y as Radio, X as RadioGroup, ee as SearchInput, re as Select, E as SelectableCard, ie as Skeleton, C as Spinner, ae as Switch, oe as Tag, se as TextField, me as Toast, ge as Toggle, _e as ToggleItem, ye as Tooltip };
|
package/dist/tintora.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--tintora-color-accent:#ee6b25;--tintora-color-accent-deep:#c94e0c;--tintora-color-success:#4cc56b;--tintora-color-planned:#f2698c;--tintora-color-heart:#c42a56;--tintora-color-steps:#1f7a38;--tintora-color-sleep:#2f4fc4;--tintora-color-ink:#1d1c1c;--tintora-color-white:#fff;--tintora-color-destructive:#b3261e;--tintora-color-on-accent:#1d0e04;--tintora-color-on-accent-deep:var(--tintora-color-white);--tintora-color-on-success:#0d200f;--tintora-color-on-planned:#260a13;--tintora-color-on-heart:var(--tintora-color-white);--tintora-color-on-steps:var(--tintora-color-white);--tintora-color-on-sleep:var(--tintora-color-white);--tintora-color-on-destructive:var(--tintora-color-white);--tintora-text-on-card-muted:#55524f;--tintora-chip-fg:#3c3a38;--tintora-chip-bg:#efedeb;--tintora-chip-bg-hover:#e4e1de;--tintora-chip-selected-fg:#8f3604;--tintora-chip-selected-bg:var(--tintora-color-white);--tintora-tint-accent:#fdeadd;--tintora-tint-heart:#fbe0e8;--tintora-tint-steps:#dcf3e1;--tintora-tint-sleep:#e0e7fb;--tintora-menu-bg:var(--tintora-color-white);--tintora-menu-border:#1d1c1c1a;--tintora-menu-shadow:0 16px 32px #00000038;--tintora-menu-item-hover:#1d1c1c12;--tintora-menu-item-destructive:var(--tintora-color-destructive);--tintora-chart-grid:#ece9e6;--tintora-chart-axis:#6f6b68;--tintora-chart-track:#e6e4e2;--tintora-surface-menu-row:#ffffff0d;--tintora-font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--tintora-font-weight-regular:400;--tintora-font-weight-medium:500;--tintora-font-weight-semibold:600;--tintora-font-weight-bold:700;--tintora-font-weight-extrabold:800;--tintora-line-height-tight:1.2;--tintora-font-display:700 1.625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-title:700 1.125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-heading:700 .9375rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-label:700 .78125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-body:500 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-caption:400 .6875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-stat-value:800 1.5625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-subtitle:700 .875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button:700 .8125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button-sm:700 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-tracking-tight:-.02em;--tintora-tracking-snug:-.01em;--tintora-tracking-wide:.04em;--tintora-radius-2:2px;--tintora-radius-4:4px;--tintora-radius-6:6px;--tintora-radius-7:7px;--tintora-radius-8:8px;--tintora-radius-9:9px;--tintora-radius-10:10px;--tintora-radius-12:12px;--tintora-radius-14:14px;--tintora-radius-16:16px;--tintora-radius-18:18px;--tintora-radius-20:20px;--tintora-radius-22:22px;--tintora-radius-26:26px;--tintora-radius-28:28px;--tintora-radius-30:30px;--tintora-radius-32:32px;--tintora-radius-34:34px;--tintora-radius-38:38px;--tintora-radius-40:40px;--tintora-radius-pill:9999px;--tintora-radius-card:var(--tintora-radius-20);--tintora-radius-panel:var(--tintora-radius-32);--tintora-shadow-selected:0 14px 30px #c94e0c73;--tintora-shadow-primary:0 8px 20px #c94e0c59;--tintora-shadow-accent:0 8px 20px #ee6b2566;--tintora-shadow-focus-ring:0 0 0 3px #ee6b2547;--tintora-shadow-menu:0 16px 32px #00000073;--tintora-shadow-tooltip:0 8px 20px #00000040;--tintora-shadow-knob:0 2px 4px #0000004d;--tintora-shadow-sheet:0 -16px 40px #00000059;--tintora-blur-glass:28px;--tintora-duration-fast:.15s;--tintora-duration-base:.2s;--tintora-opacity-disabled:.45}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tintora-bg:linear-gradient(180deg, #3e3b3a, #222020);--tintora-surface-glass:linear-gradient(180deg, #3e3b3acc, #222020e6);--tintora-surface-card:#fbfaf9;--tintora-surface-row:#ffffff0f;--tintora-surface-field:#100f0f9e;--tintora-surface-menu:#1e1c1cf7;--tintora-text:var(--tintora-color-white);--tintora-text-muted:#ffffffb8;--tintora-text-faint:#ffffffa6;--tintora-text-nav-idle:#ffffffc7;--tintora-text-day:#ffffffd1;--tintora-text-error:#ff9a8a;--tintora-border-glass:#ffffff14;--tintora-border-card:transparent;--tintora-border-row:#ffffff0f;--tintora-border-field:#ffffff14;--tintora-border-field-hover:#ffffff52;--tintora-line:#ffffff1a;--tintora-line-strong:#ffffff52;--tintora-fill-subtle:#ffffff1a;--tintora-fill-subtle-hover:#fff3;--tintora-fill-subtle-pressed:#ffffff47;--tintora-fill-ghost-hover:#ffffff1f;--tintora-fill-day-hover:#ffffff24;--tintora-tag-bg:#ffffff24;--tintora-tag-fg:var(--tintora-color-white);--tintora-focus:var(--tintora-color-accent);--tintora-ring:var(--tintora-color-white);--tintora-shadow-glass:0 30px 60px #00000059;--tintora-shadow-card:0 10px 24px #0000002e;--tintora-shadow-card-hover:0 18px 36px #00000052;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #deccb080, transparent 62%), radial-gradient(50% 45% at 96% 10%, #846a5680, transparent 62%);--tintora-text-placeholder:#ffffff9e;--tintora-scrim:#0a090999;--tintora-surface-modal:linear-gradient(180deg, #403c3b, #2a2726);--tintora-border-modal:#ffffff1f;--tintora-shadow-modal:0 40px 80px #00000080;--tintora-surface-popover:#2b2928;--tintora-border-popover:#ffffff24;--tintora-shadow-popover:0 24px 48px #00000073;--tintora-surface-tooltip:#fbfaf9;--tintora-text-on-tooltip:var(--tintora-color-ink);--tintora-text-on-tooltip-muted:#5a5754;--tintora-tooltip-kbd-bg:#1d1c1c1a;--tintora-surface-toast:#fbfaf9;--tintora-text-on-toast:var(--tintora-color-ink);--tintora-text-on-toast-muted:#5a5754;--tintora-toast-action:var(--tintora-color-accent-deep);--tintora-shadow-toast:0 16px 36px #0006;--tintora-toast-icon-success:var(--tintora-color-steps);--tintora-toast-icon-error:var(--tintora-color-destructive);--tintora-toast-icon-info:var(--tintora-color-sleep);--tintora-toast-icon-warning:#8a5600;--tintora-status-info-bg:#7896ff24;--tintora-status-info-border:#96afff61;--tintora-status-info-fg:#a9bcff;--tintora-status-success-bg:#4cc56b24;--tintora-status-success-border:#4cc56b66;--tintora-status-success-fg:#6ddb8b;--tintora-status-warning-bg:#f2a33a26;--tintora-status-warning-border:#f2a33a6b;--tintora-status-warning-fg:#f5b45a;--tintora-status-error-bg:#ff826e26;--tintora-status-error-border:#ff8c786b;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent);--tintora-control-on-fill:var(--tintora-color-on-accent);--tintora-control-border:#fff9;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#ffffff4d;--tintora-switch-track-hover:#fff6;--tintora-shimmer:linear-gradient(90deg, #ffffff14 0%, #fff3 50%, #ffffff14 100%)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}}.tintora-alert{box-sizing:border-box;border-radius:var(--tintora-radius-20);background:var(--tintora-alert-status-bg);border:var(--tintora-alert-status-border);align-items:flex-start;gap:14px;padding:16px 12px 16px 18px;display:flex}.tintora-alert--info{--tintora-alert-status-bg:var(--tintora-status-info-bg);--tintora-alert-status-border:1px solid var(--tintora-status-info-border)}.tintora-alert--success{--tintora-alert-status-bg:var(--tintora-status-success-bg);--tintora-alert-status-border:1px solid var(--tintora-status-success-border)}.tintora-alert--warning{--tintora-alert-status-bg:var(--tintora-status-warning-bg);--tintora-alert-status-border:1px solid var(--tintora-status-warning-border)}.tintora-alert--error{--tintora-alert-status-bg:var(--tintora-status-error-bg);--tintora-alert-status-border:1px solid var(--tintora-status-error-border)}.tintora-alert--announcement{border-radius:var(--tintora-radius-14);background:var(--tintora-color-accent-deep);height:44px;color:var(--tintora-color-on-accent-deep);font:var(--tintora-font-button);padding:0 16px}.tintora-alert__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tintora-alert__content--announcement{flex-direction:row;justify-content:center;align-items:center;gap:14px;height:100%}.tintora-alert__content--announcement>.tintora-alert__content__sub-title{color:inherit;font:var(--tintora-font-button)}.tintora-alert__content--announcement>.tintora-alert__content__action{font:var(--tintora-font-button);color:inherit;align-self:inherit;margin-top:0}.tintora-alert__content__title{font:var(--tintora-font-subtitle)}.tintora-alert__content__sub-title{font:var(--tintora-font-label);line-height:1.5;font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-muted)}.tintora-alert__content__action{font:var(--tintora-font-label);color:var(--tintora-alert-status-action);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:6px;padding:0;text-decoration:underline}.tintora-alert__content__action--info{--tintora-alert-status-action:var(--tintora-status-info-fg)}.tintora-alert__content__action--success{--tintora-alert-status-action:var(--tintora-status-success-fg)}.tintora-alert__content__action--warning{--tintora-alert-status-action:var(--tintora-status-warning-fg)}.tintora-alert__content__action--error{--tintora-alert-status-action:var(--tintora-status-error-fg)}.tintora-alert__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-avatar{border-radius:var(--tintora-radius-pill);color:var(--tintora-color-ink);font:var(--tintora-font-body);font-size:var(--tintora-avatar-font-size);font-weight:var(--tintora-font-weight-bold);background:linear-gradient(135deg,#f1d9bf,#c9a07a);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tintora-avatar>img{object-fit:cover;width:100%;height:100%}.tintora-avatar--small{--tintora-avatar-font-size:.6875rem;width:32px;height:32px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--medium{--tintora-avatar-font-size:.8125rem;width:40px;height:40px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--large{--tintora-avatar-font-size:.875rem;width:44px;height:44px;font-weight:var(--tintora-font-weight-bold)}.tintora-spinner{flex-shrink:0;animation:.9s linear infinite tintora-spin}@keyframes tintora-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tintora-spinner{animation:none}}.tintora-button{--tintora-button-border:1px solid transparent;box-sizing:border-box;cursor:pointer;outline-offset:2px;height:var(--tintora-button-height);padding:0 var(--tintora-button-padding-x);border:var(--tintora-button-border);border-radius:var(--tintora-button-border-radius);font-family:inherit;font-size:var(--tintora-button-font-size);font-weight:var(--tintora-button-font-weight);color:var(--tintora-button-fg);background-color:var(--tintora-button-bg);box-shadow:var(--tintora-button-shadow,none);outline:none;justify-content:center;align-items:center;gap:8px;display:inline-flex}.tintora-button--small{--tintora-button-height:32px;--tintora-button-padding-x:14px;--tintora-button-border-radius:16px;--tintora-button-font-size:12px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--medium{--tintora-button-height:40px;--tintora-button-padding-x:18px;--tintora-button-border-radius:20px;--tintora-button-font-size:13px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--large{--tintora-button-height:48px;--tintora-button-padding-x:24px;--tintora-button-border-radius:24px;--tintora-button-font-size:14px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button__icon{flex-shrink:0;display:inline-flex}.tintora-button--leading-icon{padding-inline-start:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--trailing-icon{padding-inline-end:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--primary{--tintora-button-fg:var(--tintora-color-on-accent-deep);--tintora-button-bg:var(--tintora-color-accent-deep);--tintora-button-shadow:var(--tintora-shadow-primary);--tintora-button-filter-hover:brightness(1.14);--tintora-button-filter-pressed:brightness(.9)}.tintora-button--secondary{--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-fill-subtle);--tintora-button-bg-hover:var(--tintora-fill-subtle-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle-pressed)}.tintora-button--outline{--tintora-button-border:1px solid var(--tintora-line-strong);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button--ghost{--tintora-button-fg:var(--tintora-text-muted);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button:enabled:hover{color:var(--tintora-button-fg-hover,var(--tintora-button-fg));background-color:var(--tintora-button-bg-hover,var(--tintora-button-bg));filter:var(--tintora-button-filter-hover,none)}.tintora-button:enabled:active{color:var(--tintora-button-fg-pressed,var(--tintora-button-fg));background-color:var(--tintora-button-bg-pressed,var(--tintora-button-bg));filter:var(--tintora-button-filter-pressed,none);transform:translateY(1px)}.tintora-button:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-button:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed;box-shadow:none}.tintora-button--loading:disabled{opacity:.85;cursor:progress}.tintora-card{box-sizing:border-box;font:inherit;text-align:start;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.tintora-card--surface{border-color:var(--tintora-border-card);border-radius:var(--tintora-radius-card);background:var(--tintora-surface-card);box-shadow:var(--tintora-shadow-card);color:var(--tintora-color-ink);--tintora-card-text-muted:var(--tintora-text-on-card-muted);padding:18px 18px 18px 20px}.tintora-card--row{border-color:var(--tintora-border-row);border-radius:var(--tintora-radius-18);background:var(--tintora-surface-row);color:var(--tintora-text);--tintora-card-text-muted:var(--tintora-text-faint);justify-content:flex-start;padding:10px 6px 10px 10px}.tintora-card--selectable{cursor:pointer;width:100%}@media (prefers-reduced-motion:no-preference){.tintora-card--selectable{transition:transform .15s,box-shadow .15s,background-color .15s}}.tintora-card--selectable:not(.tintora-card--selected):hover{box-shadow:var(--tintora-shadow-card-hover);transform:translateY(-3px)}.tintora-card--selectable:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-card--selectable:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-card--selected{background:var(--tintora-color-accent-deep);box-shadow:var(--tintora-shadow-selected);color:var(--tintora-color-on-accent-deep);--tintora-card-text-muted:var(--tintora-color-on-accent-deep);border-color:#0000}.tintora-card--selected .tintora-tag--card{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-checkbox{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-checkbox__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-checkbox__box{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-7);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-checkbox__check,.tintora-checkbox__dash{stroke:var(--tintora-control-on-fill);opacity:0;position:absolute}.tintora-checkbox__input:enabled:hover+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-checkbox__input:checked+.tintora-checkbox__box,.tintora-checkbox__input:indeterminate+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-fill)}.tintora-checkbox__input:checked+.tintora-checkbox__box .tintora-checkbox__check{opacity:1}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__check{opacity:0}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__dash{opacity:1}.tintora-checkbox__input:focus-visible+.tintora-checkbox__box{outline:2px solid var(--tintora-focus)}.tintora-checkbox__input:disabled{cursor:not-allowed}.tintora-checkbox__input:disabled+.tintora-checkbox__box{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-checkbox__box{transition:none}}.tintora-chip{border-radius:var(--tintora-radius-12);background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);cursor:pointer;outline-offset:2px;border:0;outline:none;align-items:center;padding:6px 12px;display:inline-flex}.tintora-chip:enabled:hover:not([aria-pressed=true]){background-color:var(--tintora-chip-bg-hover)}.tintora-chip[aria-pressed=true]{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-chip:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-chip:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-dot{box-sizing:border-box;forced-color-adjust:none;flex-shrink:0;display:inline-block}.tintora-dot--unread{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);width:8px;height:8px}.tintora-dot--read{border-radius:var(--tintora-radius-pill);border:1.5px solid var(--tintora-text-faint);width:8px;height:8px}.tintora-dot--tick{background-color:var(--tintora-color-accent);border-radius:2px;width:3px;height:15px}.tintora-drawer{box-sizing:border-box;width:var(--tintora-drawer-width,100vw);height:var(--tintora-drawer-height,auto);border:1px solid var(--tintora-border-modal);max-width:none;max-height:none;font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);transform:var(--tintora-drawer-offset);margin:0;padding:28px;position:fixed;overflow:auto}.tintora-drawer[open]{transform:none}.tintora-drawer::backdrop{background:var(--tintora-scrim)}.tintora-drawer--from-left,.tintora-drawer--from-right{width:var(--tintora-drawer-width,400px);height:var(--tintora-drawer-height,100vh)}.tintora-drawer--from-right{border-radius:var(--tintora-radius-32) 0 0 var(--tintora-radius-32);--tintora-drawer-offset:translateX(100%);inset:0 0 0 auto}.tintora-drawer--from-left{border-radius:0 var(--tintora-radius-32) var(--tintora-radius-32) 0;--tintora-drawer-offset:translateX(-100%);inset:0 auto 0 0}.tintora-drawer--from-top{border-radius:0 0 var(--tintora-radius-32) var(--tintora-radius-32);--tintora-drawer-offset:translateY(-100%);inset:0 0 auto}.tintora-drawer--from-bottom{border-radius:var(--tintora-radius-32) var(--tintora-radius-32) 0 0;--tintora-drawer-offset:translateY(100%);inset:auto 0 0}@media (width<=480px){.tintora-drawer--from-left,.tintora-drawer--from-right{border-radius:0;width:100vw}}@media (prefers-reduced-motion:no-preference){.tintora-drawer,.tintora-drawer::backdrop{transition:transform .3s ease, opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete}.tintora-drawer::backdrop{opacity:0}.tintora-drawer[open]::backdrop{opacity:1}@starting-style{.tintora-drawer[open]{transform:var(--tintora-drawer-offset)}.tintora-drawer[open]::backdrop{opacity:0}}}body:has(.tintora-drawer:modal){overflow:hidden}.tintora-button.tintora-icon-button{--tintora-button-padding-x:0px}.tintora-icon-button{width:var(--tintora-button-height);flex-shrink:0}.tintora-icon-button__icon{display:inline-flex}.tintora-icon-button__icon svg{width:var(--tintora-icon-button-icon-size);height:var(--tintora-icon-button-icon-size)}.tintora-icon-button.tintora-icon-button--small{--tintora-button-height:32px;--tintora-icon-button-icon-size:14px}.tintora-icon-button.tintora-icon-button--medium{--tintora-button-height:36px;--tintora-icon-button-icon-size:15px}.tintora-icon-button.tintora-icon-button--large{--tintora-button-height:44px;--tintora-icon-button-icon-size:18px}.tintora-icon-button.tintora-icon-button--round{--tintora-button-border-radius:var(--tintora-radius-pill)}.tintora-icon-button.tintora-icon-button--field{--tintora-button-height:48px;--tintora-button-border-radius:var(--tintora-radius-pill);--tintora-button-border:1px solid var(--tintora-border-field);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-surface-field);--tintora-button-bg-hover:var(--tintora-surface-field);--tintora-button-bg-pressed:var(--tintora-fill-subtle);--tintora-icon-button-icon-size:18px}.tintora-icon-button--field:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-icon-button--field:enabled:active{border-color:var(--tintora-border-field)}.tintora-icon-button.tintora-icon-button--nav{--tintora-button-height:44px;--tintora-button-border-radius:var(--tintora-radius-14);--tintora-button-fg:var(--tintora-text-nav-idle);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-ghost-hover);--tintora-icon-button-icon-size:20px}.tintora-icon-button.tintora-icon-button--nav[aria-current=page]{--tintora-button-fg:#fff;--tintora-button-fg-hover:#fff;--tintora-button-fg-pressed:#fff;--tintora-button-bg:var(--tintora-color-accent);--tintora-button-bg-hover:var(--tintora-color-accent);--tintora-button-bg-pressed:var(--tintora-color-accent);--tintora-button-shadow:var(--tintora-shadow-accent)}.tintora-modal{box-sizing:border-box;width:min(var(--tintora-modal-width), calc(100vw - 32px));border:1px solid var(--tintora-border-modal);border-radius:var(--tintora-radius-32);max-width:none;max-height:calc(100vh - 32px);font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);flex-direction:column;gap:18px;padding:28px;overflow:auto}.tintora-modal[open]{display:flex}.tintora-modal::backdrop{background:var(--tintora-scrim)}@media (prefers-reduced-motion:no-preference){.tintora-modal,.tintora-modal::backdrop{opacity:0;transition:opacity .2s ease, scale .2s ease, overlay .2s allow-discrete, display .2s allow-discrete}.tintora-modal{scale:.96}.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:1}.tintora-modal[open]{scale:1}@starting-style{.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:0}.tintora-modal[open]{scale:.96}}}body:has(.tintora-modal:modal){overflow:hidden}.tintora-modal--sm{--tintora-modal-width:400px}.tintora-modal--md{--tintora-modal-width:520px}.tintora-modal--lg{--tintora-modal-width:640px}.tintora-modal--center{text-align:center;align-items:center}.tintora-modal__close{position:absolute;top:18px;right:18px}.tintora-modal__title{font-size:20px;font-weight:var(--tintora-font-weight-bold);line-height:var(--tintora-line-height-tight);margin:0;padding-inline-end:44px}.tintora-modal--center .tintora-modal__title{padding-inline:0}.tintora-modal__description{color:var(--tintora-text-muted);margin:8px 0 0;font-size:13.5px;line-height:1.55}.tintora-modal__icon{border:1px solid var(--tintora-modal-status-border);border-radius:var(--tintora-radius-pill);width:52px;height:52px;color:var(--tintora-modal-status-fg);background:var(--tintora-modal-status-bg);justify-content:center;align-items:center;display:flex}.tintora-modal--center .tintora-modal__icon{width:64px;height:64px}.tintora-modal__icon svg{width:24px;height:24px}.tintora-modal--center .tintora-modal__icon svg{width:30px;height:30px}.tintora-modal__icon--success{--tintora-modal-status-bg:var(--tintora-status-success-bg);--tintora-modal-status-border:var(--tintora-status-success-border);--tintora-modal-status-fg:var(--tintora-status-success-fg)}.tintora-modal__icon--error{--tintora-modal-status-bg:var(--tintora-status-error-bg);--tintora-modal-status-border:var(--tintora-status-error-border);--tintora-modal-status-fg:var(--tintora-status-error-fg)}.tintora-modal__icon--info{--tintora-modal-status-bg:var(--tintora-status-info-bg);--tintora-modal-status-border:var(--tintora-status-info-border);--tintora-modal-status-fg:var(--tintora-status-info-fg)}.tintora-modal__icon--warning{--tintora-modal-status-bg:var(--tintora-status-warning-bg);--tintora-modal-status-border:var(--tintora-status-warning-border);--tintora-modal-status-fg:var(--tintora-status-warning-fg)}.tintora-modal__actions{justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.tintora-modal--center .tintora-modal__actions{flex-direction:column;align-self:stretch}.tintora-popover-root{display:contents}.tintora-popover{box-sizing:border-box;border-radius:var(--tintora-radius-22);background:var(--tintora-surface-popover);border:1px solid var(--tintora-border-popover);box-shadow:var(--tintora-shadow-popover);flex-direction:column;gap:12px;margin:0;padding:18px;display:flex;position:fixed;inset:auto;overflow:visible}.tintora-popover--sm{border-radius:var(--tintora-radius-20);width:fit-content;padding:16px}.tintora-popover--md{width:300px}.tintora-popover:before{content:"";background:var(--tintora-surface-popover);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.tintora-popover--top:before{bottom:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-right:1px solid var(--tintora-border-popover);border-bottom:1px solid var(--tintora-border-popover)}.tintora-popover--bottom:before{top:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-popover--left:before{right:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-right:1px solid var(--tintora-border-popover)}.tintora-popover--right:before{left:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-bottom:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-progress-bar{flex-direction:column;gap:6px;display:flex}.tintora-progress-bar__header{font:var(--tintora-font-label);font-weight:var(--tintora-font-weight-semibold);justify-content:space-between;display:flex}.tintora-progress-bar__value{color:var(--tintora-text-muted)}.tintora-progress-bar__track{border-radius:var(--tintora-radius-pill);background:var(--tintora-fill-subtle-hover);height:8px;position:relative;overflow:hidden}.tintora-progress-bar__fill{border-radius:var(--tintora-radius-4);background:var(--tintora-control-fill);height:100%;position:absolute;top:0;left:0}.tintora-progress-bar__fill--complete{background:var(--tintora-status-success-fg)}.tintora-progress-bar__fill--indeterminate{width:40%;animation:1.3s ease-in-out infinite tintora-indeterminate}@keyframes tintora-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.tintora-progress-bar__fill--indeterminate{animation:none}}.tintora-radio{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-radio__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-radio__circle{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-pill);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-radio__circle:after{content:"";border-radius:var(--tintora-radius-pill);background:var(--tintora-control-fill);opacity:0;width:10px;height:10px}.tintora-radio__input:enabled:hover+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-radio__input:checked+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:0 0}.tintora-radio__input:checked+.tintora-radio__circle:after{opacity:1}.tintora-radio__input:focus-visible+.tintora-radio__circle{outline:2px solid var(--tintora-focus)}.tintora-radio__input:disabled{cursor:not-allowed}.tintora-radio__input:disabled+.tintora-radio__circle{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-radio__circle{transition:none}}.tintora-search-input{--tintora-search-input-font-size:.8125rem;--tintora-search-input-clear-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-pill);height:48px;color:var(--tintora-text-muted);background-color:var(--tintora-surface-field);align-items:center;gap:10px;padding:0 18px;display:flex}.tintora-search-input--disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-search-input__icon{flex-shrink:0;width:16px;height:16px}.tintora-search-input__input{min-width:0;font-family:inherit;font-size:var(--tintora-search-input-font-size);color:var(--tintora-text);background:0 0;border:0;outline:0;flex:1;padding:0}.tintora-search-input__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-search-input__input:disabled{cursor:not-allowed}.tintora-search-input__input::-webkit-search-decoration{display:none}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input:not(.tintora-search-input--disabled):hover{border-color:var(--tintora-border-field-hover)}.tintora-search-input:focus-within{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input__input::-webkit-search-cancel-button:hover{background-color:var(--tintora-focus)}.tintora-select{--tintora-select-font-size:.71875rem;display:inline-block;position:relative}.tintora-select__trigger{box-sizing:border-box;border-radius:var(--tintora-radius-14);height:28px;font-family:inherit;font-size:var(--tintora-select-font-size);font-weight:var(--tintora-font-weight-medium);color:var(--tintora-chip-fg);background-color:var(--tintora-chip-bg);cursor:pointer;border:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tintora-select__trigger:enabled:hover,.tintora-select__trigger[aria-expanded=true]{background-color:var(--tintora-chip-bg-hover)}.tintora-select__trigger:focus-visible{box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-select__trigger:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-select__value--placeholder{color:var(--tintora-text-on-card-muted)}.tintora-select__chevron{flex-shrink:0}.tintora-select__trigger[aria-expanded=true] .tintora-select__chevron{transform:rotate(180deg)}.tintora-select__menu{box-sizing:border-box;border:1px solid var(--tintora-menu-border);border-radius:var(--tintora-radius-14);max-height:50vh;color:var(--tintora-color-ink);background:var(--tintora-menu-bg);box-shadow:var(--tintora-menu-shadow);flex-direction:column;gap:2px;margin:0;padding:6px;display:flex;inset:auto;overflow-y:auto}.tintora-select__option{box-sizing:border-box;border-radius:var(--tintora-radius-12);min-height:32px;font:var(--tintora-font-body);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:0 10px;display:flex}.tintora-select__option--active{background:var(--tintora-menu-item-hover)}.tintora-select__option[aria-selected=true]{font-weight:var(--tintora-font-weight-bold);color:var(--tintora-color-accent-deep);background:var(--tintora-tint-accent)}.tintora-select__option[aria-disabled=true]{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}@media (pointer:coarse){.tintora-select__option{min-height:44px}}@media (forced-colors:active){.tintora-select__option--active{outline-offset:-2px;outline:2px solid highlight}}.tintora-skeleton{border-radius:var(--tintora-radius-pill);background:var(--tintora-shimmer);background-size:200% 100%;flex-shrink:0;width:100%;height:14px;animation:1.4s linear infinite tintora-shimmer;display:block}@keyframes tintora-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.tintora-skeleton{animation:none}}.tintora-switch{flex-shrink:0;width:44px;height:26px;display:inline-block;position:relative}.tintora-switch__input{opacity:0;cursor:pointer;width:100%;height:calc(100% + 18px);margin:0;position:absolute;inset:-9px 0}.tintora-switch__track{--tintora-switch-offset:3px;border-radius:var(--tintora-radius-pill);background:var(--tintora-switch-track);outline-offset:2px;pointer-events:none;transition:background .2s;position:absolute;inset:0}.tintora-switch__track:after{content:"";top:var(--tintora-switch-offset);left:var(--tintora-switch-offset);border-radius:var(--tintora-radius-pill);background:var(--tintora-color-white);width:20px;height:20px;box-shadow:var(--tintora-shadow-knob);transition:transform .2s;position:absolute}.tintora-switch__input:hover+.tintora-switch__track{background:var(--tintora-switch-track-hover)}.tintora-switch__input:checked+.tintora-switch__track{background:var(--tintora-control-fill)}.tintora-switch__input:checked+.tintora-switch__track:after{transform:translate(18px)}.tintora-switch__input:focus-visible+.tintora-switch__track{outline:2px solid var(--tintora-focus)}.tintora-switch__input:disabled{cursor:not-allowed}.tintora-switch__input:disabled+.tintora-switch__track{opacity:var(--tintora-opacity-disabled);background:var(--tintora-switch-track)}.tintora-switch__input:disabled:checked+.tintora-switch__track{background:var(--tintora-control-fill)}@media (prefers-reduced-motion:reduce){.tintora-switch__track,.tintora-switch__track:after{transition:none}}.tintora-tag{white-space:nowrap;font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);display:inline-block}.tintora-tag--neutral{background-color:var(--tintora-tag-bg);color:var(--tintora-tag-fg)}.tintora-tag--success{background-color:var(--tintora-color-success);color:var(--tintora-color-on-success)}.tintora-tag--accent{background-color:var(--tintora-color-accent-deep);color:var(--tintora-color-on-accent-deep);font-weight:var(--tintora-font-weight-bold)}.tintora-tag--card{background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg)}.tintora-tag--small{border-radius:var(--tintora-radius-8);padding:2px 8px}.tintora-tag--medium{border-radius:var(--tintora-radius-8);padding:3px 9px}.tintora-tag--large{border-radius:var(--tintora-radius-12);padding:5px 12px}.tintora-textfield{--tintora-textfield-font-size:.8125rem;flex-direction:column;gap:8px;display:inline-flex}.tintora-textfield--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-textfield__label{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);color:var(--tintora-text)}.tintora-textfield__input{box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-16);height:48px;font-family:inherit;font-size:var(--tintora-textfield-font-size);color:var(--tintora-text);background-color:var(--tintora-surface-field);padding:0 16px}.tintora-textfield__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-textfield__input:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-textfield__input:focus-visible{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-textfield__input[aria-invalid=true]{border-color:var(--tintora-text-error)}.tintora-textfield__input:disabled{cursor:not-allowed}.tintora-textfield__hint{font:var(--tintora-font-caption);color:var(--tintora-text-faint)}.tintora-textfield__hint--error{color:var(--tintora-text-error)}.tintora-toast{box-sizing:border-box;border-radius:var(--tintora-radius-18);background:var(--tintora-surface-toast);min-height:52px;color:var(--tintora-text-on-toast);box-shadow:var(--tintora-shadow-toast);align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.tintora-toast--timer{min-height:56px;padding:10px 10px 14px 16px;position:relative;overflow:hidden}.tintora-toast__message{min-width:0;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);flex:1}.tintora-toast__action{border-radius:var(--tintora-radius-pill);height:32px;font-family:inherit;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-extrabold);color:var(--tintora-toast-action);cursor:pointer;background:0 0;border:0;padding:0 12px;display:inline-block}.tintora-toast__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-on-toast-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-toast__progress{background:var(--tintora-toast-action);width:100%;height:4px;animation:progress-bar var(--tintora-toast-animation-duration) forwards;position:absolute;bottom:0;left:0}.tintora-toast--paused .tintora-toast__progress{animation-play-state:paused}@keyframes progress-bar{0%{width:100%}to{width:0}}@media (prefers-reduced-motion:reduce){.tintora-toast__progress{display:none}}.tintora-toggle{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-fill-subtle);gap:4px;padding:5px;display:inline-flex;position:relative}.tintora-toggle--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-toggle__item{box-sizing:border-box;border-radius:var(--tintora-radius-pill);min-width:34px;height:34px;color:var(--tintora-text-nav-idle);font:var(--tintora-font-label);cursor:pointer;outline-offset:2px;z-index:1;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:0 8px;transition:color .2s;display:inline-flex}.tintora-toggle__item[aria-pressed=true]{color:#fff}.tintora-toggle__thumb{width:var(--tintora-toggle-thumb-width);border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);transform:translateX(var(--tintora-toggle-thumb-x));pointer-events:none;transition:transform .2s;position:absolute;inset-block:5px;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.tintora-toggle__thumb,.tintora-toggle__item{transition:none}}.tintora-toggle__item:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-toggle__item:disabled{cursor:not-allowed}.tintora-toggle:not(.tintora-toggle--disabled) .tintora-toggle__item:disabled{opacity:var(--tintora-opacity-disabled)}.tintora-tooltip{display:contents}.tintora-tooltip__content{box-sizing:border-box;border-radius:var(--tintora-radius-10);width:max-content;font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);white-space:nowrap;color:var(--tintora-text-on-tooltip);background:var(--tintora-surface-tooltip);box-shadow:var(--tintora-shadow-tooltip);border:0;align-items:center;gap:10px;margin:0;padding:6px 10px;display:inline-flex;inset:auto;overflow:visible}.tintora-tooltip__content:before{content:"";background:inherit;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tintora-tooltip__content--top:before{bottom:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--bottom:before{top:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--left:before{right:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--right:before{left:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__shortcut{border-radius:var(--tintora-radius-6);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-bold);background:var(--tintora-tooltip-kbd-bg);margin-right:-2px;padding:2px 6px}.tintora-tooltip__content--rich{border-radius:var(--tintora-radius-12);width:220px;font-weight:var(--tintora-font-weight-medium);white-space:normal;padding:10px 12px;display:block}.tintora-tooltip__title{font:var(--tintora-font-label);display:block}.tintora-tooltip__text{min-width:0}.tintora-tooltip__content--rich .tintora-tooltip__text{color:var(--tintora-text-on-tooltip-muted);margin-top:2px;line-height:1.45;display:block}.tintora-tooltip__content--rich .tintora-tooltip__shortcut{margin-top:8px;display:inline-block}@media (prefers-reduced-motion:no-preference){.tintora-tooltip__content{animation:.12s ease-out tintora-tooltip-in}}@keyframes tintora-tooltip-in{0%{opacity:0}}
|
|
1
|
+
:root{--tintora-color-accent:#ee6b25;--tintora-color-accent-deep:#c94e0c;--tintora-color-success:#4cc56b;--tintora-color-planned:#f2698c;--tintora-color-heart:#c42a56;--tintora-color-steps:#1f7a38;--tintora-color-sleep:#2f4fc4;--tintora-color-ink:#1d1c1c;--tintora-color-white:#fff;--tintora-color-destructive:#b3261e;--tintora-color-on-accent:#1d0e04;--tintora-color-on-accent-deep:var(--tintora-color-white);--tintora-color-on-success:#0d200f;--tintora-color-on-planned:#260a13;--tintora-color-on-heart:var(--tintora-color-white);--tintora-color-on-steps:var(--tintora-color-white);--tintora-color-on-sleep:var(--tintora-color-white);--tintora-color-on-destructive:var(--tintora-color-white);--tintora-text-on-card-muted:#55524f;--tintora-chip-fg:#3c3a38;--tintora-chip-bg:#efedeb;--tintora-chip-bg-hover:#e4e1de;--tintora-chip-selected-fg:#8f3604;--tintora-chip-selected-bg:var(--tintora-color-white);--tintora-tint-accent:#fdeadd;--tintora-tint-heart:#fbe0e8;--tintora-tint-steps:#dcf3e1;--tintora-tint-sleep:#e0e7fb;--tintora-menu-bg:var(--tintora-color-white);--tintora-menu-border:#1d1c1c1a;--tintora-menu-shadow:0 16px 32px #00000038;--tintora-menu-item-hover:#1d1c1c12;--tintora-menu-item-destructive:var(--tintora-color-destructive);--tintora-chart-grid:#ece9e6;--tintora-chart-axis:#6f6b68;--tintora-chart-track:#e6e4e2;--tintora-surface-menu-row:#ffffff0d;--tintora-font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--tintora-font-weight-regular:400;--tintora-font-weight-medium:500;--tintora-font-weight-semibold:600;--tintora-font-weight-bold:700;--tintora-font-weight-extrabold:800;--tintora-line-height-tight:1.2;--tintora-font-display:700 1.625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-title:700 1.125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-heading:700 .9375rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-label:700 .78125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-body:500 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-caption:400 .6875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-stat-value:800 1.5625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-subtitle:700 .875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button:700 .8125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button-sm:700 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-tracking-tight:-.02em;--tintora-tracking-snug:-.01em;--tintora-tracking-wide:.04em;--tintora-radius-2:2px;--tintora-radius-4:4px;--tintora-radius-6:6px;--tintora-radius-7:7px;--tintora-radius-8:8px;--tintora-radius-9:9px;--tintora-radius-10:10px;--tintora-radius-12:12px;--tintora-radius-14:14px;--tintora-radius-16:16px;--tintora-radius-18:18px;--tintora-radius-20:20px;--tintora-radius-22:22px;--tintora-radius-26:26px;--tintora-radius-28:28px;--tintora-radius-30:30px;--tintora-radius-32:32px;--tintora-radius-34:34px;--tintora-radius-38:38px;--tintora-radius-40:40px;--tintora-radius-pill:9999px;--tintora-radius-card:var(--tintora-radius-20);--tintora-radius-panel:var(--tintora-radius-32);--tintora-shadow-selected:0 14px 30px #c94e0c73;--tintora-shadow-primary:0 8px 20px #c94e0c59;--tintora-shadow-accent:0 8px 20px #ee6b2566;--tintora-shadow-focus-ring:0 0 0 3px #ee6b2547;--tintora-shadow-menu:0 16px 32px #00000073;--tintora-shadow-tooltip:0 8px 20px #00000040;--tintora-shadow-knob:0 2px 4px #0000004d;--tintora-shadow-sheet:0 -16px 40px #00000059;--tintora-blur-glass:28px;--tintora-duration-fast:.15s;--tintora-duration-base:.2s;--tintora-opacity-disabled:.45}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tintora-bg:linear-gradient(180deg, #3e3b3a, #222020);--tintora-surface-glass:linear-gradient(180deg, #3e3b3acc, #222020e6);--tintora-surface-card:#fbfaf9;--tintora-surface-row:#ffffff0f;--tintora-surface-field:#100f0f9e;--tintora-surface-menu:#1e1c1cf7;--tintora-text:var(--tintora-color-white);--tintora-text-muted:#ffffffb8;--tintora-text-faint:#ffffffa6;--tintora-text-nav-idle:#ffffffc7;--tintora-text-day:#ffffffd1;--tintora-text-error:#ff9a8a;--tintora-border-glass:#ffffff14;--tintora-border-card:transparent;--tintora-border-row:#ffffff0f;--tintora-border-field:#ffffff14;--tintora-border-field-hover:#ffffff52;--tintora-line:#ffffff1a;--tintora-line-strong:#ffffff52;--tintora-fill-subtle:#ffffff1a;--tintora-fill-subtle-hover:#fff3;--tintora-fill-subtle-pressed:#ffffff47;--tintora-fill-ghost-hover:#ffffff1f;--tintora-fill-day-hover:#ffffff24;--tintora-tag-bg:#ffffff24;--tintora-tag-fg:var(--tintora-color-white);--tintora-focus:var(--tintora-color-accent);--tintora-ring:var(--tintora-color-white);--tintora-shadow-glass:0 30px 60px #00000059;--tintora-shadow-card:0 10px 24px #0000002e;--tintora-shadow-card-hover:0 18px 36px #00000052;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #deccb080, transparent 62%), radial-gradient(50% 45% at 96% 10%, #846a5680, transparent 62%);--tintora-text-placeholder:#ffffff9e;--tintora-scrim:#0a090999;--tintora-surface-modal:linear-gradient(180deg, #403c3b, #2a2726);--tintora-border-modal:#ffffff1f;--tintora-shadow-modal:0 40px 80px #00000080;--tintora-surface-popover:#2b2928;--tintora-border-popover:#ffffff24;--tintora-shadow-popover:0 24px 48px #00000073;--tintora-surface-tooltip:#fbfaf9;--tintora-text-on-tooltip:var(--tintora-color-ink);--tintora-text-on-tooltip-muted:#5a5754;--tintora-tooltip-kbd-bg:#1d1c1c1a;--tintora-surface-toast:#fbfaf9;--tintora-text-on-toast:var(--tintora-color-ink);--tintora-text-on-toast-muted:#5a5754;--tintora-toast-action:var(--tintora-color-accent-deep);--tintora-shadow-toast:0 16px 36px #0006;--tintora-toast-icon-success:var(--tintora-color-steps);--tintora-toast-icon-error:var(--tintora-color-destructive);--tintora-toast-icon-info:var(--tintora-color-sleep);--tintora-toast-icon-warning:#8a5600;--tintora-status-info-bg:#7896ff24;--tintora-status-info-border:#96afff61;--tintora-status-info-fg:#a9bcff;--tintora-status-success-bg:#4cc56b24;--tintora-status-success-border:#4cc56b66;--tintora-status-success-fg:#6ddb8b;--tintora-status-warning-bg:#f2a33a26;--tintora-status-warning-border:#f2a33a6b;--tintora-status-warning-fg:#f5b45a;--tintora-status-error-bg:#ff826e26;--tintora-status-error-border:#ff8c786b;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent);--tintora-control-on-fill:var(--tintora-color-on-accent);--tintora-control-border:#fff9;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#ffffff4d;--tintora-switch-track-hover:#fff6;--tintora-shimmer:linear-gradient(90deg, #ffffff14 0%, #fff3 50%, #ffffff14 100%)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}}.tintora-alert{box-sizing:border-box;border-radius:var(--tintora-radius-20);background:var(--tintora-alert-status-bg);border:var(--tintora-alert-status-border);align-items:flex-start;gap:14px;padding:16px 12px 16px 18px;display:flex}.tintora-alert--info{--tintora-alert-status-bg:var(--tintora-status-info-bg);--tintora-alert-status-border:1px solid var(--tintora-status-info-border)}.tintora-alert--success{--tintora-alert-status-bg:var(--tintora-status-success-bg);--tintora-alert-status-border:1px solid var(--tintora-status-success-border)}.tintora-alert--warning{--tintora-alert-status-bg:var(--tintora-status-warning-bg);--tintora-alert-status-border:1px solid var(--tintora-status-warning-border)}.tintora-alert--error{--tintora-alert-status-bg:var(--tintora-status-error-bg);--tintora-alert-status-border:1px solid var(--tintora-status-error-border)}.tintora-alert--announcement{border-radius:var(--tintora-radius-14);background:var(--tintora-color-accent-deep);height:44px;color:var(--tintora-color-on-accent-deep);font:var(--tintora-font-button);padding:0 16px}.tintora-alert__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tintora-alert__content--announcement{flex-direction:row;justify-content:center;align-items:center;gap:14px;height:100%}.tintora-alert__content--announcement>.tintora-alert__content__sub-title{color:inherit;font:var(--tintora-font-button)}.tintora-alert__content--announcement>.tintora-alert__content__action{font:var(--tintora-font-button);color:inherit;align-self:inherit;margin-top:0}.tintora-alert__content__title{font:var(--tintora-font-subtitle)}.tintora-alert__content__sub-title{font:var(--tintora-font-label);line-height:1.5;font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-muted)}.tintora-alert__content__action{font:var(--tintora-font-label);color:var(--tintora-alert-status-action);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:6px;padding:0;text-decoration:underline}.tintora-alert__content__action--info{--tintora-alert-status-action:var(--tintora-status-info-fg)}.tintora-alert__content__action--success{--tintora-alert-status-action:var(--tintora-status-success-fg)}.tintora-alert__content__action--warning{--tintora-alert-status-action:var(--tintora-status-warning-fg)}.tintora-alert__content__action--error{--tintora-alert-status-action:var(--tintora-status-error-fg)}.tintora-alert__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-avatar{border-radius:var(--tintora-radius-pill);color:var(--tintora-color-ink);font:var(--tintora-font-body);font-size:var(--tintora-avatar-font-size);font-weight:var(--tintora-font-weight-bold);background:linear-gradient(135deg,#f1d9bf,#c9a07a);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tintora-avatar>img{object-fit:cover;width:100%;height:100%}.tintora-avatar--small{--tintora-avatar-font-size:.6875rem;width:32px;height:32px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--medium{--tintora-avatar-font-size:.8125rem;width:40px;height:40px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--large{--tintora-avatar-font-size:.875rem;width:44px;height:44px;font-weight:var(--tintora-font-weight-bold)}.tintora-drawer{box-sizing:border-box;width:var(--tintora-drawer-width,100vw);height:var(--tintora-drawer-height,auto);border:1px solid var(--tintora-border-modal);max-width:none;max-height:none;font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);transform:var(--tintora-drawer-offset);margin:0;padding:28px;position:fixed;overflow:auto}.tintora-drawer[open]{transform:none}.tintora-drawer::backdrop{background:var(--tintora-scrim)}.tintora-drawer--from-left,.tintora-drawer--from-right{width:var(--tintora-drawer-width,400px);height:var(--tintora-drawer-height,100vh)}.tintora-drawer--from-right{border-radius:var(--tintora-radius-32) 0 0 var(--tintora-radius-32);--tintora-drawer-offset:translateX(100%);inset:0 0 0 auto}.tintora-drawer--from-left{border-radius:0 var(--tintora-radius-32) var(--tintora-radius-32) 0;--tintora-drawer-offset:translateX(-100%);inset:0 auto 0 0}.tintora-drawer--from-top{border-radius:0 0 var(--tintora-radius-32) var(--tintora-radius-32);--tintora-drawer-offset:translateY(-100%);inset:0 0 auto}.tintora-drawer--from-bottom{border-radius:var(--tintora-radius-32) var(--tintora-radius-32) 0 0;--tintora-drawer-offset:translateY(100%);inset:auto 0 0}@media (width<=480px){.tintora-drawer--from-left,.tintora-drawer--from-right{border-radius:0;width:100vw}}@media (prefers-reduced-motion:no-preference){.tintora-drawer,.tintora-drawer::backdrop{transition:transform .3s ease, opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete}.tintora-drawer::backdrop{opacity:0}.tintora-drawer[open]::backdrop{opacity:1}@starting-style{.tintora-drawer[open]{transform:var(--tintora-drawer-offset)}.tintora-drawer[open]::backdrop{opacity:0}}}body:has(.tintora-drawer:modal){overflow:hidden}.tintora-drawer.tintora-bottom-sheet{border:0;border-top:1px solid var(--tintora-border-popover);border-radius:var(--tintora-radius-28) var(--tintora-radius-28) 0 0;max-height:calc(100dvh - 48px);box-shadow:var(--tintora-shadow-sheet);flex-direction:column;gap:6px;padding:10px 16px 16px}.tintora-drawer.tintora-bottom-sheet[open]{display:flex}.tintora-bottom-sheet__grabber{border-radius:var(--tintora-radius-pill);background:var(--tintora-text-faint);flex:none;align-self:center;width:36px;height:4px}.tintora-bottom-sheet__title{font:var(--tintora-font-heading);padding:8px 4px 6px}.tintora-bottom-sheet__option{box-sizing:border-box;border-radius:var(--tintora-radius-16);height:48px;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);text-align:left;color:var(--tintora-text);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.tintora-bottom-sheet__option:hover{background:var(--tintora-fill-subtle-hover)}.tintora-bottom-sheet__option:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-bottom-sheet__option[aria-pressed=true]{background:var(--tintora-fill-subtle)}.tintora-bottom-sheet__check{color:var(--tintora-control-fill);opacity:0;flex:none}.tintora-bottom-sheet__option[aria-pressed=true] .tintora-bottom-sheet__check{opacity:1}.tintora-spinner{flex-shrink:0;animation:.9s linear infinite tintora-spin}@keyframes tintora-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tintora-spinner{animation:none}}.tintora-button{--tintora-button-border:1px solid transparent;box-sizing:border-box;cursor:pointer;outline-offset:2px;height:var(--tintora-button-height);padding:0 var(--tintora-button-padding-x);border:var(--tintora-button-border);border-radius:var(--tintora-button-border-radius);font-family:inherit;font-size:var(--tintora-button-font-size);font-weight:var(--tintora-button-font-weight);color:var(--tintora-button-fg);background-color:var(--tintora-button-bg);box-shadow:var(--tintora-button-shadow,none);outline:none;justify-content:center;align-items:center;gap:8px;display:inline-flex}.tintora-button--small{--tintora-button-height:32px;--tintora-button-padding-x:14px;--tintora-button-border-radius:16px;--tintora-button-font-size:12px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--medium{--tintora-button-height:40px;--tintora-button-padding-x:18px;--tintora-button-border-radius:20px;--tintora-button-font-size:13px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--large{--tintora-button-height:48px;--tintora-button-padding-x:24px;--tintora-button-border-radius:24px;--tintora-button-font-size:14px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button__icon{flex-shrink:0;display:inline-flex}.tintora-button--leading-icon{padding-inline-start:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--trailing-icon{padding-inline-end:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--primary{--tintora-button-fg:var(--tintora-color-on-accent-deep);--tintora-button-bg:var(--tintora-color-accent-deep);--tintora-button-shadow:var(--tintora-shadow-primary);--tintora-button-filter-hover:brightness(1.14);--tintora-button-filter-pressed:brightness(.9)}.tintora-button--secondary{--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-fill-subtle);--tintora-button-bg-hover:var(--tintora-fill-subtle-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle-pressed)}.tintora-button--outline{--tintora-button-border:1px solid var(--tintora-line-strong);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button--ghost{--tintora-button-fg:var(--tintora-text-muted);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button:enabled:hover{color:var(--tintora-button-fg-hover,var(--tintora-button-fg));background-color:var(--tintora-button-bg-hover,var(--tintora-button-bg));filter:var(--tintora-button-filter-hover,none)}.tintora-button:enabled:active{color:var(--tintora-button-fg-pressed,var(--tintora-button-fg));background-color:var(--tintora-button-bg-pressed,var(--tintora-button-bg));filter:var(--tintora-button-filter-pressed,none);transform:translateY(1px)}.tintora-button:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-button:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed;box-shadow:none}.tintora-button--loading:disabled{opacity:.85;cursor:progress}.tintora-card{box-sizing:border-box;font:inherit;text-align:start;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.tintora-card--surface{border-color:var(--tintora-border-card);border-radius:var(--tintora-radius-card);background:var(--tintora-surface-card);box-shadow:var(--tintora-shadow-card);color:var(--tintora-color-ink);--tintora-card-text-muted:var(--tintora-text-on-card-muted);padding:18px 18px 18px 20px}.tintora-card--row{border-color:var(--tintora-border-row);border-radius:var(--tintora-radius-18);background:var(--tintora-surface-row);color:var(--tintora-text);--tintora-card-text-muted:var(--tintora-text-faint);justify-content:flex-start;padding:10px 6px 10px 10px}.tintora-card--selectable{cursor:pointer;width:100%}@media (prefers-reduced-motion:no-preference){.tintora-card--selectable{transition:transform .15s,box-shadow .15s,background-color .15s}}.tintora-card--selectable:not(.tintora-card--selected):hover{box-shadow:var(--tintora-shadow-card-hover);transform:translateY(-3px)}.tintora-card--selectable:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-card--selectable:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-card--selected{background:var(--tintora-color-accent-deep);box-shadow:var(--tintora-shadow-selected);color:var(--tintora-color-on-accent-deep);--tintora-card-text-muted:var(--tintora-color-on-accent-deep);border-color:#0000}.tintora-card--selected .tintora-tag--card{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-checkbox{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-checkbox__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-checkbox__box{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-7);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-checkbox__check,.tintora-checkbox__dash{stroke:var(--tintora-control-on-fill);opacity:0;position:absolute}.tintora-checkbox__input:enabled:hover+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-checkbox__input:checked+.tintora-checkbox__box,.tintora-checkbox__input:indeterminate+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-fill)}.tintora-checkbox__input:checked+.tintora-checkbox__box .tintora-checkbox__check{opacity:1}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__check{opacity:0}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__dash{opacity:1}.tintora-checkbox__input:focus-visible+.tintora-checkbox__box{outline:2px solid var(--tintora-focus)}.tintora-checkbox__input:disabled{cursor:not-allowed}.tintora-checkbox__input:disabled+.tintora-checkbox__box{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-checkbox__box{transition:none}}.tintora-chip{border-radius:var(--tintora-radius-12);background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);cursor:pointer;outline-offset:2px;border:0;outline:none;align-items:center;padding:6px 12px;display:inline-flex}.tintora-chip:enabled:hover:not([aria-pressed=true]){background-color:var(--tintora-chip-bg-hover)}.tintora-chip[aria-pressed=true]{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-chip:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-chip:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-dot{box-sizing:border-box;forced-color-adjust:none;flex-shrink:0;display:inline-block}.tintora-dot--unread{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);width:8px;height:8px}.tintora-dot--read{border-radius:var(--tintora-radius-pill);border:1.5px solid var(--tintora-text-faint);width:8px;height:8px}.tintora-dot--tick{background-color:var(--tintora-color-accent);border-radius:2px;width:3px;height:15px}.tintora-button.tintora-icon-button{--tintora-button-padding-x:0px}.tintora-icon-button{width:var(--tintora-button-height);flex-shrink:0}.tintora-icon-button__icon{display:inline-flex}.tintora-icon-button__icon svg{width:var(--tintora-icon-button-icon-size);height:var(--tintora-icon-button-icon-size)}.tintora-icon-button.tintora-icon-button--small{--tintora-button-height:32px;--tintora-icon-button-icon-size:14px}.tintora-icon-button.tintora-icon-button--medium{--tintora-button-height:36px;--tintora-icon-button-icon-size:15px}.tintora-icon-button.tintora-icon-button--large{--tintora-button-height:44px;--tintora-icon-button-icon-size:18px}.tintora-icon-button.tintora-icon-button--round{--tintora-button-border-radius:var(--tintora-radius-pill)}.tintora-icon-button.tintora-icon-button--field{--tintora-button-height:48px;--tintora-button-border-radius:var(--tintora-radius-pill);--tintora-button-border:1px solid var(--tintora-border-field);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-surface-field);--tintora-button-bg-hover:var(--tintora-surface-field);--tintora-button-bg-pressed:var(--tintora-fill-subtle);--tintora-icon-button-icon-size:18px}.tintora-icon-button--field:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-icon-button--field:enabled:active{border-color:var(--tintora-border-field)}.tintora-icon-button.tintora-icon-button--nav{--tintora-button-height:44px;--tintora-button-border-radius:var(--tintora-radius-14);--tintora-button-fg:var(--tintora-text-nav-idle);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-ghost-hover);--tintora-icon-button-icon-size:20px}.tintora-icon-button.tintora-icon-button--nav[aria-current=page]{--tintora-button-fg:#fff;--tintora-button-fg-hover:#fff;--tintora-button-fg-pressed:#fff;--tintora-button-bg:var(--tintora-color-accent);--tintora-button-bg-hover:var(--tintora-color-accent);--tintora-button-bg-pressed:var(--tintora-color-accent);--tintora-button-shadow:var(--tintora-shadow-accent)}.tintora-modal{box-sizing:border-box;width:min(var(--tintora-modal-width), calc(100vw - 32px));border:1px solid var(--tintora-border-modal);border-radius:var(--tintora-radius-32);max-width:none;max-height:calc(100vh - 32px);font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);flex-direction:column;gap:18px;padding:28px;overflow:auto}.tintora-modal[open]{display:flex}.tintora-modal::backdrop{background:var(--tintora-scrim)}@media (prefers-reduced-motion:no-preference){.tintora-modal,.tintora-modal::backdrop{opacity:0;transition:opacity .2s ease, scale .2s ease, overlay .2s allow-discrete, display .2s allow-discrete}.tintora-modal{scale:.96}.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:1}.tintora-modal[open]{scale:1}@starting-style{.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:0}.tintora-modal[open]{scale:.96}}}body:has(.tintora-modal:modal){overflow:hidden}.tintora-modal--sm{--tintora-modal-width:400px}.tintora-modal--md{--tintora-modal-width:520px}.tintora-modal--lg{--tintora-modal-width:640px}.tintora-modal--center{text-align:center;align-items:center}.tintora-modal__close{position:absolute;top:18px;right:18px}.tintora-modal__title{font-size:20px;font-weight:var(--tintora-font-weight-bold);line-height:var(--tintora-line-height-tight);margin:0;padding-inline-end:44px}.tintora-modal--center .tintora-modal__title{padding-inline:0}.tintora-modal__description{color:var(--tintora-text-muted);margin:8px 0 0;font-size:13.5px;line-height:1.55}.tintora-modal__icon{border:1px solid var(--tintora-modal-status-border);border-radius:var(--tintora-radius-pill);width:52px;height:52px;color:var(--tintora-modal-status-fg);background:var(--tintora-modal-status-bg);justify-content:center;align-items:center;display:flex}.tintora-modal--center .tintora-modal__icon{width:64px;height:64px}.tintora-modal__icon svg{width:24px;height:24px}.tintora-modal--center .tintora-modal__icon svg{width:30px;height:30px}.tintora-modal__icon--success{--tintora-modal-status-bg:var(--tintora-status-success-bg);--tintora-modal-status-border:var(--tintora-status-success-border);--tintora-modal-status-fg:var(--tintora-status-success-fg)}.tintora-modal__icon--error{--tintora-modal-status-bg:var(--tintora-status-error-bg);--tintora-modal-status-border:var(--tintora-status-error-border);--tintora-modal-status-fg:var(--tintora-status-error-fg)}.tintora-modal__icon--info{--tintora-modal-status-bg:var(--tintora-status-info-bg);--tintora-modal-status-border:var(--tintora-status-info-border);--tintora-modal-status-fg:var(--tintora-status-info-fg)}.tintora-modal__icon--warning{--tintora-modal-status-bg:var(--tintora-status-warning-bg);--tintora-modal-status-border:var(--tintora-status-warning-border);--tintora-modal-status-fg:var(--tintora-status-warning-fg)}.tintora-modal__actions{justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.tintora-modal--center .tintora-modal__actions{flex-direction:column;align-self:stretch}.tintora-popover-root{display:contents}.tintora-popover{box-sizing:border-box;border-radius:var(--tintora-radius-22);background:var(--tintora-surface-popover);border:1px solid var(--tintora-border-popover);box-shadow:var(--tintora-shadow-popover);flex-direction:column;gap:12px;margin:0;padding:18px;display:flex;position:fixed;inset:auto;overflow:visible}.tintora-popover--sm{border-radius:var(--tintora-radius-20);width:fit-content;padding:16px}.tintora-popover--md{width:300px}.tintora-popover:before{content:"";background:var(--tintora-surface-popover);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.tintora-popover--top:before{bottom:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-right:1px solid var(--tintora-border-popover);border-bottom:1px solid var(--tintora-border-popover)}.tintora-popover--bottom:before{top:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-popover--left:before{right:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-right:1px solid var(--tintora-border-popover)}.tintora-popover--right:before{left:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-bottom:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-progress-bar{flex-direction:column;gap:6px;display:flex}.tintora-progress-bar__header{font:var(--tintora-font-label);font-weight:var(--tintora-font-weight-semibold);justify-content:space-between;display:flex}.tintora-progress-bar__value{color:var(--tintora-text-muted)}.tintora-progress-bar__track{border-radius:var(--tintora-radius-pill);background:var(--tintora-fill-subtle-hover);height:8px;position:relative;overflow:hidden}.tintora-progress-bar__fill{border-radius:var(--tintora-radius-4);background:var(--tintora-control-fill);height:100%;position:absolute;top:0;left:0}.tintora-progress-bar__fill--complete{background:var(--tintora-status-success-fg)}.tintora-progress-bar__fill--indeterminate{width:40%;animation:1.3s ease-in-out infinite tintora-indeterminate}@keyframes tintora-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.tintora-progress-bar__fill--indeterminate{animation:none}}.tintora-radio{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-radio__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-radio__circle{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-pill);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-radio__circle:after{content:"";border-radius:var(--tintora-radius-pill);background:var(--tintora-control-fill);opacity:0;width:10px;height:10px}.tintora-radio__input:enabled:hover+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-radio__input:checked+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:0 0}.tintora-radio__input:checked+.tintora-radio__circle:after{opacity:1}.tintora-radio__input:focus-visible+.tintora-radio__circle{outline:2px solid var(--tintora-focus)}.tintora-radio__input:disabled{cursor:not-allowed}.tintora-radio__input:disabled+.tintora-radio__circle{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-radio__circle{transition:none}}.tintora-search-input{--tintora-search-input-font-size:.8125rem;--tintora-search-input-clear-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-pill);height:48px;color:var(--tintora-text-muted);background-color:var(--tintora-surface-field);align-items:center;gap:10px;padding:0 18px;display:flex}.tintora-search-input--disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-search-input__icon{flex-shrink:0;width:16px;height:16px}.tintora-search-input__input{min-width:0;font-family:inherit;font-size:var(--tintora-search-input-font-size);color:var(--tintora-text);background:0 0;border:0;outline:0;flex:1;padding:0}.tintora-search-input__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-search-input__input:disabled{cursor:not-allowed}.tintora-search-input__input::-webkit-search-decoration{display:none}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input:not(.tintora-search-input--disabled):hover{border-color:var(--tintora-border-field-hover)}.tintora-search-input:focus-within{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input__input::-webkit-search-cancel-button:hover{background-color:var(--tintora-focus)}.tintora-select{--tintora-select-font-size:.71875rem;display:inline-block;position:relative}.tintora-select__trigger{box-sizing:border-box;border-radius:var(--tintora-radius-14);height:28px;font-family:inherit;font-size:var(--tintora-select-font-size);font-weight:var(--tintora-font-weight-medium);color:var(--tintora-chip-fg);background-color:var(--tintora-chip-bg);cursor:pointer;border:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tintora-select__trigger:enabled:hover,.tintora-select__trigger[aria-expanded=true]{background-color:var(--tintora-chip-bg-hover)}.tintora-select__trigger:focus-visible{box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-select__trigger:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-select__value--placeholder{color:var(--tintora-text-on-card-muted)}.tintora-select__chevron{flex-shrink:0}.tintora-select__trigger[aria-expanded=true] .tintora-select__chevron{transform:rotate(180deg)}.tintora-select__menu{box-sizing:border-box;border:1px solid var(--tintora-menu-border);border-radius:var(--tintora-radius-14);max-height:50vh;color:var(--tintora-color-ink);background:var(--tintora-menu-bg);box-shadow:var(--tintora-menu-shadow);flex-direction:column;gap:2px;margin:0;padding:6px;display:flex;inset:auto;overflow-y:auto}.tintora-select__option{box-sizing:border-box;border-radius:var(--tintora-radius-12);min-height:32px;font:var(--tintora-font-body);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:0 10px;display:flex}.tintora-select__option--active{background:var(--tintora-menu-item-hover)}.tintora-select__option[aria-selected=true]{font-weight:var(--tintora-font-weight-bold);color:var(--tintora-color-accent-deep);background:var(--tintora-tint-accent)}.tintora-select__option[aria-disabled=true]{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}@media (pointer:coarse){.tintora-select__option{min-height:44px}}@media (forced-colors:active){.tintora-select__option--active{outline-offset:-2px;outline:2px solid highlight}}.tintora-skeleton{border-radius:var(--tintora-radius-pill);background:var(--tintora-shimmer);background-size:200% 100%;flex-shrink:0;width:100%;height:14px;animation:1.4s linear infinite tintora-shimmer;display:block}@keyframes tintora-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.tintora-skeleton{animation:none}}.tintora-switch{flex-shrink:0;width:44px;height:26px;display:inline-block;position:relative}.tintora-switch__input{opacity:0;cursor:pointer;width:100%;height:calc(100% + 18px);margin:0;position:absolute;inset:-9px 0}.tintora-switch__track{--tintora-switch-offset:3px;border-radius:var(--tintora-radius-pill);background:var(--tintora-switch-track);outline-offset:2px;pointer-events:none;transition:background .2s;position:absolute;inset:0}.tintora-switch__track:after{content:"";top:var(--tintora-switch-offset);left:var(--tintora-switch-offset);border-radius:var(--tintora-radius-pill);background:var(--tintora-color-white);width:20px;height:20px;box-shadow:var(--tintora-shadow-knob);transition:transform .2s;position:absolute}.tintora-switch__input:hover+.tintora-switch__track{background:var(--tintora-switch-track-hover)}.tintora-switch__input:checked+.tintora-switch__track{background:var(--tintora-control-fill)}.tintora-switch__input:checked+.tintora-switch__track:after{transform:translate(18px)}.tintora-switch__input:focus-visible+.tintora-switch__track{outline:2px solid var(--tintora-focus)}.tintora-switch__input:disabled{cursor:not-allowed}.tintora-switch__input:disabled+.tintora-switch__track{opacity:var(--tintora-opacity-disabled);background:var(--tintora-switch-track)}.tintora-switch__input:disabled:checked+.tintora-switch__track{background:var(--tintora-control-fill)}@media (prefers-reduced-motion:reduce){.tintora-switch__track,.tintora-switch__track:after{transition:none}}.tintora-tag{white-space:nowrap;font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);display:inline-block}.tintora-tag--neutral{background-color:var(--tintora-tag-bg);color:var(--tintora-tag-fg)}.tintora-tag--success{background-color:var(--tintora-color-success);color:var(--tintora-color-on-success)}.tintora-tag--accent{background-color:var(--tintora-color-accent-deep);color:var(--tintora-color-on-accent-deep);font-weight:var(--tintora-font-weight-bold)}.tintora-tag--card{background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg)}.tintora-tag--small{border-radius:var(--tintora-radius-8);padding:2px 8px}.tintora-tag--medium{border-radius:var(--tintora-radius-8);padding:3px 9px}.tintora-tag--large{border-radius:var(--tintora-radius-12);padding:5px 12px}.tintora-textfield{--tintora-textfield-font-size:.8125rem;flex-direction:column;gap:8px;display:inline-flex}.tintora-textfield--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-textfield__label{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);color:var(--tintora-text)}.tintora-textfield__input{box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-16);height:48px;font-family:inherit;font-size:var(--tintora-textfield-font-size);color:var(--tintora-text);background-color:var(--tintora-surface-field);padding:0 16px}.tintora-textfield__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-textfield__input:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-textfield__input:focus-visible{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-textfield__input[aria-invalid=true]{border-color:var(--tintora-text-error)}.tintora-textfield__input:disabled{cursor:not-allowed}.tintora-textfield__hint{font:var(--tintora-font-caption);color:var(--tintora-text-faint)}.tintora-textfield__hint--error{color:var(--tintora-text-error)}.tintora-toast{box-sizing:border-box;border-radius:var(--tintora-radius-18);background:var(--tintora-surface-toast);min-height:52px;color:var(--tintora-text-on-toast);box-shadow:var(--tintora-shadow-toast);align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.tintora-toast--timer{min-height:56px;padding:10px 10px 14px 16px;position:relative;overflow:hidden}.tintora-toast__message{min-width:0;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);flex:1}.tintora-toast__action{border-radius:var(--tintora-radius-pill);height:32px;font-family:inherit;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-extrabold);color:var(--tintora-toast-action);cursor:pointer;background:0 0;border:0;padding:0 12px;display:inline-block}.tintora-toast__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-on-toast-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-toast__progress{background:var(--tintora-toast-action);width:100%;height:4px;animation:progress-bar var(--tintora-toast-animation-duration) forwards;position:absolute;bottom:0;left:0}.tintora-toast--paused .tintora-toast__progress{animation-play-state:paused}@keyframes progress-bar{0%{width:100%}to{width:0}}@media (prefers-reduced-motion:reduce){.tintora-toast__progress{display:none}}.tintora-toggle{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-fill-subtle);gap:4px;padding:5px;display:inline-flex;position:relative}.tintora-toggle--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-toggle__item{box-sizing:border-box;border-radius:var(--tintora-radius-pill);min-width:34px;height:34px;color:var(--tintora-text-nav-idle);font:var(--tintora-font-label);cursor:pointer;outline-offset:2px;z-index:1;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:0 8px;transition:color .2s;display:inline-flex}.tintora-toggle__item[aria-pressed=true]{color:#fff}.tintora-toggle__thumb{width:var(--tintora-toggle-thumb-width);border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);transform:translateX(var(--tintora-toggle-thumb-x));pointer-events:none;transition:transform .2s;position:absolute;inset-block:5px;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.tintora-toggle__thumb,.tintora-toggle__item{transition:none}}.tintora-toggle__item:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-toggle__item:disabled{cursor:not-allowed}.tintora-toggle:not(.tintora-toggle--disabled) .tintora-toggle__item:disabled{opacity:var(--tintora-opacity-disabled)}.tintora-tooltip{display:contents}.tintora-tooltip__content{box-sizing:border-box;border-radius:var(--tintora-radius-10);width:max-content;font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);white-space:nowrap;color:var(--tintora-text-on-tooltip);background:var(--tintora-surface-tooltip);box-shadow:var(--tintora-shadow-tooltip);border:0;align-items:center;gap:10px;margin:0;padding:6px 10px;display:inline-flex;inset:auto;overflow:visible}.tintora-tooltip__content:before{content:"";background:inherit;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tintora-tooltip__content--top:before{bottom:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--bottom:before{top:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--left:before{right:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--right:before{left:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__shortcut{border-radius:var(--tintora-radius-6);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-bold);background:var(--tintora-tooltip-kbd-bg);margin-right:-2px;padding:2px 6px}.tintora-tooltip__content--rich{border-radius:var(--tintora-radius-12);width:220px;font-weight:var(--tintora-font-weight-medium);white-space:normal;padding:10px 12px;display:block}.tintora-tooltip__title{font:var(--tintora-font-label);display:block}.tintora-tooltip__text{min-width:0}.tintora-tooltip__content--rich .tintora-tooltip__text{color:var(--tintora-text-on-tooltip-muted);margin-top:2px;line-height:1.45;display:block}.tintora-tooltip__content--rich .tintora-tooltip__shortcut{margin-top:8px;display:inline-block}@media (prefers-reduced-motion:no-preference){.tintora-tooltip__content{animation:.12s ease-out tintora-tooltip-in}}@keyframes tintora-tooltip-in{0%{opacity:0}}
|
|
2
2
|
/*$vite$:1*/
|