From 36eaeb98e094ba5ef6dd15078ab42f5124d4f5ec Mon Sep 17 00:00:00 2001 From: Dziad Borowy Date: Tue, 29 Aug 2023 16:10:54 +0100 Subject: [PATCH 1/5] add utilities docs - part 1 --- CHANGELOG.md | 13 +- docs-src/code-example/CodeExample.svelte | 4 +- docs-src/components/index.js | 1 + docs-src/components/utils/Utils.css | 5 + docs-src/components/utils/Utils.svelte | 49 +++++ docs-src/components/utils/fn-animate.svelte | 25 +++ docs-src/components/utils/fn-blink.svelte | 22 ++ docs-src/components/utils/index.js | 1 + .../utils/prop-focusable-selector.svelte | 20 ++ .../components/utils/prop-prefers-dark.svelte | 21 ++ docs-src/header/Header.css | 2 +- docs-src/nav/Nav.css | 5 +- docs-src/nav/Nav.svelte | 3 +- docs-src/pages/changelog.svelte | 11 +- docs-src/pages/start.css | 4 +- docs/docs.css | 2 +- docs/docs.js | 188 ++++++++++-------- docs/ui.css | 2 +- src/dialog/Dialog.css | 2 +- src/drawer/Drawer.css | 2 +- src/input/combobox/Combobox.css | 2 +- src/input/input-date/InputDate.css | 2 +- src/input/input-password/InputPassword.css | 2 +- src/menu/Menu.css | 8 +- src/menu/Menu.svelte | 35 +++- src/menu/MenuItem.svelte | 2 +- .../NotificationArchive.css | 2 +- .../NotificationArchive.svelte | 11 +- .../NotificationCenter/NotificationCenter.css | 4 +- .../NotificationCenter.svelte | 11 +- src/notification-center/store.js | 20 +- src/notification-center/utils.js | 18 ++ src/popover/Popover.css | 2 +- src/root.css | 16 +- src/utils.js | 6 +- 35 files changed, 394 insertions(+), 129 deletions(-) create mode 100644 docs-src/components/utils/Utils.css create mode 100644 docs-src/components/utils/Utils.svelte create mode 100644 docs-src/components/utils/fn-animate.svelte create mode 100644 docs-src/components/utils/fn-blink.svelte create mode 100644 docs-src/components/utils/index.js create mode 100644 docs-src/components/utils/prop-focusable-selector.svelte create mode 100644 docs-src/components/utils/prop-prefers-dark.svelte create mode 100644 src/notification-center/utils.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d1ccfd8..6f376f4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,17 @@ Changelog ========= -## v9.0.0 *(2023-08-28)* -- **Improved**: `Tooltip` was simplified and now the positioning ensures that the tooltip is always visible on the screen. -- **Improved**: `Popover` will now update its position when the window is resized. +## v9.0.0 *(2023-08-?)* +- **New**: added `Utils` page in the docs with APIs to the utility functions exposed by the library. +- `Tooltip` was simplified and now the positioning ensures that the tooltip is always visible on the screen. +- `Popover` will now update its position when the window is resized. - The tip of the `Tooltip` and `Popover` will now try to be centered on the target element (if the box was offset from the screen edge). +- Improved keyboard focus for notifications: when a notification is dismissed from the keyboard (Escape) the focus will be moved to the next available notification. +- Improved & standardised z-index throughout the components. +- Tweaked `Menu` positioning to update on window resize. +- Tweaked `MenuItem` for responsiveness (e.g. add ellipsis if the text is too long). + + ### Breaking changes - The `events` property was dropped from the `Tooltip`, leaving *hover* and *focus* events as the default. For use cases when the *click* was needed, `Popover` should be used instead. diff --git a/docs-src/code-example/CodeExample.svelte b/docs-src/code-example/CodeExample.svelte index e358b672..8bd443f0 100644 --- a/docs-src/code-example/CodeExample.svelte +++ b/docs-src/code-example/CodeExample.svelte @@ -1,5 +1,6 @@ {#if !notitle} -

Example

+ {#if nohr === undefined}
{/if} +

Example

{/if}

 	{@html encode(html)}
@@ -8,6 +9,7 @@
 
diff --git a/docs-src/components/utils/fn-animate.svelte b/docs-src/components/utils/fn-animate.svelte
new file mode 100644
index 00000000..52f7156d
--- /dev/null
+++ b/docs-src/components/utils/fn-animate.svelte
@@ -0,0 +1,25 @@
+

animate(element, from, to, options?)

+ +

Animates an element from one state to another. Shortcut & wrapper for the native javascript animation.

+ +
    +
  • element - HTMLElement to animate +
  • from - object of properties to animate from, e.g. { opacity: 0 } +
  • to - object of properties to animate to, e.g. { opacity: 1 } +
  • options - optional object of animation options: duration, easing, fill (see more at MDN). +
  • Returns a promise which resolves when the animation finishes. +
+ + + + diff --git a/docs-src/components/utils/fn-blink.svelte b/docs-src/components/utils/fn-blink.svelte new file mode 100644 index 00000000..e7687f69 --- /dev/null +++ b/docs-src/components/utils/fn-blink.svelte @@ -0,0 +1,22 @@ +

blink(element, duration = 160)

+

Animates an element by changing its opacity from 0.5 to 1.

+
    +
  • element - HTMLElement to animate +
  • duration - how long to animate (in ms). +
  • Returns a promise which resolves when the animation finishes. +
+ + + + diff --git a/docs-src/components/utils/index.js b/docs-src/components/utils/index.js new file mode 100644 index 00000000..f4ba060a --- /dev/null +++ b/docs-src/components/utils/index.js @@ -0,0 +1 @@ +export { default as Utils } from './Utils.svelte'; diff --git a/docs-src/components/utils/prop-focusable-selector.svelte b/docs-src/components/utils/prop-focusable-selector.svelte new file mode 100644 index 00000000..a3bd97aa --- /dev/null +++ b/docs-src/components/utils/prop-focusable-selector.svelte @@ -0,0 +1,20 @@ +

FOCUSABLE_SELECTOR

+
    +
  • Svelte store* +
  • Type: string +
  • Returns a list of selectors that can be focused. +
+ + + diff --git a/docs-src/components/utils/prop-prefers-dark.svelte b/docs-src/components/utils/prop-prefers-dark.svelte new file mode 100644 index 00000000..1f550648 --- /dev/null +++ b/docs-src/components/utils/prop-prefers-dark.svelte @@ -0,0 +1,21 @@ +

PREFERS_DARK

+
    +
  • Svelte store* +
  • Type: boolean +
  • Updates on system theme change. +
  • Returns user preference for dark mode. +
+ + + + diff --git a/docs-src/header/Header.css b/docs-src/header/Header.css index 34a3c0f9..b1e9af05 100644 --- a/docs-src/header/Header.css +++ b/docs-src/header/Header.css @@ -3,5 +3,5 @@ position: fixed; top: 0.5rem; right: 0.6rem; - z-index: 1000; + z-index: 55; } diff --git a/docs-src/nav/Nav.css b/docs-src/nav/Nav.css index f24b26b1..5f42b211 100644 --- a/docs-src/nav/Nav.css +++ b/docs-src/nav/Nav.css @@ -11,7 +11,7 @@ aside { padding: 0 1rem calc(100lvh - 100svh); overscroll-behavior: contain; - z-index: 10; + z-index: 60; } menu { @@ -52,7 +52,7 @@ menu a.active { background-color: var(--ui-color-highlight); } position: fixed; left: 0; top: 0.4rem; - z-index: 1001; + z-index: 65; color: var(--ui-color-text-1); display: none; transform: translateX(10px); @@ -65,7 +65,6 @@ menu a.active { background-color: var(--ui-color-highlight); } .nav-toggler.expanded { transform: translateX(calc(var(--sidebar-width) - 40px)); } aside { - z-index: 1000; box-shadow: 2px 1px 10px #0006; transform: translateX(calc(var(--sidebar-width) * -1)); diff --git a/docs-src/nav/Nav.svelte b/docs-src/nav/Nav.svelte index fb2cd0a4..59a63ff7 100644 --- a/docs-src/nav/Nav.svelte +++ b/docs-src/nav/Nav.svelte @@ -50,6 +50,7 @@

Generic

+ @@ -98,7 +99,7 @@ function onSwipeStart (e) { if (window.innerWidth > 700) return; if (isInScrollable(e.target)) return false; - const untouchables = 'input, button, .toggle, .dialog-backdrop, .popover, [aria-haspopup="true"]'; + const untouchables = 'input, button, .toggle, .dialog-backdrop, .notification, .popover, [aria-haspopup="true"]'; if (e.target.closest(untouchables)) return; diff --git a/docs-src/pages/changelog.svelte b/docs-src/pages/changelog.svelte index 0a1fad33..7f286cae 100644 --- a/docs-src/pages/changelog.svelte +++ b/docs-src/pages/changelog.svelte @@ -1,9 +1,14 @@

Changelog

-

v9.0.0 (2023-08-28)

+

v9.0.0 (2023-08-?)

    -
  • Improved: Tooltip was simplified and now the positioning ensures that the tooltip is always visible on the screen.
  • -
  • Improved: Popover will now update its position when the window is resized.
  • +
  • New: added Utils page in the docs with APIs to the utility functions exposed by the library.
  • +
  • Tooltip was simplified and now the positioning ensures that the tooltip is always visible on the screen.
  • +
  • Popover will now update its position when the window is resized.
  • The tip of the Tooltip and Popover will now try to be centered on the target element (if the box was offset from the screen edge).
  • +
  • Improved keyboard focus for notifications: when a notification is dismissed from the keyboard (Escape) the focus will be moved to the next available notification.
  • +
  • Improved & standardised z-index throughout the components.
  • +
  • Tweaked Menu positioning to update on window resize.
  • +
  • Tweaked MenuItem for responsiveness (e.g. add ellipsis if the text is too long).

Breaking changes

`,$=m(),_=p("div"),_.innerHTML=`

SvelteKit

This framework works with SvelteKit from version 6.4.0.

1. Config

Because this is a purely front-end framework and requires a browser to work, it will not work with SSR, so it needs to be disabled.
Create a file: src/routes/+layout.js and add this:


 	export const ssr = false;
 	

2. CSS

If you're using SvelteKit, you need to add the ui.css file to the static folder,
@@ -53,14 +53,14 @@ var f1=Object.create;var Vu=Object.defineProperty;var c1=Object.getOwnPropertyDe ... <link rel="stylesheet" href="%sveltekit.assets%/ui.css" /> </head> -

Once that's done, you can import the components as normal.

`,w=m(),v=h("div"),v.innerHTML=`

Development

You need node & npm (obviously). Then, run these:


+	

Once that's done, you can import the components as normal.

`,v=m(),w=p("div"),w.innerHTML=`

Development

You need node & npm (obviously). Then, run these:


 	git clone git@github.com:perfect-things/ui.git perfectthings-ui
 	cd perfectthings-ui
 	npm i && npm start
-	

A browser window should open with the demo of the components.

`,k=m(),x=h("div"),x.innerHTML=`

Resources & Credits

`,O(i,"class","logo"),Hm(i.src,o="logo.svg")||O(i,"src",o),O(i,"alt","Logo"),O(u,"class","logotype"),O(n,"href","https://ui.perfectthings.dev"),O(e,"class","banner"),O(g,"class","sticky-block"),O(_,"class","sticky-block"),O(v,"class","sticky-block"),O(x,"class","sticky-block")},m(A,T){l(A,e,T),P(e,n),P(n,i),P(n,r),P(n,u),P(u,a),P(u,c),P(u,f),l(A,d,T),l(A,b,T),l(A,p,T),l(A,g,T),l(A,$,T),l(A,_,T),l(A,w,T),l(A,v,T),l(A,k,T),l(A,x,T)},p:Pe,i:Pe,o:Pe,d(A){A&&(s(e),s(d),s(b),s(p),s(g),s($),s(_),s(w),s(v),s(k),s(x))}}}var pd=class extends ce{constructor(e){super(),pe(this,e,null,C0,de,{})}},jg=pd;function D0(t){let e,n,i,o,r,u,a,c,f,d,b,p,g,$,_,w,v,k,x,A,T,y,S,q,I,F,z,W,N,X,U,H,Q,j,K,ee,be,G,V,ue,ie,Y,J,se,le,ge,He,fe,we,Te,re,oe,ae,Ce,_e,Ie,ye,te,Le,Ge,ut,et,ft,Ze,pt,rt,ht,ke,it,ct,gt,at,ve,Oe,qt,ot,Dt,wt,bt,De,Re,nn,Wt,Ee,We,Vt,Jt,Gt,Yt,$e,xe,on,Bt,sn,Cn,ln,Dn,rn,Ln,an,An,un,$n,fn,yn,cn,gn,he,Ae,zn,xn,Vn,In,Wn,On,Gn,Pn,zi,gi,Vi,bi,Wi,_i,Gi,vi,Yi,wi,Ui,$i,Ki,Xi,Zi,yi,Ji,jo,Ir,zo,Or,Vo,Pr,Wo,Hr,Go,Fr,Yo,Nr,Uo,qr,Ko,Br,Xo,Rr,Zo,jr,Jo,zr,Qo,Vr,es,Wr,ts,Gr,ns,Yr,is,Ur,os,Kr,ss,Xr,ls,Zr,rs,Jr,as,Qr,us,ea,fs,ta,cs,na,ds,ia,ms,oa,ps,sa,hs,la,gs,ra,bs,aa,_s,ua,vs,fa,ws,ca,$s,da,ys,ma,ks,pa,Ts,ha,Ms,ga,Es,ba,Ss,_a,Cs,va,Ds,wa,Ls,$a,As,ya,xs,ka,Is,Ta,Os,Ma,Ps,Ea,Hs,Sa,Fs,Ca,Ns,Da,qs,La,Bs,Aa,Rs,xa,js,Ia,zs,Oa,Vs,Pa,Ws,Ha,Gs,Fa,Ys,Na,Us,qa,Ks,Ba,Xs,Ra,Zs,ja,Js,za,Qs,Va,el,Wa,tl,Ga,nl,Ya,il,Ua,ol,Ka,sl,Xa,ll,Za,rl,Ja,al,Qa,eu,tu,ul,nu,fl,iu,cl,ou,dl,su,ml,lu,pl,ru,hl,au,gl,uu,bl,fu,_l,cu,vl,du,wl,mu,$l,pu,yl,hu,kl,gu,Tl,bu,Ml,_u,El,vu,Sl,wu,Cl,$u,yu,ku,Dl,Tu,Ll,Mu,Eu,Su,Al,Cu,xl,Du,Il,Lu,Ol,Au,Pl,xu,Hl,Iu,Fl,Ou,Nl,Pu,ql,Hu,Bl,Fu,Nu,qu,Rl,Bu,jl,Ru,ju,zu,zl;return{c(){e=h("h1"),e.textContent="Changelog",n=m(),i=h("h2"),i.innerHTML="v9.0.0 (2023-08-28)",o=m(),r=h("ul"),r.innerHTML="
  • Improved: Tooltip was simplified and now the positioning ensures that the tooltip is always visible on the screen.
  • Improved: Popover will now update its position when the window is resized.
  • The tip of the Tooltip and Popover will now try to be centered on the target element (if the box was offset from the screen edge).
  • ",u=m(),a=h("h3"),a.textContent="Breaking changes",c=m(),f=h("ul"),f.innerHTML="
  • The events property was dropped from the Tooltip, leaving hover and focus events as the default. For use cases when the click was needed, Popover should be used instead.
  • z-index value of the Popover and Tooltip has been reduced from 9999 to 99, so that it's closer to the content it describes. Ideally tooltips should slide under some other floating elements of the UI (like toolbars or drawers), while remaining above the content layer. This can be o overriden in the app's own css if needed.
  • ",d=m(),b=h("hr"),p=m(),g=h("h2"),g.innerHTML="v8.4.5, v8.4.4 (2023-08-26)",$=m(),_=h("ul"),_.innerHTML="
  • Standardise InputSearch UX: clear button and Escape-to-clear behaviour now works the same in different browsers.
  • Enhance Popover so that it updates its position after it detects a content change.
  • Expose Popover's updatePosition function.
  • Tweak the dropdown-align function for popover.
  • ",w=m(),v=h("h2"),v.innerHTML="v8.4.3 (2023-08-25)",k=m(),x=h("ul"),x.innerHTML="
  • Fix InputRadio group block padding.
  • ",A=m(),T=h("h2"),T.innerHTML="v8.4.2, v8.4.1, v8.4.0 (2023-08-24)",y=m(),S=h("ul"),S.innerHTML="
  • New: Popover component. If a Dialog and Tooltip had a child - this would be it. It's a container that can be opened like a dialog, but will be attached to the target element (like a tooltip). It's a great way to display additional information or actions for a specific element on the page. It can contain other components (e.g. buttons) and can serve as a free-form menu.
  • Fix popover above the target styling.
  • Simplify & refactor Tooltip to share more code with Popover. Styling and core functionality is now almost the same, while the UX and usage remains a bit different.
  • ",q=m(),I=h("h2"),I.innerHTML="v8.3.3 (2023-08-19)",F=m(),z=h("ul"),z.innerHTML="
  • Inputs with dropdowns (e.g. Combobox and InputDate) will not trigger page scroll on focus (in mobile Safari).
  • Combobox dropdown will now auto-adjust its position when the virtual keyboard opens (in mobile Safari).
  • :focus has been updated to :focus-visible for non-input elements, for a better look.
  • ",W=m(),N=h("h2"),N.innerHTML="v8.3.2 (2023-08-18)",X=m(),U=h("ul"),U.innerHTML="
  • Improve InputRadio styling to look more like the rest of the inputs (e.g. checkbox).
  • Standardise font sizes into css variables: --ui-font-xs=14px, --ui-font-s=15px, --ui-font-m=16px, --ui-font-l=17px, --ui-font-xl=22px
  • Correct the symbol for Return (\u23CE) in Menu.
  • Menu can now be centered with the target button (using align attribute).
  • Context Menu will now open above the long-pressed spot on mobile (by default).
  • Pressing the same letter key, with the Menu open will now cycle through the items starting with that letter.
  • Pressing space with the Menu open, while typing something quickly, will not trigger the click event on the currently selected item. This allows to type-to-highlight elements that contain space in the text. Pressing space standalone (while not typing), will trigger the click event.
  • ",H=m(),Q=h("h2"),Q.innerHTML="v8.3.1 (2023-08-14)",j=m(),K=h("ul"),K.innerHTML="
  • Removed --ui-margin-xl and --ui-margin-xxl as they were not used.
  • Merged --ui-border-radius-s with --ui-border-radius and changed to a rem value that calculates to the whole pixel (so that browsers would render it better).
  • Fixed the NotificationCenter issue, where toasts would not close if navigated away from the page that initialises the component.
  • Tweaked dialog border-radius to render a bit better (for dialog's header and footer).
  • Aligned components heights (Menu, Combobox, and InputRadio items).
  • Fixed Menu's longpress event to not triger when moving the finger (touchmove should stop longpress).
  • Improve navigation swipe event (swiping can now be triggered by any element that is not scrollable and has no scrollable ancestors).
  • Increased Menu font size slightly, while decreasing it for everything (102% -> 100% on body).
  • ",ee=m(),be=h("h2"),be.innerHTML="v8.3.0 (2023-08-11)",G=m(),V=h("ul"),V.innerHTML="
  • New: InputSearch component. Not much more than InputText, except the search icon and (depending on the browser) - the clear button.
  • Fixed a weird and edge-case issue with Menu on mobile Safari (#119).
  • ",ue=m(),ie=h("h2"),ie.innerHTML="v8.2.0 (2023-08-08)",Y=m(),J=h("ul"),J.innerHTML="
  • data attribute in Combobox is deprecated. It will be removed in the next major version. Use items instead.
  • Combobox and Menu now use the same align function (for consistency and performance) and there's no need to add elevate attribute to either of them, as both popups are rendered inside the body element and are only added to the DOM, when they are opened (to avoid polluting the DOM with unnecessary elements).
  • ",se=m(),le=h("h2"),le.innerHTML="v8.1.4 (2023-07-31)",ge=m(),He=h("ul"),He.innerHTML="
  • Improved PushButton pressed styling.
  • Some buttons should now react faster on mobile (touch-action added to notification buttons and all inputs, selects and textareas).
  • ",fe=m(),we=h("h2"),we.innerHTML="v8.1.3 (2023-07-30)",Te=m(),re=h("ul"),re.innerHTML="
  • PushButton now has better contrast (when pressed).
  • Fixed showMessage style for long messages on mobile.
  • Fixed password strength popup style.
  • Docs: fancy font should be applied do docs only, not to the components.
  • Docs: try swipeRight on mobile to open sidebar.
  • Added touch-action: manipulation to Label and some other missing places.
  • ",oe=m(),ae=h("h2"),ae.innerHTML="v8.1.2 (2023-07-29)",Ce=m(),_e=h("ul"),_e.innerHTML="
  • Small table style tweaks
  • Docs improvements
  • ",Ie=m(),ye=h("h2"),ye.innerHTML="v8.1.1 (2023-07-28)",te=m(),Le=h("ul"),Le.innerHTML="
  • Bring back --ui-color-accent-semi and --ui-color-highlight-semi colors.
  • Combobox and InputDate buttons should not be tabbable.
  • Combobox and InputDate buttons should toggle the dropdown on click.
  • ",Ge=m(),ut=h("h2"),ut.innerHTML="v8.1.0 (2023-07-28)",et=m(),ft=h("ul"),ft.innerHTML="
  • New: All inputs have a new attribute labelOnTheLeft which allows to move the label to the left of the input.
  • ",Ze=m(),pt=h("h2"),pt.innerHTML="v8.0.1 (2023-07-26)",rt=m(),ht=h("ul"),ht.innerHTML="
  • New: Check the platform on load and add a mobile or desktop class to the html element.
  • Fixed: Menu separator is now aligned with menu items.
  • Fixed: Notifications Archive "Clear all" button is now back to normal.
  • ",ke=m(),it=h("h2"),it.innerHTML="v8.0.0 (2023-07-25)",ct=m(),gt=h("ul"),gt.innerHTML="
  • New: Label component.
  • New icons: sun and moon for the dark-theme switchers.
  • Improvement: info, error and label attributes are now supported on other inputs (Combobox, InputDate, Select, ButtonToggle, and Toggle).
  • Improvement: all components now expose element and inputElement (if there is one (and only one)). The exceptions are NotificationCenter and MessageBox, due to their implementation.
  • Added title attribute to ButtonToggle.
  • Added success type for MessageBox.
  • Fixed selectable=false not working on Table.
  • Improved styling for Dialog and MessageBox.
  • ",at=m(),ve=h("h3"),ve.textContent="Breaking changes",Oe=m(),qt=h("ul"),qt.innerHTML="
  • Color palette has been completely revamped for better accessibility (more contrast), consistency and simplicity (fewer colors and css variables).
  • Autocomplete has been renamed to Combobox as this is what it really is.
  • Datepicker has been renamed to InputDate.
  • Toaster component has been removed. Use NotificationCenter instead.
  • Select - HTML structure has changed: .select-wrap select --> .select .input-inner .input-row select
  • Table - CSS classes have changed from .table-wrapper table.table --> .table table
  • Toggle - HTML structure has changed from .toggle .toggle-inner .toggle-scroller input --> .toggle .toggle-inner .toggle-label .toggle-scroller input
  • drawBorders attribute has been removed from Dialog, while header and footer styling has been improved for all dialogs.
  • These components previously exposed _this, which is now called element: Button, Checkbox, InputMath, PushButton, Table
  • ",ot=m(),Dt=h("h3"),Dt.textContent="Color palette - mapping from v7 to v8 colors:",wt=m(),bt=h("ul"),bt.innerHTML="
  • --ui-color-text-dark-1 --> --ui-color-text-1
  • --ui-color-text-dark-2 --> --ui-color-text-2
  • --ui-color-border-dark-1 --> --ui-color-border-1
  • --ui-color-border-dark-2 --> --ui-color-border-2
  • --ui-color-background-light-2 --> --ui-color-background-1
  • --ui-color-background-dark-2 --> --ui-color-background-2
  • --ui-color-highlight-dark-2 --> --ui-color-highlight-1
  • ",De=m(),Re=h("p"),Re.innerHTML="Other (not mentioned above) color variations, (i.e. -light- and -dark-) have been removed.",nn=m(),Wt=h("hr"),Ee=m(),We=h("h2"),We.innerHTML="v7.1.2 (2023-07-05)",Vt=m(),Jt=h("ul"),Jt.innerHTML="
  • Fix Checkbox label (don't render empty label if no label attribute was passed).
  • ",Gt=m(),Yt=h("h2"),Yt.innerHTML="v7.1.1 (2023-07-01)",$e=m(),xe=h("ul"),xe.innerHTML="
  • Fixed some NotificationCenter bugs.
  • ",on=m(),Bt=h("h2"),Bt.innerHTML="v7.1.0 (2023-06-30)",sn=m(),Cn=h("ul"),Cn.innerHTML="
  • Improve Panel component with new properties: collapsible (it's not collapsible by default), and disabled.
  • ",ln=m(),Dn=h("h2"),Dn.innerHTML="v7.0.2 (2023-06-29)",rn=m(),Ln=h("ul"),Ln.innerHTML="
  • Add success to the InfoBar component.
  • Behind the scenes refactoring and improvements.
  • ",an=m(),An=h("h2"),An.innerHTML="v7.0.1 (2023-06-28)",un=m(),$n=h("ul"),$n.innerHTML="
  • Textarea component now follows all basic inputs and support error, info, and label properties.
  • Notifications are now centered on mobile screen sizes.
  • ",fn=m(),yn=h("h2"),yn.innerHTML="v7.0.0 (2023-06-28)",cn=m(),gn=h("ul"),gn.innerHTML='
  • New: InfoBar component.
  • New: InputText, InputNumber, and Radio components.
  • New: info, error and label attributes are now supported on all basic inputs (InputText, InputNumber, InputMath, InputPassword, Radio, and Checkbox).
  • Improved: InputMath component: support for () characters, to allow for more complex expressions.
  • ',he=m(),Ae=h("h3"),Ae.textContent="Breaking changes",zn=m(),xn=h("h4"),xn.textContent="Checkbox",Vn=m(),In=h("ul"),In.innerHTML="
  • HTML structure changed input --> .checkbox .checkbox-row input
  • on:change is called with a svelte event instead of the native one, so: e.target.checked is now e.detail.checked
  • ",Wn=m(),On=h("h4"),On.textContent="InputMath",Gn=m(),Pn=h("ul"),Pn.innerHTML="
  • HTML structure changed .input-math-wrapper input --> .input-math .input-inner .input-math-row input
  • ",zi=m(),gi=h("h4"),gi.textContent="InputNumber:",Vi=m(),bi=h("ul"),bi.innerHTML="
  • HTML structure changed: input --> .input-number .input-inner input
  • ",Wi=m(),_i=h("h4"),_i.textContent="InputPassword",Gi=m(),vi=h("ul"),vi.innerHTML="
  • HTML structure changed: .input-password-wrapper .input-password-row input --> .input-password .input-inner .input-password-row input
  • ",Yi=m(),wi=h("h4"),wi.textContent="CSS variables changed:",Ui=m(),$i=h("ul"),$i.innerHTML="
  • --ui-shadow-invalid --> --ui-shadow-danger
  • ",Ki=m(),Xi=h("hr"),Zi=m(),yi=h("h2"),yi.innerHTML="v6.8.2, v6.8.1 (2023-06-21)",Ji=m(),jo=h("ul"),jo.innerHTML="
  • Allow HTML in MessageBox.
  • Improve styling for multi-line messages in MessageBox.
  • ",Ir=m(),zo=h("h2"),zo.innerHTML="v6.8.0 (2023-06-17)",Or=m(),Vo=h("ul"),Vo.innerHTML="
  • New: MessageBox component for displaying quick info/warning/error messages or confirmation dialogs (replacement for browser's native alert and confirm).
  • ",Pr=m(),Wo=h("h2"),Wo.innerHTML="v6.7.1 (2023-06-13)",Hr=m(),Go=h("ul"),Go.innerHTML="
  • Fix Menu show and hide events and clearing the highlight on mouse out.
  • ",Fr=m(),Yo=h("h2"),Yo.innerHTML="v6.7.0 (2023-06-13)",Nr=m(),Uo=h("ul"),Uo.innerHTML="
  • New: NotificationCenter component. This will eventually replace Toaster, as it's more accessible and powerful.
  • Toaster component is now deprecated and will be removed in the next major version.
  • PushButton changes:
  • ",qr=m(),Ko=h("h2"),Ko.innerHTML="v6.6.8 (2023-06-07)",Br=m(),Xo=h("ul"),Xo.innerHTML="
  • Menu improvements:
  • ",Rr=m(),Zo=h("h2"),Zo.innerHTML="v6.6.7 (2023-06-01)",jr=m(),Jo=h("ul"),Jo.innerHTML="
  • Toaster enhancements:
  • ",zr=m(),Qo=h("h2"),Qo.innerHTML="v6.6.6 (2023-05-31)",Vr=m(),es=h("ul"),es.innerHTML="
  • Fix button-toggle not working on mobile.
  • ",Wr=m(),ts=h("h2"),ts.innerHTML="v6.6.4, v6.6.5 (2023-05-12)",Gr=m(),ns=h("ul"),ns.innerHTML="
  • Bring back --ui-shadow-small property.
  • Menu performance improvements: menu will not be rendered until it's opened.
  • ",Yr=m(),is=h("h2"),is.innerHTML="v6.6.3, v6.6.2, v6.6.1, v6.6.0, (2023-05-11)",Ur=m(),os=h("ul"),os.innerHTML="
  • Select now also accepts an array of strings for items.
  • ButtonToggle now also accepts an array of strings for items.
  • em to rem, as it's more consistent and predictable.
  • ",Kr=m(),ss=h("h2"),ss.innerHTML="v6.5.5, v6.5.4, v6.5.3 (2023-05-09)",Xr=m(),ls=h("ul"),ls.innerHTML="
  • Standardise button height to match all the other controls.
  • Standardise placeholder and input-icon colours.
  • Enhance Autocomplete's and DatePicker's input-icon click experience.
  • Size the icons in em not px.
  • ",Zr=m(),rs=h("h2"),rs.innerHTML="v6.5.2 (2023-05-08)",Jr=m(),as=h("ul"),as.innerHTML="
  • Maintenance update: upgrade dependencies, remove yet another useless a11y warning from svelte zealots.
  • ",Qr=m(),us=h("h2"),us.innerHTML="v6.5.1 (2023-05-07)",ea=m(),fs=h("ul"),fs.innerHTML="
  • Menu highlighting upgrade: ArrowDown on the last item will highlight the first item, ArrowUp on the first item will highlight the last item.
  • ",ta=m(),cs=h("h2"),cs.innerHTML="v6.5.0 (2023-04-28)",na=m(),ds=h("ul"),ds.innerHTML="
  • Change the default color for a secondary button.
  • Add info type to Button component (that takes the colour of the previous default).
  • Fix round button (with text) aspect-ratio lock.
  • ",ia=m(),ms=h("h2"),ms.innerHTML="v6.4.3 (2023-04-27)",oa=m(),ps=h("ul"),ps.innerHTML="
  • Improve <InputPassword/> component: don't rerender when eye button is clicked, minor alignment style tweak.
  • Autocomplete keyboard scrolling alignment fix (highlighted item was partially cropped).
  • ",sa=m(),hs=h("h2"),hs.innerHTML="v6.4.2, v6.4.1 (2023-04-22)",la=m(),gs=h("ul"),gs.innerHTML="
  • Remove the need to inline svg icons in the consumer's build.
  • Add addIcon function to allow adding custom icons.
  • Fix menu.open issue when event was not passed.
  • ",ra=m(),bs=h("h2"),bs.innerHTML="v6.4.0 (2023-04-20)",aa=m(),_s=h("ul"),_s.innerHTML="
  • Tweaks to allow it to be used with SvelteKit.
  • ",ua=m(),vs=h("h2"),vs.innerHTML="v6.3.16, v6.3.15 (2023-04-15)",fa=m(),ws=h("ul"),ws.innerHTML="
  • New icons: undo and redo.
  • Fix ButtonGroup styling for other button types.
  • ",ca=m(),$s=h("h2"),$s.innerHTML="v6.3.14, v6.3.13 (2023-04-12)",da=m(),ys=h("ul"),ys.innerHTML="
  • Tooltip style tweaks, so it's finally perfect.
  • Minor fix in Tooltip.
  • ",ma=m(),ks=h("h2"),ks.innerHTML="v6.3.12 (2023-04-09)",pa=m(),Ts=h("ul"),Ts.innerHTML="
  • Cleanup.
  • ",ha=m(),Ms=h("h2"),Ms.innerHTML="v6.3.12, v6.3.11, v6.3.10, v6.3.9 (2023-04-07)",ga=m(),Es=h("ul"),Es.innerHTML="
  • Menu on-close should resolve instantly, when the menu is already closed.
  • Menu new attribute align allows to align the menu to the right with the target.
  • ",ba=m(),Ss=h("h2"),Ss.innerHTML="v6.3.8, v6.3.7, v6.3.6, v6.3.5, v6.3.4 (2023-04-06)",_a=m(),Cs=h("ul"),Cs.innerHTML="
  • Handle svelte's newest a11y warnings.
  • Tweak media query notation.
  • Remove menu of type='input'.
  • Allow data- attributes on Button and MenuItem.
  • Fix Menu target button's aria-expanded attribute (wasn't set to false on menu close).
  • ",va=m(),Ds=h("h2"),Ds.innerHTML="v6.3.3 (2023-04-05)",wa=m(),Ls=h("ul"),Ls.innerHTML="
  • Tooltip tip was upgraded to take advantage of the new clip-path property.
  • Tooltip tip was enhanced with color variations: success, warning and danger.
  • ",$a=m(),As=h("h2"),As.innerHTML="v6.3.2 (2023-03-30)",ya=m(),xs=h("ul"),xs.innerHTML="
  • Table will not listen to events when it's not the target.
  • Dialog buttons can now be navigated with left & right arrow keys for convenience.
  • ",ka=m(),Is=h("h2"),Is.innerHTML="v6.3.1 (2023-03-26)",Ta=m(),Os=h("ul"),Os.innerHTML="
  • ButtonGroup styling tweaks (edge buttons padding alignment)
  • ",Ma=m(),Ps=h("h2"),Ps.innerHTML="v6.3.0 (2023-03-26)",Ea=m(),Hs=h("ul"),Hs.innerHTML="
  • enhance MenuItem component (add props: class, disabled, icon, success, warning, danger)
  • ",Sa=m(),Fs=h("h2"),Fs.innerHTML="v6.2.10 (2023-03-25)",Ca=m(),Ns=h("ul"),Ns.innerHTML="
  • Also pass event target in menu on:close event.
  • ",Da=m(),qs=h("h2"),qs.innerHTML="v6.2.9 (2023-03-25)",La=m(),Bs=h("ul"),Bs.innerHTML="
  • Fix: menu on:open event was missing.
  • ",Aa=m(),Rs=h("h2"),Rs.innerHTML="v6.2.8 (2023-03-24)",xa=m(),js=h("ul"),js.innerHTML="
  • move tooltip custom class attribute to the tooltip itself, not the content (so that it can easily overwrite the background color).
  • ",Ia=m(),zs=h("h2"),zs.innerHTML="v6.2.7 (2023-03-24)",Oa=m(),Vs=h("ul"),Vs.innerHTML="
  • revert some tooltip changes (events prop is actually useful)
  • ",Pa=m(),Ws=h("h2"),Ws.innerHTML="v6.2.6 (2023-03-24)",Ha=m(),Gs=h("ul"),Gs.innerHTML="
  • simplify tooltip (change bg color to accent, drop events prop and default to focus + hover)
  • ",Fa=m(),Ys=h("h2"),Ys.innerHTML="v6.2.5 (2023-03-24)",Na=m(),Us=h("ul"),Us.innerHTML='
  • disable svelte false-positive a11y warnings. See svelte#8402
  • ',qa=m(),Ks=h("h2"),Ks.innerHTML="v6.2.4 (2023-03-24)",Ba=m(),Xs=h("ul"),Xs.innerHTML="
  • update table docs (missing data prop)
  • change button's active class to touching for touch events (to not conflict with popular active class name that may be used by consumers)
  • ",Ra=m(),Zs=h("h2"),Zs.innerHTML="v6.2.3, v6.2.2 (2023-03-24)",ja=m(),Js=h("ul"),Js.innerHTML="
  • Fix issue where a selectable table would become non-selectable if another table on the same page was destroyed.
  • ",za=m(),Qs=h("h2"),Qs.innerHTML="v6.2.1 (2023-03-23)",Va=m(),el=h("ul"),el.innerHTML="
  • Datepicker should stopPropagation on Escape, when the calendar is open.
  • ",Wa=m(),tl=h("h2"),tl.innerHTML="v6.2.0 (2023-03-20)",Ga=m(),nl=h("ul"),nl.innerHTML="
  • Review accessibility of all components (added aria- roles and attributes where necessary).
  • Tweaked some components (e.g. close Tooltip on Escape)
  • Added unit tests for all components.
  • Docs pages style tweaks (e.g. color palette)
  • ",Ya=m(),il=h("h2"),il.innerHTML="v6.1.1 (2023-03-15)",Ua=m(),ol=h("ul"),ol.innerHTML="
  • Remove coverage folder from the npm package.
  • ",Ka=m(),sl=h("h2"),sl.innerHTML="v6.1.0 (2023-03-15)",Xa=m(),ll=h("ul"),ll.innerHTML="
  • Toggle component has been completely rewritten to make it more flexible and perfect.
  • ",Za=m(),rl=h("h2"),rl.innerHTML="v6.0.2, v6.0.1, v6.0.0 (2023-03-13)",Ja=m(),al=h("ul"),al.innerHTML="
  • rebrand simple-ui-components-in-svelte to @perfectthings/ui
  • ",Qa=m(),eu=h("hr"),tu=m(),ul=h("h2"),ul.innerHTML="v5.1.0 (2023-03-12)",nu=m(),fl=h("ul"),fl.innerHTML="
  • Better Menu highlighting (doesn't hl first item on open, mouseout removes the highlighting), inline with how native menus work on MacOS
  • Mobile friendlier buttons (touchstart invokes :active styling)
  • unit tests for some components
  • ",iu=m(),cl=h("h2"),cl.innerHTML="v5.0.8 (2023-03-03)",ou=m(),dl=h("ul"),dl.innerHTML="
  • Tooltip offset parameter
  • ",su=m(),ml=h("h2"),ml.innerHTML="v5.0.7 (2023-03-03)",lu=m(),pl=h("ul"),pl.innerHTML="
  • PushButton fix (pushed class was not applied)
  • ",ru=m(),hl=h("h2"),hl.innerHTML="v5.0.6 (2023-03-02)",au=m(),gl=h("ul"),gl.innerHTML="
  • Add back form property to a button
  • ",uu=m(),bl=h("h2"),bl.innerHTML="v5.0.5 (2023-03-02)",fu=m(),_l=h("ul"),_l.innerHTML="
  • Reduce memory footprint (removed some of the transform props that were no longer necessary)
  • ",cu=m(),vl=h("h2"),vl.innerHTML="v5.0.4 (2023-03-02)",du=m(),wl=h("ul"),wl.innerHTML="
  • esbuild replaced rollup for speed and simplicity
  • cleanup & refactoring
  • ",mu=m(),$l=h("h2"),$l.innerHTML="v5.0.3 (2023-03-01)",pu=m(),yl=h("ul"),yl.innerHTML="
  • Tooltip hiding fix (wasn't hiding when hovering target)
  • ",hu=m(),kl=h("h2"),kl.innerHTML="v5.0.2 (2023-03-01)",gu=m(),Tl=h("ul"),Tl.innerHTML="
  • Toaster import fix
  • Tooltip fix (some console errors were popping up)
  • ",bu=m(),Ml=h("h2"),Ml.innerHTML="v5.0.1 (2023-02-28)",_u=m(),El=h("ul"),El.innerHTML="
  • Bring back button-outline.css (it was accidentally deleted in v5.0.0)
  • ",vu=m(),Sl=h("h2"),Sl.innerHTML="v5.0.0 (2023-02-28)",wu=m(),Cl=h("ul"),Cl.innerHTML="
  • Breaking change: renamed props for all components: className -> class (as it turns out it is possible to use class as a prop name in svelte)
  • Almost all components now have a class prop, which can be used to add custom classes to the component
  • Updated docs to reflect the above changes
  • Docs API table is now alphabetically sorted
  • Components don't use $$props anymore, as it was causing issues with the class prop. Instead, the props are now explicitly passed down to the component. This is a good thing to do, as it makes the components more explicit and easier to understand.
  • ",$u=m(),yu=h("hr"),ku=m(),Dl=h("h2"),Dl.innerHTML="v4.0.0 (2023-02-28)",Tu=m(),Ll=h("ul"),Ll.innerHTML="
  • Breaking change: renamed components: Item -> MenuItem, Separator -> MenuSeparator
  • Refactored the folder structure
  • ",Mu=m(),Eu=h("hr"),Su=m(),Al=h("h2"),Al.innerHTML="v3.1.2 (2023-01-04)",Cu=m(),xl=h("ul"),xl.innerHTML="
  • Toggle's innerWidth function was somehow overwriting window.innerWidth property (maybe a compiler issue?)
  • ",Du=m(),Il=h("h2"),Il.innerHTML="v3.1.1 (2023-01-04)",Lu=m(),Ol=h("ul"),Ol.innerHTML="
  • Fix input-number (could not enter decimals)
  • Fix input-math (math didn't work)
  • ",Au=m(),Pl=h("h2"),Pl.innerHTML="v3.1.0 (2023-01-03)",xu=m(),Hl=h("ul"),Hl.innerHTML="
  • UX change: autocomplete will not close on scroll or resize events from now on (it can be changed using new properties hideOnScroll and hideOnResize).
  • fixed: autocomplete issue, where clicking on a filtered list would not select.
  • tweak: autocomplete will now show "create new item" always (when enabled), not only when the query did not match anything. Except when the query matches an item exactly.
  • ",Iu=m(),Fl=h("h2"),Fl.innerHTML="v3.0.1 (2022-12-30)",Ou=m(),Nl=h("ul"),Nl.innerHTML="
  • autocomplete should revert when entered value is not on the list
  • ",Pu=m(),ql=h("h2"),ql.innerHTML="v3.0.0 (2022-12-28)",Hu=m(),Bl=h("ul"),Bl.innerHTML="
  • breaking change: cssClass property available on some components has been renamed to className (to be more aligned with the standard workaround in other libs/frameworks).
  • some components (where possible) are now using $$props to pass-through the properties of the instance down to the component.
  • ",Fu=m(),Nu=h("hr"),qu=m(),Rl=h("h2"),Rl.innerHTML="v2.1.1 (2022-12-24)",Bu=m(),jl=h("ul"),jl.innerHTML="
  • breaking change: dist folder has been renamed to docs, as this is the only allowed name for a GH pages folder so that the GH pages is published automatically (without writing a GH action specifically for this).
  • ",Ru=m(),ju=h("hr"),zu=m(),zl=h("h2"),zl.innerHTML="v1.7.12 (2022)"},m(B,R){l(B,e,R),l(B,n,R),l(B,i,R),l(B,o,R),l(B,r,R),l(B,u,R),l(B,a,R),l(B,c,R),l(B,f,R),l(B,d,R),l(B,b,R),l(B,p,R),l(B,g,R),l(B,$,R),l(B,_,R),l(B,w,R),l(B,v,R),l(B,k,R),l(B,x,R),l(B,A,R),l(B,T,R),l(B,y,R),l(B,S,R),l(B,q,R),l(B,I,R),l(B,F,R),l(B,z,R),l(B,W,R),l(B,N,R),l(B,X,R),l(B,U,R),l(B,H,R),l(B,Q,R),l(B,j,R),l(B,K,R),l(B,ee,R),l(B,be,R),l(B,G,R),l(B,V,R),l(B,ue,R),l(B,ie,R),l(B,Y,R),l(B,J,R),l(B,se,R),l(B,le,R),l(B,ge,R),l(B,He,R),l(B,fe,R),l(B,we,R),l(B,Te,R),l(B,re,R),l(B,oe,R),l(B,ae,R),l(B,Ce,R),l(B,_e,R),l(B,Ie,R),l(B,ye,R),l(B,te,R),l(B,Le,R),l(B,Ge,R),l(B,ut,R),l(B,et,R),l(B,ft,R),l(B,Ze,R),l(B,pt,R),l(B,rt,R),l(B,ht,R),l(B,ke,R),l(B,it,R),l(B,ct,R),l(B,gt,R),l(B,at,R),l(B,ve,R),l(B,Oe,R),l(B,qt,R),l(B,ot,R),l(B,Dt,R),l(B,wt,R),l(B,bt,R),l(B,De,R),l(B,Re,R),l(B,nn,R),l(B,Wt,R),l(B,Ee,R),l(B,We,R),l(B,Vt,R),l(B,Jt,R),l(B,Gt,R),l(B,Yt,R),l(B,$e,R),l(B,xe,R),l(B,on,R),l(B,Bt,R),l(B,sn,R),l(B,Cn,R),l(B,ln,R),l(B,Dn,R),l(B,rn,R),l(B,Ln,R),l(B,an,R),l(B,An,R),l(B,un,R),l(B,$n,R),l(B,fn,R),l(B,yn,R),l(B,cn,R),l(B,gn,R),l(B,he,R),l(B,Ae,R),l(B,zn,R),l(B,xn,R),l(B,Vn,R),l(B,In,R),l(B,Wn,R),l(B,On,R),l(B,Gn,R),l(B,Pn,R),l(B,zi,R),l(B,gi,R),l(B,Vi,R),l(B,bi,R),l(B,Wi,R),l(B,_i,R),l(B,Gi,R),l(B,vi,R),l(B,Yi,R),l(B,wi,R),l(B,Ui,R),l(B,$i,R),l(B,Ki,R),l(B,Xi,R),l(B,Zi,R),l(B,yi,R),l(B,Ji,R),l(B,jo,R),l(B,Ir,R),l(B,zo,R),l(B,Or,R),l(B,Vo,R),l(B,Pr,R),l(B,Wo,R),l(B,Hr,R),l(B,Go,R),l(B,Fr,R),l(B,Yo,R),l(B,Nr,R),l(B,Uo,R),l(B,qr,R),l(B,Ko,R),l(B,Br,R),l(B,Xo,R),l(B,Rr,R),l(B,Zo,R),l(B,jr,R),l(B,Jo,R),l(B,zr,R),l(B,Qo,R),l(B,Vr,R),l(B,es,R),l(B,Wr,R),l(B,ts,R),l(B,Gr,R),l(B,ns,R),l(B,Yr,R),l(B,is,R),l(B,Ur,R),l(B,os,R),l(B,Kr,R),l(B,ss,R),l(B,Xr,R),l(B,ls,R),l(B,Zr,R),l(B,rs,R),l(B,Jr,R),l(B,as,R),l(B,Qr,R),l(B,us,R),l(B,ea,R),l(B,fs,R),l(B,ta,R),l(B,cs,R),l(B,na,R),l(B,ds,R),l(B,ia,R),l(B,ms,R),l(B,oa,R),l(B,ps,R),l(B,sa,R),l(B,hs,R),l(B,la,R),l(B,gs,R),l(B,ra,R),l(B,bs,R),l(B,aa,R),l(B,_s,R),l(B,ua,R),l(B,vs,R),l(B,fa,R),l(B,ws,R),l(B,ca,R),l(B,$s,R),l(B,da,R),l(B,ys,R),l(B,ma,R),l(B,ks,R),l(B,pa,R),l(B,Ts,R),l(B,ha,R),l(B,Ms,R),l(B,ga,R),l(B,Es,R),l(B,ba,R),l(B,Ss,R),l(B,_a,R),l(B,Cs,R),l(B,va,R),l(B,Ds,R),l(B,wa,R),l(B,Ls,R),l(B,$a,R),l(B,As,R),l(B,ya,R),l(B,xs,R),l(B,ka,R),l(B,Is,R),l(B,Ta,R),l(B,Os,R),l(B,Ma,R),l(B,Ps,R),l(B,Ea,R),l(B,Hs,R),l(B,Sa,R),l(B,Fs,R),l(B,Ca,R),l(B,Ns,R),l(B,Da,R),l(B,qs,R),l(B,La,R),l(B,Bs,R),l(B,Aa,R),l(B,Rs,R),l(B,xa,R),l(B,js,R),l(B,Ia,R),l(B,zs,R),l(B,Oa,R),l(B,Vs,R),l(B,Pa,R),l(B,Ws,R),l(B,Ha,R),l(B,Gs,R),l(B,Fa,R),l(B,Ys,R),l(B,Na,R),l(B,Us,R),l(B,qa,R),l(B,Ks,R),l(B,Ba,R),l(B,Xs,R),l(B,Ra,R),l(B,Zs,R),l(B,ja,R),l(B,Js,R),l(B,za,R),l(B,Qs,R),l(B,Va,R),l(B,el,R),l(B,Wa,R),l(B,tl,R),l(B,Ga,R),l(B,nl,R),l(B,Ya,R),l(B,il,R),l(B,Ua,R),l(B,ol,R),l(B,Ka,R),l(B,sl,R),l(B,Xa,R),l(B,ll,R),l(B,Za,R),l(B,rl,R),l(B,Ja,R),l(B,al,R),l(B,Qa,R),l(B,eu,R),l(B,tu,R),l(B,ul,R),l(B,nu,R),l(B,fl,R),l(B,iu,R),l(B,cl,R),l(B,ou,R),l(B,dl,R),l(B,su,R),l(B,ml,R),l(B,lu,R),l(B,pl,R),l(B,ru,R),l(B,hl,R),l(B,au,R),l(B,gl,R),l(B,uu,R),l(B,bl,R),l(B,fu,R),l(B,_l,R),l(B,cu,R),l(B,vl,R),l(B,du,R),l(B,wl,R),l(B,mu,R),l(B,$l,R),l(B,pu,R),l(B,yl,R),l(B,hu,R),l(B,kl,R),l(B,gu,R),l(B,Tl,R),l(B,bu,R),l(B,Ml,R),l(B,_u,R),l(B,El,R),l(B,vu,R),l(B,Sl,R),l(B,wu,R),l(B,Cl,R),l(B,$u,R),l(B,yu,R),l(B,ku,R),l(B,Dl,R),l(B,Tu,R),l(B,Ll,R),l(B,Mu,R),l(B,Eu,R),l(B,Su,R),l(B,Al,R),l(B,Cu,R),l(B,xl,R),l(B,Du,R),l(B,Il,R),l(B,Lu,R),l(B,Ol,R),l(B,Au,R),l(B,Pl,R),l(B,xu,R),l(B,Hl,R),l(B,Iu,R),l(B,Fl,R),l(B,Ou,R),l(B,Nl,R),l(B,Pu,R),l(B,ql,R),l(B,Hu,R),l(B,Bl,R),l(B,Fu,R),l(B,Nu,R),l(B,qu,R),l(B,Rl,R),l(B,Bu,R),l(B,jl,R),l(B,Ru,R),l(B,ju,R),l(B,zu,R),l(B,zl,R)},p:Pe,i:Pe,o:Pe,d(B){B&&(s(e),s(n),s(i),s(o),s(r),s(u),s(a),s(c),s(f),s(d),s(b),s(p),s(g),s($),s(_),s(w),s(v),s(k),s(x),s(A),s(T),s(y),s(S),s(q),s(I),s(F),s(z),s(W),s(N),s(X),s(U),s(H),s(Q),s(j),s(K),s(ee),s(be),s(G),s(V),s(ue),s(ie),s(Y),s(J),s(se),s(le),s(ge),s(He),s(fe),s(we),s(Te),s(re),s(oe),s(ae),s(Ce),s(_e),s(Ie),s(ye),s(te),s(Le),s(Ge),s(ut),s(et),s(ft),s(Ze),s(pt),s(rt),s(ht),s(ke),s(it),s(ct),s(gt),s(at),s(ve),s(Oe),s(qt),s(ot),s(Dt),s(wt),s(bt),s(De),s(Re),s(nn),s(Wt),s(Ee),s(We),s(Vt),s(Jt),s(Gt),s(Yt),s($e),s(xe),s(on),s(Bt),s(sn),s(Cn),s(ln),s(Dn),s(rn),s(Ln),s(an),s(An),s(un),s($n),s(fn),s(yn),s(cn),s(gn),s(he),s(Ae),s(zn),s(xn),s(Vn),s(In),s(Wn),s(On),s(Gn),s(Pn),s(zi),s(gi),s(Vi),s(bi),s(Wi),s(_i),s(Gi),s(vi),s(Yi),s(wi),s(Ui),s($i),s(Ki),s(Xi),s(Zi),s(yi),s(Ji),s(jo),s(Ir),s(zo),s(Or),s(Vo),s(Pr),s(Wo),s(Hr),s(Go),s(Fr),s(Yo),s(Nr),s(Uo),s(qr),s(Ko),s(Br),s(Xo),s(Rr),s(Zo),s(jr),s(Jo),s(zr),s(Qo),s(Vr),s(es),s(Wr),s(ts),s(Gr),s(ns),s(Yr),s(is),s(Ur),s(os),s(Kr),s(ss),s(Xr),s(ls),s(Zr),s(rs),s(Jr),s(as),s(Qr),s(us),s(ea),s(fs),s(ta),s(cs),s(na),s(ds),s(ia),s(ms),s(oa),s(ps),s(sa),s(hs),s(la),s(gs),s(ra),s(bs),s(aa),s(_s),s(ua),s(vs),s(fa),s(ws),s(ca),s($s),s(da),s(ys),s(ma),s(ks),s(pa),s(Ts),s(ha),s(Ms),s(ga),s(Es),s(ba),s(Ss),s(_a),s(Cs),s(va),s(Ds),s(wa),s(Ls),s($a),s(As),s(ya),s(xs),s(ka),s(Is),s(Ta),s(Os),s(Ma),s(Ps),s(Ea),s(Hs),s(Sa),s(Fs),s(Ca),s(Ns),s(Da),s(qs),s(La),s(Bs),s(Aa),s(Rs),s(xa),s(js),s(Ia),s(zs),s(Oa),s(Vs),s(Pa),s(Ws),s(Ha),s(Gs),s(Fa),s(Ys),s(Na),s(Us),s(qa),s(Ks),s(Ba),s(Xs),s(Ra),s(Zs),s(ja),s(Js),s(za),s(Qs),s(Va),s(el),s(Wa),s(tl),s(Ga),s(nl),s(Ya),s(il),s(Ua),s(ol),s(Ka),s(sl),s(Xa),s(ll),s(Za),s(rl),s(Ja),s(al),s(Qa),s(eu),s(tu),s(ul),s(nu),s(fl),s(iu),s(cl),s(ou),s(dl),s(su),s(ml),s(lu),s(pl),s(ru),s(hl),s(au),s(gl),s(uu),s(bl),s(fu),s(_l),s(cu),s(vl),s(du),s(wl),s(mu),s($l),s(pu),s(yl),s(hu),s(kl),s(gu),s(Tl),s(bu),s(Ml),s(_u),s(El),s(vu),s(Sl),s(wu),s(Cl),s($u),s(yu),s(ku),s(Dl),s(Tu),s(Ll),s(Mu),s(Eu),s(Su),s(Al),s(Cu),s(xl),s(Du),s(Il),s(Lu),s(Ol),s(Au),s(Pl),s(xu),s(Hl),s(Iu),s(Fl),s(Ou),s(Nl),s(Pu),s(ql),s(Hu),s(Bl),s(Fu),s(Nu),s(qu),s(Rl),s(Bu),s(jl),s(Ru),s(ju),s(zu),s(zl))}}}var hd=class extends ce{constructor(e){super(),pe(this,e,null,D0,de,{})}},zg=hd;var Cm={};h1(Cm,{Button:()=>$d,ButtonGroup:()=>Md,ButtonToggle:()=>Sd,Checkbox:()=>Dd,ColorPalette:()=>Sm,Combobox:()=>Ad,Dialog:()=>rm,Drawer:()=>um,Icon:()=>ym,InfoBar:()=>Qd,InputDate:()=>Id,InputMath:()=>Pd,InputNumber:()=>Fd,InputPassword:()=>qd,InputSearch:()=>Rd,InputText:()=>zd,Menu:()=>wm,MessageBox:()=>im,NotificationCenter:()=>tm,Panel:()=>cm,Popover:()=>mm,PushButton:()=>kd,Radio:()=>Wd,Select:()=>Yd,Splitter:()=>Tm,Table:()=>hm,Textarea:()=>Kd,Toggle:()=>Zd,Tooltip:()=>sm,Tree:()=>bm});function Vg(t,e,n){let i=t.slice();return i[3]=e[n],i}function Wg(t){let e;return{c(){e=h("p")},m(n,i){l(n,e,i),e.innerHTML=t[1]},p(n,i){i&2&&(e.innerHTML=n[1])},d(n){n&&s(e)}}}function Gg(t){let e,n,i=t[3].name+"",o,r,u,a=Yg(t[3])+"",c,f,d=t[3].description+"",b;return{c(){e=h("tr"),n=h("td"),o=Z(i),r=m(),u=h("td"),c=m(),f=h("td"),b=m()},m(p,g){l(p,e,g),P(e,n),P(n,o),P(e,r),P(e,u),u.innerHTML=a,P(e,c),P(e,f),f.innerHTML=d,P(e,b)},p(p,g){g&4&&i!==(i=p[3].name+"")&&je(o,i),g&4&&a!==(a=Yg(p[3])+"")&&(u.innerHTML=a),g&4&&d!==(d=p[3].description+"")&&(f.innerHTML=d)},d(p){p&&s(e)}}}function L0(t){let e,n,i,o=nt(t[2]),r=[];for(let u=0;uAttributeType/ValueDescription",n=m(),i=h("tbody");for(let u=0;u`${i}`);return e.push(n.join(" | ")),t.required&&e.push("required"),t.default&&e.push(`
    (defaults to ${t.default})`),e.join(" ")}function x0(t,e,n){let{title:i="API"}=e,{description:o=""}=e,{props:r=[{name:"id",type:"string",defalut:"",required:!0,description:"assign ID to the underlying component"}]}=e;return t.$$set=u=>{"title"in u&&n(0,i=u.title),"description"in u&&n(1,o=u.description),"props"in u&&n(2,r=u.props)},[i,o,r]}var gd=class extends ce{constructor(e){super(),pe(this,e,x0,A0,de,{title:0,description:1,props:2})}},Ne=gd;function Ug(t){let e,n;return{c(){e=h("hr"),n=h("h3"),n.textContent="Example"},m(i,o){l(i,e,o),l(i,n,o)},d(i){i&&(s(e),s(n))}}}function I0(t){let e,n,i,o,r,u=Kg(t[0])+"",a,c=!t[1]&&Ug(t);return{c(){c&&c.c(),e=m(),n=h("pre"),i=h("code"),o=Z(` - `),r=new Hn(!1),a=Z(` -`),r.a=a,O(i,"class","language-svelte")},m(f,d){c&&c.m(f,d),l(f,e,d),l(f,n,d),P(n,i),P(i,o),r.m(u,i),P(i,a)},p(f,[d]){f[1]?c&&(c.d(1),c=null):c||(c=Ug(f),c.c(),c.m(e.parentNode,e)),d&1&&u!==(u=Kg(f[0])+"")&&r.p(u)},i:Pe,o:Pe,d(f){f&&(s(e),s(n)),c&&c.d(f)}}}function Kg(t){return t.replace(/{/gim,"{").replace(/}/gim,"}").replace(//gim,">").replace(/\t/gim," ").trim()}function O0(t,e,n){let{html:i=""}=e,{notitle:o=!1}=e;return t.$$set=r=>{"html"in r&&n(0,i=r.html),"notitle"in r&&n(1,o=r.notitle)},[i,o]}var bd=class extends ce{constructor(e){super(),pe(this,e,O0,I0,de,{html:0,notitle:1})}},ze=bd;function P0(t){let e,n;return{c(){e=h("pre"),n=h("code"),O(n,"class","language-")},m(i,o){l(i,e,o),P(e,n),n.innerHTML=t[0]},p(i,[o]){o&1&&(n.innerHTML=i[0])},i:Pe,o:Pe,d(i){i&&s(e)}}}function H0(t,e,n){let{tag:i="div"}=e,{props:o={}}=e,{text:r=""}=e,u="";Un(()=>{requestAnimationFrame(a)});function a(){n(0,u=window.Prism.highlight(c(),window.Prism.languages.svelte,"svelte"))}function c(){let f={};for(let b in o)o[b]!==!1&&o[b]!==""&&(f[b]=o[b]);let d=JSON.stringify(f).replace(/"([^"]+)":/g,"$1:").replace(/(:)/g,"=").replace(/,/g," ").replace(/({|}|=true|default)/g,"").trim();return d&&(d=" "+d),r?`<${i}${d}>${r}`:`<${i}${d}/>`}return t.$$set=f=>{"tag"in f&&n(1,i=f.tag),"props"in f&&n(2,o=f.props),"text"in f&&n(3,r=f.text)},[u,i,o,r]}var _d=class extends ce{constructor(e){super(),pe(this,e,H0,P0,de,{tag:1,props:2,text:3})}},vd=_d;function F0(t){let e,n,i=[t[0]],o={};for(let r=0;rUe($,"value",ee)),v=new Rt({props:{label:"Style",items:t[3],value:""}}),v.$on("change",t[6]),x=new Rt({props:{label:"Type",items:t[4],value:""}}),x.$on("change",t[7]),T=new Rt({props:{label:"Icon",items:t[5],value:""}}),T.$on("change",t[8]);function G(Y){t[10](Y)}let V={label:"Round"};t[0].round!==void 0&&(V.value=t[0].round),S=new tn({props:V}),me.push(()=>Ue(S,"value",G));function ue(Y){t[11](Y)}let ie={label:"Disabled"};return t[0].disabled!==void 0&&(ie.value=t[0].disabled),F=new tn({props:ie}),me.push(()=>Ue(F,"value",ue)),U=new Ne({props:{props:t[2]}}),{c(){e=h("h2"),e.textContent="Button",n=m(),i=h("h3"),i.textContent="Live demo",o=m(),r=h("div"),a.c(),c=m(),L(f.$$.fragment),d=m(),b=h("hr"),p=m(),g=h("div"),L($.$$.fragment),w=m(),L(v.$$.fragment),k=m(),L(x.$$.fragment),A=m(),L(T.$$.fragment),y=m(),L(S.$$.fragment),I=m(),L(F.$$.fragment),W=m(),N=h("hr"),X=m(),L(U.$$.fragment),O(r,"class","docs-buttons-row"),Xt(r,"height","3rem"),O(g,"class","button-demo-props")},m(Y,J){l(Y,e,J),l(Y,n,J),l(Y,i,J),l(Y,o,J),l(Y,r,J),j[u].m(r,null),l(Y,c,J),C(f,Y,J),l(Y,d,J),l(Y,b,J),l(Y,p,J),l(Y,g,J),C($,g,null),P(g,w),C(v,g,null),P(g,k),C(x,g,null),P(g,A),C(T,g,null),P(g,y),C(S,g,null),P(g,I),C(F,g,null),l(Y,W,J),l(Y,N,J),l(Y,X,J),C(U,Y,J),H=!0},p(Y,[J]){let se=u;u=K(Y,J),u===se?j[u].p(Y,J):(Je(),E(j[se],1,1,()=>{j[se]=null}),Qe(),a=j[u],a?a.p(Y,J):(a=j[u]=Q[u](Y),a.c()),M(a,1),a.m(r,null));let le={};J&2&&(le.text=Y[1]),J&1&&(le.props=Y[0]),f.$set(le);let ge={};!_&&J&2&&(_=!0,ge.value=Y[1],Ye(()=>_=!1)),$.$set(ge);let He={};!q&&J&1&&(q=!0,He.value=Y[0].round,Ye(()=>q=!1)),S.$set(He);let fe={};!z&&J&1&&(z=!0,fe.value=Y[0].disabled,Ye(()=>z=!1)),F.$set(fe)},i(Y){H||(M(a),M(f.$$.fragment,Y),M($.$$.fragment,Y),M(v.$$.fragment,Y),M(x.$$.fragment,Y),M(T.$$.fragment,Y),M(S.$$.fragment,Y),M(F.$$.fragment,Y),M(U.$$.fragment,Y),H=!0)},o(Y){E(a),E(f.$$.fragment,Y),E($.$$.fragment,Y),E(v.$$.fragment,Y),E(x.$$.fragment,Y),E(T.$$.fragment,Y),E(S.$$.fragment,Y),E(F.$$.fragment,Y),E(U.$$.fragment,Y),H=!1},d(Y){Y&&(s(e),s(n),s(i),s(o),s(r),s(c),s(d),s(b),s(p),s(g),s(W),s(N),s(X)),j[u].d(),D(f,Y),D($),D(v),D(x),D(T),D(S),D(F),D(U,Y)}}}function R0(t,e,n){let i=[{name:"class",type:"string",description:"Additional css class name to be added to the component."},{name:"danger",description:"Button type: danger"},{name:"data-",description:"Dataset attribute allows to pass some data of a primitive type (string, number, boolean), which will be accessible in the on:click event listener, via button reference."},{name:"disabled",description:"Makes the button disabled"},{name:"icon",type:"string",description:'Adds an icon, with this name, to the button (see icons section for icon names)'},{name:"id",type:"string",description:"Assign ID to the underlying button"},{name:"info",description:"Button type: info"},{name:"link",description:"Button style: link"},{name:"outline",description:"Button style: outline"},{name:"round",description:"Makes the button round"},{name:"submit",type:["true","false"],default:"false",description:"If true button type is set to submit, otherwise it's button"},{name:"success",description:"Button type: success"},{name:"text",description:"Button style: text"},{name:"title",type:"string",description:"Assign title to the underlying button"},{name:"warning",description:"Button type: warning"},{name:"bind:element",type:"element",description:"Exposes the HTML element of the component."},{name:"on:click",type:"function",description:"Triggered when the button is clicked."}],o={},r="Demo button",u=[{name:"Normal",value:""},{name:"Outline",value:"outline"},{name:"Text",value:"text"},{name:"Link",value:"link"}],a=[{name:"Default",value:""},{name:"Info",value:"info"},{name:"Success",value:"success"},{name:"Warning",value:"warning"},{name:"Danger",value:"danger"}],c=[{name:"none",value:""},{name:"info",value:"info"},{name:"check",value:"check"},{name:"alert",value:"alert"},{name:"trash",value:"trash"}];function f(w){n(0,o.outline=!1,o),n(0,o.text=!1,o),n(0,o.link=!1,o),p(w.detail,!0)}function d(w){n(0,o.info=!1,o),n(0,o.success=!1,o),n(0,o.warning=!1,o),n(0,o.danger=!1,o),p(w.detail,!0)}function b(w){p("icon",w.detail)}function p(w,v){!w||typeof v>"u"||n(0,o[w]=v,o)}function g(w){r=w,n(1,r)}function $(w){t.$$.not_equal(o.round,w)&&(o.round=w,n(0,o))}function _(w){t.$$.not_equal(o.disabled,w)&&(o.disabled=w,n(0,o))}return[o,r,i,u,a,c,f,d,b,g,$,_]}var wd=class extends ce{constructor(e){super(),pe(this,e,R0,B0,de,{})}},$d=wd;function j0(t){let e;return{c(){e=Z("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function z0(t){let e;return{c(){e=Z("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function V0(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function W0(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function G0(t){let e;return{c(){e=Z("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function Y0(t){let e;return{c(){e=Z("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function U0(t){let e;return{c(){e=Z("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function K0(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function X0(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function Z0(t){let e;return{c(){e=Z("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function J0(t){let e;return{c(){e=Z("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function Q0(t){let e;return{c(){e=Z("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function e2(t){let e;return{c(){e=Z("Success")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function t2(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function n2(t){let e;return{c(){e=Z("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function i2(t){let e;return{c(){e=Z("Help")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function o2(t){let e;return{c(){e=Z("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function s2(t){let e;return{c(){e=Z("Success")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function l2(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function r2(t){let e;return{c(){e=Z("Delete")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function a2(t){let e;return{c(){e=Z("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function u2(t){let e;return{c(){e=Z("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function f2(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function c2(t){let e;return{c(){e=Z("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function d2(t){let e;return{c(){e=Z("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function m2(t){let e,n,i,o,r,u,a,c,f,d,b,p,g,$,_,w,v,k,x,A,T,y,S,q,I,F,z,W,N,X,U,H,Q,j,K,ee,be,G,V,ue,ie,Y,J,se,le,ge,He,fe,we,Te,re,oe,ae,Ce,_e,Ie,ye,te,Le,Ge,ut,et,ft,Ze,pt,rt,ht,ke,it,ct,gt,at,ve,Oe,qt,ot,Dt,wt,bt,De,Re,nn,Wt,Ee,We,Vt,Jt,Gt,Yt,$e,xe,on,Bt,sn,Cn,ln,Dn,rn,Ln,an,An,un,$n,fn,yn,cn,gn;return c=new tt({props:{$$slots:{default:[j0]},$$scope:{ctx:t}}}),d=new tt({props:{info:!0,$$slots:{default:[z0]},$$scope:{ctx:t}}}),p=new tt({props:{success:!0,$$slots:{default:[V0]},$$scope:{ctx:t}}}),$=new tt({props:{warning:!0,$$slots:{default:[W0]},$$scope:{ctx:t}}}),w=new tt({props:{danger:!0,$$slots:{default:[G0]},$$scope:{ctx:t}}}),T=new tt({props:{pressed:!0,$$slots:{default:[Y0]},$$scope:{ctx:t}}}),S=new tt({props:{pressed:!0,info:!0,$$slots:{default:[U0]},$$scope:{ctx:t}}}),I=new tt({props:{pressed:!0,success:!0,$$slots:{default:[K0]},$$scope:{ctx:t}}}),z=new tt({props:{pressed:!0,warning:!0,$$slots:{default:[X0]},$$scope:{ctx:t}}}),N=new tt({props:{pressed:!0,danger:!0,$$slots:{default:[Z0]},$$scope:{ctx:t}}}),j=new tt({props:{pressed:!0,disabled:!0,$$slots:{default:[J0]},$$scope:{ctx:t}}}),ee=new tt({props:{pressed:!0,disabled:!0,info:!0,$$slots:{default:[Q0]},$$scope:{ctx:t}}}),G=new tt({props:{pressed:!0,disabled:!0,success:!0,$$slots:{default:[e2]},$$scope:{ctx:t}}}),ue=new tt({props:{pressed:!0,disabled:!0,warning:!0,$$slots:{default:[t2]},$$scope:{ctx:t}}}),Y=new tt({props:{pressed:!0,disabled:!0,danger:!0,$$slots:{default:[n2]},$$scope:{ctx:t}}}),He=new tt({props:{icon:"help",$$slots:{default:[i2]},$$scope:{ctx:t}}}),we=new tt({props:{icon:"info",info:!0,$$slots:{default:[o2]},$$scope:{ctx:t}}}),re=new tt({props:{icon:"check",success:!0,$$slots:{default:[s2]},$$scope:{ctx:t}}}),ae=new tt({props:{icon:"alert",warning:!0,$$slots:{default:[l2]},$$scope:{ctx:t}}}),_e=new tt({props:{icon:"trash",danger:!0,$$slots:{default:[r2]},$$scope:{ctx:t}}}),Ge=new tt({props:{outline:!0,$$slots:{default:[a2]},$$scope:{ctx:t}}}),et=new tt({props:{outline:!0,info:!0,$$slots:{default:[u2]},$$scope:{ctx:t}}}),Ze=new tt({props:{outline:!0,success:!0,$$slots:{default:[f2]},$$scope:{ctx:t}}}),rt=new tt({props:{outline:!0,warning:!0,$$slots:{default:[c2]},$$scope:{ctx:t}}}),ke=new tt({props:{outline:!0,danger:!0,$$slots:{default:[d2]},$$scope:{ctx:t}}}),Dt=new tt({props:{icon:"help"}}),bt=new tt({props:{icon:"info",info:!0}}),Re=new tt({props:{icon:"check",success:!0}}),Wt=new tt({props:{icon:"alert",warning:!0}}),We=new tt({props:{icon:"trash",danger:!0}}),sn=new tt({props:{round:!0,icon:"help"}}),ln=new tt({props:{round:!0,icon:"info",info:!0}}),rn=new tt({props:{round:!0,icon:"check",success:!0}}),an=new tt({props:{round:!0,icon:"alert",warning:!0}}),un=new tt({props:{round:!0,icon:"trash",danger:!0}}),fn=new ze({props:{html:t[1]}}),cn=new Ne({props:{props:t[0]}}),{c(){e=h("h2"),e.textContent="Push Button",n=m(),i=h("h3"),i.textContent="Normal",o=m(),r=h("h4"),r.textContent="Default",u=m(),a=h("div"),L(c.$$.fragment),f=m(),L(d.$$.fragment),b=m(),L(p.$$.fragment),g=m(),L($.$$.fragment),_=m(),L(w.$$.fragment),v=m(),k=h("h4"),k.textContent="Pressed",x=m(),A=h("div"),L(T.$$.fragment),y=m(),L(S.$$.fragment),q=m(),L(I.$$.fragment),F=m(),L(z.$$.fragment),W=m(),L(N.$$.fragment),X=m(),U=h("h4"),U.textContent="Disabled",H=m(),Q=h("div"),L(j.$$.fragment),K=m(),L(ee.$$.fragment),be=m(),L(G.$$.fragment),V=m(),L(ue.$$.fragment),ie=m(),L(Y.$$.fragment),J=m(),se=h("h4"),se.textContent="With icon",le=m(),ge=h("div"),L(He.$$.fragment),fe=m(),L(we.$$.fragment),Te=m(),L(re.$$.fragment),oe=m(),L(ae.$$.fragment),Ce=m(),L(_e.$$.fragment),Ie=m(),ye=h("h4"),ye.textContent="Outline",te=m(),Le=h("div"),L(Ge.$$.fragment),ut=m(),L(et.$$.fragment),ft=m(),L(Ze.$$.fragment),pt=m(),L(rt.$$.fragment),ht=m(),L(ke.$$.fragment),it=m(),ct=h("hr"),gt=m(),at=h("h3"),at.textContent="Icon only buttons",ve=m(),Oe=h("h4"),Oe.textContent="Default",qt=m(),ot=h("div"),L(Dt.$$.fragment),wt=m(),L(bt.$$.fragment),De=m(),L(Re.$$.fragment),nn=m(),L(Wt.$$.fragment),Ee=m(),L(We.$$.fragment),Vt=m(),Jt=h("hr"),Gt=m(),Yt=h("h3"),Yt.textContent="Icon only, and round",$e=m(),xe=h("h4"),xe.textContent="Default",on=m(),Bt=h("div"),L(sn.$$.fragment),Cn=m(),L(ln.$$.fragment),Dn=m(),L(rn.$$.fragment),Ln=m(),L(an.$$.fragment),An=m(),L(un.$$.fragment),$n=m(),L(fn.$$.fragment),yn=m(),L(cn.$$.fragment),O(a,"class","docs-buttons-row"),O(A,"class","docs-buttons-row"),O(Q,"class","docs-buttons-row"),O(ge,"class","docs-buttons-row"),O(Le,"class","docs-buttons-row"),O(ot,"class","docs-buttons-row"),O(Bt,"class","docs-buttons-row")},m(he,Ae){l(he,e,Ae),l(he,n,Ae),l(he,i,Ae),l(he,o,Ae),l(he,r,Ae),l(he,u,Ae),l(he,a,Ae),C(c,a,null),P(a,f),C(d,a,null),P(a,b),C(p,a,null),P(a,g),C($,a,null),P(a,_),C(w,a,null),l(he,v,Ae),l(he,k,Ae),l(he,x,Ae),l(he,A,Ae),C(T,A,null),P(A,y),C(S,A,null),P(A,q),C(I,A,null),P(A,F),C(z,A,null),P(A,W),C(N,A,null),l(he,X,Ae),l(he,U,Ae),l(he,H,Ae),l(he,Q,Ae),C(j,Q,null),P(Q,K),C(ee,Q,null),P(Q,be),C(G,Q,null),P(Q,V),C(ue,Q,null),P(Q,ie),C(Y,Q,null),l(he,J,Ae),l(he,se,Ae),l(he,le,Ae),l(he,ge,Ae),C(He,ge,null),P(ge,fe),C(we,ge,null),P(ge,Te),C(re,ge,null),P(ge,oe),C(ae,ge,null),P(ge,Ce),C(_e,ge,null),l(he,Ie,Ae),l(he,ye,Ae),l(he,te,Ae),l(he,Le,Ae),C(Ge,Le,null),P(Le,ut),C(et,Le,null),P(Le,ft),C(Ze,Le,null),P(Le,pt),C(rt,Le,null),P(Le,ht),C(ke,Le,null),l(he,it,Ae),l(he,ct,Ae),l(he,gt,Ae),l(he,at,Ae),l(he,ve,Ae),l(he,Oe,Ae),l(he,qt,Ae),l(he,ot,Ae),C(Dt,ot,null),P(ot,wt),C(bt,ot,null),P(ot,De),C(Re,ot,null),P(ot,nn),C(Wt,ot,null),P(ot,Ee),C(We,ot,null),l(he,Vt,Ae),l(he,Jt,Ae),l(he,Gt,Ae),l(he,Yt,Ae),l(he,$e,Ae),l(he,xe,Ae),l(he,on,Ae),l(he,Bt,Ae),C(sn,Bt,null),P(Bt,Cn),C(ln,Bt,null),P(Bt,Dn),C(rn,Bt,null),P(Bt,Ln),C(an,Bt,null),P(Bt,An),C(un,Bt,null),l(he,$n,Ae),C(fn,he,Ae),l(he,yn,Ae),C(cn,he,Ae),gn=!0},p(he,[Ae]){let zn={};Ae&4&&(zn.$$scope={dirty:Ae,ctx:he}),c.$set(zn);let xn={};Ae&4&&(xn.$$scope={dirty:Ae,ctx:he}),d.$set(xn);let Vn={};Ae&4&&(Vn.$$scope={dirty:Ae,ctx:he}),p.$set(Vn);let In={};Ae&4&&(In.$$scope={dirty:Ae,ctx:he}),$.$set(In);let Wn={};Ae&4&&(Wn.$$scope={dirty:Ae,ctx:he}),w.$set(Wn);let On={};Ae&4&&(On.$$scope={dirty:Ae,ctx:he}),T.$set(On);let Gn={};Ae&4&&(Gn.$$scope={dirty:Ae,ctx:he}),S.$set(Gn);let Pn={};Ae&4&&(Pn.$$scope={dirty:Ae,ctx:he}),I.$set(Pn);let zi={};Ae&4&&(zi.$$scope={dirty:Ae,ctx:he}),z.$set(zi);let gi={};Ae&4&&(gi.$$scope={dirty:Ae,ctx:he}),N.$set(gi);let Vi={};Ae&4&&(Vi.$$scope={dirty:Ae,ctx:he}),j.$set(Vi);let bi={};Ae&4&&(bi.$$scope={dirty:Ae,ctx:he}),ee.$set(bi);let Wi={};Ae&4&&(Wi.$$scope={dirty:Ae,ctx:he}),G.$set(Wi);let _i={};Ae&4&&(_i.$$scope={dirty:Ae,ctx:he}),ue.$set(_i);let Gi={};Ae&4&&(Gi.$$scope={dirty:Ae,ctx:he}),Y.$set(Gi);let vi={};Ae&4&&(vi.$$scope={dirty:Ae,ctx:he}),He.$set(vi);let Yi={};Ae&4&&(Yi.$$scope={dirty:Ae,ctx:he}),we.$set(Yi);let wi={};Ae&4&&(wi.$$scope={dirty:Ae,ctx:he}),re.$set(wi);let Ui={};Ae&4&&(Ui.$$scope={dirty:Ae,ctx:he}),ae.$set(Ui);let $i={};Ae&4&&($i.$$scope={dirty:Ae,ctx:he}),_e.$set($i);let Ki={};Ae&4&&(Ki.$$scope={dirty:Ae,ctx:he}),Ge.$set(Ki);let Xi={};Ae&4&&(Xi.$$scope={dirty:Ae,ctx:he}),et.$set(Xi);let Zi={};Ae&4&&(Zi.$$scope={dirty:Ae,ctx:he}),Ze.$set(Zi);let yi={};Ae&4&&(yi.$$scope={dirty:Ae,ctx:he}),rt.$set(yi);let Ji={};Ae&4&&(Ji.$$scope={dirty:Ae,ctx:he}),ke.$set(Ji)},i(he){gn||(M(c.$$.fragment,he),M(d.$$.fragment,he),M(p.$$.fragment,he),M($.$$.fragment,he),M(w.$$.fragment,he),M(T.$$.fragment,he),M(S.$$.fragment,he),M(I.$$.fragment,he),M(z.$$.fragment,he),M(N.$$.fragment,he),M(j.$$.fragment,he),M(ee.$$.fragment,he),M(G.$$.fragment,he),M(ue.$$.fragment,he),M(Y.$$.fragment,he),M(He.$$.fragment,he),M(we.$$.fragment,he),M(re.$$.fragment,he),M(ae.$$.fragment,he),M(_e.$$.fragment,he),M(Ge.$$.fragment,he),M(et.$$.fragment,he),M(Ze.$$.fragment,he),M(rt.$$.fragment,he),M(ke.$$.fragment,he),M(Dt.$$.fragment,he),M(bt.$$.fragment,he),M(Re.$$.fragment,he),M(Wt.$$.fragment,he),M(We.$$.fragment,he),M(sn.$$.fragment,he),M(ln.$$.fragment,he),M(rn.$$.fragment,he),M(an.$$.fragment,he),M(un.$$.fragment,he),M(fn.$$.fragment,he),M(cn.$$.fragment,he),gn=!0)},o(he){E(c.$$.fragment,he),E(d.$$.fragment,he),E(p.$$.fragment,he),E($.$$.fragment,he),E(w.$$.fragment,he),E(T.$$.fragment,he),E(S.$$.fragment,he),E(I.$$.fragment,he),E(z.$$.fragment,he),E(N.$$.fragment,he),E(j.$$.fragment,he),E(ee.$$.fragment,he),E(G.$$.fragment,he),E(ue.$$.fragment,he),E(Y.$$.fragment,he),E(He.$$.fragment,he),E(we.$$.fragment,he),E(re.$$.fragment,he),E(ae.$$.fragment,he),E(_e.$$.fragment,he),E(Ge.$$.fragment,he),E(et.$$.fragment,he),E(Ze.$$.fragment,he),E(rt.$$.fragment,he),E(ke.$$.fragment,he),E(Dt.$$.fragment,he),E(bt.$$.fragment,he),E(Re.$$.fragment,he),E(Wt.$$.fragment,he),E(We.$$.fragment,he),E(sn.$$.fragment,he),E(ln.$$.fragment,he),E(rn.$$.fragment,he),E(an.$$.fragment,he),E(un.$$.fragment,he),E(fn.$$.fragment,he),E(cn.$$.fragment,he),gn=!1},d(he){he&&(s(e),s(n),s(i),s(o),s(r),s(u),s(a),s(v),s(k),s(x),s(A),s(X),s(U),s(H),s(Q),s(J),s(se),s(le),s(ge),s(Ie),s(ye),s(te),s(Le),s(it),s(ct),s(gt),s(at),s(ve),s(Oe),s(qt),s(ot),s(Vt),s(Jt),s(Gt),s(Yt),s($e),s(xe),s(on),s(Bt),s($n),s(yn)),D(c),D(d),D(p),D($),D(w),D(T),D(S),D(I),D(z),D(N),D(j),D(ee),D(G),D(ue),D(Y),D(He),D(we),D(re),D(ae),D(_e),D(Ge),D(et),D(Ze),D(rt),D(ke),D(Dt),D(bt),D(Re),D(Wt),D(We),D(sn),D(ln),D(rn),D(an),D(un),D(fn,he),D(cn,he)}}}function p2(t){return[[{name:"class",type:"string",description:"Additional css class name to be added to the component."},{name:"danger",description:"Button type: danger"},{name:"disabled",description:"Makes the button disabled"},{name:"icon",type:"string",description:'Adds an icon, with this name, to the button (see icons section for icon names)'},{name:"id",type:"string",description:"Assign ID to the underlying button"},{name:"outline",description:"Button style: outline"},{name:"pressed",type:["true","false"],default:"false",description:"Initial pressed state of the button."},{name:"round",description:"Makes the button round"},{name:"submit",type:["true","false"],default:"false",description:"If true button type is set to submit, otherwise it's button"},{name:"success",description:"Button type: success"},{name:"title",type:"string",description:"Assign title to the underlying button"},{name:"warning",description:"Button type: warning"},{name:"bind:element",type:"element",description:"Exposes the HTML element of the component."},{name:"on:click",type:"function",description:"Triggered when the button is clicked."}],` +

    A browser window should open with the demo of the components.

    `,k=m(),x=p("div"),x.innerHTML=`

    Resources & Credits

    `,O(i,"class","logo"),Wm(i.src,o="logo.svg")||O(i,"src",o),O(i,"alt","Logo"),O(u,"class","logotype"),O(n,"href","https://ui.perfectthings.dev"),O(e,"class","banner"),O(g,"class","sticky-block"),O(_,"class","sticky-block"),O(w,"class","sticky-block"),O(x,"class","sticky-block")},m(A,y){l(A,e,y),P(e,n),P(n,i),P(n,r),P(n,u),P(u,a),P(u,c),P(u,f),l(A,d,y),l(A,b,y),l(A,h,y),l(A,g,y),l(A,$,y),l(A,_,y),l(A,v,y),l(A,w,y),l(A,k,y),l(A,x,y)},p:Oe,i:Oe,o:Oe,d(A){A&&(s(e),s(d),s(b),s(h),s(g),s($),s(_),s(v),s(w),s(k),s(x))}}}var bd=class extends ue{constructor(e){super(),de(this,e,null,B0,fe,{})}},Kg=bd;function R0(t){let e,n,i,o,r,u,a,c,f,d,b,h,g,$,_,v,w,k,x,A,y,T,L,N,I,F,j,W,q,X,U,H,Q,z,K,te,$e,G,V,ce,se,Y,ee,Ie,pe,ke,He,me,Z,ae,le,oe,re,Se,be,Ae,we,ne,De,Ge,ut,et,ft,Ze,pt,rt,ht,ye,it,ct,gt,at,_e,Pe,qt,ot,Dt,vt,St,Ce,Re,Jt,Gt,nn,Vt,Te,We,Wt,Yt,ve,xe,on,Bt,sn,Cn,ln,Dn,rn,Ln,an,xn,un,$n,fn,yn,cn,gn,ge,Le,Vn,An,Wn,In,Gn,On,Yn,Pn,Un,Hn,Kn,vi,Wi,wi,Gi,$i,Yi,yi,Ui,ki,Ki,Xi,Zi,Ti,Ji,zo,Hr,jo,Fr,Vo,Nr,Wo,qr,Go,Br,Yo,Rr,Uo,zr,Ko,jr,Xo,Vr,Zo,Wr,Jo,Gr,Qo,Yr,es,Ur,ts,Kr,ns,Xr,is,Zr,os,Jr,ss,Qr,ls,ea,rs,ta,as,na,us,ia,fs,oa,cs,sa,ds,la,ms,ra,ps,aa,hs,ua,gs,fa,bs,ca,_s,da,vs,ma,ws,pa,$s,ha,ys,ga,ks,ba,Ts,_a,Ms,va,Es,wa,Ss,$a,Cs,ya,Ds,ka,Ls,Ta,xs,Ma,As,Ea,Is,Sa,Os,Ca,Ps,Da,Hs,La,Fs,xa,Ns,Aa,qs,Ia,Bs,Oa,Rs,Pa,zs,Ha,js,Fa,Vs,Na,Ws,qa,Gs,Ba,Ys,Ra,Us,za,Ks,ja,Xs,Va,Zs,Wa,Js,Ga,Qs,Ya,el,Ua,tl,Ka,nl,Xa,il,Za,ol,Ja,sl,Qa,ll,eu,rl,tu,al,nu,iu,ou,ul,su,fl,lu,cl,ru,dl,au,ml,uu,pl,fu,hl,cu,gl,du,bl,mu,_l,pu,vl,hu,wl,gu,$l,bu,yl,_u,kl,vu,Tl,wu,Ml,$u,El,yu,Sl,ku,Cl,Tu,Mu,Eu,Dl,Su,Ll,Cu,Du,Lu,xl,xu,Al,Au,Il,Iu,Ol,Ou,Pl,Pu,Hl,Hu,Fl,Fu,Nl,Nu,ql,qu,Bl,Bu,Ru,zu,Rl,ju,zl,Vu,Wu,Gu,jl;return{c(){e=p("h1"),e.textContent="Changelog",n=m(),i=p("h2"),i.innerHTML="v9.0.0 (2023-08-?)",o=m(),r=p("ul"),r.innerHTML="
  • New: added Utils page in the docs with APIs to the utility functions exposed by the library.
  • Tooltip was simplified and now the positioning ensures that the tooltip is always visible on the screen.
  • Popover will now update its position when the window is resized.
  • The tip of the Tooltip and Popover will now try to be centered on the target element (if the box was offset from the screen edge).
  • Improved keyboard focus for notifications: when a notification is dismissed from the keyboard (Escape) the focus will be moved to the next available notification.
  • Improved & standardised z-index throughout the components.
  • Tweaked Menu positioning to update on window resize.
  • Tweaked MenuItem for responsiveness (e.g. add ellipsis if the text is too long).
  • ",u=m(),a=p("h3"),a.textContent="Breaking changes",c=m(),f=p("ul"),f.innerHTML="
  • The events property was dropped from the Tooltip, leaving hover and focus events as the default. For use cases when the click was needed, Popover should be used instead.
  • z-index value of the Popover and Tooltip has been reduced from 9999 to 99, so that it's closer to the content it describes. Ideally tooltips should slide under some other floating elements of the UI (like toolbars or drawers), while remaining above the content layer. This can be o overriden in the app's own css if needed.
  • ",d=m(),b=p("hr"),h=m(),g=p("h2"),g.innerHTML="v8.4.5, v8.4.4 (2023-08-26)",$=m(),_=p("ul"),_.innerHTML="
  • Standardise InputSearch UX: clear button and Escape-to-clear behaviour now works the same in different browsers.
  • Enhance Popover so that it updates its position after it detects a content change.
  • Expose Popover's updatePosition function.
  • Tweak the dropdown-align function for popover.
  • ",v=m(),w=p("h2"),w.innerHTML="v8.4.3 (2023-08-25)",k=m(),x=p("ul"),x.innerHTML="
  • Fix InputRadio group block padding.
  • ",A=m(),y=p("h2"),y.innerHTML="v8.4.2, v8.4.1, v8.4.0 (2023-08-24)",T=m(),L=p("ul"),L.innerHTML="
  • New: Popover component. If a Dialog and Tooltip had a child - this would be it. It's a container that can be opened like a dialog, but will be attached to the target element (like a tooltip). It's a great way to display additional information or actions for a specific element on the page. It can contain other components (e.g. buttons) and can serve as a free-form menu.
  • Fix popover above the target styling.
  • Simplify & refactor Tooltip to share more code with Popover. Styling and core functionality is now almost the same, while the UX and usage remains a bit different.
  • ",N=m(),I=p("h2"),I.innerHTML="v8.3.3 (2023-08-19)",F=m(),j=p("ul"),j.innerHTML="
  • Inputs with dropdowns (e.g. Combobox and InputDate) will not trigger page scroll on focus (in mobile Safari).
  • Combobox dropdown will now auto-adjust its position when the virtual keyboard opens (in mobile Safari).
  • :focus has been updated to :focus-visible for non-input elements, for a better look.
  • ",W=m(),q=p("h2"),q.innerHTML="v8.3.2 (2023-08-18)",X=m(),U=p("ul"),U.innerHTML="
  • Improve InputRadio styling to look more like the rest of the inputs (e.g. checkbox).
  • Standardise font sizes into css variables: --ui-font-xs=14px, --ui-font-s=15px, --ui-font-m=16px, --ui-font-l=17px, --ui-font-xl=22px
  • Correct the symbol for Return (\u23CE) in Menu.
  • Menu can now be centered with the target button (using align attribute).
  • Context Menu will now open above the long-pressed spot on mobile (by default).
  • Pressing the same letter key, with the Menu open will now cycle through the items starting with that letter.
  • Pressing space with the Menu open, while typing something quickly, will not trigger the click event on the currently selected item. This allows to type-to-highlight elements that contain space in the text. Pressing space standalone (while not typing), will trigger the click event.
  • ",H=m(),Q=p("h2"),Q.innerHTML="v8.3.1 (2023-08-14)",z=m(),K=p("ul"),K.innerHTML="
  • Removed --ui-margin-xl and --ui-margin-xxl as they were not used.
  • Merged --ui-border-radius-s with --ui-border-radius and changed to a rem value that calculates to the whole pixel (so that browsers would render it better).
  • Fixed the NotificationCenter issue, where toasts would not close if navigated away from the page that initialises the component.
  • Tweaked dialog border-radius to render a bit better (for dialog's header and footer).
  • Aligned components heights (Menu, Combobox, and InputRadio items).
  • Fixed Menu's longpress event to not triger when moving the finger (touchmove should stop longpress).
  • Improve navigation swipe event (swiping can now be triggered by any element that is not scrollable and has no scrollable ancestors).
  • Increased Menu font size slightly, while decreasing it for everything (102% -> 100% on body).
  • ",te=m(),$e=p("h2"),$e.innerHTML="v8.3.0 (2023-08-11)",G=m(),V=p("ul"),V.innerHTML="
  • New: InputSearch component. Not much more than InputText, except the search icon and (depending on the browser) - the clear button.
  • Fixed a weird and edge-case issue with Menu on mobile Safari (#119).
  • ",ce=m(),se=p("h2"),se.innerHTML="v8.2.0 (2023-08-08)",Y=m(),ee=p("ul"),ee.innerHTML="
  • data attribute in Combobox is deprecated. It will be removed in the next major version. Use items instead.
  • Combobox and Menu now use the same align function (for consistency and performance) and there's no need to add elevate attribute to either of them, as both popups are rendered inside the body element and are only added to the DOM, when they are opened (to avoid polluting the DOM with unnecessary elements).
  • ",Ie=m(),pe=p("h2"),pe.innerHTML="v8.1.4 (2023-07-31)",ke=m(),He=p("ul"),He.innerHTML="
  • Improved PushButton pressed styling.
  • Some buttons should now react faster on mobile (touch-action added to notification buttons and all inputs, selects and textareas).
  • ",me=m(),Z=p("h2"),Z.innerHTML="v8.1.3 (2023-07-30)",ae=m(),le=p("ul"),le.innerHTML="
  • PushButton now has better contrast (when pressed).
  • Fixed showMessage style for long messages on mobile.
  • Fixed password strength popup style.
  • Docs: fancy font should be applied do docs only, not to the components.
  • Docs: try swipeRight on mobile to open sidebar.
  • Added touch-action: manipulation to Label and some other missing places.
  • ",oe=m(),re=p("h2"),re.innerHTML="v8.1.2 (2023-07-29)",Se=m(),be=p("ul"),be.innerHTML="
  • Small table style tweaks
  • Docs improvements
  • ",Ae=m(),we=p("h2"),we.innerHTML="v8.1.1 (2023-07-28)",ne=m(),De=p("ul"),De.innerHTML="
  • Bring back --ui-color-accent-semi and --ui-color-highlight-semi colors.
  • Combobox and InputDate buttons should not be tabbable.
  • Combobox and InputDate buttons should toggle the dropdown on click.
  • ",Ge=m(),ut=p("h2"),ut.innerHTML="v8.1.0 (2023-07-28)",et=m(),ft=p("ul"),ft.innerHTML="
  • New: All inputs have a new attribute labelOnTheLeft which allows to move the label to the left of the input.
  • ",Ze=m(),pt=p("h2"),pt.innerHTML="v8.0.1 (2023-07-26)",rt=m(),ht=p("ul"),ht.innerHTML="
  • New: Check the platform on load and add a mobile or desktop class to the html element.
  • Fixed: Menu separator is now aligned with menu items.
  • Fixed: Notifications Archive "Clear all" button is now back to normal.
  • ",ye=m(),it=p("h2"),it.innerHTML="v8.0.0 (2023-07-25)",ct=m(),gt=p("ul"),gt.innerHTML="
  • New: Label component.
  • New icons: sun and moon for the dark-theme switchers.
  • Improvement: info, error and label attributes are now supported on other inputs (Combobox, InputDate, Select, ButtonToggle, and Toggle).
  • Improvement: all components now expose element and inputElement (if there is one (and only one)). The exceptions are NotificationCenter and MessageBox, due to their implementation.
  • Added title attribute to ButtonToggle.
  • Added success type for MessageBox.
  • Fixed selectable=false not working on Table.
  • Improved styling for Dialog and MessageBox.
  • ",at=m(),_e=p("h3"),_e.textContent="Breaking changes",Pe=m(),qt=p("ul"),qt.innerHTML="
  • Color palette has been completely revamped for better accessibility (more contrast), consistency and simplicity (fewer colors and css variables).
  • Autocomplete has been renamed to Combobox as this is what it really is.
  • Datepicker has been renamed to InputDate.
  • Toaster component has been removed. Use NotificationCenter instead.
  • Select - HTML structure has changed: .select-wrap select --> .select .input-inner .input-row select
  • Table - CSS classes have changed from .table-wrapper table.table --> .table table
  • Toggle - HTML structure has changed from .toggle .toggle-inner .toggle-scroller input --> .toggle .toggle-inner .toggle-label .toggle-scroller input
  • drawBorders attribute has been removed from Dialog, while header and footer styling has been improved for all dialogs.
  • These components previously exposed _this, which is now called element: Button, Checkbox, InputMath, PushButton, Table
  • ",ot=m(),Dt=p("h3"),Dt.textContent="Color palette - mapping from v7 to v8 colors:",vt=m(),St=p("ul"),St.innerHTML="
  • --ui-color-text-dark-1 --> --ui-color-text-1
  • --ui-color-text-dark-2 --> --ui-color-text-2
  • --ui-color-border-dark-1 --> --ui-color-border-1
  • --ui-color-border-dark-2 --> --ui-color-border-2
  • --ui-color-background-light-2 --> --ui-color-background-1
  • --ui-color-background-dark-2 --> --ui-color-background-2
  • --ui-color-highlight-dark-2 --> --ui-color-highlight-1
  • ",Ce=m(),Re=p("p"),Re.innerHTML="Other (not mentioned above) color variations, (i.e. -light- and -dark-) have been removed.",Jt=m(),Gt=p("hr"),nn=m(),Vt=p("h2"),Vt.innerHTML="v7.1.2 (2023-07-05)",Te=m(),We=p("ul"),We.innerHTML="
  • Fix Checkbox label (don't render empty label if no label attribute was passed).
  • ",Wt=m(),Yt=p("h2"),Yt.innerHTML="v7.1.1 (2023-07-01)",ve=m(),xe=p("ul"),xe.innerHTML="
  • Fixed some NotificationCenter bugs.
  • ",on=m(),Bt=p("h2"),Bt.innerHTML="v7.1.0 (2023-06-30)",sn=m(),Cn=p("ul"),Cn.innerHTML="
  • Improve Panel component with new properties: collapsible (it's not collapsible by default), and disabled.
  • ",ln=m(),Dn=p("h2"),Dn.innerHTML="v7.0.2 (2023-06-29)",rn=m(),Ln=p("ul"),Ln.innerHTML="
  • Add success to the InfoBar component.
  • Behind the scenes refactoring and improvements.
  • ",an=m(),xn=p("h2"),xn.innerHTML="v7.0.1 (2023-06-28)",un=m(),$n=p("ul"),$n.innerHTML="
  • Textarea component now follows all basic inputs and support error, info, and label properties.
  • Notifications are now centered on mobile screen sizes.
  • ",fn=m(),yn=p("h2"),yn.innerHTML="v7.0.0 (2023-06-28)",cn=m(),gn=p("ul"),gn.innerHTML='
  • New: InfoBar component.
  • New: InputText, InputNumber, and Radio components.
  • New: info, error and label attributes are now supported on all basic inputs (InputText, InputNumber, InputMath, InputPassword, Radio, and Checkbox).
  • Improved: InputMath component: support for () characters, to allow for more complex expressions.
  • ',ge=m(),Le=p("h3"),Le.textContent="Breaking changes",Vn=m(),An=p("h4"),An.textContent="Checkbox",Wn=m(),In=p("ul"),In.innerHTML="
  • HTML structure changed input --> .checkbox .checkbox-row input
  • on:change is called with a svelte event instead of the native one, so: e.target.checked is now e.detail.checked
  • ",Gn=m(),On=p("h4"),On.textContent="InputMath",Yn=m(),Pn=p("ul"),Pn.innerHTML="
  • HTML structure changed .input-math-wrapper input --> .input-math .input-inner .input-math-row input
  • ",Un=m(),Hn=p("h4"),Hn.textContent="InputNumber:",Kn=m(),vi=p("ul"),vi.innerHTML="
  • HTML structure changed: input --> .input-number .input-inner input
  • ",Wi=m(),wi=p("h4"),wi.textContent="InputPassword",Gi=m(),$i=p("ul"),$i.innerHTML="
  • HTML structure changed: .input-password-wrapper .input-password-row input --> .input-password .input-inner .input-password-row input
  • ",Yi=m(),yi=p("h4"),yi.textContent="CSS variables changed:",Ui=m(),ki=p("ul"),ki.innerHTML="
  • --ui-shadow-invalid --> --ui-shadow-danger
  • ",Ki=m(),Xi=p("hr"),Zi=m(),Ti=p("h2"),Ti.innerHTML="v6.8.2, v6.8.1 (2023-06-21)",Ji=m(),zo=p("ul"),zo.innerHTML="
  • Allow HTML in MessageBox.
  • Improve styling for multi-line messages in MessageBox.
  • ",Hr=m(),jo=p("h2"),jo.innerHTML="v6.8.0 (2023-06-17)",Fr=m(),Vo=p("ul"),Vo.innerHTML="
  • New: MessageBox component for displaying quick info/warning/error messages or confirmation dialogs (replacement for browser's native alert and confirm).
  • ",Nr=m(),Wo=p("h2"),Wo.innerHTML="v6.7.1 (2023-06-13)",qr=m(),Go=p("ul"),Go.innerHTML="
  • Fix Menu show and hide events and clearing the highlight on mouse out.
  • ",Br=m(),Yo=p("h2"),Yo.innerHTML="v6.7.0 (2023-06-13)",Rr=m(),Uo=p("ul"),Uo.innerHTML="
  • New: NotificationCenter component. This will eventually replace Toaster, as it's more accessible and powerful.
  • Toaster component is now deprecated and will be removed in the next major version.
  • PushButton changes:
    • remove link and text types, as they don't make sense (pushed state would not be visible).
    • fix outline type styling.
    • update the event passed to the on:change callback (rename property from event.detail.value to event.detail.pressed).
    • fix PushButton keyboard events (pressing Space or Enter would not trigger the on:change event).
  • ",zr=m(),Ko=p("h2"),Ko.innerHTML="v6.6.8 (2023-06-07)",jr=m(),Xo=p("ul"),Xo.innerHTML="
  • Menu improvements:
    • aria-expanded attribute was incorrectly being added to the body on menu open (apart from the target button).
    • Tabbing does not move focus out of the menu anymore (it will cycle through the menu items).
    • simplify html structure (ul -> menu, li/button -> button)
  • ",Vr=m(),Zo=p("h2"),Zo.innerHTML="v6.6.7 (2023-06-01)",Wr=m(),Jo=p("ul"),Jo.innerHTML="
  • Toaster enhancements:
    • Improve contrast (reduce the transparency).
    • Make toasts focusable (so that they can be closed with Escape).
    • When toasts are focused or mouse is over them, the auto-close progress will pause.
  • ",Gr=m(),Qo=p("h2"),Qo.innerHTML="v6.6.6 (2023-05-31)",Yr=m(),es=p("ul"),es.innerHTML="
  • Fix button-toggle not working on mobile.
  • ",Ur=m(),ts=p("h2"),ts.innerHTML="v6.6.4, v6.6.5 (2023-05-12)",Kr=m(),ns=p("ul"),ns.innerHTML="
  • Bring back --ui-shadow-small property.
  • Menu performance improvements: menu will not be rendered until it's opened.
  • ",Xr=m(),is=p("h2"),is.innerHTML="v6.6.3, v6.6.2, v6.6.1, v6.6.0, (2023-05-11)",Zr=m(),os=p("ul"),os.innerHTML="
  • Select now also accepts an array of strings for items.
  • ButtonToggle now also accepts an array of strings for items.
  • em to rem, as it's more consistent and predictable.
  • ",Jr=m(),ss=p("h2"),ss.innerHTML="v6.5.5, v6.5.4, v6.5.3 (2023-05-09)",Qr=m(),ls=p("ul"),ls.innerHTML="
  • Standardise button height to match all the other controls.
  • Standardise placeholder and input-icon colours.
  • Enhance Autocomplete's and DatePicker's input-icon click experience.
  • Size the icons in em not px.
  • ",ea=m(),rs=p("h2"),rs.innerHTML="v6.5.2 (2023-05-08)",ta=m(),as=p("ul"),as.innerHTML="
  • Maintenance update: upgrade dependencies, remove yet another useless a11y warning from svelte zealots.
  • ",na=m(),us=p("h2"),us.innerHTML="v6.5.1 (2023-05-07)",ia=m(),fs=p("ul"),fs.innerHTML="
  • Menu highlighting upgrade: ArrowDown on the last item will highlight the first item, ArrowUp on the first item will highlight the last item.
  • ",oa=m(),cs=p("h2"),cs.innerHTML="v6.5.0 (2023-04-28)",sa=m(),ds=p("ul"),ds.innerHTML="
  • Change the default color for a secondary button.
  • Add info type to Button component (that takes the colour of the previous default).
  • Fix round button (with text) aspect-ratio lock.
  • ",la=m(),ms=p("h2"),ms.innerHTML="v6.4.3 (2023-04-27)",ra=m(),ps=p("ul"),ps.innerHTML="
  • Improve <InputPassword/> component: don't rerender when eye button is clicked, minor alignment style tweak.
  • Autocomplete keyboard scrolling alignment fix (highlighted item was partially cropped).
  • ",aa=m(),hs=p("h2"),hs.innerHTML="v6.4.2, v6.4.1 (2023-04-22)",ua=m(),gs=p("ul"),gs.innerHTML="
  • Remove the need to inline svg icons in the consumer's build.
  • Add addIcon function to allow adding custom icons.
  • Fix menu.open issue when event was not passed.
  • ",fa=m(),bs=p("h2"),bs.innerHTML="v6.4.0 (2023-04-20)",ca=m(),_s=p("ul"),_s.innerHTML="
  • Tweaks to allow it to be used with SvelteKit.
  • ",da=m(),vs=p("h2"),vs.innerHTML="v6.3.16, v6.3.15 (2023-04-15)",ma=m(),ws=p("ul"),ws.innerHTML="
  • New icons: undo and redo.
  • Fix ButtonGroup styling for other button types.
  • ",pa=m(),$s=p("h2"),$s.innerHTML="v6.3.14, v6.3.13 (2023-04-12)",ha=m(),ys=p("ul"),ys.innerHTML="
  • Tooltip style tweaks, so it's finally perfect.
  • Minor fix in Tooltip.
  • ",ga=m(),ks=p("h2"),ks.innerHTML="v6.3.12 (2023-04-09)",ba=m(),Ts=p("ul"),Ts.innerHTML="
  • Cleanup.
  • ",_a=m(),Ms=p("h2"),Ms.innerHTML="v6.3.12, v6.3.11, v6.3.10, v6.3.9 (2023-04-07)",va=m(),Es=p("ul"),Es.innerHTML="
  • Menu on-close should resolve instantly, when the menu is already closed.
  • Menu new attribute align allows to align the menu to the right with the target.
  • ",wa=m(),Ss=p("h2"),Ss.innerHTML="v6.3.8, v6.3.7, v6.3.6, v6.3.5, v6.3.4 (2023-04-06)",$a=m(),Cs=p("ul"),Cs.innerHTML="
  • Handle svelte's newest a11y warnings.
  • Tweak media query notation.
  • Remove menu of type='input'.
  • Allow data- attributes on Button and MenuItem.
  • Fix Menu target button's aria-expanded attribute (wasn't set to false on menu close).
  • ",ya=m(),Ds=p("h2"),Ds.innerHTML="v6.3.3 (2023-04-05)",ka=m(),Ls=p("ul"),Ls.innerHTML="
  • Tooltip tip was upgraded to take advantage of the new clip-path property.
  • Tooltip tip was enhanced with color variations: success, warning and danger.
  • ",Ta=m(),xs=p("h2"),xs.innerHTML="v6.3.2 (2023-03-30)",Ma=m(),As=p("ul"),As.innerHTML="
  • Table will not listen to events when it's not the target.
  • Dialog buttons can now be navigated with left & right arrow keys for convenience.
  • ",Ea=m(),Is=p("h2"),Is.innerHTML="v6.3.1 (2023-03-26)",Sa=m(),Os=p("ul"),Os.innerHTML="
  • ButtonGroup styling tweaks (edge buttons padding alignment)
  • ",Ca=m(),Ps=p("h2"),Ps.innerHTML="v6.3.0 (2023-03-26)",Da=m(),Hs=p("ul"),Hs.innerHTML="
  • enhance MenuItem component (add props: class, disabled, icon, success, warning, danger)
  • ",La=m(),Fs=p("h2"),Fs.innerHTML="v6.2.10 (2023-03-25)",xa=m(),Ns=p("ul"),Ns.innerHTML="
  • Also pass event target in menu on:close event.
  • ",Aa=m(),qs=p("h2"),qs.innerHTML="v6.2.9 (2023-03-25)",Ia=m(),Bs=p("ul"),Bs.innerHTML="
  • Fix: menu on:open event was missing.
  • ",Oa=m(),Rs=p("h2"),Rs.innerHTML="v6.2.8 (2023-03-24)",Pa=m(),zs=p("ul"),zs.innerHTML="
  • move tooltip custom class attribute to the tooltip itself, not the content (so that it can easily overwrite the background color).
  • ",Ha=m(),js=p("h2"),js.innerHTML="v6.2.7 (2023-03-24)",Fa=m(),Vs=p("ul"),Vs.innerHTML="
  • revert some tooltip changes (events prop is actually useful)
  • ",Na=m(),Ws=p("h2"),Ws.innerHTML="v6.2.6 (2023-03-24)",qa=m(),Gs=p("ul"),Gs.innerHTML="
  • simplify tooltip (change bg color to accent, drop events prop and default to focus + hover)
  • ",Ba=m(),Ys=p("h2"),Ys.innerHTML="v6.2.5 (2023-03-24)",Ra=m(),Us=p("ul"),Us.innerHTML='
  • disable svelte false-positive a11y warnings. See svelte#8402
  • ',za=m(),Ks=p("h2"),Ks.innerHTML="v6.2.4 (2023-03-24)",ja=m(),Xs=p("ul"),Xs.innerHTML="
  • update table docs (missing data prop)
  • change button's active class to touching for touch events (to not conflict with popular active class name that may be used by consumers)
  • ",Va=m(),Zs=p("h2"),Zs.innerHTML="v6.2.3, v6.2.2 (2023-03-24)",Wa=m(),Js=p("ul"),Js.innerHTML="
  • Fix issue where a selectable table would become non-selectable if another table on the same page was destroyed.
  • ",Ga=m(),Qs=p("h2"),Qs.innerHTML="v6.2.1 (2023-03-23)",Ya=m(),el=p("ul"),el.innerHTML="
  • Datepicker should stopPropagation on Escape, when the calendar is open.
  • ",Ua=m(),tl=p("h2"),tl.innerHTML="v6.2.0 (2023-03-20)",Ka=m(),nl=p("ul"),nl.innerHTML="
  • Review accessibility of all components (added aria- roles and attributes where necessary).
  • Tweaked some components (e.g. close Tooltip on Escape)
  • Added unit tests for all components.
  • Docs pages style tweaks (e.g. color palette)
  • ",Xa=m(),il=p("h2"),il.innerHTML="v6.1.1 (2023-03-15)",Za=m(),ol=p("ul"),ol.innerHTML="
  • Remove coverage folder from the npm package.
  • ",Ja=m(),sl=p("h2"),sl.innerHTML="v6.1.0 (2023-03-15)",Qa=m(),ll=p("ul"),ll.innerHTML="
  • Toggle component has been completely rewritten to make it more flexible and perfect.
  • ",eu=m(),rl=p("h2"),rl.innerHTML="v6.0.2, v6.0.1, v6.0.0 (2023-03-13)",tu=m(),al=p("ul"),al.innerHTML="
  • rebrand simple-ui-components-in-svelte to @perfectthings/ui
  • ",nu=m(),iu=p("hr"),ou=m(),ul=p("h2"),ul.innerHTML="v5.1.0 (2023-03-12)",su=m(),fl=p("ul"),fl.innerHTML="
  • Better Menu highlighting (doesn't hl first item on open, mouseout removes the highlighting), inline with how native menus work on MacOS
  • Mobile friendlier buttons (touchstart invokes :active styling)
  • unit tests for some components
  • ",lu=m(),cl=p("h2"),cl.innerHTML="v5.0.8 (2023-03-03)",ru=m(),dl=p("ul"),dl.innerHTML="
  • Tooltip offset parameter
  • ",au=m(),ml=p("h2"),ml.innerHTML="v5.0.7 (2023-03-03)",uu=m(),pl=p("ul"),pl.innerHTML="
  • PushButton fix (pushed class was not applied)
  • ",fu=m(),hl=p("h2"),hl.innerHTML="v5.0.6 (2023-03-02)",cu=m(),gl=p("ul"),gl.innerHTML="
  • Add back form property to a button
  • ",du=m(),bl=p("h2"),bl.innerHTML="v5.0.5 (2023-03-02)",mu=m(),_l=p("ul"),_l.innerHTML="
  • Reduce memory footprint (removed some of the transform props that were no longer necessary)
  • ",pu=m(),vl=p("h2"),vl.innerHTML="v5.0.4 (2023-03-02)",hu=m(),wl=p("ul"),wl.innerHTML="
  • esbuild replaced rollup for speed and simplicity
  • cleanup & refactoring
  • ",gu=m(),$l=p("h2"),$l.innerHTML="v5.0.3 (2023-03-01)",bu=m(),yl=p("ul"),yl.innerHTML="
  • Tooltip hiding fix (wasn't hiding when hovering target)
  • ",_u=m(),kl=p("h2"),kl.innerHTML="v5.0.2 (2023-03-01)",vu=m(),Tl=p("ul"),Tl.innerHTML="
  • Toaster import fix
  • Tooltip fix (some console errors were popping up)
  • ",wu=m(),Ml=p("h2"),Ml.innerHTML="v5.0.1 (2023-02-28)",$u=m(),El=p("ul"),El.innerHTML="
  • Bring back button-outline.css (it was accidentally deleted in v5.0.0)
  • ",yu=m(),Sl=p("h2"),Sl.innerHTML="v5.0.0 (2023-02-28)",ku=m(),Cl=p("ul"),Cl.innerHTML="
  • Breaking change: renamed props for all components: className -> class (as it turns out it is possible to use class as a prop name in svelte)
  • Almost all components now have a class prop, which can be used to add custom classes to the component
  • Updated docs to reflect the above changes
  • Docs API table is now alphabetically sorted
  • Components don't use $$props anymore, as it was causing issues with the class prop. Instead, the props are now explicitly passed down to the component. This is a good thing to do, as it makes the components more explicit and easier to understand.
  • ",Tu=m(),Mu=p("hr"),Eu=m(),Dl=p("h2"),Dl.innerHTML="v4.0.0 (2023-02-28)",Su=m(),Ll=p("ul"),Ll.innerHTML="
  • Breaking change: renamed components: Item -> MenuItem, Separator -> MenuSeparator
  • Refactored the folder structure
  • ",Cu=m(),Du=p("hr"),Lu=m(),xl=p("h2"),xl.innerHTML="v3.1.2 (2023-01-04)",xu=m(),Al=p("ul"),Al.innerHTML="
  • Toggle's innerWidth function was somehow overwriting window.innerWidth property (maybe a compiler issue?)
  • ",Au=m(),Il=p("h2"),Il.innerHTML="v3.1.1 (2023-01-04)",Iu=m(),Ol=p("ul"),Ol.innerHTML="
  • Fix input-number (could not enter decimals)
  • Fix input-math (math didn't work)
  • ",Ou=m(),Pl=p("h2"),Pl.innerHTML="v3.1.0 (2023-01-03)",Pu=m(),Hl=p("ul"),Hl.innerHTML="
  • UX change: autocomplete will not close on scroll or resize events from now on (it can be changed using new properties hideOnScroll and hideOnResize).
  • fixed: autocomplete issue, where clicking on a filtered list would not select.
  • tweak: autocomplete will now show "create new item" always (when enabled), not only when the query did not match anything. Except when the query matches an item exactly.
  • ",Hu=m(),Fl=p("h2"),Fl.innerHTML="v3.0.1 (2022-12-30)",Fu=m(),Nl=p("ul"),Nl.innerHTML="
  • autocomplete should revert when entered value is not on the list
  • ",Nu=m(),ql=p("h2"),ql.innerHTML="v3.0.0 (2022-12-28)",qu=m(),Bl=p("ul"),Bl.innerHTML="
  • breaking change: cssClass property available on some components has been renamed to className (to be more aligned with the standard workaround in other libs/frameworks).
  • some components (where possible) are now using $$props to pass-through the properties of the instance down to the component.
  • ",Bu=m(),Ru=p("hr"),zu=m(),Rl=p("h2"),Rl.innerHTML="v2.1.1 (2022-12-24)",ju=m(),zl=p("ul"),zl.innerHTML="
  • breaking change: dist folder has been renamed to docs, as this is the only allowed name for a GH pages folder so that the GH pages is published automatically (without writing a GH action specifically for this).
  • ",Vu=m(),Wu=p("hr"),Gu=m(),jl=p("h2"),jl.innerHTML="v1.7.12 (2022)"},m(B,R){l(B,e,R),l(B,n,R),l(B,i,R),l(B,o,R),l(B,r,R),l(B,u,R),l(B,a,R),l(B,c,R),l(B,f,R),l(B,d,R),l(B,b,R),l(B,h,R),l(B,g,R),l(B,$,R),l(B,_,R),l(B,v,R),l(B,w,R),l(B,k,R),l(B,x,R),l(B,A,R),l(B,y,R),l(B,T,R),l(B,L,R),l(B,N,R),l(B,I,R),l(B,F,R),l(B,j,R),l(B,W,R),l(B,q,R),l(B,X,R),l(B,U,R),l(B,H,R),l(B,Q,R),l(B,z,R),l(B,K,R),l(B,te,R),l(B,$e,R),l(B,G,R),l(B,V,R),l(B,ce,R),l(B,se,R),l(B,Y,R),l(B,ee,R),l(B,Ie,R),l(B,pe,R),l(B,ke,R),l(B,He,R),l(B,me,R),l(B,Z,R),l(B,ae,R),l(B,le,R),l(B,oe,R),l(B,re,R),l(B,Se,R),l(B,be,R),l(B,Ae,R),l(B,we,R),l(B,ne,R),l(B,De,R),l(B,Ge,R),l(B,ut,R),l(B,et,R),l(B,ft,R),l(B,Ze,R),l(B,pt,R),l(B,rt,R),l(B,ht,R),l(B,ye,R),l(B,it,R),l(B,ct,R),l(B,gt,R),l(B,at,R),l(B,_e,R),l(B,Pe,R),l(B,qt,R),l(B,ot,R),l(B,Dt,R),l(B,vt,R),l(B,St,R),l(B,Ce,R),l(B,Re,R),l(B,Jt,R),l(B,Gt,R),l(B,nn,R),l(B,Vt,R),l(B,Te,R),l(B,We,R),l(B,Wt,R),l(B,Yt,R),l(B,ve,R),l(B,xe,R),l(B,on,R),l(B,Bt,R),l(B,sn,R),l(B,Cn,R),l(B,ln,R),l(B,Dn,R),l(B,rn,R),l(B,Ln,R),l(B,an,R),l(B,xn,R),l(B,un,R),l(B,$n,R),l(B,fn,R),l(B,yn,R),l(B,cn,R),l(B,gn,R),l(B,ge,R),l(B,Le,R),l(B,Vn,R),l(B,An,R),l(B,Wn,R),l(B,In,R),l(B,Gn,R),l(B,On,R),l(B,Yn,R),l(B,Pn,R),l(B,Un,R),l(B,Hn,R),l(B,Kn,R),l(B,vi,R),l(B,Wi,R),l(B,wi,R),l(B,Gi,R),l(B,$i,R),l(B,Yi,R),l(B,yi,R),l(B,Ui,R),l(B,ki,R),l(B,Ki,R),l(B,Xi,R),l(B,Zi,R),l(B,Ti,R),l(B,Ji,R),l(B,zo,R),l(B,Hr,R),l(B,jo,R),l(B,Fr,R),l(B,Vo,R),l(B,Nr,R),l(B,Wo,R),l(B,qr,R),l(B,Go,R),l(B,Br,R),l(B,Yo,R),l(B,Rr,R),l(B,Uo,R),l(B,zr,R),l(B,Ko,R),l(B,jr,R),l(B,Xo,R),l(B,Vr,R),l(B,Zo,R),l(B,Wr,R),l(B,Jo,R),l(B,Gr,R),l(B,Qo,R),l(B,Yr,R),l(B,es,R),l(B,Ur,R),l(B,ts,R),l(B,Kr,R),l(B,ns,R),l(B,Xr,R),l(B,is,R),l(B,Zr,R),l(B,os,R),l(B,Jr,R),l(B,ss,R),l(B,Qr,R),l(B,ls,R),l(B,ea,R),l(B,rs,R),l(B,ta,R),l(B,as,R),l(B,na,R),l(B,us,R),l(B,ia,R),l(B,fs,R),l(B,oa,R),l(B,cs,R),l(B,sa,R),l(B,ds,R),l(B,la,R),l(B,ms,R),l(B,ra,R),l(B,ps,R),l(B,aa,R),l(B,hs,R),l(B,ua,R),l(B,gs,R),l(B,fa,R),l(B,bs,R),l(B,ca,R),l(B,_s,R),l(B,da,R),l(B,vs,R),l(B,ma,R),l(B,ws,R),l(B,pa,R),l(B,$s,R),l(B,ha,R),l(B,ys,R),l(B,ga,R),l(B,ks,R),l(B,ba,R),l(B,Ts,R),l(B,_a,R),l(B,Ms,R),l(B,va,R),l(B,Es,R),l(B,wa,R),l(B,Ss,R),l(B,$a,R),l(B,Cs,R),l(B,ya,R),l(B,Ds,R),l(B,ka,R),l(B,Ls,R),l(B,Ta,R),l(B,xs,R),l(B,Ma,R),l(B,As,R),l(B,Ea,R),l(B,Is,R),l(B,Sa,R),l(B,Os,R),l(B,Ca,R),l(B,Ps,R),l(B,Da,R),l(B,Hs,R),l(B,La,R),l(B,Fs,R),l(B,xa,R),l(B,Ns,R),l(B,Aa,R),l(B,qs,R),l(B,Ia,R),l(B,Bs,R),l(B,Oa,R),l(B,Rs,R),l(B,Pa,R),l(B,zs,R),l(B,Ha,R),l(B,js,R),l(B,Fa,R),l(B,Vs,R),l(B,Na,R),l(B,Ws,R),l(B,qa,R),l(B,Gs,R),l(B,Ba,R),l(B,Ys,R),l(B,Ra,R),l(B,Us,R),l(B,za,R),l(B,Ks,R),l(B,ja,R),l(B,Xs,R),l(B,Va,R),l(B,Zs,R),l(B,Wa,R),l(B,Js,R),l(B,Ga,R),l(B,Qs,R),l(B,Ya,R),l(B,el,R),l(B,Ua,R),l(B,tl,R),l(B,Ka,R),l(B,nl,R),l(B,Xa,R),l(B,il,R),l(B,Za,R),l(B,ol,R),l(B,Ja,R),l(B,sl,R),l(B,Qa,R),l(B,ll,R),l(B,eu,R),l(B,rl,R),l(B,tu,R),l(B,al,R),l(B,nu,R),l(B,iu,R),l(B,ou,R),l(B,ul,R),l(B,su,R),l(B,fl,R),l(B,lu,R),l(B,cl,R),l(B,ru,R),l(B,dl,R),l(B,au,R),l(B,ml,R),l(B,uu,R),l(B,pl,R),l(B,fu,R),l(B,hl,R),l(B,cu,R),l(B,gl,R),l(B,du,R),l(B,bl,R),l(B,mu,R),l(B,_l,R),l(B,pu,R),l(B,vl,R),l(B,hu,R),l(B,wl,R),l(B,gu,R),l(B,$l,R),l(B,bu,R),l(B,yl,R),l(B,_u,R),l(B,kl,R),l(B,vu,R),l(B,Tl,R),l(B,wu,R),l(B,Ml,R),l(B,$u,R),l(B,El,R),l(B,yu,R),l(B,Sl,R),l(B,ku,R),l(B,Cl,R),l(B,Tu,R),l(B,Mu,R),l(B,Eu,R),l(B,Dl,R),l(B,Su,R),l(B,Ll,R),l(B,Cu,R),l(B,Du,R),l(B,Lu,R),l(B,xl,R),l(B,xu,R),l(B,Al,R),l(B,Au,R),l(B,Il,R),l(B,Iu,R),l(B,Ol,R),l(B,Ou,R),l(B,Pl,R),l(B,Pu,R),l(B,Hl,R),l(B,Hu,R),l(B,Fl,R),l(B,Fu,R),l(B,Nl,R),l(B,Nu,R),l(B,ql,R),l(B,qu,R),l(B,Bl,R),l(B,Bu,R),l(B,Ru,R),l(B,zu,R),l(B,Rl,R),l(B,ju,R),l(B,zl,R),l(B,Vu,R),l(B,Wu,R),l(B,Gu,R),l(B,jl,R)},p:Oe,i:Oe,o:Oe,d(B){B&&(s(e),s(n),s(i),s(o),s(r),s(u),s(a),s(c),s(f),s(d),s(b),s(h),s(g),s($),s(_),s(v),s(w),s(k),s(x),s(A),s(y),s(T),s(L),s(N),s(I),s(F),s(j),s(W),s(q),s(X),s(U),s(H),s(Q),s(z),s(K),s(te),s($e),s(G),s(V),s(ce),s(se),s(Y),s(ee),s(Ie),s(pe),s(ke),s(He),s(me),s(Z),s(ae),s(le),s(oe),s(re),s(Se),s(be),s(Ae),s(we),s(ne),s(De),s(Ge),s(ut),s(et),s(ft),s(Ze),s(pt),s(rt),s(ht),s(ye),s(it),s(ct),s(gt),s(at),s(_e),s(Pe),s(qt),s(ot),s(Dt),s(vt),s(St),s(Ce),s(Re),s(Jt),s(Gt),s(nn),s(Vt),s(Te),s(We),s(Wt),s(Yt),s(ve),s(xe),s(on),s(Bt),s(sn),s(Cn),s(ln),s(Dn),s(rn),s(Ln),s(an),s(xn),s(un),s($n),s(fn),s(yn),s(cn),s(gn),s(ge),s(Le),s(Vn),s(An),s(Wn),s(In),s(Gn),s(On),s(Yn),s(Pn),s(Un),s(Hn),s(Kn),s(vi),s(Wi),s(wi),s(Gi),s($i),s(Yi),s(yi),s(Ui),s(ki),s(Ki),s(Xi),s(Zi),s(Ti),s(Ji),s(zo),s(Hr),s(jo),s(Fr),s(Vo),s(Nr),s(Wo),s(qr),s(Go),s(Br),s(Yo),s(Rr),s(Uo),s(zr),s(Ko),s(jr),s(Xo),s(Vr),s(Zo),s(Wr),s(Jo),s(Gr),s(Qo),s(Yr),s(es),s(Ur),s(ts),s(Kr),s(ns),s(Xr),s(is),s(Zr),s(os),s(Jr),s(ss),s(Qr),s(ls),s(ea),s(rs),s(ta),s(as),s(na),s(us),s(ia),s(fs),s(oa),s(cs),s(sa),s(ds),s(la),s(ms),s(ra),s(ps),s(aa),s(hs),s(ua),s(gs),s(fa),s(bs),s(ca),s(_s),s(da),s(vs),s(ma),s(ws),s(pa),s($s),s(ha),s(ys),s(ga),s(ks),s(ba),s(Ts),s(_a),s(Ms),s(va),s(Es),s(wa),s(Ss),s($a),s(Cs),s(ya),s(Ds),s(ka),s(Ls),s(Ta),s(xs),s(Ma),s(As),s(Ea),s(Is),s(Sa),s(Os),s(Ca),s(Ps),s(Da),s(Hs),s(La),s(Fs),s(xa),s(Ns),s(Aa),s(qs),s(Ia),s(Bs),s(Oa),s(Rs),s(Pa),s(zs),s(Ha),s(js),s(Fa),s(Vs),s(Na),s(Ws),s(qa),s(Gs),s(Ba),s(Ys),s(Ra),s(Us),s(za),s(Ks),s(ja),s(Xs),s(Va),s(Zs),s(Wa),s(Js),s(Ga),s(Qs),s(Ya),s(el),s(Ua),s(tl),s(Ka),s(nl),s(Xa),s(il),s(Za),s(ol),s(Ja),s(sl),s(Qa),s(ll),s(eu),s(rl),s(tu),s(al),s(nu),s(iu),s(ou),s(ul),s(su),s(fl),s(lu),s(cl),s(ru),s(dl),s(au),s(ml),s(uu),s(pl),s(fu),s(hl),s(cu),s(gl),s(du),s(bl),s(mu),s(_l),s(pu),s(vl),s(hu),s(wl),s(gu),s($l),s(bu),s(yl),s(_u),s(kl),s(vu),s(Tl),s(wu),s(Ml),s($u),s(El),s(yu),s(Sl),s(ku),s(Cl),s(Tu),s(Mu),s(Eu),s(Dl),s(Su),s(Ll),s(Cu),s(Du),s(Lu),s(xl),s(xu),s(Al),s(Au),s(Il),s(Iu),s(Ol),s(Ou),s(Pl),s(Pu),s(Hl),s(Hu),s(Fl),s(Fu),s(Nl),s(Nu),s(ql),s(qu),s(Bl),s(Bu),s(Ru),s(zu),s(Rl),s(ju),s(zl),s(Vu),s(Wu),s(Gu),s(jl))}}}var _d=class extends ue{constructor(e){super(),de(this,e,null,R0,fe,{})}},Xg=_d;var Fm={};S1(Fm,{Button:()=>Td,ButtonGroup:()=>Cd,ButtonToggle:()=>Ld,Checkbox:()=>Ad,ColorPalette:()=>Hm,Combobox:()=>Od,Dialog:()=>fm,Drawer:()=>dm,Icon:()=>Mm,InfoBar:()=>nm,InputDate:()=>Hd,InputMath:()=>Nd,InputNumber:()=>Bd,InputPassword:()=>zd,InputSearch:()=>Vd,InputText:()=>Gd,Menu:()=>km,MessageBox:()=>lm,NotificationCenter:()=>om,Panel:()=>pm,Popover:()=>gm,PushButton:()=>Ed,Radio:()=>Ud,Select:()=>Xd,Splitter:()=>Im,Table:()=>_m,Textarea:()=>Jd,Toggle:()=>em,Tooltip:()=>am,Tree:()=>wm,Utils:()=>xm});function Zg(t,e,n){let i=t.slice();return i[3]=e[n],i}function Jg(t){let e;return{c(){e=p("p")},m(n,i){l(n,e,i),e.innerHTML=t[1]},p(n,i){i&2&&(e.innerHTML=n[1])},d(n){n&&s(e)}}}function Qg(t){let e,n,i=t[3].name+"",o,r,u,a=e1(t[3])+"",c,f,d=t[3].description+"",b;return{c(){e=p("tr"),n=p("td"),o=J(i),r=m(),u=p("td"),c=m(),f=p("td"),b=m()},m(h,g){l(h,e,g),P(e,n),P(n,o),P(e,r),P(e,u),u.innerHTML=a,P(e,c),P(e,f),f.innerHTML=d,P(e,b)},p(h,g){g&4&&i!==(i=h[3].name+"")&&je(o,i),g&4&&a!==(a=e1(h[3])+"")&&(u.innerHTML=a),g&4&&d!==(d=h[3].description+"")&&(f.innerHTML=d)},d(h){h&&s(e)}}}function z0(t){let e,n,i,o=nt(t[2]),r=[];for(let u=0;uAttributeType/ValueDescription",n=m(),i=p("tbody");for(let u=0;u`${i}`);return e.push(n.join(" | ")),t.required&&e.push("required"),t.default&&e.push(`
    (defaults to ${t.default})`),e.join(" ")}function V0(t,e,n){let{title:i="API"}=e,{description:o=""}=e,{props:r=[{name:"id",type:"string",defalut:"",required:!0,description:"assign ID to the underlying component"}]}=e;return t.$$set=u=>{"title"in u&&n(0,i=u.title),"description"in u&&n(1,o=u.description),"props"in u&&n(2,r=u.props)},[i,o,r]}var vd=class extends ue{constructor(e){super(),de(this,e,V0,j0,fe,{title:0,description:1,props:2})}},Ne=vd;function t1(t){let e,n,i=t[2]===void 0&&n1(t);return{c(){i&&i.c(),e=m(),n=p("h3"),n.textContent="Example"},m(o,r){i&&i.m(o,r),l(o,e,r),l(o,n,r)},p(o,r){o[2]===void 0?i||(i=n1(o),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null)},d(o){o&&(s(e),s(n)),i&&i.d(o)}}}function n1(t){let e;return{c(){e=p("hr")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function W0(t){let e,n,i,o,r,u=i1(t[0])+"",a,c=!t[1]&&t1(t);return{c(){c&&c.c(),e=m(),n=p("pre"),i=p("code"),o=J(` + `),r=new Fn(!1),a=J(` +`),r.a=a,O(i,"class","language-svelte")},m(f,d){c&&c.m(f,d),l(f,e,d),l(f,n,d),P(n,i),P(i,o),r.m(u,i),P(i,a)},p(f,[d]){f[1]?c&&(c.d(1),c=null):c?c.p(f,d):(c=t1(f),c.c(),c.m(e.parentNode,e)),d&1&&u!==(u=i1(f[0])+"")&&r.p(u)},i:Oe,o:Oe,d(f){f&&(s(e),s(n)),c&&c.d(f)}}}function i1(t){return t.replace(/{/gim,"{").replace(/}/gim,"}").replace(//gim,">").replace(/\t/gim," ").trim()}function G0(t,e,n){let{html:i=""}=e,{notitle:o=!1}=e,{nohr:r=void 0}=e;return t.$$set=u=>{"html"in u&&n(0,i=u.html),"notitle"in u&&n(1,o=u.notitle),"nohr"in u&&n(2,r=u.nohr)},[i,o,r]}var wd=class extends ue{constructor(e){super(),de(this,e,G0,W0,fe,{html:0,notitle:1,nohr:2})}},qe=wd;function Y0(t){let e,n;return{c(){e=p("pre"),n=p("code"),O(n,"class","language-")},m(i,o){l(i,e,o),P(e,n),n.innerHTML=t[0]},p(i,[o]){o&1&&(n.innerHTML=i[0])},i:Oe,o:Oe,d(i){i&&s(e)}}}function U0(t,e,n){let{tag:i="div"}=e,{props:o={}}=e,{text:r=""}=e,u="";Zn(()=>{requestAnimationFrame(a)});function a(){n(0,u=window.Prism.highlight(c(),window.Prism.languages.svelte,"svelte"))}function c(){let f={};for(let b in o)o[b]!==!1&&o[b]!==""&&(f[b]=o[b]);let d=JSON.stringify(f).replace(/"([^"]+)":/g,"$1:").replace(/(:)/g,"=").replace(/,/g," ").replace(/({|}|=true|default)/g,"").trim();return d&&(d=" "+d),r?`<${i}${d}>${r}`:`<${i}${d}/>`}return t.$$set=f=>{"tag"in f&&n(1,i=f.tag),"props"in f&&n(2,o=f.props),"text"in f&&n(3,r=f.text)},[u,i,o,r]}var $d=class extends ue{constructor(e){super(),de(this,e,U0,Y0,fe,{tag:1,props:2,text:3})}},yd=$d;function K0(t){let e,n,i=[t[0]],o={};for(let r=0;rUe($,"value",te)),w=new Rt({props:{label:"Style",items:t[3],value:""}}),w.$on("change",t[6]),x=new Rt({props:{label:"Type",items:t[4],value:""}}),x.$on("change",t[7]),y=new Rt({props:{label:"Icon",items:t[5],value:""}}),y.$on("change",t[8]);function G(Y){t[10](Y)}let V={label:"Round"};t[0].round!==void 0&&(V.value=t[0].round),L=new tn({props:V}),he.push(()=>Ue(L,"value",G));function ce(Y){t[11](Y)}let se={label:"Disabled"};return t[0].disabled!==void 0&&(se.value=t[0].disabled),F=new tn({props:se}),he.push(()=>Ue(F,"value",ce)),U=new Ne({props:{props:t[2]}}),{c(){e=p("h2"),e.textContent="Button",n=m(),i=p("h3"),i.textContent="Live demo",o=m(),r=p("div"),a.c(),c=m(),D(f.$$.fragment),d=m(),b=p("hr"),h=m(),g=p("div"),D($.$$.fragment),v=m(),D(w.$$.fragment),k=m(),D(x.$$.fragment),A=m(),D(y.$$.fragment),T=m(),D(L.$$.fragment),I=m(),D(F.$$.fragment),W=m(),q=p("hr"),X=m(),D(U.$$.fragment),O(r,"class","docs-buttons-row"),Xt(r,"height","3rem"),O(g,"class","button-demo-props")},m(Y,ee){l(Y,e,ee),l(Y,n,ee),l(Y,i,ee),l(Y,o,ee),l(Y,r,ee),z[u].m(r,null),l(Y,c,ee),S(f,Y,ee),l(Y,d,ee),l(Y,b,ee),l(Y,h,ee),l(Y,g,ee),S($,g,null),P(g,v),S(w,g,null),P(g,k),S(x,g,null),P(g,A),S(y,g,null),P(g,T),S(L,g,null),P(g,I),S(F,g,null),l(Y,W,ee),l(Y,q,ee),l(Y,X,ee),S(U,Y,ee),H=!0},p(Y,[ee]){let Ie=u;u=K(Y,ee),u===Ie?z[u].p(Y,ee):(Je(),E(z[Ie],1,1,()=>{z[Ie]=null}),Qe(),a=z[u],a?a.p(Y,ee):(a=z[u]=Q[u](Y),a.c()),M(a,1),a.m(r,null));let pe={};ee&2&&(pe.text=Y[1]),ee&1&&(pe.props=Y[0]),f.$set(pe);let ke={};!_&&ee&2&&(_=!0,ke.value=Y[1],Ye(()=>_=!1)),$.$set(ke);let He={};!N&&ee&1&&(N=!0,He.value=Y[0].round,Ye(()=>N=!1)),L.$set(He);let me={};!j&&ee&1&&(j=!0,me.value=Y[0].disabled,Ye(()=>j=!1)),F.$set(me)},i(Y){H||(M(a),M(f.$$.fragment,Y),M($.$$.fragment,Y),M(w.$$.fragment,Y),M(x.$$.fragment,Y),M(y.$$.fragment,Y),M(L.$$.fragment,Y),M(F.$$.fragment,Y),M(U.$$.fragment,Y),H=!0)},o(Y){E(a),E(f.$$.fragment,Y),E($.$$.fragment,Y),E(w.$$.fragment,Y),E(x.$$.fragment,Y),E(y.$$.fragment,Y),E(L.$$.fragment,Y),E(F.$$.fragment,Y),E(U.$$.fragment,Y),H=!1},d(Y){Y&&(s(e),s(n),s(i),s(o),s(r),s(c),s(d),s(b),s(h),s(g),s(W),s(q),s(X)),z[u].d(),C(f,Y),C($),C(w),C(x),C(y),C(L),C(F),C(U,Y)}}}function Q0(t,e,n){let i=[{name:"class",type:"string",description:"Additional css class name to be added to the component."},{name:"danger",description:"Button type: danger"},{name:"data-",description:"Dataset attribute allows to pass some data of a primitive type (string, number, boolean), which will be accessible in the on:click event listener, via button reference."},{name:"disabled",description:"Makes the button disabled"},{name:"icon",type:"string",description:'Adds an icon, with this name, to the button (see icons section for icon names)'},{name:"id",type:"string",description:"Assign ID to the underlying button"},{name:"info",description:"Button type: info"},{name:"link",description:"Button style: link"},{name:"outline",description:"Button style: outline"},{name:"round",description:"Makes the button round"},{name:"submit",type:["true","false"],default:"false",description:"If true button type is set to submit, otherwise it's button"},{name:"success",description:"Button type: success"},{name:"text",description:"Button style: text"},{name:"title",type:"string",description:"Assign title to the underlying button"},{name:"warning",description:"Button type: warning"},{name:"bind:element",type:"element",description:"Exposes the HTML element of the component."},{name:"on:click",type:"function",description:"Triggered when the button is clicked."}],o={},r="Demo button",u=[{name:"Normal",value:""},{name:"Outline",value:"outline"},{name:"Text",value:"text"},{name:"Link",value:"link"}],a=[{name:"Default",value:""},{name:"Info",value:"info"},{name:"Success",value:"success"},{name:"Warning",value:"warning"},{name:"Danger",value:"danger"}],c=[{name:"none",value:""},{name:"info",value:"info"},{name:"check",value:"check"},{name:"alert",value:"alert"},{name:"trash",value:"trash"}];function f(v){n(0,o.outline=!1,o),n(0,o.text=!1,o),n(0,o.link=!1,o),h(v.detail,!0)}function d(v){n(0,o.info=!1,o),n(0,o.success=!1,o),n(0,o.warning=!1,o),n(0,o.danger=!1,o),h(v.detail,!0)}function b(v){h("icon",v.detail)}function h(v,w){!v||typeof w>"u"||n(0,o[v]=w,o)}function g(v){r=v,n(1,r)}function $(v){t.$$.not_equal(o.round,v)&&(o.round=v,n(0,o))}function _(v){t.$$.not_equal(o.disabled,v)&&(o.disabled=v,n(0,o))}return[o,r,i,u,a,c,f,d,b,g,$,_]}var kd=class extends ue{constructor(e){super(),de(this,e,Q0,J0,fe,{})}},Td=kd;function e2(t){let e;return{c(){e=J("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function t2(t){let e;return{c(){e=J("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function n2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function i2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function o2(t){let e;return{c(){e=J("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function s2(t){let e;return{c(){e=J("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function l2(t){let e;return{c(){e=J("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function r2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function a2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function u2(t){let e;return{c(){e=J("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function f2(t){let e;return{c(){e=J("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function c2(t){let e;return{c(){e=J("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function d2(t){let e;return{c(){e=J("Success")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function m2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function p2(t){let e;return{c(){e=J("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function h2(t){let e;return{c(){e=J("Help")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function g2(t){let e;return{c(){e=J("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function b2(t){let e;return{c(){e=J("Success")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function _2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function v2(t){let e;return{c(){e=J("Delete")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function w2(t){let e;return{c(){e=J("Hello")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function $2(t){let e;return{c(){e=J("Info")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function y2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function k2(t){let e;return{c(){e=J("Warning")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function T2(t){let e;return{c(){e=J("Danger")},m(n,i){l(n,e,i)},d(n){n&&s(e)}}}function M2(t){let e,n,i,o,r,u,a,c,f,d,b,h,g,$,_,v,w,k,x,A,y,T,L,N,I,F,j,W,q,X,U,H,Q,z,K,te,$e,G,V,ce,se,Y,ee,Ie,pe,ke,He,me,Z,ae,le,oe,re,Se,be,Ae,we,ne,De,Ge,ut,et,ft,Ze,pt,rt,ht,ye,it,ct,gt,at,_e,Pe,qt,ot,Dt,vt,St,Ce,Re,Jt,Gt,nn,Vt,Te,We,Wt,Yt,ve,xe,on,Bt,sn,Cn,ln,Dn,rn,Ln,an,xn,un,$n,fn,yn,cn,gn;return c=new tt({props:{$$slots:{default:[e2]},$$scope:{ctx:t}}}),d=new tt({props:{info:!0,$$slots:{default:[t2]},$$scope:{ctx:t}}}),h=new tt({props:{success:!0,$$slots:{default:[n2]},$$scope:{ctx:t}}}),$=new tt({props:{warning:!0,$$slots:{default:[i2]},$$scope:{ctx:t}}}),v=new tt({props:{danger:!0,$$slots:{default:[o2]},$$scope:{ctx:t}}}),y=new tt({props:{pressed:!0,$$slots:{default:[s2]},$$scope:{ctx:t}}}),L=new tt({props:{pressed:!0,info:!0,$$slots:{default:[l2]},$$scope:{ctx:t}}}),I=new tt({props:{pressed:!0,success:!0,$$slots:{default:[r2]},$$scope:{ctx:t}}}),j=new tt({props:{pressed:!0,warning:!0,$$slots:{default:[a2]},$$scope:{ctx:t}}}),q=new tt({props:{pressed:!0,danger:!0,$$slots:{default:[u2]},$$scope:{ctx:t}}}),z=new tt({props:{pressed:!0,disabled:!0,$$slots:{default:[f2]},$$scope:{ctx:t}}}),te=new tt({props:{pressed:!0,disabled:!0,info:!0,$$slots:{default:[c2]},$$scope:{ctx:t}}}),G=new tt({props:{pressed:!0,disabled:!0,success:!0,$$slots:{default:[d2]},$$scope:{ctx:t}}}),ce=new tt({props:{pressed:!0,disabled:!0,warning:!0,$$slots:{default:[m2]},$$scope:{ctx:t}}}),Y=new tt({props:{pressed:!0,disabled:!0,danger:!0,$$slots:{default:[p2]},$$scope:{ctx:t}}}),He=new tt({props:{icon:"help",$$slots:{default:[h2]},$$scope:{ctx:t}}}),Z=new tt({props:{icon:"info",info:!0,$$slots:{default:[g2]},$$scope:{ctx:t}}}),le=new tt({props:{icon:"check",success:!0,$$slots:{default:[b2]},$$scope:{ctx:t}}}),re=new tt({props:{icon:"alert",warning:!0,$$slots:{default:[_2]},$$scope:{ctx:t}}}),be=new tt({props:{icon:"trash",danger:!0,$$slots:{default:[v2]},$$scope:{ctx:t}}}),Ge=new tt({props:{outline:!0,$$slots:{default:[w2]},$$scope:{ctx:t}}}),et=new tt({props:{outline:!0,info:!0,$$slots:{default:[$2]},$$scope:{ctx:t}}}),Ze=new tt({props:{outline:!0,success:!0,$$slots:{default:[y2]},$$scope:{ctx:t}}}),rt=new tt({props:{outline:!0,warning:!0,$$slots:{default:[k2]},$$scope:{ctx:t}}}),ye=new tt({props:{outline:!0,danger:!0,$$slots:{default:[T2]},$$scope:{ctx:t}}}),Dt=new tt({props:{icon:"help"}}),St=new tt({props:{icon:"info",info:!0}}),Re=new tt({props:{icon:"check",success:!0}}),Gt=new tt({props:{icon:"alert",warning:!0}}),Vt=new tt({props:{icon:"trash",danger:!0}}),sn=new tt({props:{round:!0,icon:"help"}}),ln=new tt({props:{round:!0,icon:"info",info:!0}}),rn=new tt({props:{round:!0,icon:"check",success:!0}}),an=new tt({props:{round:!0,icon:"alert",warning:!0}}),un=new tt({props:{round:!0,icon:"trash",danger:!0}}),fn=new qe({props:{html:t[1]}}),cn=new Ne({props:{props:t[0]}}),{c(){e=p("h2"),e.textContent="Push Button",n=m(),i=p("h3"),i.textContent="Normal",o=m(),r=p("h4"),r.textContent="Default",u=m(),a=p("div"),D(c.$$.fragment),f=m(),D(d.$$.fragment),b=m(),D(h.$$.fragment),g=m(),D($.$$.fragment),_=m(),D(v.$$.fragment),w=m(),k=p("h4"),k.textContent="Pressed",x=m(),A=p("div"),D(y.$$.fragment),T=m(),D(L.$$.fragment),N=m(),D(I.$$.fragment),F=m(),D(j.$$.fragment),W=m(),D(q.$$.fragment),X=m(),U=p("h4"),U.textContent="Disabled",H=m(),Q=p("div"),D(z.$$.fragment),K=m(),D(te.$$.fragment),$e=m(),D(G.$$.fragment),V=m(),D(ce.$$.fragment),se=m(),D(Y.$$.fragment),ee=m(),Ie=p("h4"),Ie.textContent="With icon",pe=m(),ke=p("div"),D(He.$$.fragment),me=m(),D(Z.$$.fragment),ae=m(),D(le.$$.fragment),oe=m(),D(re.$$.fragment),Se=m(),D(be.$$.fragment),Ae=m(),we=p("h4"),we.textContent="Outline",ne=m(),De=p("div"),D(Ge.$$.fragment),ut=m(),D(et.$$.fragment),ft=m(),D(Ze.$$.fragment),pt=m(),D(rt.$$.fragment),ht=m(),D(ye.$$.fragment),it=m(),ct=p("hr"),gt=m(),at=p("h3"),at.textContent="Icon only buttons",_e=m(),Pe=p("h4"),Pe.textContent="Default",qt=m(),ot=p("div"),D(Dt.$$.fragment),vt=m(),D(St.$$.fragment),Ce=m(),D(Re.$$.fragment),Jt=m(),D(Gt.$$.fragment),nn=m(),D(Vt.$$.fragment),Te=m(),We=p("hr"),Wt=m(),Yt=p("h3"),Yt.textContent="Icon only, and round",ve=m(),xe=p("h4"),xe.textContent="Default",on=m(),Bt=p("div"),D(sn.$$.fragment),Cn=m(),D(ln.$$.fragment),Dn=m(),D(rn.$$.fragment),Ln=m(),D(an.$$.fragment),xn=m(),D(un.$$.fragment),$n=m(),D(fn.$$.fragment),yn=m(),D(cn.$$.fragment),O(a,"class","docs-buttons-row"),O(A,"class","docs-buttons-row"),O(Q,"class","docs-buttons-row"),O(ke,"class","docs-buttons-row"),O(De,"class","docs-buttons-row"),O(ot,"class","docs-buttons-row"),O(Bt,"class","docs-buttons-row")},m(ge,Le){l(ge,e,Le),l(ge,n,Le),l(ge,i,Le),l(ge,o,Le),l(ge,r,Le),l(ge,u,Le),l(ge,a,Le),S(c,a,null),P(a,f),S(d,a,null),P(a,b),S(h,a,null),P(a,g),S($,a,null),P(a,_),S(v,a,null),l(ge,w,Le),l(ge,k,Le),l(ge,x,Le),l(ge,A,Le),S(y,A,null),P(A,T),S(L,A,null),P(A,N),S(I,A,null),P(A,F),S(j,A,null),P(A,W),S(q,A,null),l(ge,X,Le),l(ge,U,Le),l(ge,H,Le),l(ge,Q,Le),S(z,Q,null),P(Q,K),S(te,Q,null),P(Q,$e),S(G,Q,null),P(Q,V),S(ce,Q,null),P(Q,se),S(Y,Q,null),l(ge,ee,Le),l(ge,Ie,Le),l(ge,pe,Le),l(ge,ke,Le),S(He,ke,null),P(ke,me),S(Z,ke,null),P(ke,ae),S(le,ke,null),P(ke,oe),S(re,ke,null),P(ke,Se),S(be,ke,null),l(ge,Ae,Le),l(ge,we,Le),l(ge,ne,Le),l(ge,De,Le),S(Ge,De,null),P(De,ut),S(et,De,null),P(De,ft),S(Ze,De,null),P(De,pt),S(rt,De,null),P(De,ht),S(ye,De,null),l(ge,it,Le),l(ge,ct,Le),l(ge,gt,Le),l(ge,at,Le),l(ge,_e,Le),l(ge,Pe,Le),l(ge,qt,Le),l(ge,ot,Le),S(Dt,ot,null),P(ot,vt),S(St,ot,null),P(ot,Ce),S(Re,ot,null),P(ot,Jt),S(Gt,ot,null),P(ot,nn),S(Vt,ot,null),l(ge,Te,Le),l(ge,We,Le),l(ge,Wt,Le),l(ge,Yt,Le),l(ge,ve,Le),l(ge,xe,Le),l(ge,on,Le),l(ge,Bt,Le),S(sn,Bt,null),P(Bt,Cn),S(ln,Bt,null),P(Bt,Dn),S(rn,Bt,null),P(Bt,Ln),S(an,Bt,null),P(Bt,xn),S(un,Bt,null),l(ge,$n,Le),S(fn,ge,Le),l(ge,yn,Le),S(cn,ge,Le),gn=!0},p(ge,[Le]){let Vn={};Le&4&&(Vn.$$scope={dirty:Le,ctx:ge}),c.$set(Vn);let An={};Le&4&&(An.$$scope={dirty:Le,ctx:ge}),d.$set(An);let Wn={};Le&4&&(Wn.$$scope={dirty:Le,ctx:ge}),h.$set(Wn);let In={};Le&4&&(In.$$scope={dirty:Le,ctx:ge}),$.$set(In);let Gn={};Le&4&&(Gn.$$scope={dirty:Le,ctx:ge}),v.$set(Gn);let On={};Le&4&&(On.$$scope={dirty:Le,ctx:ge}),y.$set(On);let Yn={};Le&4&&(Yn.$$scope={dirty:Le,ctx:ge}),L.$set(Yn);let Pn={};Le&4&&(Pn.$$scope={dirty:Le,ctx:ge}),I.$set(Pn);let Un={};Le&4&&(Un.$$scope={dirty:Le,ctx:ge}),j.$set(Un);let Hn={};Le&4&&(Hn.$$scope={dirty:Le,ctx:ge}),q.$set(Hn);let Kn={};Le&4&&(Kn.$$scope={dirty:Le,ctx:ge}),z.$set(Kn);let vi={};Le&4&&(vi.$$scope={dirty:Le,ctx:ge}),te.$set(vi);let Wi={};Le&4&&(Wi.$$scope={dirty:Le,ctx:ge}),G.$set(Wi);let wi={};Le&4&&(wi.$$scope={dirty:Le,ctx:ge}),ce.$set(wi);let Gi={};Le&4&&(Gi.$$scope={dirty:Le,ctx:ge}),Y.$set(Gi);let $i={};Le&4&&($i.$$scope={dirty:Le,ctx:ge}),He.$set($i);let Yi={};Le&4&&(Yi.$$scope={dirty:Le,ctx:ge}),Z.$set(Yi);let yi={};Le&4&&(yi.$$scope={dirty:Le,ctx:ge}),le.$set(yi);let Ui={};Le&4&&(Ui.$$scope={dirty:Le,ctx:ge}),re.$set(Ui);let ki={};Le&4&&(ki.$$scope={dirty:Le,ctx:ge}),be.$set(ki);let Ki={};Le&4&&(Ki.$$scope={dirty:Le,ctx:ge}),Ge.$set(Ki);let Xi={};Le&4&&(Xi.$$scope={dirty:Le,ctx:ge}),et.$set(Xi);let Zi={};Le&4&&(Zi.$$scope={dirty:Le,ctx:ge}),Ze.$set(Zi);let Ti={};Le&4&&(Ti.$$scope={dirty:Le,ctx:ge}),rt.$set(Ti);let Ji={};Le&4&&(Ji.$$scope={dirty:Le,ctx:ge}),ye.$set(Ji)},i(ge){gn||(M(c.$$.fragment,ge),M(d.$$.fragment,ge),M(h.$$.fragment,ge),M($.$$.fragment,ge),M(v.$$.fragment,ge),M(y.$$.fragment,ge),M(L.$$.fragment,ge),M(I.$$.fragment,ge),M(j.$$.fragment,ge),M(q.$$.fragment,ge),M(z.$$.fragment,ge),M(te.$$.fragment,ge),M(G.$$.fragment,ge),M(ce.$$.fragment,ge),M(Y.$$.fragment,ge),M(He.$$.fragment,ge),M(Z.$$.fragment,ge),M(le.$$.fragment,ge),M(re.$$.fragment,ge),M(be.$$.fragment,ge),M(Ge.$$.fragment,ge),M(et.$$.fragment,ge),M(Ze.$$.fragment,ge),M(rt.$$.fragment,ge),M(ye.$$.fragment,ge),M(Dt.$$.fragment,ge),M(St.$$.fragment,ge),M(Re.$$.fragment,ge),M(Gt.$$.fragment,ge),M(Vt.$$.fragment,ge),M(sn.$$.fragment,ge),M(ln.$$.fragment,ge),M(rn.$$.fragment,ge),M(an.$$.fragment,ge),M(un.$$.fragment,ge),M(fn.$$.fragment,ge),M(cn.$$.fragment,ge),gn=!0)},o(ge){E(c.$$.fragment,ge),E(d.$$.fragment,ge),E(h.$$.fragment,ge),E($.$$.fragment,ge),E(v.$$.fragment,ge),E(y.$$.fragment,ge),E(L.$$.fragment,ge),E(I.$$.fragment,ge),E(j.$$.fragment,ge),E(q.$$.fragment,ge),E(z.$$.fragment,ge),E(te.$$.fragment,ge),E(G.$$.fragment,ge),E(ce.$$.fragment,ge),E(Y.$$.fragment,ge),E(He.$$.fragment,ge),E(Z.$$.fragment,ge),E(le.$$.fragment,ge),E(re.$$.fragment,ge),E(be.$$.fragment,ge),E(Ge.$$.fragment,ge),E(et.$$.fragment,ge),E(Ze.$$.fragment,ge),E(rt.$$.fragment,ge),E(ye.$$.fragment,ge),E(Dt.$$.fragment,ge),E(St.$$.fragment,ge),E(Re.$$.fragment,ge),E(Gt.$$.fragment,ge),E(Vt.$$.fragment,ge),E(sn.$$.fragment,ge),E(ln.$$.fragment,ge),E(rn.$$.fragment,ge),E(an.$$.fragment,ge),E(un.$$.fragment,ge),E(fn.$$.fragment,ge),E(cn.$$.fragment,ge),gn=!1},d(ge){ge&&(s(e),s(n),s(i),s(o),s(r),s(u),s(a),s(w),s(k),s(x),s(A),s(X),s(U),s(H),s(Q),s(ee),s(Ie),s(pe),s(ke),s(Ae),s(we),s(ne),s(De),s(it),s(ct),s(gt),s(at),s(_e),s(Pe),s(qt),s(ot),s(Te),s(We),s(Wt),s(Yt),s(ve),s(xe),s(on),s(Bt),s($n),s(yn)),C(c),C(d),C(h),C($),C(v),C(y),C(L),C(I),C(j),C(q),C(z),C(te),C(G),C(ce),C(Y),C(He),C(Z),C(le),C(re),C(be),C(Ge),C(et),C(Ze),C(rt),C(ye),C(Dt),C(St),C(Re),C(Gt),C(Vt),C(sn),C(ln),C(rn),C(an),C(un),C(fn,ge),C(cn,ge)}}}function E2(t){return[[{name:"class",type:"string",description:"Additional css class name to be added to the component."},{name:"danger",description:"Button type: danger"},{name:"disabled",description:"Makes the button disabled"},{name:"icon",type:"string",description:'Adds an icon, with this name, to the button (see icons section for icon names)'},{name:"id",type:"string",description:"Assign ID to the underlying button"},{name:"outline",description:"Button style: outline"},{name:"pressed",type:["true","false"],default:"false",description:"Initial pressed state of the button."},{name:"round",description:"Makes the button round"},{name:"submit",type:["true","false"],default:"false",description:"If true button type is set to submit, otherwise it's button"},{name:"success",description:"Button type: success"},{name:"title",type:"string",description:"Assign title to the underlying button"},{name:"warning",description:"Button type: warning"},{name:"bind:element",type:"element",description:"Exposes the HTML element of the component."},{name:"on:click",type:"function",description:"Triggered when the button is clicked."}],` diff --git a/src/notification-center/store.js b/src/notification-center/store.js index a23f445a..65f52dd6 100644 --- a/src/notification-center/store.js +++ b/src/notification-center/store.js @@ -92,10 +92,13 @@ export function showNotification (msg, type = 'info', timeout = 5000, btn, cb = export function hideNotification (id) { - Notifications.update(list => { - addToArchive(list[id]); - delete list[id]; - return list; + return new Promise(resolve => { + Notifications.update(list => { + addToArchive(list[id]); + delete list[id]; + return list; + }); + requestAnimationFrame(resolve); }); } @@ -111,8 +114,11 @@ function addToArchive (notification) { export function removeFromArchive (id) { - ArchivedNotifications.update(list => { - delete list[id]; - return list; + return new Promise(resolve => { + ArchivedNotifications.update(list => { + delete list[id]; + return list; + }); + requestAnimationFrame(resolve); }); } diff --git a/src/notification-center/utils.js b/src/notification-center/utils.js new file mode 100644 index 00000000..ae299c7f --- /dev/null +++ b/src/notification-center/utils.js @@ -0,0 +1,18 @@ +/** + * Finds the next notification to focus + * + * @param {*} el notifications list container + * @param {*} id id of the current notification + * @returns HTMLElement for the previous/next/first notification + */ +export function getNextNotification (el, id) { + if (!el) return; + const thisEl = el.querySelector(`[data-id="${id}"]`); + const all = el.querySelectorAll('.notification'); + if (!all || !all.length) return; + + const index = Array.from(all).indexOf(thisEl); + if (index < all.length - 1) return all[index + 1]; + if (index > 0) return all[index - 1]; + return all[0]; +} diff --git a/src/popover/Popover.css b/src/popover/Popover.css index a990100a..cd2993b4 100644 --- a/src/popover/Popover.css +++ b/src/popover/Popover.css @@ -6,7 +6,7 @@ position: absolute; transform: translateZ(1px); - z-index: 99; + z-index: var(--ui-z-index-elevated); } .popover { diff --git a/src/root.css b/src/root.css index e00b8de7..d2d2df4c 100644 --- a/src/root.css +++ b/src/root.css @@ -1,24 +1,25 @@ :root { + + /* BORDERS */ --ui-border-radius: 0.375rem; /* 6px */ --ui-border-radius-m: 0.6877rem;/* 11px */ --ui-border-radius-l: 1rem; /* 16px */ --ui-border-radius-xl: 5rem; /* 80px */ - /* margins & padding values */ + /* MARGIN & PADDING */ --ui-margin: 0.375rem; /* 6px */ --ui-margin-xs: 0.125rem; /* 2px */ --ui-margin-s: 0.25rem; /* 4px */ --ui-margin-m: 0.5rem; /* 8px */ --ui-margin-l: 1rem; /* 16px */ - --ui-animation-speed: .3s; + --ui-animation-speed: .3s; --ui-button-height: 2.25rem; /* 36px */ - /* font sizes */ + /* FONTS */ --ui-font-system: system-ui, 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; - --ui-font-xs: 0.875rem; /* 14px */ --ui-font-s: 0.9375rem; /* 15px */ --ui-font-m: 1rem; /* 16px */ @@ -26,7 +27,7 @@ --ui-font-xl: 1.375rem; /* 22px */ - /* shadows */ + /* SHADOWS */ --ui-shadow-focus: 0 0 2px 1px var(--ui-color-accent); --ui-shadow-danger: 0 0 2px 1px var(--ui-color-danger); --ui-shadow-small: 0 0 0 0.5px #fff4, 0 3px 10px #0006; @@ -36,6 +37,11 @@ 0 1px 5px rgb(0 0 0 / 30%), 0 4px 10px rgb(0 0 0 / 10%), 0 10px 25px rgb(0 0 0 / 8%); + + + /* Z-INDEX */ + --ui-z-index-elevated: 9; + --ui-z-index-popup: 999; } diff --git a/src/utils.js b/src/utils.js index 45ba2957..41e09887 100644 --- a/src/utils.js +++ b/src/utils.js @@ -245,6 +245,7 @@ export function alignItem ({ top = targetBox.top + targetBox.height + offsetV; left = targetBox.left + offsetH; + if (alignH === 'right') left += targetBox.width - element.offsetWidth; else if (alignH === 'center') { left = (targetBox.width - element.offsetWidth) / 2 + targetBox.left; @@ -271,8 +272,9 @@ export function alignItem ({ } // check if the menu is off the right side of the screen - if (winW < elementBox.x + elementBox.width + viewportPadding * 2) { - left = winW - elementBox.width - (viewportPadding * 2) - 20; + const padding = alignH === 'center' ? viewportPadding * 2 : viewportPadding; + if (winW < elementBox.x + elementBox.width + padding) { + left = winW - elementBox.width - padding; if (left < 0) left = viewportPadding; left = left + window.scrollX; } From 7810ac7a5b5e589276d6baeeb6b239b19ca7fe53 Mon Sep 17 00:00:00 2001 From: Dziad Borowy Date: Wed, 30 Aug 2023 23:34:22 +0100 Subject: [PATCH 2/5] add remaining functions --- docs-src/api-table/ApiTable.svelte | 4 +- docs-src/components/utils/Utils.css | 4 + docs-src/components/utils/Utils.svelte | 27 +- .../components/utils/fn-align-item.svelte | 48 + docs-src/components/utils/fn-animate.svelte | 21 +- docs-src/components/utils/fn-debounce.svelte | 31 + docs-src/components/utils/fn-deep-copy.svelte | 20 + docs-src/components/utils/fn-empty.svelte | 39 + .../components/utils/fn-format-date.svelte | 16 + docs-src/components/utils/fn-fuzzy.svelte | 26 + .../utils/fn-get-mouse-x.svelte.svelte | 19 + .../utils/fn-get-mouse-xy.svelte.svelte | 19 + .../utils/fn-get-mouse-y.svelte.svelte | 19 + docs-src/components/utils/fn-guid.svelte | 17 + .../utils/fn-is-in-scrollable.svelte | 21 + docs-src/components/utils/fn-is-mobile.svelte | 17 + docs-src/components/utils/fn-pluck.svelte | 20 + .../components/utils/fn-round-amount.svelte | 16 + docs-src/components/utils/fn-throttle.svelte | 47 + docs-src/components/utils/fn-time-ago.svelte | 23 + docs/docs.css | 569 +- docs/docs.css.map | 1 + docs/docs.js | 67982 +++++++++++++++- docs/docs.js.map | 7 + docs/index.html | 2 +- docs/ui.css | 2295 +- docs/ui.css.map | 1 + 27 files changed, 71165 insertions(+), 146 deletions(-) create mode 100644 docs-src/components/utils/fn-align-item.svelte create mode 100644 docs-src/components/utils/fn-debounce.svelte create mode 100644 docs-src/components/utils/fn-deep-copy.svelte create mode 100644 docs-src/components/utils/fn-empty.svelte create mode 100644 docs-src/components/utils/fn-format-date.svelte create mode 100644 docs-src/components/utils/fn-fuzzy.svelte create mode 100644 docs-src/components/utils/fn-get-mouse-x.svelte.svelte create mode 100644 docs-src/components/utils/fn-get-mouse-xy.svelte.svelte create mode 100644 docs-src/components/utils/fn-get-mouse-y.svelte.svelte create mode 100644 docs-src/components/utils/fn-guid.svelte create mode 100644 docs-src/components/utils/fn-is-in-scrollable.svelte create mode 100644 docs-src/components/utils/fn-is-mobile.svelte create mode 100644 docs-src/components/utils/fn-pluck.svelte create mode 100644 docs-src/components/utils/fn-round-amount.svelte create mode 100644 docs-src/components/utils/fn-throttle.svelte create mode 100644 docs-src/components/utils/fn-time-ago.svelte create mode 100644 docs/docs.css.map create mode 100644 docs/docs.js.map create mode 100644 docs/ui.css.map diff --git a/docs-src/api-table/ApiTable.svelte b/docs-src/api-table/ApiTable.svelte index aa3fbcf9..c5357ae6 100644 --- a/docs-src/api-table/ApiTable.svelte +++ b/docs-src/api-table/ApiTable.svelte @@ -36,8 +36,8 @@ function buildType (prop) { if (!prop.type) prop.type = '-'; const types = (Array.isArray(prop.type) ? prop.type : [prop.type]).map(t => `${t}`); res.push(types.join(' | ')); - if (prop.required) res.push('required'); - if (prop.default) res.push(`
    (defaults to ${prop.default})`); + if (typeof prop.required !== 'undefined') res.push('required'); + if (typeof prop.default !== 'undefined') res.push(`
    (defaults to ${prop.default})`); return res.join(' '); } diff --git a/docs-src/components/utils/Utils.css b/docs-src/components/utils/Utils.css index 3e18b017..c5699438 100644 --- a/docs-src/components/utils/Utils.css +++ b/docs-src/components/utils/Utils.css @@ -1,3 +1,7 @@ +.utilities { + padding-bottom: 3rem; +} + .utilities h3.util { font-size: 1.1rem; color: var(--ui-color-accent); diff --git a/docs-src/components/utils/Utils.svelte b/docs-src/components/utils/Utils.svelte index 0a65bdc6..f6f600e7 100644 --- a/docs-src/components/utils/Utils.svelte +++ b/docs-src/components/utils/Utils.svelte @@ -2,7 +2,7 @@

    Utility properties


    -
    +
    @@ -10,8 +10,6 @@

    - - - - +
    - +docs-src/components/utils/fn-guid.svelte

    * @@ -46,4 +41,20 @@ import FocusableSelector from './prop-focusable-selector.svelte'; import PrefersDark from './prop-prefers-dark.svelte'; import Animate from './fn-animate.svelte'; import Blink from './fn-blink.svelte'; +import DeepCopy from './fn-deep-copy.svelte'; +import Debounce from './fn-debounce.svelte'; +import Throttle from './fn-throttle.svelte'; +import Empty from './fn-empty.svelte'; +import Fuzzy from './fn-fuzzy.svelte'; +import Guid from './fn-guid.svelte'; +import GetMouseX from './fn-get-mouse-x.svelte'; +import GetMouseY from './fn-get-mouse-y.svelte'; +import GetMouseXY from './fn-get-mouse-xy.svelte'; +import IsMobile from './fn-is-mobile.svelte'; +import Pluck from './fn-pluck.svelte'; +import RoundAmount from './fn-round-amount.svelte'; +import FormatDate from './fn-format-date.svelte'; +import TimeAgo from './fn-time-ago.svelte'; +import AlignItem from './fn-align-item.svelte'; +import IsInScrollable from './fn-is-in-scrollable.svelte'; diff --git a/docs-src/components/utils/fn-align-item.svelte b/docs-src/components/utils/fn-align-item.svelte new file mode 100644 index 00000000..e54cea94 --- /dev/null +++ b/docs-src/components/utils/fn-align-item.svelte @@ -0,0 +1,48 @@ +

    alignItem (config)

    +

    Aligns an element to another element, + ensuring that the aligned element remains within the viewport. +

    +
      +
    • config - an object with the configuration (see below). +
    • Returns position - whether the aligned item is above (top) or below (bottom) the target. +
    + + + + + + + diff --git a/docs-src/components/utils/fn-animate.svelte b/docs-src/components/utils/fn-animate.svelte index 52f7156d..0ff4db10 100644 --- a/docs-src/components/utils/fn-animate.svelte +++ b/docs-src/components/utils/fn-animate.svelte @@ -2,19 +2,26 @@

    Animates an element from one state to another. Shortcut & wrapper for the native javascript animation.

    -
    + +

    Returns a promise which resolves when the animation finishes.

    + + diff --git a/docs-src/components/utils/fn-deep-copy.svelte b/docs-src/components/utils/fn-deep-copy.svelte new file mode 100644 index 00000000..a79efb22 --- /dev/null +++ b/docs-src/components/utils/fn-deep-copy.svelte @@ -0,0 +1,20 @@ +

    deepCopy(object)

    +

    This is just an alias for an oddly-named native function: structuredClone.

    +
      +
    • object - any object or array to clone. +
    + + + + diff --git a/docs-src/components/utils/fn-empty.svelte b/docs-src/components/utils/fn-empty.svelte new file mode 100644 index 00000000..12a6b461 --- /dev/null +++ b/docs-src/components/utils/fn-empty.svelte @@ -0,0 +1,39 @@ +

    empty(value)

    +

    Similar to PHP's empty - returns true if a value is empty.

    +
      +
    • value - any data type. +
    + +

    Empty will return true if the value is one of the following:

    +
      +
    • undefined +
    • null +
    • empty string +
    • empty array +
    • empty object +
    + + + + + diff --git a/docs-src/components/utils/fn-format-date.svelte b/docs-src/components/utils/fn-format-date.svelte new file mode 100644 index 00000000..bb0eb0c8 --- /dev/null +++ b/docs-src/components/utils/fn-format-date.svelte @@ -0,0 +1,16 @@ +

    formatDate (date)

    +

    Converts date to a string in the format: YYYY-MM-DD HH:mm.

    + + + + + diff --git a/docs-src/components/utils/fn-fuzzy.svelte b/docs-src/components/utils/fn-fuzzy.svelte new file mode 100644 index 00000000..43c44a28 --- /dev/null +++ b/docs-src/components/utils/fn-fuzzy.svelte @@ -0,0 +1,26 @@ +

    fuzzy (haystack = '', needle = '')

    +

    Fuzzy finds if haystack contains characters from the needle in the same order.

    +
      +
    • haystack - a string to be searched in. +
    • needle - a string to search for. +
    + +

    It's useful for filtering lists of items by a search string.

    + + + + + diff --git a/docs-src/components/utils/fn-get-mouse-x.svelte.svelte b/docs-src/components/utils/fn-get-mouse-x.svelte.svelte new file mode 100644 index 00000000..c1f14c35 --- /dev/null +++ b/docs-src/components/utils/fn-get-mouse-x.svelte.svelte @@ -0,0 +1,19 @@ +

    getMouseX (event)

    +

    Returns the mouse X position. Event is standardised across platforms (touch & pointer)

    + + + + + diff --git a/docs-src/components/utils/fn-get-mouse-xy.svelte.svelte b/docs-src/components/utils/fn-get-mouse-xy.svelte.svelte new file mode 100644 index 00000000..c12d6a8b --- /dev/null +++ b/docs-src/components/utils/fn-get-mouse-xy.svelte.svelte @@ -0,0 +1,19 @@ +

    getMouseY (event)

    +

    Returns the mouse XY position. Event is standardised across platforms (touch & pointer)

    + + + + + diff --git a/docs-src/components/utils/fn-get-mouse-y.svelte.svelte b/docs-src/components/utils/fn-get-mouse-y.svelte.svelte new file mode 100644 index 00000000..fef5065c --- /dev/null +++ b/docs-src/components/utils/fn-get-mouse-y.svelte.svelte @@ -0,0 +1,19 @@ +

    getMouseY (event)

    +

    Returns the mouse Y position. Event is standardised across platforms (touch & pointer)

    + + + + + diff --git a/docs-src/components/utils/fn-guid.svelte b/docs-src/components/utils/fn-guid.svelte new file mode 100644 index 00000000..330796c4 --- /dev/null +++ b/docs-src/components/utils/fn-guid.svelte @@ -0,0 +1,17 @@ +

    guid ()

    +

    Generates a globally unique identifier.

    + + + + + diff --git a/docs-src/components/utils/fn-is-in-scrollable.svelte b/docs-src/components/utils/fn-is-in-scrollable.svelte new file mode 100644 index 00000000..ac287ccd --- /dev/null +++ b/docs-src/components/utils/fn-is-in-scrollable.svelte @@ -0,0 +1,21 @@ +

    isInScrollable (node)

    +

    Checks whether the given node is inside a scrollable element.

    +

    This function is useful when determining whether a swipe event should be allowed + to start on a given element.
    + If an element is inside a scrollable element, the swipe event will not start, + allowing the browser to trigger the normal scrolling. +

    + + + + + diff --git a/docs-src/components/utils/fn-is-mobile.svelte b/docs-src/components/utils/fn-is-mobile.svelte new file mode 100644 index 00000000..3a36e09f --- /dev/null +++ b/docs-src/components/utils/fn-is-mobile.svelte @@ -0,0 +1,17 @@ +

    isMobile ()

    +

    Checks if the current platform is mobile.

    + + + + + diff --git a/docs-src/components/utils/fn-pluck.svelte b/docs-src/components/utils/fn-pluck.svelte new file mode 100644 index 00000000..c10eeb7d --- /dev/null +++ b/docs-src/components/utils/fn-pluck.svelte @@ -0,0 +1,20 @@ +

    pluck (object, props)

    +

    Creates a new object with only the plucked properties from the original object..

    +
      +
    • object - object to pluck from. +
    • props - an array of property names. +
    + + + + + diff --git a/docs-src/components/utils/fn-round-amount.svelte b/docs-src/components/utils/fn-round-amount.svelte new file mode 100644 index 00000000..8c3db4ee --- /dev/null +++ b/docs-src/components/utils/fn-round-amount.svelte @@ -0,0 +1,16 @@ +

    roundAmount (value, precision = 2)

    +

    Rounds a number to 2 decimal places (by default).

    + + + + + diff --git a/docs-src/components/utils/fn-throttle.svelte b/docs-src/components/utils/fn-throttle.svelte new file mode 100644 index 00000000..9ee0e064 --- /dev/null +++ b/docs-src/components/utils/fn-throttle.svelte @@ -0,0 +1,47 @@ +

    throttle(fn, timeout = 300)

    +

    The "throttled" function will only be called once every timeout milliseconds.

    +
      +
    • fn - function to debounce. +
    • timeout - milliseconds to wait before calling fn. +
    + + +

    + This is slightly different to debounce but serves a similar purpose - performance optimization.
    + It's useful when a heavy event handler function would be to costly to call on every event. +

    +

    One caveat is that the throttled function will be called once every x miliseconds, so if an event would stop firing + before the function is called the next time - the function will not be called at the end. E.g.: +

    +
      +
    • we would like to update a position of a tooltip when the window is resizing. +
    • we don't want to call the function on every resize event, because it's heavy and resize events are fired with every pixel of the window size change. +
    • we also don't want to call the function only once at the end of the resize, because the tooltip would be in the wrong place for the whole duration of the resize. +
    • throttle is a good option here, but the caveat mentioned above may cause the tooltip to be in the wrong place at the end of the resize. +
    • in this case it is a good idea to use both: throttle and debounce: throttle the function to be called every 300ms, but also debounce it to be called at the end of the resize. +
    + + + + + + + diff --git a/docs-src/components/utils/fn-time-ago.svelte b/docs-src/components/utils/fn-time-ago.svelte new file mode 100644 index 00000000..ca903e46 --- /dev/null +++ b/docs-src/components/utils/fn-time-ago.svelte @@ -0,0 +1,23 @@ +

    timeAgo (date, now)

    +

    Converts date to a string describing how long time ago was the given date.

    + + + + + diff --git a/docs/docs.css b/docs/docs.css index fd568991..ff8749dc 100644 --- a/docs/docs.css +++ b/docs/docs.css @@ -1 +1,568 @@ -.api-table{height:unset;overflow-y:visible;overflow-x:auto;overscroll-behavior-y:unset}.api-table table{min-width:900px}.api-table tr td{vertical-align:top;padding-block:.5rem}.api-table tr td:first-child,.api-table tr th:first-child{width:200px}.api-table tr td:nth-child(2),.api-table tr th:nth-child(2){width:200px}.api-table tr td:last-child,.api-table tr th:last-child{min-width:400px}body,html{margin:0;background-color:var(--ui-color-background);color:var(--ui-color-text);--sidebar-width:220px}@font-face{font-family:'Prime Light';src:url(prime_light-webfont.woff2) format('woff2'),url(prime_light-webfont.woff) format('woff');font-weight:light;font-style:normal}a{color:inherit}a:hover{text-decoration-color:var(--ui-color-accent);text-decoration-thickness:2px;text-underline-offset:.3rem}main{padding:0 2rem 8rem;margin-left:var(--sidebar-width)}h1,h2,h3{font-weight:500;margin:2rem 0 1.2rem;width:100%}h1:first-child,h2:first-child,h3:first-of-type{margin-top:0}p{line-height:1.7;margin-block:1.5rem;max-width:120ch}p b{font-weight:700;letter-spacing:.5px}ul{line-height:1.7;margin:0;padding-left:2rem}ul li{margin-block:.5rem}p+ul{margin-top:-1rem}em{color:var(--ui-color-accent);font-style:normal}hr{width:100%;height:0;border:0;border-top:1px solid var(--ui-color-border-2);margin:3em 0 2em}.docs-overflow-box{border:2px dotted var(--ui-color-accent);background-color:var(--ui-color-background);padding:1em;overflow:hidden;z-index:1;position:relative}.docs-buttons-row{display:flex;flex-flow:wrap row;align-items:flex-start;justify-content:flex-start;gap:.5rem;flex-shrink:0}@media (1px <= width <= 700px){main{margin-left:0}}code,main pre[class]{background-color:#1a1a1a;color:#ccc;border-radius:var(--ui-border-radius);font-size:var(--ui-font-s)}code{display:block;width:100%;padding:1em;margin-block:1em;line-height:2;white-space:pre;overflow:auto}code[class*=language-]{padding:0;margin:0}.dark-mode-switch{min-width:7rem;position:fixed;top:.5rem;right:.6rem;z-index:55}aside{border-right:1px solid var(--ui-color-border-2);overflow-y:auto;background:var(--ui-color-background);position:fixed;width:var(--sidebar-width);left:0;top:0;height:100lvh;padding:0 1rem calc(100lvh - 100svh);overscroll-behavior:contain;z-index:60}menu{width:100%;display:flex;flex-flow:column;padding:1rem 0 0;margin:0 0 2rem}menu h3{margin:0 -1rem;padding:var(--ui-margin-m) var(--ui-margin-l);white-space:nowrap;font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:var(--ui-font-xl)}menu h3:not(:first-child){margin-top:var(--ui-margin-l)}menu a{color:var(--ui-color-text);text-decoration:none;display:block;margin:var(--ui-margin-s) 0;padding:var(--ui-margin-m) 1.4rem;border-radius:var(--ui-border-radius);white-space:nowrap;touch-action:manipulation}menu a:hover{background-color:var(--ui-color-highlight-1)}menu a.active{background-color:var(--ui-color-highlight)}.nav-toggler{--ui-button-size:1.1em;position:fixed;left:0;top:.4rem;z-index:65;color:var(--ui-color-text-1);display:none;transform:translateX(10px)}.nav-toggler:hover{color:var(--ui-color-text);background:0 0}@media (1px <= width <= 700px){.nav-toggler{display:flex}.nav-toggler.expanded{transform:translateX(calc(var(--sidebar-width) - 40px))}aside{box-shadow:2px 1px 10px #0006;transform:translateX(calc(var(--sidebar-width) * -1));--sidebar-elastic-padding:80px;width:calc(var(--sidebar-width) + var(--sidebar-elastic-padding));left:calc(var(--sidebar-elastic-padding) * -1);padding-left:calc(var(--sidebar-elastic-padding) + 1rem)}aside.expanded{transform:translateX(0)}.nav-toggler:not(.swiping),aside:not(.swiping){transition:transform .3s cubic-bezier(.5,.2,.5,1.2)}}.banner{height:clamp(100px,40vw,360px);padding-top:60px;display:flex;align-items:flex-start;justify-content:center}.banner a{display:inline-flex;align-items:center;justify-content:center;gap:2vw;margin:auto;padding:0;text-decoration:none}.logo{width:clamp(42px,10vw,160px);height:clamp(42px,10vw,160px);opacity:.9;filter:drop-shadow(0 1px 1px #000)}.logotype{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:clamp(28px,6vw,90px);font-weight:100;margin:0;padding:0 4px 0 0;display:flex;flex-flow:row;white-space:nowrap;line-height:1;width:auto}.logotype em{font-weight:500}.logotype sub{font-size:var(--ui-font-m);font-weight:300;color:var(--ui-color-text-semi);margin:-1rem 0 0 -63px;width:60px;text-align:right}.banner a:hover .logotype em,.banner a:hover .logotype span{text-decoration:underline;text-decoration-thickness:1px;text-decoration-skip-ink:none;text-underline-offset:8px}.banner a:hover .logotype span{text-decoration-color:var(--ui-color-accent)}.banner a:hover .logotype em{text-decoration-color:var(--ui-color-text)}.footer-links{display:flex;align-items:center;justify-content:center;gap:5vw;margin:6rem 0 0;height:2rem}.footer-links a,.footer-links a:hover{text-decoration:none;height:100%;display:flex;align-items:center;color:var(--ui-color-text-semi);transition:color .1s}.footer-links a:hover{color:var(--ui-color-text)}.footer-links a svg{height:2rem;width:2rem;margin:0}.footer-links a.npm svg{width:5rem}.sticky-block{background:var(--ui-color-background);margin:0;padding:0}.sticky-block>h1,.sticky-block>h2,main>h1,main>h2{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif;margin:2rem -2rem 1rem;padding:.5rem 100px .5rem 2rem}.prime-light{font-family:'Prime Light','Helvetica Neue',Helvetica,Arial,sans-serif}.sticky-block>h2,main>h2{font-size:1.8rem;width:auto;border-bottom:1px solid var(--ui-color-border-2);position:sticky;top:0;z-index:50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}main>h2 em{color:var(--ui-color-text-semi);font-size:1.2rem;line-height:1.8rem;margin-left:.5rem;vertical-align:text-top}main>p code,main>ul li code{display:inline;padding:0;margin:0;background:0 0;color:var(--ui-color-accent);font:inherit;white-space:break-spaces}@media (1px <= width <= 700px){.sticky-block>h1,.sticky-block>h2,main>h1,main>h2{padding-left:54px}}.button-demo-props{display:flex;flex-flow:column;align-items:flex-start;justify-content:flex-start;gap:.5rem;width:clamp(300px,600px,100%)}.button-demo-props .input{display:flex;flex-flow:row;width:100%}.button-demo-props .input .label{width:5rem;flex-shrink:0}.button-demo-props .input .input-text-inner{flex:1}.button-demo-props .toggle{display:flex;flex-flow:row;width:100%}.button-demo-props .toggle .label{width:5rem;flex-shrink:0}@media (1px <= width <= 700px){.button-demo-props{width:100%}}.button-toggle-wrapper-wide{width:400px;max-width:100%}.button-toggle-wrapper-wide .button-toggle{width:100%}.group{background:var(--ui-color-background-2);padding:6px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:6px;border-radius:var(--ui-border-radius-m)}.palette-box{padding:10px 0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:calc(var(--ui-border-radius-m) - 3px);background-color:var(--ui-color-background-2)}.icons{margin-bottom:2em}.icon-block{float:left;width:128px;height:128px;margin:0 1em 1em 0;display:flex;flex-flow:column;align-items:stretch;justify-content:stretch;background-color:var(--ui-color-background-semi);padding:0 10px 10px;border-radius:5px;border:1px solid var(--ui-color-border)}.icon-block-icon{flex:1;display:flex;align-items:center;justify-content:center}.icon-block-icon svg{width:32px;height:32px}.icon-block-name{height:20px;text-align:center;overflow-wrap:break-word;font-size:var(--ui-font-s)}.div{border:1px dashed red;height:100px;width:200px;display:inline-grid;place-items:center;margin:1rem 1rem 1rem 0;-webkit-user-select:none;user-select:none}.docs-menu-align-right{padding:2rem 0;border:1px dashed var(--ui-color-accent);text-align:right}.notification-center-header{margin-bottom:1rem;display:flex;flex-flow:row;align-items:center;justify-content:flex-start;gap:2rem}.notification-center-header h2{display:inline-block;width:auto;padding:0;margin:0}.prop-row{padding:1rem 0;display:flex;align-items:center;justify-content:flex-start;gap:1rem}.panel p{margin:0}.tooltip-box{display:inline-block;margin:10px 0 0;line-height:2.4em;padding:1em;border:1px solid #ccc;min-width:6em;text-align:center}.tooltip-html h1,.tooltip-html p{margin:0}.tooltip-html b{color:var(--ui-color-accent)}.tooltip-html a:hover{text-decoration:none}.split-wrap{width:400px;height:200px;border:1px solid red;display:flex;flex-flow:row;position:relative}.split-wrap-v{flex-flow:column}.split-box{border:1px solid green;flex:1}.min-w{min-width:20px;max-width:220px}.min-h{min-height:50px;max-height:150px}.table-viewport{width:500px;max-width:100%;height:500px;border:2px dashed red;padding:5px}.toggle-box{margin:10px 0 0;line-height:2.4em;display:none}.toggle-box.visible{display:block}.tooltip-box{display:inline-block;margin:10px 0 0;line-height:2.4em;padding:1em;border:1px solid #ccc;min-width:6em;text-align:center}.tooltip-html h1,.tooltip-html p{margin:0}.tooltip-html b{color:var(--ui-color-accent)}.tooltip-html a:hover{text-decoration:none}.utilities h3.util{font-size:1.1rem;color:var(--ui-color-accent);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace} \ No newline at end of file +.api-table { + height: unset; + overflow-y: visible; + overflow-x: auto; + overscroll-behavior-y: unset; +} +.api-table table { min-width: 900px; } + +.api-table tr td { vertical-align: top; padding-block: 0.5rem;} + +.api-table tr th:first-child, +.api-table tr td:first-child { width: 200px; } + +.api-table tr th:nth-child(2), +.api-table tr td:nth-child(2) { width: 200px; } + +.api-table tr th:last-child, +.api-table tr td:last-child { min-width: 400px; } + +html, +body { + margin: 0; + background-color: var(--ui-color-background); + color: var(--ui-color-text); + + --sidebar-width: 220px; +} + + +@font-face { + font-family: 'Prime Light'; + src: url('prime_light-webfont.woff2') format('woff2'), + url('prime_light-webfont.woff') format('woff'); + font-weight: light; + font-style: normal; +} + + +a { color: inherit; } +a:hover { + text-decoration-color: var(--ui-color-accent); + text-decoration-thickness: 2px; + text-underline-offset: 0.3rem; +} + +main { + padding: 0 2rem 8rem; + margin-left: var(--sidebar-width); +} + +h1, +h2, +h3 { font-weight: 500; margin: 2rem 0 1.2rem; width: 100%; } + +h1:first-child, +h2:first-child, +h3:first-of-type { margin-top: 0; } + +p { line-height: 1.7; margin-block: 1.5rem; max-width: 120ch; } +p b { font-weight: 700; letter-spacing: 0.5px; } + +ul { line-height: 1.7; margin: 0; padding-left: 2rem; } +ul li { margin-block: 0.5rem; } + +p + ul { margin-top: -1rem } + +em { color: var(--ui-color-accent); font-style: normal; } + + +hr { + width: 100%; + height: 0; + border: 0; + border-top: 1px solid var(--ui-color-border-2); + margin: 3em 0 2em; +} + + +.docs-overflow-box { + border: 2px dotted var(--ui-color-accent); + background-color: var(--ui-color-background); + padding: 1em; + overflow: hidden; + z-index: 1; + position: relative; +} + +.docs-buttons-row { + display: flex; + flex-flow: wrap row; + align-items: flex-start; + justify-content: flex-start; + gap: 0.5rem; + flex-shrink: 0; +} + + + +@media (1px <= width <= 700px) { + main { margin-left: 0; } +} + +main pre[class], +code { + background-color: #1a1a1a; + color: #ccc; + border-radius: var(--ui-border-radius); + font-size: var(--ui-font-s) +} + +code { + display: block; + width: 100%; + padding: 1em; + margin-block: 1em; + line-height: 2; + white-space: pre; + overflow: auto; +} + +code[class*=language-] { padding: 0; margin: 0; } + +.dark-mode-switch { + min-width: 7rem; + position: fixed; + top: 0.5rem; + right: 0.6rem; + z-index: 55; +} + +aside { + border-right: 1px solid var(--ui-color-border-2); + overflow-y: auto; + background: var(--ui-color-background); + position: fixed; + width: var(--sidebar-width); + + left: 0; + top: 0; + height: 100lvh; + padding: 0 1rem calc(100lvh - 100svh); + + overscroll-behavior: contain; + z-index: 60; +} + +menu { + width: 100%; + display: flex; + flex-flow: column; + padding: 1rem 0 0; + margin: 0 0 2rem; +} + +menu h3 { + margin: 0 -1rem; + padding: var(--ui-margin-m) var(--ui-margin-l); + white-space: nowrap; + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: var(--ui-font-xl); +} + +menu h3:not(:first-child) { margin-top: var(--ui-margin-l); } + +menu a { + color: var(--ui-color-text); + text-decoration: none; + display: block; + margin: var(--ui-margin-s) 0; + padding: var(--ui-margin-m) 1.4rem; + border-radius: var(--ui-border-radius); + white-space: nowrap; + touch-action: manipulation; +} + +menu a:hover { background-color: var(--ui-color-highlight-1); } +menu a.active { background-color: var(--ui-color-highlight); } + + +.nav-toggler { + --ui-button-size: 1.1em; + position: fixed; + left: 0; + top: 0.4rem; + z-index: 65; + color: var(--ui-color-text-1); + display: none; + transform: translateX(10px); +} +.nav-toggler:hover { color: var(--ui-color-text); background: none; } + + +@media (1px <= width <= 700px) { + .nav-toggler { display: flex; } + .nav-toggler.expanded { transform: translateX(calc(var(--sidebar-width) - 40px)); } + + aside { + box-shadow: 2px 1px 10px #0006; + transform: translateX(calc(var(--sidebar-width) * -1)); + + --sidebar-elastic-padding: 80px; + width: calc(var(--sidebar-width) + var(--sidebar-elastic-padding)); + left: calc(var(--sidebar-elastic-padding) * -1); + padding-left: calc(var(--sidebar-elastic-padding) + 1rem); + + } + aside.expanded { transform: translateX(0); } + + .nav-toggler:not(.swiping), + aside:not(.swiping) { transition: transform .3s cubic-bezier(.5, .2, .5, 1.2); } +} + +.banner { + height: clamp(100px, 40vw, 360px); + padding-top: 60px; + display: flex; + align-items: flex-start; + justify-content: center; +} + +.banner a { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 2vw; + margin: auto; + padding: 0; + text-decoration: none; +} + +.logo { + width: clamp(42px, 10vw, 160px); + height: clamp(42px, 10vw, 160px); + opacity: 0.9; + filter: drop-shadow(0 1px 1px #000); +} + + +.logotype { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: clamp(28px, 6vw, 90px); + font-weight: 100; + margin: 0; + padding: 0 4px 0 0; + display: flex; + flex-flow: row; + white-space: nowrap; + line-height: 1; + width: auto; +} + +.logotype em { font-weight: 500; } +.logotype sub { + font-size: var(--ui-font-m); + font-weight: 300; + color: var(--ui-color-text-semi); + margin: -1rem 0 0 -63px; + width: 60px; + text-align: right; +} + + +.banner a:hover .logotype span, +.banner a:hover .logotype em { + text-decoration: underline; + text-decoration-thickness: 1px; + text-decoration-skip-ink: none; + text-underline-offset: 8px; +} +.banner a:hover .logotype span { text-decoration-color: var(--ui-color-accent); } +.banner a:hover .logotype em { text-decoration-color: var(--ui-color-text); } + + + + + +.footer-links { + display: flex; + align-items: center; + justify-content: center; + gap: 5vw; + margin: 6rem 0 0; + height: 2rem; +} + +.footer-links a, +.footer-links a:hover { + text-decoration: none; + height: 100%; + display: flex; + align-items: center; + color: var(--ui-color-text-semi); + transition: color 0.1s; +} + +.footer-links a:hover { color: var(--ui-color-text); } + +.footer-links a svg { height: 2rem; width: 2rem; margin: 0; } +.footer-links a.npm svg { width: 5rem; } + + + + +.sticky-block { + background: var(--ui-color-background); + margin: 0; + padding: 0; +} + +main>h1, +main>h2, +.sticky-block>h1, +.sticky-block>h2 { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; + margin: 2rem -2rem 1rem; + padding: 0.5rem 100px 0.5rem 2rem; +} + +.prime-light { + font-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +/* stylelint-disable-next-line no-descending-specificity */ +main>h2, +.sticky-block>h2 { + font-size: 1.8rem; + width: auto; + border-bottom: 1px solid var(--ui-color-border-2); + position: sticky; + top: 0; + z-index: 50; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); +} + + + +/* stylelint-disable-next-line no-descending-specificity */ +main>h2 em { + color: var(--ui-color-text-semi); + font-size: 1.2rem; + line-height: 1.8rem; + margin-left: 0.5rem; + vertical-align: text-top; +} + +main>p code, +main>ul li code { + display: inline; + padding: 0; + margin: 0; + background: none; + color: var(--ui-color-accent); + font: inherit; + white-space: break-spaces; +} + + +@media (1px <= width <= 700px) { + main>h1, + main>h2, + .sticky-block>h1, + .sticky-block>h2 { padding-left: 54px; } +} + +.button-demo-props { + display: flex; + flex-flow: column; + align-items: flex-start; + justify-content: flex-start; + gap: 0.5rem; + width: clamp(300px, 600px, 100%); +} + +.button-demo-props .input { display: flex; flex-flow: row; width: 100%; } +.button-demo-props .input .label { width: 5rem; flex-shrink: 0; } +.button-demo-props .input .input-text-inner { flex: 1; } + + +.button-demo-props .toggle { display: flex; flex-flow: row; width: 100%; } +.button-demo-props .toggle .label { width: 5rem; flex-shrink: 0; } + +@media (1px <= width <= 700px) { + .button-demo-props { + width: 100%; + } +} + +.button-toggle-wrapper-wide { width: 400px; max-width: 100%; } +.button-toggle-wrapper-wide .button-toggle { width: 100%; } + +.group { + background: var(--ui-color-background-2); + padding: 6px; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + grid-gap: 6px; + border-radius: var(--ui-border-radius-m); +} + +.palette-box { + padding: 10px 0; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + border-radius: calc(var(--ui-border-radius-m) - 3px); + background-color: var(--ui-color-background-2); +} + +.icons { margin-bottom: 2em; } + +.icon-block { + float: left; + width: 128px; + height: 128px; + margin: 0 1em 1em 0; + display: flex; + flex-flow: column; + align-items: stretch; + justify-content: stretch; + background-color: var(--ui-color-background-semi); + padding: 0 10px 10px; + border-radius: 5px; + border: 1px solid var(--ui-color-border); +} + +.icon-block-icon { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +.icon-block-icon svg { + width: 32px; + height: 32px; +} + +.icon-block-name { + height: 20px; + text-align: center; + overflow-wrap: break-word; + font-size: var(--ui-font-s) +} + +.div { + border: 1px dashed red; + height: 100px; + width: 200px; + display: inline-grid; + place-items: center; + margin: 1rem 1rem 1rem 0; + -webkit-user-select: none; + user-select: none; +} + + +.docs-menu-align-right { + padding: 2rem 0; + border: 1px dashed var(--ui-color-accent); + text-align: right; +} + +.notification-center-header { + margin-bottom: 1rem; + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-start; + gap: 2rem; +} + +.notification-center-header h2 { + display: inline-block; + width: auto; + padding: 0; + margin: 0; +} + + +.prop-row { + padding: 1rem 0; + display: flex; + align-items: center; + justify-content: flex-start; + gap: 1rem; +} + +.panel p { margin: 0; } + +.tooltip-box { + display: inline-block; + margin: 10px 0 0; + line-height: 2.4em; + padding: 1em; + border: 1px solid #ccc; + min-width: 6em; + text-align: center; +} + +.tooltip-html h1, +.tooltip-html p { margin: 0; } +.tooltip-html b { color: var(--ui-color-accent); } +.tooltip-html a:hover { text-decoration: none; } + +.split-wrap { + width: 400px; + height: 200px; + border: 1px solid red; + display: flex; + flex-flow: row; + position: relative; +} + +.split-wrap-v { flex-flow: column; } +.split-box { border: 1px solid green; flex: 1; } + +.min-w { min-width: 20px; max-width: 220px; } +.min-h { min-height: 50px; max-height: 150px; } + +.table-viewport { + width: 500px; + max-width: 100%; + height: 500px; + border: 2px dashed red; + padding: 5px; +} + +.toggle-box { + margin: 10px 0 0; + line-height: 2.4em; + display: none; +} + +.toggle-box.visible { + display: block; +} + +.tooltip-box { + display: inline-block; + margin: 10px 0 0; + line-height: 2.4em; + padding: 1em; + border: 1px solid #ccc; + min-width: 6em; + text-align: center; +} + +.tooltip-html h1, +.tooltip-html p { margin: 0; } +.tooltip-html b { color: var(--ui-color-accent); } +.tooltip-html a:hover { text-decoration: none; } + +.utilities { + padding-bottom: 3rem; +} + +.utilities h3.util { + font-size: 1.1rem; + color: var(--ui-color-accent); + font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace; +} +/*# sourceMappingURL=docs.css.map */ diff --git a/docs/docs.css.map b/docs/docs.css.map new file mode 100644 index 00000000..abd37d98 --- /dev/null +++ b/docs/docs.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["api-table/ApiTable.css","app/App.css","code-example/CodeExample.css","header/Header.css","nav/Nav.css","pages/start.css","components/button/Button.css","components/button-toggle/ButtonToggle.css","components/color-palette/ColorPalette.css","components/icon/Icon.css","components/menu/Menu.css","components/notification-center/NotificationCenter.css","components/panel/Panel.css","components/popover/Popover.css","components/splitter/Splitter.css","components/table/Table.css","components/toggle/Toggle.css","components/tooltip/Tooltip.css","components/utils/Utils.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"docs.css","sourcesContent":[".api-table {\n\theight: unset;\n\toverflow-y: visible;\n\toverflow-x: auto;\n\toverscroll-behavior-y: unset;\n}\n.api-table table { min-width: 900px; }\n\n.api-table tr td { vertical-align: top; padding-block: 0.5rem;}\n\n.api-table tr th:first-child,\n.api-table tr td:first-child { width: 200px; }\n\n.api-table tr th:nth-child(2),\n.api-table tr td:nth-child(2) { width: 200px; }\n\n.api-table tr th:last-child,\n.api-table tr td:last-child { min-width: 400px; }\n","html,\nbody {\n\tmargin: 0;\n\tbackground-color: var(--ui-color-background);\n\tcolor: var(--ui-color-text);\n\n\t--sidebar-width: 220px;\n}\n\n\n@font-face {\n\tfont-family: 'Prime Light';\n\tsrc: url('prime_light-webfont.woff2') format('woff2'),\n\t\turl('prime_light-webfont.woff') format('woff');\n\tfont-weight: light;\n\tfont-style: normal;\n}\n\n\na { color: inherit; }\na:hover {\n\ttext-decoration-color: var(--ui-color-accent);\n\ttext-decoration-thickness: 2px;\n\ttext-underline-offset: 0.3rem;\n}\n\nmain {\n\tpadding: 0 2rem 8rem;\n\tmargin-left: var(--sidebar-width);\n}\n\nh1,\nh2,\nh3 { font-weight: 500; margin: 2rem 0 1.2rem; width: 100%; }\n\nh1:first-child,\nh2:first-child,\nh3:first-of-type { margin-top: 0; }\n\np { line-height: 1.7; margin-block: 1.5rem; max-width: 120ch; }\np b { font-weight: 700; letter-spacing: 0.5px; }\n\nul { line-height: 1.7; margin: 0; padding-left: 2rem; }\nul li { margin-block: 0.5rem; }\n\np + ul { margin-top: -1rem }\n\nem { color: var(--ui-color-accent); font-style: normal; }\n\n\nhr {\n\twidth: 100%;\n\theight: 0;\n\tborder: 0;\n\tborder-top: 1px solid var(--ui-color-border-2);\n\tmargin: 3em 0 2em;\n}\n\n\n.docs-overflow-box {\n\tborder: 2px dotted var(--ui-color-accent);\n\tbackground-color: var(--ui-color-background);\n\tpadding: 1em;\n\toverflow: hidden;\n\tz-index: 1;\n\tposition: relative;\n}\n\n.docs-buttons-row {\n\tdisplay: flex;\n\tflex-flow: wrap row;\n\talign-items: flex-start;\n\tjustify-content: flex-start;\n\tgap: 0.5rem;\n\tflex-shrink: 0;\n}\n\n\n\n@media (1px <= width <= 700px) {\n\tmain { margin-left: 0; }\n}\n","main pre[class],\ncode {\n\tbackground-color: #1a1a1a;\n\tcolor: #ccc;\n\tborder-radius: var(--ui-border-radius);\n\tfont-size: var(--ui-font-s)\n}\n\ncode {\n\tdisplay: block;\n\twidth: 100%;\n\tpadding: 1em;\n\tmargin-block: 1em;\n\tline-height: 2;\n\twhite-space: pre;\n\toverflow: auto;\n}\n\ncode[class*=language-] { padding: 0; margin: 0; }\n",".dark-mode-switch {\n\tmin-width: 7rem;\n\tposition: fixed;\n\ttop: 0.5rem;\n\tright: 0.6rem;\n\tz-index: 55;\n}\n","aside {\n\tborder-right: 1px solid var(--ui-color-border-2);\n\toverflow-y: auto;\n\tbackground: var(--ui-color-background);\n\tposition: fixed;\n\twidth: var(--sidebar-width);\n\n\tleft: 0;\n\ttop: 0;\n\theight: 100lvh;\n\tpadding: 0 1rem calc(100lvh - 100svh);\n\n\toverscroll-behavior: contain;\n\tz-index: 60;\n}\n\nmenu {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-flow: column;\n\tpadding: 1rem 0 0;\n\tmargin: 0 0 2rem;\n}\n\nmenu h3 {\n\tmargin: 0 -1rem;\n\tpadding: var(--ui-margin-m) var(--ui-margin-l);\n\twhite-space: nowrap;\n\tfont-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n\tfont-size: var(--ui-font-xl);\n}\n\nmenu h3:not(:first-child) { margin-top: var(--ui-margin-l); }\n\nmenu a {\n\tcolor: var(--ui-color-text);\n\ttext-decoration: none;\n\tdisplay: block;\n\tmargin: var(--ui-margin-s) 0;\n\tpadding: var(--ui-margin-m) 1.4rem;\n\tborder-radius: var(--ui-border-radius);\n\twhite-space: nowrap;\n\ttouch-action: manipulation;\n}\n\nmenu a:hover { background-color: var(--ui-color-highlight-1); }\nmenu a.active { background-color: var(--ui-color-highlight); }\n\n\n.nav-toggler {\n\t--ui-button-size: 1.1em;\n\tposition: fixed;\n\tleft: 0;\n\ttop: 0.4rem;\n\tz-index: 65;\n\tcolor: var(--ui-color-text-1);\n\tdisplay: none;\n\ttransform: translateX(10px);\n}\n.nav-toggler:hover { color: var(--ui-color-text); background: none; }\n\n\n@media (1px <= width <= 700px) {\n\t.nav-toggler { display: flex; }\n\t.nav-toggler.expanded { transform: translateX(calc(var(--sidebar-width) - 40px)); }\n\n\taside {\n\t\tbox-shadow: 2px 1px 10px #0006;\n\t\ttransform: translateX(calc(var(--sidebar-width) * -1));\n\n\t\t--sidebar-elastic-padding: 80px;\n\t\twidth: calc(var(--sidebar-width) + var(--sidebar-elastic-padding));\n\t\tleft: calc(var(--sidebar-elastic-padding) * -1);\n\t\tpadding-left: calc(var(--sidebar-elastic-padding) + 1rem);\n\n\t}\n\taside.expanded { transform: translateX(0); }\n\n\t.nav-toggler:not(.swiping),\n\taside:not(.swiping) { transition: transform .3s cubic-bezier(.5, .2, .5, 1.2); }\n}\n",".banner {\n\theight: clamp(100px, 40vw, 360px);\n\tpadding-top: 60px;\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: center;\n}\n\n.banner a {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 2vw;\n\tmargin: auto;\n\tpadding: 0;\n\ttext-decoration: none;\n}\n\n.logo {\n\twidth: clamp(42px, 10vw, 160px);\n\theight: clamp(42px, 10vw, 160px);\n\topacity: 0.9;\n\tfilter: drop-shadow(0 1px 1px #000);\n}\n\n\n.logotype {\n\tfont-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n\tfont-size: clamp(28px, 6vw, 90px);\n\tfont-weight: 100;\n\tmargin: 0;\n\tpadding: 0 4px 0 0;\n\tdisplay: flex;\n\tflex-flow: row;\n\twhite-space: nowrap;\n\tline-height: 1;\n\twidth: auto;\n}\n\n.logotype em { font-weight: 500; }\n.logotype sub {\n\tfont-size: var(--ui-font-m);\n\tfont-weight: 300;\n\tcolor: var(--ui-color-text-semi);\n\tmargin: -1rem 0 0 -63px;\n\twidth: 60px;\n\ttext-align: right;\n}\n\n\n.banner a:hover .logotype span,\n.banner a:hover .logotype em {\n\ttext-decoration: underline;\n\ttext-decoration-thickness: 1px;\n\ttext-decoration-skip-ink: none;\n\ttext-underline-offset: 8px;\n}\n.banner a:hover .logotype span { text-decoration-color: var(--ui-color-accent); }\n.banner a:hover .logotype em { text-decoration-color: var(--ui-color-text); }\n\n\n\n\n\n.footer-links {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 5vw;\n\tmargin: 6rem 0 0;\n\theight: 2rem;\n}\n\n.footer-links a,\n.footer-links a:hover {\n\ttext-decoration: none;\n\theight: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: var(--ui-color-text-semi);\n\ttransition: color 0.1s;\n}\n\n.footer-links a:hover { color: var(--ui-color-text); }\n\n.footer-links a svg { height: 2rem; width: 2rem; margin: 0; }\n.footer-links a.npm svg { width: 5rem; }\n\n\n\n\n.sticky-block {\n\tbackground: var(--ui-color-background);\n\tmargin: 0;\n\tpadding: 0;\n}\n\nmain>h1,\nmain>h2,\n.sticky-block>h1,\n.sticky-block>h2 {\n\tfont-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n\tmargin: 2rem -2rem 1rem;\n\tpadding: 0.5rem 100px 0.5rem 2rem;\n}\n\n.prime-light {\n\tfont-family: 'Prime Light', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n}\n\n/* stylelint-disable-next-line no-descending-specificity */\nmain>h2,\n.sticky-block>h2 {\n\tfont-size: 1.8rem;\n\twidth: auto;\n\tborder-bottom: 1px solid var(--ui-color-border-2);\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 50;\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\n\t-webkit-backdrop-filter: blur(15px);\n\tbackdrop-filter: blur(15px);\n}\n\n\n\n/* stylelint-disable-next-line no-descending-specificity */\nmain>h2 em {\n\tcolor: var(--ui-color-text-semi);\n\tfont-size: 1.2rem;\n\tline-height: 1.8rem;\n\tmargin-left: 0.5rem;\n\tvertical-align: text-top;\n}\n\nmain>p code,\nmain>ul li code {\n\tdisplay: inline;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tcolor: var(--ui-color-accent);\n\tfont: inherit;\n\twhite-space: break-spaces;\n}\n\n\n@media (1px <= width <= 700px) {\n\tmain>h1,\n\tmain>h2,\n\t.sticky-block>h1,\n\t.sticky-block>h2 { padding-left: 54px; }\n}\n",".button-demo-props {\n\tdisplay: flex;\n\tflex-flow: column;\n\talign-items: flex-start;\n\tjustify-content: flex-start;\n\tgap: 0.5rem;\n\twidth: clamp(300px, 600px, 100%);\n}\n\n.button-demo-props .input { display: flex; flex-flow: row; width: 100%; }\n.button-demo-props .input .label { width: 5rem; flex-shrink: 0; }\n.button-demo-props .input .input-text-inner { flex: 1; }\n\n\n.button-demo-props .toggle { display: flex; flex-flow: row; width: 100%; }\n.button-demo-props .toggle .label { width: 5rem; flex-shrink: 0; }\n\n@media (1px <= width <= 700px) {\n\t.button-demo-props {\n\t\twidth: 100%;\n\t}\n}\n",".button-toggle-wrapper-wide { width: 400px; max-width: 100%; }\n.button-toggle-wrapper-wide .button-toggle { width: 100%; }\n",".group {\n\tbackground: var(--ui-color-background-2);\n\tpadding: 6px;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n\tgrid-gap: 6px;\n\tborder-radius: var(--ui-border-radius-m);\n}\n\n.palette-box {\n\tpadding: 10px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\toverflow: hidden;\n\tborder-radius: calc(var(--ui-border-radius-m) - 3px);\n\tbackground-color: var(--ui-color-background-2);\n}\n",".icons { margin-bottom: 2em; }\n\n.icon-block {\n\tfloat: left;\n\twidth: 128px;\n\theight: 128px;\n\tmargin: 0 1em 1em 0;\n\tdisplay: flex;\n\tflex-flow: column;\n\talign-items: stretch;\n\tjustify-content: stretch;\n\tbackground-color: var(--ui-color-background-semi);\n\tpadding: 0 10px 10px;\n\tborder-radius: 5px;\n\tborder: 1px solid var(--ui-color-border);\n}\n\n.icon-block-icon {\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.icon-block-icon svg {\n\twidth: 32px;\n\theight: 32px;\n}\n\n.icon-block-name {\n\theight: 20px;\n\ttext-align: center;\n\toverflow-wrap: break-word;\n\tfont-size: var(--ui-font-s)\n}\n",".div {\n\tborder: 1px dashed red;\n\theight: 100px;\n\twidth: 200px;\n\tdisplay: inline-grid;\n\tplace-items: center;\n\tmargin: 1rem 1rem 1rem 0;\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n\n\n.docs-menu-align-right {\n\tpadding: 2rem 0;\n\tborder: 1px dashed var(--ui-color-accent);\n\ttext-align: right;\n}\n",".notification-center-header {\n\tmargin-bottom: 1rem;\n\tdisplay: flex;\n\tflex-flow: row;\n\talign-items: center;\n\tjustify-content: flex-start;\n\tgap: 2rem;\n}\n\n.notification-center-header h2 {\n\tdisplay: inline-block;\n\twidth: auto;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n\n.prop-row {\n\tpadding: 1rem 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-start;\n\tgap: 1rem;\n}\n",".panel p { margin: 0; }\n",".tooltip-box {\n\tdisplay: inline-block;\n\tmargin: 10px 0 0;\n\tline-height: 2.4em;\n\tpadding: 1em;\n\tborder: 1px solid #ccc;\n\tmin-width: 6em;\n\ttext-align: center;\n}\n\n.tooltip-html h1,\n.tooltip-html p { margin: 0; }\n.tooltip-html b { color: var(--ui-color-accent); }\n.tooltip-html a:hover { text-decoration: none; }\n",".split-wrap {\n\twidth: 400px;\n\theight: 200px;\n\tborder: 1px solid red;\n\tdisplay: flex;\n\tflex-flow: row;\n\tposition: relative;\n}\n\n.split-wrap-v { flex-flow: column; }\n.split-box { border: 1px solid green; flex: 1; }\n\n.min-w { min-width: 20px; max-width: 220px; }\n.min-h { min-height: 50px; max-height: 150px; }\n",".table-viewport {\n\twidth: 500px;\n\tmax-width: 100%;\n\theight: 500px;\n\tborder: 2px dashed red;\n\tpadding: 5px;\n}\n",".toggle-box {\n\tmargin: 10px 0 0;\n\tline-height: 2.4em;\n\tdisplay: none;\n}\n\n.toggle-box.visible {\n\tdisplay: block;\n}\n",".tooltip-box {\n\tdisplay: inline-block;\n\tmargin: 10px 0 0;\n\tline-height: 2.4em;\n\tpadding: 1em;\n\tborder: 1px solid #ccc;\n\tmin-width: 6em;\n\ttext-align: center;\n}\n\n.tooltip-html h1,\n.tooltip-html p { margin: 0; }\n.tooltip-html b { color: var(--ui-color-accent); }\n.tooltip-html a:hover { text-decoration: none; }\n",".utilities {\n\tpadding-bottom: 3rem;\n}\n\n.utilities h3.util {\n\tfont-size: 1.1rem;\n\tcolor: var(--ui-color-accent);\n\tfont-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;\n}\n"]} \ No newline at end of file diff --git a/docs/docs.js b/docs/docs.js index 9ccd59b6..3c432d77 100644 --- a/docs/docs.js +++ b/docs/docs.js @@ -1,66 +1,40920 @@ -var y1=Object.create;var Yu=Object.defineProperty;var k1=Object.getOwnPropertyDescriptor;var T1=Object.getOwnPropertyNames;var M1=Object.getPrototypeOf,E1=Object.prototype.hasOwnProperty;var It=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),S1=(t,e)=>{for(var n in e)Yu(t,n,{get:e[n],enumerable:!0})},C1=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of T1(e))!E1.call(t,o)&&o!==n&&Yu(t,o,{get:()=>e[o],enumerable:!(i=k1(e,o))||i.enumerable});return t};var Uu=(t,e,n)=>(n=t!=null?y1(M1(t)):{},C1(e||!t||!t.__esModule?Yu(n,"default",{value:t,enumerable:!0}):n,t));var _i=It(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.TraceDirectionKey=Sn.Direction=Sn.Axis=void 0;var kc;Sn.TraceDirectionKey=kc;(function(t){t.NEGATIVE="NEGATIVE",t.POSITIVE="POSITIVE",t.NONE="NONE"})(kc||(Sn.TraceDirectionKey=kc={}));var Tc;Sn.Direction=Tc;(function(t){t.TOP="TOP",t.LEFT="LEFT",t.RIGHT="RIGHT",t.BOTTOM="BOTTOM",t.NONE="NONE"})(Tc||(Sn.Direction=Tc={}));var Mc;Sn.Axis=Mc;(function(t){t.X="x",t.Y="y"})(Mc||(Sn.Axis=Mc={}))});var Cc=It(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});Sc.calculateDirection=e0;var Ec=_i();function e0(t){var e,n=Ec.TraceDirectionKey.NEGATIVE,i=Ec.TraceDirectionKey.POSITIVE,o=t[t.length-1],r=t[t.length-2]||0;return t.every(function(u){return u===0})?Ec.TraceDirectionKey.NONE:(e=o>r?i:n,o===0&&(e=r<0?i:n),e)}});var Cr=It(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.resolveAxisDirection=jn.getDirectionValue=jn.getDirectionKey=jn.getDifference=void 0;var hn=_i(),t0=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=Object.keys(e).toString();switch(n){case hn.TraceDirectionKey.POSITIVE:return hn.TraceDirectionKey.POSITIVE;case hn.TraceDirectionKey.NEGATIVE:return hn.TraceDirectionKey.NEGATIVE;default:return hn.TraceDirectionKey.NONE}};jn.getDirectionKey=t0;var n0=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e[e.length-1]||0};jn.getDirectionValue=n0;var i0=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Math.abs(e-n)};jn.getDifference=i0;var o0=function(e,n){var i=hn.Direction.LEFT,o=hn.Direction.RIGHT,r=hn.Direction.NONE;return e===hn.Axis.Y&&(i=hn.Direction.BOTTOM,o=hn.Direction.TOP),n===hn.TraceDirectionKey.NEGATIVE&&(r=i),n===hn.TraceDirectionKey.POSITIVE&&(r=o),r};jn.resolveAxisDirection=o0});var Lc=It(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});Dc.calculateDirectionDelta=l0;var s0=_i(),Bo=Cr();function l0(t){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=t.length,i=n-1,o=s0.TraceDirectionKey.NONE;i>=0;i--){var r=t[i],u=(0,Bo.getDirectionKey)(r),a=(0,Bo.getDirectionValue)(r[u]),c=t[i-1]||{},f=(0,Bo.getDirectionKey)(c),d=(0,Bo.getDirectionValue)(c[f]),b=(0,Bo.getDifference)(a,d);if(b>=e){o=u;break}else o=f}return o}});var Ac=It(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.calculateDuration=r0;function r0(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return t?e-t:0}});var Cg=It(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});Ic.calculateMovingPosition=a0;function a0(t){if("changedTouches"in t){var e=t.changedTouches&&t.changedTouches[0];return{x:e&&e.clientX,y:e&&e.clientY}}return{x:t.clientX,y:t.clientY}}});var Pc=It(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});Oc.updateTrace=u0;function u0(t,e){var n=t[t.length-1];return n!==e&&t.push(e),t}});var Fc=It(Hc=>{"use strict";Object.defineProperty(Hc,"__esModule",{value:!0});Hc.calculateTraceDirections=f0;var Dr=_i();function Dg(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f0(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=[],n=Dr.TraceDirectionKey.POSITIVE,i=Dr.TraceDirectionKey.NEGATIVE,o=0,r=[],u=Dr.TraceDirectionKey.NONE;oc?n:i;u===Dr.TraceDirectionKey.NONE&&(u=f),f===u?r.push(a):(e.push(Dg({},u,r.slice())),r=[],r.push(a),u=f)}else a!==0&&(u=a>0?n:i),r.push(a)}return r.length&&e.push(Dg({},u,r)),e}});var qc=It(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.resolveDirection=h0;var c0=Cc(),d0=Fc(),m0=Lc(),Lg=Cr(),p0=_i();function h0(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p0.Axis.X,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(n){var i=(0,d0.calculateTraceDirections)(t),o=(0,m0.calculateDirectionDelta)(i,n);return(0,Lg.resolveAxisDirection)(e,o)}var r=(0,c0.calculateDirection)(t);return(0,Lg.resolveAxisDirection)(e,r)}});var Rc=It(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.calculateVelocity=g0;function g0(t,e,n){var i=Math.sqrt(t*t+e*e);return i/(n||1)}});var Og=It(zc=>{"use strict";Object.defineProperty(zc,"__esModule",{value:!0});zc.calculatePosition=v0;var xg=Pc(),Ag=qc(),b0=Ac(),_0=Rc(),Ig=_i();function v0(t,e){var n=t.start,i=t.x,o=t.y,r=t.traceX,u=t.traceY,a=e.rotatePosition,c=e.directionDelta,f=a.x-i,d=o-a.y,b=Math.abs(f),h=Math.abs(d);(0,xg.updateTrace)(r,f),(0,xg.updateTrace)(u,d);var g=(0,Ag.resolveDirection)(r,Ig.Axis.X,c),$=(0,Ag.resolveDirection)(u,Ig.Axis.Y,c),_=(0,b0.calculateDuration)(n,Date.now()),v=(0,_0.calculateVelocity)(b,h,_);return{absX:b,absY:h,deltaX:f,deltaY:d,directionX:g,directionY:$,duration:_,positionX:a.x,positionY:a.y,velocity:v}}});var Pg=It(Lr=>{"use strict";Object.defineProperty(Lr,"__esModule",{value:!0});Lr.checkIsMoreThanSingleTouches=void 0;var w0=function(e){return!!(e.touches&&e.touches.length>1)};Lr.checkIsMoreThanSingleTouches=w0});var Vc=It(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});jc.createOptions=$0;function $0(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.defineProperty(t,"passive",{get:function(){return this.isPassiveSupported=!0,!0},enumerable:!0}),t}});var Hg=It(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.checkIsPassiveSupported=k0;Ro.noop=void 0;var y0=Vc();function k0(t){if(typeof t=="boolean")return t;var e={isPassiveSupported:t};try{var n=(0,y0.createOptions)(e);window.addEventListener("checkIsPassiveSupported",Wc,n),window.removeEventListener("checkIsPassiveSupported",Wc,n)}catch{}return e.isPassiveSupported}var Wc=function(){};Ro.noop=Wc});var Fg=It(xr=>{"use strict";Object.defineProperty(xr,"__esModule",{value:!0});xr.checkIsTouchEventsSupported=void 0;function Gc(t){"@babel/helpers - typeof";return Gc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Gc(t)}var T0=function(){return(typeof window>"u"?"undefined":Gc(window))==="object"&&("ontouchstart"in window||!!window.navigator.maxTouchPoints)};xr.checkIsTouchEventsSupported=T0});var qg=It(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});Ar.getInitialState=void 0;function Ng(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function M0(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};return M0({x:0,y:0,start:0,isSwiping:!1,traceX:[],traceY:[]},e)};Ar.getInitialState=S0});var Rg=It(Ir=>{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.getInitialProps=void 0;function Bg(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function C0(t){for(var e=1;e0&&arguments[0]!==void 0?arguments[0]:{};return C0({element:null,target:null,delta:10,directionDelta:0,rotationAngle:0,mouseTrackingEnabled:!1,touchTrackingEnabled:!0,preventDefaultTouchmoveEvent:!1,preventTrackingOnMouseleave:!1},e)};Ir.getInitialProps=L0});var zg=It(Yc=>{"use strict";Object.defineProperty(Yc,"__esModule",{value:!0});Yc.getOptions=x0;function x0(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return t?{passive:!1}:{}}});var jg=It(Uc=>{"use strict";Object.defineProperty(Uc,"__esModule",{value:!0});Uc.rotateByAngle=A0;function A0(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e===0)return t;var n=t.x,i=t.y,o=Math.PI/180*e,r=n*Math.cos(o)+i*Math.sin(o),u=i*Math.cos(o)-n*Math.sin(o);return{x:r,y:u}}});var Vg=It(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});var Kc=Cc();Object.keys(Kc).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===Kc[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return Kc[t]}})});var Xc=Lc();Object.keys(Xc).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===Xc[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return Xc[t]}})});var Zc=Ac();Object.keys(Zc).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===Zc[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return Zc[t]}})});var Jc=Cg();Object.keys(Jc).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===Jc[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return Jc[t]}})});var Qc=Og();Object.keys(Qc).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===Qc[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return Qc[t]}})});var ed=Fc();Object.keys(ed).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===ed[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return ed[t]}})});var td=Rc();Object.keys(td).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===td[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return td[t]}})});var nd=Pg();Object.keys(nd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===nd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return nd[t]}})});var od=Hg();Object.keys(od).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===od[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return od[t]}})});var sd=Fg();Object.keys(sd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===sd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return sd[t]}})});var ld=Cr();Object.keys(ld).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===ld[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return ld[t]}})});var rd=Vc();Object.keys(rd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===rd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return rd[t]}})});var ad=qg();Object.keys(ad).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===ad[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return ad[t]}})});var ud=Rg();Object.keys(ud).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===ud[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return ud[t]}})});var fd=zg();Object.keys(fd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===fd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return fd[t]}})});var cd=qc();Object.keys(cd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===cd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return cd[t]}})});var dd=jg();Object.keys(dd).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===dd[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return dd[t]}})});var md=Pc();Object.keys(md).forEach(function(t){t==="default"||t==="__esModule"||t in Ve&&Ve[t]===md[t]||Object.defineProperty(Ve,t,{enumerable:!0,get:function(){return md[t]}})})});var Ug=It(Vi=>{"use strict";function hd(t){"@babel/helpers - typeof";return hd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hd(t)}Object.defineProperty(Vi,"__esModule",{value:!0});var I0={};Vi.default=void 0;var Zt=O0(Vg()),pd=_i();Object.keys(pd).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(I0,t)||t in Vi&&Vi[t]===pd[t]||Object.defineProperty(Vi,t,{enumerable:!0,get:function(){return pd[t]}})});function Yg(t){if(typeof WeakMap!="function")return null;var e=new WeakMap,n=new WeakMap;return(Yg=function(o){return o?n:e})(t)}function O0(t,e){if(!e&&t&&t.__esModule)return t;if(t===null||hd(t)!=="object"&&typeof t!="function")return{default:t};var n=Yg(e);if(n&&n.has(t))return n.get(t);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in t)if(r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)){var u=o?Object.getOwnPropertyDescriptor(t,r):null;u&&(u.get||u.set)?Object.defineProperty(i,r,u):i[r]=t[r]}return i.default=t,n&&n.set(t,i),i}function P0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Wg(t,e){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{directionDelta:0},o=this.props.rotationAngle,r=i.directionDelta,u=Zt.calculateMovingPosition(n),a=Zt.rotateByAngle(u,o);return Zt.calculatePosition(this.state,{rotatePosition:a,directionDelta:r})}},{key:"handleSwipeStart",value:function(n){if(!Zt.checkIsMoreThanSingleTouches(n)){var i=this.props.rotationAngle,o=Zt.calculateMovingPosition(n),r=Zt.rotateByAngle(o,i),u=r.x,a=r.y;this.state=Zt.getInitialState({isSwiping:!1,start:Date.now(),x:u,y:a})}}},{key:"handleSwipeMove",value:function(n){var i=this.state,o=i.x,r=i.y,u=i.isSwiping;if(!(!o||!r||Zt.checkIsMoreThanSingleTouches(n))){var a=this.props.directionDelta||0,c=this.getEventData(n,{directionDelta:a}),f=c.absX,d=c.absY,b=c.deltaX,h=c.deltaY,g=c.directionX,$=c.directionY,_=c.duration,v=c.velocity,w=this.props,k=w.delta,x=w.preventDefaultTouchmoveEvent,A=w.onSwipeStart,y=w.onSwiping;n.cancelable&&x&&n.preventDefault(),!(f{var z3=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ze=function(t){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,i={},o={manual:t.Prism&&t.Prism.manual,disableWorkerMessageHandler:t.Prism&&t.Prism.disableWorkerMessageHandler,util:{encode:function _(v){return v instanceof r?new r(v.type,_(v.content),v.alias):Array.isArray(v)?v.map(_):v.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(k){var _=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(k.stack)||[])[1];if(_){var v=document.getElementsByTagName("script");for(var w in v)if(v[w].src==_)return v[w]}return null}},isActive:function(_,v,w){for(var k="no-"+v;_;){var x=_.classList;if(x.contains(v))return!0;if(x.contains(k))return!1;_=_.parentElement}return!!w}},languages:{plain:i,plaintext:i,text:i,txt:i,extend:function(_,v){var w=o.util.clone(o.languages[_]);for(var k in v)w[k]=v[k];return w},insertBefore:function(_,v,w,k){k=k||o.languages;var x=k[_],A={};for(var y in x)if(x.hasOwnProperty(y)){if(y==v)for(var T in w)w.hasOwnProperty(T)&&(A[T]=w[T]);w.hasOwnProperty(y)||(A[y]=x[y])}var L=k[_];return k[_]=A,o.languages.DFS(o.languages,function(N,I){I===L&&N!=_&&(this[N]=A)}),A},DFS:function _(v,w,k,x){x=x||{};var A=o.util.objId;for(var y in v)if(v.hasOwnProperty(y)){w.call(v,y,v[y],k||y);var T=v[y],L=o.util.type(T);L==="Object"&&!x[A(T)]?(x[A(T)]=!0,_(T,w,null,x)):L==="Array"&&!x[A(T)]&&(x[A(T)]=!0,_(T,w,y,x))}}},plugins:{},highlightAll:function(_,v){o.highlightAllUnder(document,_,v)},highlightAllUnder:function(_,v,w){var k={callback:w,container:_,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",k),k.elements=Array.prototype.slice.apply(k.container.querySelectorAll(k.selector)),o.hooks.run("before-all-elements-highlight",k);for(var x=0,A;A=k.elements[x++];)o.highlightElement(A,v===!0,k.callback)},highlightElement:function(_,v,w){var k=o.util.getLanguage(_),x=o.languages[k];o.util.setLanguage(_,k);var A=_.parentElement;A&&A.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(A,k);var y=_.textContent,T={element:_,language:k,grammar:x,code:y};function L(I){T.highlightedCode=I,o.hooks.run("before-insert",T),T.element.innerHTML=T.highlightedCode,o.hooks.run("after-highlight",T),o.hooks.run("complete",T),w&&w.call(T.element)}if(o.hooks.run("before-sanity-check",T),A=T.element.parentElement,A&&A.nodeName.toLowerCase()==="pre"&&!A.hasAttribute("tabindex")&&A.setAttribute("tabindex","0"),!T.code){o.hooks.run("complete",T),w&&w.call(T.element);return}if(o.hooks.run("before-highlight",T),!T.grammar){L(o.util.encode(T.code));return}if(v&&t.Worker){var N=new Worker(o.filename);N.onmessage=function(I){L(I.data)},N.postMessage(JSON.stringify({language:T.language,code:T.code,immediateClose:!0}))}else L(o.highlight(T.code,T.grammar,T.language))},highlight:function(_,v,w){var k={code:_,grammar:v,language:w};if(o.hooks.run("before-tokenize",k),!k.grammar)throw new Error('The language "'+k.language+'" has no grammar.');return k.tokens=o.tokenize(k.code,k.grammar),o.hooks.run("after-tokenize",k),r.stringify(o.util.encode(k.tokens),k.language)},tokenize:function(_,v){var w=v.rest;if(w){for(var k in w)v[k]=w[k];delete v.rest}var x=new c;return f(x,x.head,_),a(_,x,v,x.head,0),b(x)},hooks:{all:{},add:function(_,v){var w=o.hooks.all;w[_]=w[_]||[],w[_].push(v)},run:function(_,v){var w=o.hooks.all[_];if(!(!w||!w.length))for(var k=0,x;x=w[k++];)x(v)}},Token:r};t.Prism=o;function r(_,v,w,k){this.type=_,this.content=v,this.alias=w,this.length=(k||"").length|0}r.stringify=function _(v,w){if(typeof v=="string")return v;if(Array.isArray(v)){var k="";return v.forEach(function(L){k+=_(L,w)}),k}var x={type:v.type,content:_(v.content,w),tag:"span",classes:["token",v.type],attributes:{},language:w},A=v.alias;A&&(Array.isArray(A)?Array.prototype.push.apply(x.classes,A):x.classes.push(A)),o.hooks.run("wrap",x);var y="";for(var T in x.attributes)y+=" "+T+'="'+(x.attributes[T]||"").replace(/"/g,""")+'"';return"<"+x.tag+' class="'+x.classes.join(" ")+'"'+y+">"+x.content+""};function u(_,v,w,k){_.lastIndex=v;var x=_.exec(w);if(x&&k&&x[1]){var A=x[1].length;x.index+=A,x[0]=x[0].slice(A)}return x}function a(_,v,w,k,x,A){for(var y in w)if(!(!w.hasOwnProperty(y)||!w[y])){var T=w[y];T=Array.isArray(T)?T:[T];for(var L=0;L=A.reach);H+=U.value.length,U=U.next){var Q=U.value;if(v.length>_.length)return;if(!(Q instanceof r)){var z=1,K;if(j){if(K=u(X,H,_,F),!K||K.index>=_.length)break;var V=K.index,te=K.index+K[0].length,$e=H;for($e+=U.value.length;V>=$e;)U=U.next,$e+=U.value.length;if($e-=U.value.length,H=$e,U.value instanceof r)continue;for(var G=U;G!==v.tail&&($eA.reach&&(A.reach=ee);var Ie=U.prev;se&&(Ie=f(v,Ie,se),H+=se.length),d(v,Ie,z);var pe=new r(y,I?o.tokenize(ce,I):ce,W,ce);if(U=f(v,Ie,pe),Y&&f(v,U,Y),z>1){var ke={cause:y+","+L,reach:ee};a(_,v,w,U.prev,H,ke),A&&ke.reach>A.reach&&(A.reach=ke.reach)}}}}}}function c(){var _={value:null,prev:null,next:null},v={value:null,prev:_,next:null};_.next=v,this.head=_,this.tail=v,this.length=0}function f(_,v,w){var k=v.next,x={value:w,prev:v,next:k};return v.next=x,k.prev=x,_.length++,x}function d(_,v,w){for(var k=v.next,x=0;x/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};ze.languages.markup.tag.inside["attr-value"].inside.entity=ze.languages.markup.entity;ze.languages.markup.doctype.inside["internal-subset"].inside=ze.languages.markup;ze.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.replace(/&/,"&"))});Object.defineProperty(ze.languages.markup.tag,"addInlined",{value:function(e,n){var i={};i["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:ze.languages[n]},i.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:i}};o["language-"+n]={pattern:/[\s\S]+/,inside:ze.languages[n]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:o},ze.languages.insertBefore("markup","cdata",r)}});Object.defineProperty(ze.languages.markup.tag,"addAttribute",{value:function(t,e){ze.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:ze.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});ze.languages.html=ze.languages.markup;ze.languages.mathml=ze.languages.markup;ze.languages.svg=ze.languages.markup;ze.languages.xml=ze.languages.extend("markup",{});ze.languages.ssml=ze.languages.xml;ze.languages.atom=ze.languages.xml;ze.languages.rss=ze.languages.xml;(function(t){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var n=t.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))})(ze);ze.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};ze.languages.javascript=ze.languages.extend("clike",{"class-name":[ze.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});ze.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;ze.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:ze.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:ze.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:ze.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:ze.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:ze.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});ze.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:ze.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});ze.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});ze.languages.markup&&(ze.languages.markup.tag.addInlined("script","javascript"),ze.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));ze.languages.js=ze.languages.javascript;(function(){if(typeof ze>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var t="Loading\u2026",e=function(h,g){return"\u2716 Error "+h+" while fetching file: "+g},n="\u2716 Error: File does not exist or is empty",i={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},o="data-src-status",r="loading",u="loaded",a="failed",c="pre[data-src]:not(["+o+'="'+u+'"]):not(['+o+'="'+r+'"])';function f(h,g,$){var _=new XMLHttpRequest;_.open("GET",h,!0),_.onreadystatechange=function(){_.readyState==4&&(_.status<400&&_.responseText?g(_.responseText):_.status>=400?$(e(_.status,_.statusText)):$(n))},_.send(null)}function d(h){var g=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(h||"");if(g){var $=Number(g[1]),_=g[2],v=g[3];return _?v?[$,Number(v)]:[$,void 0]:[$,$]}}ze.hooks.add("before-highlightall",function(h){h.selector+=", "+c}),ze.hooks.add("before-sanity-check",function(h){var g=h.element;if(g.matches(c)){h.code="",g.setAttribute(o,r);var $=g.appendChild(document.createElement("CODE"));$.textContent=t;var _=g.getAttribute("data-src"),v=h.language;if(v==="none"){var w=(/\.(\w+)$/.exec(_)||[,"none"])[1];v=i[w]||w}ze.util.setLanguage($,v),ze.util.setLanguage(g,v);var k=ze.plugins.autoloader;k&&k.loadLanguages(v),f(_,function(x){g.setAttribute(o,u);var A=d(g.getAttribute("data-range"));if(A){var y=x.split(/\r\n?|\n/g),T=A[0],L=A[1]==null?y.length:A[1];T<0&&(T+=y.length),T=Math.max(0,Math.min(T-1,y.length)),L<0&&(L+=y.length),L=Math.max(0,Math.min(L,y.length)),x=y.slice(T,L).join(` -`),g.hasAttribute("data-start")||g.setAttribute("data-start",String(T+1))}$.textContent=x,ze.highlightElement($)},function(x){g.setAttribute(o,a),$.textContent=x})}}),ze.plugins.fileHighlight={highlight:function(g){for(var $=(g||document).querySelectorAll(c),_=0,v;v=$[_++];)ze.highlightElement(v)}};var b=!1;ze.fileHighlight=function(){b||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),b=!0),ze.plugins.fileHighlight.highlight.apply(this,arguments)}})()});var $1=It((dI,Pr)=>{(function(){if(typeof Prism>"u")return;var t=Object.assign||function(r,u){for(var a in u)u.hasOwnProperty(a)&&(r[a]=u[a]);return r};function e(r){this.defaults=t({},r)}function n(r){return r.replace(/-(\w)/g,function(u,a){return a.toUpperCase()})}function i(r){for(var u=0,a=0;au&&(f[b]=` -`+f[b],d=h)}a[c]=f.join("")}return a.join(` -`)}},typeof Pr<"u"&&Pr.exports&&(Pr.exports=e),Prism.plugins.NormalizeWhitespace=new e({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",function(r){var u=Prism.plugins.NormalizeWhitespace;if(!(r.settings&&r.settings["whitespace-normalization"]===!1)&&Prism.util.isActive(r.element,"whitespace-normalization",!0)){if((!r.element||!r.element.parentNode)&&r.code){r.code=u.normalize(r.code,r.settings);return}var a=r.element.parentNode;if(!(!r.code||!a||a.nodeName.toLowerCase()!=="pre")){r.settings==null&&(r.settings={});for(var c in o)if(Object.hasOwnProperty.call(o,c)){var f=o[c];if(a.hasAttribute("data-"+c))try{var d=JSON.parse(a.getAttribute("data-"+c)||"true");typeof d===f&&(r.settings[c]=d)}catch{}}for(var b=a.childNodes,h="",g="",$=!1,_=0;_t;function Ke(t,e){for(let n in e)t[n]=e[n];return t}function Ku(t){return t()}function Wl(){return Object.create(null)}function Be(t){t.forEach(Ku)}function mt(t){return typeof t=="function"}function fe(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}var Vl;function Wm(t,e){return t===e?!0:(Vl||(Vl=document.createElement("a")),Vl.href=e,t===Vl.href)}function Gm(t){return Object.keys(t).length===0}function Xu(t,...e){if(t==null){for(let i of e)i(void 0);return Oe}let n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function Qi(t){let e;return Xu(t,n=>e=n)(),e}function Kt(t,e,n){t.$$.on_destroy.push(Xu(e,n))}function Ot(t,e,n,i){if(t){let o=Ym(t,e,n,i);return t[0](o)}}function Ym(t,e,n,i){return t[1]&&i?Ke(n.ctx.slice(),t[1](i(e))):n.ctx}function Pt(t,e,n,i){if(t[2]&&i){let o=t[2](i(n));if(e.dirty===void 0)return o;if(typeof o=="object"){let r=[],u=Math.max(e.dirty.length,o.length);for(let a=0;a32){let e=[],n=t.ctx.length/32;for(let i=0;iwindow.performance.now():()=>Date.now(),ko=Xm?t=>requestAnimationFrame(t):Oe;var to=new Set;function Zm(t){to.forEach(e=>{e.c(t)||(to.delete(e),e.f())}),to.size!==0&&ko(Zm)}function no(t){let e;return to.size===0&&ko(Zm),{promise:new Promise(n=>{to.add(e={c:t,f:n})}),abort(){to.delete(e)}}}var To=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;var Yl=class t{_listeners="WeakMap"in To?new WeakMap:void 0;_observer=void 0;options;constructor(e){this.options=e}observe(e,n){return this._listeners.set(e,n),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){return this._observer??(this._observer=new ResizeObserver(e=>{for(let n of e)t.entries.set(n.target,n),this._listeners.get(n.target)?.(n)}))}};Yl.entries="WeakMap"in To?new WeakMap:void 0;var Jm=!1;function Qm(){Jm=!0}function ep(){Jm=!1}function P(t,e){t.appendChild(e)}function Ju(t){if(!t)return document;let e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function tp(t){let e=p("style");return e.textContent="/* empty */",L1(Ju(t),e),e.sheet}function L1(t,e){return P(t.head||t,e),e.sheet}function l(t,e,n){t.insertBefore(e,n||null)}function s(t){t.parentNode&&t.parentNode.removeChild(t)}function jt(t,e){for(let n=0;nt.removeEventListener(e,n,i)}function Mi(t){return function(e){return e.preventDefault(),t.call(this,e)}}function Ul(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function O(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}var A1=["width","height"];function Tt(t,e){let n=Object.getOwnPropertyDescriptors(t.__proto__);for(let i in e)e[i]==null?t.removeAttribute(i):i==="style"?t.style.cssText=e[i]:i==="__value"?t.value=t[i]=e[i]:n[i]&&n[i].set&&A1.indexOf(i)===-1?t[i]=e[i]:O(t,i,e[i])}function np(t){return Array.from(t.childNodes)}function je(t,e){e=""+e,t.data!==e&&(t.data=e)}function Lt(t,e){t.value=e??""}function Xt(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,i?"important":"")}function Qu(t,e,n){for(let i=0;i{e[n.slot||"default"]=!0}),e}function ef(t,e){return new t(e)}var Kl=new Map,Xl=0;function I1(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function O1(t,e){let n={stylesheet:tp(e),rules:{}};return Kl.set(t,n),n}function Ei(t,e,n,i,o,r,u,a=0){let c=16.666/i,f=`{ -`;for(let v=0;v<=1;v+=c){let w=e+(n-e)*r(v);f+=v*100+`%{${u(w,1-w)}} -`}let d=f+`100% {${u(n,1-n)}} -}`,b=`__svelte_${I1(d)}_${a}`,h=Ju(t),{stylesheet:g,rules:$}=Kl.get(h)||O1(h,t);$[b]||($[b]=!0,g.insertRule(`@keyframes ${b} ${d}`,g.cssRules.length));let _=t.style.animation||"";return t.style.animation=`${_?`${_}, `:""}${b} ${i}ms linear ${o}ms 1 both`,Xl+=1,b}function Si(t,e){let n=(t.style.animation||"").split(", "),i=n.filter(e?r=>r.indexOf(e)<0:r=>r.indexOf("__svelte")===-1),o=n.length-i.length;o&&(t.style.animation=i.join(", "),Xl-=o,Xl||P1())}function P1(){ko(()=>{Xl||(Kl.forEach(t=>{let{ownerNode:e}=t.stylesheet;e&&s(e)}),Kl.clear())})}function Zl(t,e,n,i){if(!e)return Oe;let o=t.getBoundingClientRect();if(e.left===o.left&&e.right===o.right&&e.top===o.top&&e.bottom===o.bottom)return Oe;let{delay:r=0,duration:u=300,easing:a=li,start:c=eo()+r,end:f=c+u,tick:d=Oe,css:b}=n(t,{from:e,to:o},i),h=!0,g=!1,$;function _(){b&&($=Ei(t,0,1,u,r,a,b)),r||(g=!0)}function v(){b&&Si(t,$),h=!1}return no(w=>{if(!g&&w>=c&&(g=!0),g&&w>=f&&(d(1,0),v()),!h)return!1;if(g){let k=w-c,x=0+1*a(k/u);d(x,1-x)}return!0}),_(),d(0,1),v}function Jl(t){let e=getComputedStyle(t);if(e.position!=="absolute"&&e.position!=="fixed"){let{width:n,height:i}=e,o=t.getBoundingClientRect();t.style.position="absolute",t.style.width=n,t.style.height=i,Eo(t,o)}}function Eo(t,e){let n=t.getBoundingClientRect();if(e.left!==n.left||e.top!==n.top){let i=getComputedStyle(t),o=i.transform==="none"?"":i.transform;t.style.transform=`${o} translate(${e.left-n.left}px, ${e.top-n.top}px)`}}var ri;function Xn(t){ri=t}function Ci(){if(!ri)throw new Error("Function called outside component initialization");return ri}function Mt(t){Ci().$$.on_mount.push(t)}function Zn(t){Ci().$$.after_update.push(t)}function Qt(t){Ci().$$.on_destroy.push(t)}function lt(){let t=Ci();return(e,n,{cancelable:i=!1}={})=>{let o=t.$$.callbacks[e];if(o){let r=Mo(e,n,{cancelable:i});return o.slice().forEach(u=>{u.call(t,r)}),!r.defaultPrevented}return!0}}function tf(t,e){return Ci().$$.context.set(t,e),e}function nf(t){return Ci().$$.context.get(t)}function st(t,e){let n=t.$$.callbacks[e.type];n&&n.slice().forEach(i=>i.call(this,e))}var Di=[];var he=[],oo=[],sf=[],H1=Promise.resolve(),lf=!1;function sp(){lf||(lf=!0,H1.then(yt))}function zt(t){oo.push(t)}function Ye(t){sf.push(t)}var of=new Set,io=0;function yt(){if(io!==0)return;let t=ri;do{try{for(;iot.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),oo=e}var So;function rf(){return So||(So=Promise.resolve(),So.then(()=>{So=null})),So}function Li(t,e,n){t.dispatchEvent(Mo(`${e?"intro":"outro"}${n}`))}var Ql=new Set,Nn;function Je(){Nn={r:0,c:[],p:Nn}}function Qe(){Nn.r||Be(Nn.c),Nn=Nn.p}function M(t,e){t&&t.i&&(Ql.delete(t),t.i(e))}function E(t,e,n,i){if(t&&t.o){if(Ql.has(t))return;Ql.add(t),Nn.c.push(()=>{Ql.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}var af={duration:0};function so(t,e,n){let i={direction:"in"},o=e(t,n,i),r=!1,u,a,c=0;function f(){u&&Si(t,u)}function d(){let{delay:h=0,duration:g=300,easing:$=li,tick:_=Oe,css:v}=o||af;v&&(u=Ei(t,0,1,g,h,$,v,c++)),_(0,1);let w=eo()+h,k=w+g;a&&a.abort(),r=!0,zt(()=>Li(t,!0,"start")),a=no(x=>{if(r){if(x>=k)return _(1,0),Li(t,!0,"end"),f(),r=!1;if(x>=w){let A=$((x-w)/g);_(A,1-A)}}return r})}let b=!1;return{start(){b||(b=!0,Si(t),mt(o)?(o=o(i),rf().then(d)):d())},invalidate(){b=!1},end(){r&&(f(),r=!1)}}}function lo(t,e,n){let i={direction:"out"},o=e(t,n,i),r=!0,u,a=Nn;a.r+=1;let c;function f(){let{delay:d=0,duration:b=300,easing:h=li,tick:g=Oe,css:$}=o||af;$&&(u=Ei(t,1,0,b,d,h,$));let _=eo()+d,v=_+b;zt(()=>Li(t,!1,"start")),"inert"in t&&(c=t.inert,t.inert=!0),no(w=>{if(r){if(w>=v)return g(0,1),Li(t,!1,"end"),--a.r||Be(a.c),!1;if(w>=_){let k=h((w-_)/b);g(1-k,k)}}return r})}return mt(o)?rf().then(()=>{o=o(i),f()}):f(),{end(d){d&&"inert"in t&&(t.inert=c),d&&o.tick&&o.tick(1,0),r&&(u&&Si(t,u),r=!1)}}}function uf(t,e,n,i){let r=e(t,n,{direction:"both"}),u=i?0:1,a=null,c=null,f=null,d;function b(){f&&Si(t,f)}function h($,_){let v=$.b-u;return _*=Math.abs(v),{a:u,b:$.b,d:v,duration:_,start:$.start,end:$.start+_,group:$.group}}function g($){let{delay:_=0,duration:v=300,easing:w=li,tick:k=Oe,css:x}=r||af,A={start:eo()+_,b:$};$||(A.group=Nn,Nn.r+=1),"inert"in t&&($?d!==void 0&&(t.inert=d):(d=t.inert,t.inert=!0)),a||c?c=A:(x&&(b(),f=Ei(t,u,$,v,_,w,x)),$&&k(0,1),a=h(A,v),zt(()=>Li(t,$,"start")),no(y=>{if(c&&y>c.start&&(a=h(c,v),c=null,Li(t,a.b,"start"),x&&(b(),f=Ei(t,u,a.b,a.duration,0,w,r.css))),a){if(y>=a.end)k(u=a.b,1-u),Li(t,a.b,"end"),c||(a.b?b():--a.group.r||Be(a.group.c)),a=null;else if(y>=a.start){let T=y-a.start;u=a.a+a.d*w(T/a.duration),k(u,1-u)}}return!!(a||c)}))}return{run($){mt(r)?rf().then(()=>{r=r({direction:$?"in":"out"}),g($)}):g($)},end(){b(),a=c=null}}}function nt(t){return t?.length!==void 0?t:Array.from(t)}function ff(t,e){E(t,1,1,()=>{e.delete(t.key)})}function er(t,e){t.f(),ff(t,e)}function ro(t,e,n,i,o,r,u,a,c,f,d,b){let h=t.length,g=r.length,$=h,_={};for(;$--;)_[t[$].key]=$;let v=[],w=new Map,k=new Map,x=[];for($=g;$--;){let L=b(o,r,$),N=n(L),I=u.get(N);I?i&&x.push(()=>I.p(L,e)):(I=f(N,L),I.c()),w.set(N,v[$]=I),N in _&&k.set(N,Math.abs($-_[N]))}let A=new Set,y=new Set;function T(L){M(L,1),L.m(a,d),u.set(L.key,L),d=L.first,g--}for(;h&&g;){let L=v[g-1],N=t[h-1],I=L.key,F=N.key;L===N?(d=L.first,h--,g--):w.has(F)?!u.has(I)||A.has(I)?T(L):y.has(F)?h--:k.get(I)>k.get(F)?(y.add(I),T(L)):(A.add(F),h--):(c(N,u),h--)}for(;h--;){let L=t[h];w.has(L.key)||c(L,u)}for(;g;)T(v[g-1]);return Be(x),v}function xt(t,e){let n={},i={},o={$$scope:1},r=t.length;for(;r--;){let u=t[r],a=e[r];if(a){for(let c in u)c in a||(i[c]=1);for(let c in a)o[c]||(n[c]=a[c],o[c]=1);t[r]=a}else for(let c in u)o[c]=1}for(let u in i)u in n||(n[u]=void 0);return n}function ao(t){return typeof t=="object"&&t!==null?t:{}}var N1=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],q1=new Set([...N1]);function Ue(t,e,n){let i=t.$$.props[e];i!==void 0&&(t.$$.bound[i]=n,n(t.$$.ctx[i]))}function D(t){t&&t.c()}function S(t,e,n){let{fragment:i,after_update:o}=t.$$;i&&i.m(e,n),zt(()=>{let r=t.$$.on_mount.map(Ku).filter(mt);t.$$.on_destroy?t.$$.on_destroy.push(...r):Be(r),t.$$.on_mount=[]}),o.forEach(zt)}function C(t,e){let n=t.$$;n.fragment!==null&&(lp(n.after_update),Be(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function R1(t,e){t.$$.dirty[0]===-1&&(Di.push(t),sp(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let $=g.length?g[0]:h;return f.ctx&&o(f.ctx[b],f.ctx[b]=$)&&(!f.skip_bound&&f.bound[b]&&f.bound[b]($),d&&R1(t,b)),h}):[],f.update(),d=!0,Be(f.before_update),f.fragment=i?i(f.ctx):!1,e.target){if(e.hydrate){Qm();let b=np(e.target);f.fragment&&f.fragment.l(b),b.forEach(s)}else f.fragment&&f.fragment.c();e.intro&&M(t.$$.fragment),S(t,e.target,e.anchor),ep(),yt()}Xn(c)}var z1;typeof HTMLElement=="function"&&(z1=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;constructor(t,e,n){super(),this.$$ctor=t,this.$$s=e,n&&this.attachShadow({mode:"open"})}addEventListener(t,e,n){if(this.$$l[t]=this.$$l[t]||[],this.$$l[t].push(e),this.$$c){let i=this.$$c.$on(t,e);this.$$l_u.set(e,i)}super.addEventListener(t,e,n)}removeEventListener(t,e,n){if(super.removeEventListener(t,e,n),this.$$c){let i=this.$$l_u.get(e);i&&(i(),this.$$l_u.delete(e))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(o){return()=>{let r;return{c:function(){r=p("slot"),o!=="default"&&O(r,"name",o)},m:function(c,f){l(c,r,f)},d:function(c){c&&s(r)}}}};if(await Promise.resolve(),!this.$$cn)return;let e={},n=op(this);for(let o of this.$$s)o in n&&(e[o]=[t(o)]);for(let o of this.attributes){let r=this.$$g_p(o.name);r in this.$$d||(this.$$d[r]=cf(r,o.value,this.$$p_d,"toProp"))}this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:e,$$scope:{ctx:[]}}});let i=()=>{this.$$r=!0;for(let o in this.$$p_d)if(this.$$d[o]=this.$$c.$$.ctx[this.$$c.$$.props[o]],this.$$p_d[o].reflect){let r=cf(o,this.$$d[o],this.$$p_d,"toAttribute");r==null?this.removeAttribute(o):this.setAttribute(this.$$p_d[o].attribute||o,r)}this.$$r=!1};this.$$c.$$.after_update.push(i),i();for(let o in this.$$l)for(let r of this.$$l[o]){let u=this.$$c.$on(o,r);this.$$l_u.set(r,u)}this.$$l={}}}attributeChangedCallback(t,e,n){this.$$r||(t=this.$$g_p(t),this.$$d[t]=cf(t,n,this.$$p_d,"toProp"),this.$$c?.$set({[t]:this.$$d[t]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{this.$$cn||(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(t){return Object.keys(this.$$p_d).find(e=>this.$$p_d[e].attribute===t||!this.$$p_d[e].attribute&&e.toLowerCase()===t)||t}});function cf(t,e,n,i){let o=n[t]?.type;if(e=o==="Boolean"&&typeof e!="boolean"?e!=null:e,!i||!n[t])return e;if(i==="toAttribute")switch(o){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e??null;default:return e}else switch(o){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}var ue=class{$$=void 0;$$set=void 0;$destroy(){C(this,1),this.$destroy=Oe}$on(e,n){if(!mt(n))return Oe;let i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{let o=i.indexOf(n);o!==-1&&i.splice(o,1)}}$set(e){this.$$set&&!Gm(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var rp="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(rp);function j1(t){let e,n,i,o,r,u=t[4].default,a=Ot(u,t,t[3],null);return{c(){e=p("div"),n=p("div"),i=p("div"),a&&a.c(),O(i,"class","button-group-inner"),O(i,"role","group"),O(n,"class","button-group-scroller"),O(e,"class",o="button-group "+t[1]),ie(e,"round",t[2])},m(c,f){l(c,e,f),P(e,n),P(n,i),a&&a.m(i,null),t[5](e),r=!0},p(c,[f]){a&&a.p&&(!r||f&8)&&Ht(a,u,c,c[3],r?Pt(u,c[3],f,null):Ft(c[3]),null),(!r||f&2&&o!==(o="button-group "+c[1]))&&O(e,"class",o),(!r||f&6)&&ie(e,"round",c[2])},i(c){r||(M(a,c),r=!0)},o(c){E(a,c),r=!1},d(c){c&&s(e),a&&a.d(c),t[5](null)}}}function V1(t,e,n){let{$$slots:i={},$$scope:o}=e,{class:r=""}=e,{round:u=void 0}=e,{element:a=void 0}=e;function c(f){he[f?"unshift":"push"](()=>{a=f,n(0,a)})}return t.$$set=f=>{"class"in f&&n(1,r=f.class),"round"in f&&n(2,u=f.round),"element"in f&&n(0,a=f.element),"$$scope"in f&&n(3,o=f.$$scope)},[a,r,u,o,i,c]}var df=class extends ue{constructor(e){super(),de(this,e,V1,j1,fe,{class:1,round:2,element:0})}},bn=df;var Fe='',alert:Fe+'class="icon icon-tabler icon-tabler-alert-triangle">',apps:Fe+'class="icon icon-tabler icon-tabler-apps">',archive:Fe+'class="icon icon-tabler icon-tabler-archive">',arrowLeft:Fe+'class="icon icon-tabler icon-tabler-arrow-left">',arrowRight:Fe+'class="icon icon-tabler icon-tabler-arrow-right">',arrowNarrowDown:Fe+'class="icon icon-tabler icon-tabler-arrow-narrow-down">',arrowNarrowUp:Fe+'class="icon icon-tabler icon-tabler-arrow-narrow-up">',bank:Fe+'class="icon icon-tabler icon-tabler-building-bank">',basket:Fe+'class="icon icon-tabler icon-tabler-basket">',bell:Fe+'class="icon icon-tabler icon-tabler-bell">',book:Fe+'class="icon icon-tabler icon-tabler-book">',bookmark:Fe+'class="icon icon-tabler icon-tabler-bookmark">',calculator:Fe+'class="icon icon-tabler icon-tabler-calculator">',calendar:Fe+'class="icon icon-tabler icon-tabler-calendar">',chartLine:Fe+'class="icon icon-tabler icon-tabler-line-chart">',chartPie:Fe+'class="icon icon-tabler icon-tabler-chart-pie">',cash:Fe+'class="icon icon-tabler icon-tabler-cash">',cart:Fe+'class="icon icon-tabler icon-tabler-shopping-cart">',check:Fe+'class="icon icon-tabler icon-tabler-check">',checkCircle:Fe+'class="icon icon-tabler icon-tabler-circle-check">',checkboxChecked:Fe+'class="icon icon-tabler icon-tabler-square-check">',checkbox:Fe+'class="icon icon-tabler icon-tabler-square">',checklist:Fe+'class="icon icon-tabler icon-tabler-list-check">',chevronLeft:Fe+'class="icon icon-tabler icon-tabler-chevron-left">',chevronRight:Fe+'class="icon icon-tabler icon-tabler-chevron-right">',close:Fe+'class="icon icon-tabler icon-tabler-x">',cog:Fe+'class="icon icon-tabler icon-tabler-settings">',coin:Fe+'class="icon icon-tabler icon-tabler-coin">',copy:Fe+'class="icon icon-tabler icon-tabler-copy">',dots:Fe+'class="icon icon-tabler icon-tabler-dots">',edit:Fe+'class="icon icon-tabler icon-tabler-edit">',envelope:Fe+'class="icon icon-tabler icon-tabler-mail">',eye:Fe+'class="icon icon-tabler icon-tabler-eye">',eyeOff:Fe+'class="icon icon-tabler icon-tabler-eye-off">',error:Fe+'class="icon icon-tabler icon-tabler-alert-circle">',filter:Fe+'class="icon icon-tabler icon-tabler-filter">',folder:Fe+'class="icon icon-tabler icon-tabler-folder">',help:Fe+'class="icon icon-tabler icon-tabler-help">',home:Fe+'class="icon icon-tabler icon-tabler-home">',info:Fe+'class="icon icon-tabler icon-tabler-info-circle">',link:Fe+'class="icon icon-tabler icon-tabler-link">',list:Fe+'class="icon icon-tabler icon-tabler-list">',logout:Fe+'class="icon icon-tabler icon-tabler-logout">',math:Fe+'class="icon icon-tabler icon-tabler-math-symbols">',meatballs:Fe+'class="icon icon-tabler icon-tabler-dots-vertical">',minuscircle:Fe+'class="icon icon-tabler icon-tabler-circle-minus">',moon:Fe+'class="icon icon-tabler icon-tabler-moon">',pluscircle:Fe+'class="icon icon-tabler icon-tabler-circle-plus">',plus:Fe+'class="icon icon-tabler icon-tabler-plus">',receipt:Fe+'class="icon icon-tabler icon-tabler-receipt">',refresh:Fe+'class="icon icon-tabler icon-tabler-refresh">',repeat:Fe+'class="icon icon-tabler icon-tabler-repeat">',reportAnalytics:Fe+'class="icon icon-tabler icon-tabler-file-analytics">',reportMoney:Fe+'class="icon icon-tabler icon-tabler-report-money">',search:Fe+'class="icon icon-tabler icon-tabler-search">',sidebarLeft:Fe+'class="icon icon-tabler icon-tabler-layout-sidebar">',sidebarRight:Fe+'class="icon icon-tabler icon-tabler-layout-sidebar-right">',shared:Fe+'class="icon icon-tabler icon-tabler-share">',sortAsc:Fe+'class="icon icon-tabler icon-tabler-sort-ascending">',sortDesc:Fe+'class="icon icon-tabler icon-tabler-sort-descending">',split:Fe+'class="icon icon-tabler icon-tabler-arrows-split-2">',sun:Fe+' class="icon icon-tabler icon-tabler-brightness-up">',tag:Fe+'class="icon icon-tabler icon-tabler-tag">',trash:Fe+'class="icon icon-tabler icon-tabler-trash">',user:Fe+'class="icon icon-tabler icon-tabler-user">',users:Fe+'class="icon icon-tabler icon-tabler-users">',undo:Fe+'class="icon icon-tabler icon-tabler-corner-up-left">',redo:Fe+'class="icon icon-tabler icon-tabler-corner-up-right">'};function ap(t,e){dn[t]||(dn[t]=e)}function W1(t){let e,n;return{c(){e=new Fn(!1),n=_t(),e.a=n},m(i,o){e.m(t[0],i,o),l(i,n,o)},p(i,[o]){o&1&&e.p(i[0])},i:Oe,o:Oe,d(i){i&&(s(n),e.d())}}}function G1(t,e,n){let i,{name:o=""}=e,r={add:"plus",report:"reportAnalytics",success:"checkCircle",warning:"alert"};function u(a){return a in r&&(a=r[a]),a in dn?dn[a]:``}return t.$$set=a=>{"name"in a&&n(1,o=a.name)},t.$$.update=()=>{if(t.$$.dirty&2)e:n(0,i=u(o))},[i,o]}var mf=class extends ue{constructor(e){super(),de(this,e,G1,W1,fe,{name:1})}},At=mf;var uo=[];function kn(t,e=Oe){let n,i=new Set;function o(a){if(fe(t,a)&&(t=a,n)){let c=!uo.length;for(let f of i)f[1](),uo.push(f,t);if(c){for(let f=0;f{i.delete(f),i.size===0&&n&&(n(),n=null)}}return{set:o,update:r,subscribe:u}}var xi=["a[href]:not([disabled])","button:not([disabled])","iframe:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[contentEditable]","[tabindex]:not(.focus-trap)"].join(","),Ut=kn(300),pf=kn(!1),up=t=>Ut.set(!t||t.matches?0:200),fp=t=>pf.set(t&&t.matches);if(window.matchMedia){let t=window.matchMedia("(prefers-reduced-motion: reduce)");up(t),t.addEventListener("change",up);let e=window.matchMedia("(prefers-color-scheme: dark)");fp(e),e.addEventListener("change",fp)}function tr(t,e,n,i={}){let o={duration:Qi(Ut),easing:"ease-out",fill:"forwards"},r=Object.assign({},o,i);return new Promise(u=>{requestAnimationFrame(()=>{let a=t.animate([e,n],r);a.oncancel=u,a.onfinish=u})})}function dp(t,e=160){return tr(t,{opacity:1},{opacity:.5},{duration:e/2,fill:"backwards"})}function mp(t){return structuredClone(t)}function nr(t,e=300){let n;return(...i)=>{n&&clearTimeout(n),n=setTimeout(()=>t.apply(this,i),e)}}function ir(t,e=300){let n=0;return(...i)=>{let o=new Date().getTime();if(!(o-n"u"||t===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&Object.keys(t).length===0)}function pp(t="",e=""){if(e.length===0)return!0;if(t.length===0||e.length>t.length)return!1;if(e===t)return!0;t=t.toLowerCase(),e=e.toLowerCase();let n=-1;for(let i of e)if(!~(n=t.indexOf(i,n+1)))return!1;return!0}function Xe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function gf(t){return t.type.includes("touch")?t.touches[0].clientX:t.clientX}function bf(t){return t.type.includes("touch")?t.touches[0].clientY:t.clientY}function or(){let t=navigator.userAgent,e=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;return!!(e.test(t)||(e=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i,e.test(t.slice(0,4))))}function Y1(t,e){if(e in t)return t[e];for(let n in t)if(n.startsWith(e))return t[n]}function U1(t,e){let n={};return e.forEach(i=>{if(i in t)n[i]=t[i];else for(let o in t)o.startsWith(i)&&(n[o]=t[o])}),n}function Nt(t,e){return t?Array.isArray(e)?U1(t,e):Y1(t,e):{}}function hp(t,e=2){let n=Math.pow(10,e);return Math.round(t*n)/n}function K1(t){let e=t.getFullYear(),n=("0"+(t.getMonth()+1)).slice(-2),i=("0"+t.getDate()).slice(-2),o=("0"+t.getHours()).slice(-2),r=("0"+t.getMinutes()).slice(-2);return`${e}-${n}-${i} ${o}:${r}`}function _f(t,e){if(!t)return"";e=e||new Date().getTime();let n=(e-+t)/1e3,i=[{label:"year",seconds:31536e3},{label:"month",seconds:2592e3},{label:"day",seconds:86400},{label:"hour",seconds:3600},{label:"minute",seconds:60}],o=[];for(;n>60;){let r=i.find(a=>a.seconds_.height||$<_.height)&&(b=c-_.height-u,(o==="top"||b<_.y)&&(b=d.top-_.height-r),t.style.top=b+window.scrollY+"px");let v=n==="center"?u*2:u;return f<_.x+_.width+v&&(h=f-_.width-v,h<0&&(h=u),h=h+window.scrollX),_.xd.top?"bottom":"top"}function X1(t,e){let n=e.getBoundingClientRect(),i=t.left+t.width/2,o=n.left+n.width/2,r=Math.round(50+(i-o)/n.width*100);return`${Math.max(0,Math.min(100,r))}%`}function cp(t){let e=getComputedStyle(t,null),n=e.overflowX||e.overflow;return/(auto|scroll)/.test(n)?t.scrollWidth>t.clientWidth:!1}function gp(t){if(t instanceof HTMLElement||t instanceof SVGElement){if(cp(t))return!0;for(;t=t.parentElement;)if(cp(t))return!0;return!1}}function bp(t){let e,n;return e=new At({props:{name:t[10]}}),{c(){D(e.$$.fragment)},m(i,o){S(e,i,o),n=!0},p(i,o){let r={};o&1024&&(r.name=i[10]),e.$set(r)},i(i){n||(M(e.$$.fragment,i),n=!0)},o(i){E(e.$$.fragment,i),n=!1},d(i){C(e,i)}}}function Z1(t){let e,n,i,o,r,u,a,c=t[10]&&bp(t),f=t[17].default,d=Ot(f,t,t[16],null),b=[{type:i=t[6]?"submit":"button"},{class:o="button "+t[12]},t[14]],h={};for(let g=0;g{c=null}),Qe()),d&&d.p&&(!r||$&65536)&&Ht(d,f,g,g[16],r?Pt(f,g[16],$,null):Ft(g[16]),null),Tt(e,h=xt(b,[(!r||$&64&&i!==(i=g[6]?"submit":"button"))&&{type:i},(!r||$&4096&&o!==(o="button "+g[12]))&&{class:o},$&16384&&g[14]])),ie(e,"button-normal",!g[8]&&!g[9]&&!g[7]),ie(e,"button-outline",g[7]),ie(e,"button-link",g[8]),ie(e,"button-text",g[9]),ie(e,"button-has-text",g[15].default),ie(e,"round",g[11]),ie(e,"info",g[1]),ie(e,"success",g[2]),ie(e,"warning",g[3]),ie(e,"danger",g[4]),ie(e,"error",g[5]),ie(e,"touching",g[13])},i(g){r||(M(c),M(d,g),r=!0)},o(g){E(c),E(d,g),r=!1},d(g){g&&s(e),c&&c.d(),d&&d.d(g),t[23](null),u=!1,Be(a)}}}function J1(t,e,n){let i,{$$slots:o={},$$scope:r}=e,u=Gl(o),{element:a=void 0}=e,{info:c=!1}=e,{success:f=!1}=e,{warning:d=!1}=e,{danger:b=!1}=e,{error:h=!1}=e,{submit:g=!1}=e,{outline:$=!1}=e,{link:_=!1}=e,{text:v=!1}=e,{icon:w=void 0}=e,{round:k=void 0}=e,{class:x=""}=e,A=!1;function y(q){st.call(this,t,q)}function T(q){st.call(this,t,q)}function L(q){st.call(this,t,q)}function N(q){st.call(this,t,q)}function I(q){st.call(this,t,q)}function F(q){he[q?"unshift":"push"](()=>{a=q,n(0,a)})}let j=()=>n(13,A=!0),W=()=>n(13,A=!1);return t.$$set=q=>{n(26,e=Ke(Ke({},e),bt(q))),"element"in q&&n(0,a=q.element),"info"in q&&n(1,c=q.info),"success"in q&&n(2,f=q.success),"warning"in q&&n(3,d=q.warning),"danger"in q&&n(4,b=q.danger),"error"in q&&n(5,h=q.error),"submit"in q&&n(6,g=q.submit),"outline"in q&&n(7,$=q.outline),"link"in q&&n(8,_=q.link),"text"in q&&n(9,v=q.text),"icon"in q&&n(10,w=q.icon),"round"in q&&n(11,k=q.round),"class"in q&&n(12,x=q.class),"$$scope"in q&&n(16,r=q.$$scope)},t.$$.update=()=>{e:n(14,i=Nt(e,["id","title","disabled","form","aria-pressed","data-","tabindex"]))},e=bt(e),[a,c,f,d,b,h,g,$,_,v,w,k,x,A,i,u,r,o,y,T,L,N,I,F,j,W]}var vf=class extends ue{constructor(e){super(),de(this,e,J1,Z1,fe,{element:0,info:1,success:2,warning:3,danger:4,error:5,submit:6,outline:7,link:8,text:9,icon:10,round:11,class:12})}},Ee=vf;var Q1=t=>({}),_p=t=>({});function eb(t){let e,n,i,o,r,u,a,c,f,d,b,h,g,$,_,v,w=t[14].default,k=Ot(w,t,t[13],null),x=t[14].footer,A=Ot(x,t,t[13],_p);return{c(){e=p("div"),n=p("div"),i=p("div"),o=m(),r=p("h1"),u=J(t[3]),a=m(),c=p("div"),k&&k.c(),f=m(),d=p("div"),A&&A.c(),b=m(),h=p("div"),O(i,"tabindex","0"),O(i,"class","focus-trap focus-trap-top"),O(r,"class","dialog-header"),O(c,"class","dialog-content"),O(d,"class","dialog-footer"),O(h,"tabindex","0"),O(h,"class","focus-trap focus-trap-bottom"),O(n,"class","dialog"),O(e,"role","dialog"),O(e,"aria-modal","true"),O(e,"aria-label",t[3]),O(e,"class",g="dialog-backdrop "+t[2]),ie(e,"opened",t[0])},m(y,T){l(y,e,T),P(e,n),P(n,i),P(n,o),P(n,r),P(r,u),P(n,a),P(n,c),k&&k.m(c,null),t[15](c),P(n,f),P(n,d),A&&A.m(d,null),t[16](d),P(n,b),P(n,h),t[17](n),t[18](e),$=!0,_||(v=[Me(i,"focus",t[8]),Me(h,"focus",t[7]),Me(e,"click",t[9])],_=!0)},p(y,[T]){(!$||T&8)&&je(u,y[3]),k&&k.p&&(!$||T&8192)&&Ht(k,w,y,y[13],$?Pt(w,y[13],T,null):Ft(y[13]),null),A&&A.p&&(!$||T&8192)&&Ht(A,x,y,y[13],$?Pt(x,y[13],T,Q1):Ft(y[13]),_p),(!$||T&8)&&O(e,"aria-label",y[3]),(!$||T&4&&g!==(g="dialog-backdrop "+y[2]))&&O(e,"class",g),(!$||T&5)&&ie(e,"opened",y[0])},i(y){$||(M(k,y),M(A,y),$=!0)},o(y){E(k,y),E(A,y),$=!1},d(y){y&&s(e),k&&k.d(y),t[15](null),A&&A.d(y),t[16](null),t[17](null),t[18](null),_=!1,Be(v)}}}function tb(t,e){let n={ArrowLeft:"nextElementSibling",ArrowRight:"previousElementSibling"},i;for(;(i=n[e]&&t[n[e]])&&!(!i||i.tagName==="BUTTON");)t=i;i&&i.focus()}function nb(t,e,n){let i;Kt(t,Ut,U=>n(23,i=U));let{$$slots:o={},$$scope:r}=e,{class:u=""}=e,{title:a=""}=e,{opened:c=!1}=e,{skipFirstFocus:f=!1}=e,{element:d}=e,b=lt(),h,g,$,_,v,w,k;Mt(()=>{document.body.appendChild(d)});function x(){let U=y().shift(),H=y().pop();!U&&!H&&(g.setAttribute("tabindex",0),U=g),H&&H.scrollIntoView({block:"end"}),U&&U.focus()}function A(){let U=y().shift(),H=y().pop();!U&&!H&&(g.setAttribute("tabindex",0),H=g),U&&U.scrollIntoView({block:"end"}),H&&H.focus()}function y(){let U=Array.from(g.querySelectorAll(xi)),H=Array.from($.querySelectorAll(xi));return[...U,...H]}function T(U){h.contains(U.target)||(U.stopPropagation(),F())}function L(U){if(!c)return;let H=d.contains(document.activeElement);if(U.key==="Tab"&&!H)return x();if(U.key==="Escape")return U.stopPropagation(),F();let Q=U.target&&U.target.closest("button");Q&&U.key.startsWith("Arrow")&&(U.preventDefault(),tb(Q,U.key))}function N(U){U?(k=window.pageYOffset,document.body.classList.add("has-dialog"),document.body.style.top=`-${k}px`):(document.body.classList.remove("has-dialog"),document.scrollingElement.scrollTop=k,document.body.style.top="")}function I(U){c||(U instanceof Event&&(U=U.target),_=U||document.activeElement,_&&_!==document.body&&(_.setAttribute("aria-haspopup","true"),_.setAttribute("aria-expanded","true")),n(1,d.style.display="flex",d),v&&clearTimeout(v),v=setTimeout(()=>{n(0,c=!0),n(1,d.style.display="flex",d),f!==!0&&f!=="true"&&x(),document.addEventListener("keydown",L),N(!0),b("open")},100))}function F(){c&&(n(0,c=!1),_&&_.focus&&_.focus(),w&&clearTimeout(w),w=setTimeout(()=>{n(0,c=!1),n(1,d.style.display="none",d),document.removeEventListener("keydown",L),_&&_!==document.body&&_.removeAttribute("aria-expanded"),N(!1),b("close")},i))}function j(U){he[U?"unshift":"push"](()=>{g=U,n(5,g)})}function W(U){he[U?"unshift":"push"](()=>{$=U,n(6,$)})}function q(U){he[U?"unshift":"push"](()=>{h=U,n(4,h)})}function X(U){he[U?"unshift":"push"](()=>{d=U,n(1,d)})}return t.$$set=U=>{"class"in U&&n(2,u=U.class),"title"in U&&n(3,a=U.title),"opened"in U&&n(0,c=U.opened),"skipFirstFocus"in U&&n(10,f=U.skipFirstFocus),"element"in U&&n(1,d=U.element),"$$scope"in U&&n(13,r=U.$$scope)},[c,d,u,a,h,g,$,x,A,T,f,I,F,r,o,j,W,q,X]}var wf=class extends ue{constructor(e){super(),de(this,e,nb,eb,fe,{class:2,title:3,opened:0,skipFirstFocus:10,element:1,open:11,close:12})}get class(){return this.$$.ctx[2]}set class(e){this.$$set({class:e}),yt()}get title(){return this.$$.ctx[3]}set title(e){this.$$set({title:e}),yt()}get opened(){return this.$$.ctx[0]}set opened(e){this.$$set({opened:e}),yt()}get skipFirstFocus(){return this.$$.ctx[10]}set skipFirstFocus(e){this.$$set({skipFirstFocus:e}),yt()}get element(){return this.$$.ctx[1]}set element(e){this.$$set({element:e}),yt()}get open(){return this.$$.ctx[11]}get close(){return this.$$.ctx[12]}},ui=wf;function Co(t){let e=t-1;return e*e*e+1}function Ai(t,{delay:e=0,duration:n=400,easing:i=Co,x:o=0,y:r=0,opacity:u=0}={}){let a=getComputedStyle(t),c=+a.opacity,f=a.transform==="none"?"":a.transform,d=c*(1-u),[b,h]=Zu(o),[g,$]=Zu(r);return{delay:e,duration:n,easing:i,css:(_,v)=>` - transform: ${f} translate(${(1-_)*b}${h}, ${(1-_)*g}${$}); - opacity: ${c-d*v}`}}function vp({fallback:t,...e}){let n=new Map,i=new Map;function o(u,a,c){let{delay:f=0,duration:d=T=>Math.sqrt(T)*30,easing:b=Co}=Ke(Ke({},e),c),h=u.getBoundingClientRect(),g=a.getBoundingClientRect(),$=h.left-g.left,_=h.top-g.top,v=h.width/g.width,w=h.height/g.height,k=Math.sqrt($*$+_*_),x=getComputedStyle(a),A=x.transform==="none"?"":x.transform,y=+x.opacity;return{delay:f,duration:mt(d)?d(k):d,easing:b,css:(T,L)=>` - opacity: ${T*y}; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name2 in all) + __defProp(target, name2, { get: all[name2], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node_modules/vanilla-swipe/lib/types/index.js +var require_types = __commonJS({ + "node_modules/vanilla-swipe/lib/types/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.TraceDirectionKey = exports.Direction = exports.Axis = void 0; + var TraceDirectionKey; + exports.TraceDirectionKey = TraceDirectionKey; + (function(TraceDirectionKey2) { + TraceDirectionKey2["NEGATIVE"] = "NEGATIVE"; + TraceDirectionKey2["POSITIVE"] = "POSITIVE"; + TraceDirectionKey2["NONE"] = "NONE"; + })(TraceDirectionKey || (exports.TraceDirectionKey = TraceDirectionKey = {})); + var Direction; + exports.Direction = Direction; + (function(Direction2) { + Direction2["TOP"] = "TOP"; + Direction2["LEFT"] = "LEFT"; + Direction2["RIGHT"] = "RIGHT"; + Direction2["BOTTOM"] = "BOTTOM"; + Direction2["NONE"] = "NONE"; + })(Direction || (exports.Direction = Direction = {})); + var Axis; + exports.Axis = Axis; + (function(Axis2) { + Axis2["X"] = "x"; + Axis2["Y"] = "y"; + })(Axis || (exports.Axis = Axis = {})); + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDirection.js +var require_calculateDirection = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDirection.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDirection = calculateDirection; + var _types = require_types(); + function calculateDirection(trace) { + var direction; + var negative = _types.TraceDirectionKey.NEGATIVE; + var positive = _types.TraceDirectionKey.POSITIVE; + var current = trace[trace.length - 1]; + var previous = trace[trace.length - 2] || 0; + if (trace.every(function(i) { + return i === 0; + })) { + return _types.TraceDirectionKey.NONE; + } + direction = current > previous ? positive : negative; + if (current === 0) { + direction = previous < 0 ? positive : negative; + } + return direction; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/common.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.resolveAxisDirection = exports.getDirectionValue = exports.getDirectionKey = exports.getDifference = void 0; + var _types = require_types(); + var getDirectionKey = function getDirectionKey2() { + var object = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var key = Object.keys(object).toString(); + switch (key) { + case _types.TraceDirectionKey.POSITIVE: + return _types.TraceDirectionKey.POSITIVE; + case _types.TraceDirectionKey.NEGATIVE: + return _types.TraceDirectionKey.NEGATIVE; + default: + return _types.TraceDirectionKey.NONE; + } + }; + exports.getDirectionKey = getDirectionKey; + var getDirectionValue = function getDirectionValue2() { + var values = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; + return values[values.length - 1] || 0; + }; + exports.getDirectionValue = getDirectionValue; + var getDifference = function getDifference2() { + var x = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; + var y = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + return Math.abs(x - y); + }; + exports.getDifference = getDifference; + var resolveAxisDirection = function resolveAxisDirection2(axis, key) { + var negative = _types.Direction.LEFT; + var positive = _types.Direction.RIGHT; + var direction = _types.Direction.NONE; + if (axis === _types.Axis.Y) { + negative = _types.Direction.BOTTOM; + positive = _types.Direction.TOP; + } + if (key === _types.TraceDirectionKey.NEGATIVE) { + direction = negative; + } + if (key === _types.TraceDirectionKey.POSITIVE) { + direction = positive; + } + return direction; + }; + exports.resolveAxisDirection = resolveAxisDirection; + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js +var require_calculateDirectionDelta = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDirectionDelta.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDirectionDelta = calculateDirectionDelta; + var _types = require_types(); + var _common = require_common(); + function calculateDirectionDelta(traceDirections) { + var delta = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var length = traceDirections.length; + var i = length - 1; + var direction = _types.TraceDirectionKey.NONE; + for (; i >= 0; i--) { + var current = traceDirections[i]; + var currentKey = (0, _common.getDirectionKey)(current); + var currentValue = (0, _common.getDirectionValue)(current[currentKey]); + var prev = traceDirections[i - 1] || {}; + var prevKey = (0, _common.getDirectionKey)(prev); + var prevValue = (0, _common.getDirectionValue)(prev[prevKey]); + var difference = (0, _common.getDifference)(currentValue, prevValue); + if (difference >= delta) { + direction = currentKey; + break; + } else { + direction = prevKey; + } + } + return direction; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateDuration.js +var require_calculateDuration = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateDuration.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateDuration = calculateDuration; + function calculateDuration() { + var prevTime = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0; + var nextTime = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + return prevTime ? nextTime - prevTime : 0; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js +var require_calculateMovingPosition = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateMovingPosition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateMovingPosition = calculateMovingPosition; + function calculateMovingPosition(e) { + if ("changedTouches" in e) { + var touches = e.changedTouches && e.changedTouches[0]; + return { + x: touches && touches.clientX, + y: touches && touches.clientY + }; + } + return { + x: e.clientX, + y: e.clientY + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/updateTrace.js +var require_updateTrace = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/updateTrace.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.updateTrace = updateTrace; + function updateTrace(trace, value2) { + var last = trace[trace.length - 1]; + if (last !== value2) { + trace.push(value2); + } + return trace; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js +var require_calculateTraceDirections = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateTraceDirections.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateTraceDirections = calculateTraceDirections; + var _types = require_types(); + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + function calculateTraceDirections() { + var trace = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; + var ticks = []; + var positive = _types.TraceDirectionKey.POSITIVE; + var negative = _types.TraceDirectionKey.NEGATIVE; + var i = 0; + var tick2 = []; + var direction = _types.TraceDirectionKey.NONE; + for (; i < trace.length; i++) { + var current = trace[i]; + var prev = trace[i - 1]; + if (tick2.length) { + var currentDirection = current > prev ? positive : negative; + if (direction === _types.TraceDirectionKey.NONE) { + direction = currentDirection; + } + if (currentDirection === direction) { + tick2.push(current); + } else { + ticks.push(_defineProperty({}, direction, tick2.slice())); + tick2 = []; + tick2.push(current); + direction = currentDirection; + } + } else { + if (current !== 0) { + direction = current > 0 ? positive : negative; + } + tick2.push(current); + } + } + if (tick2.length) { + ticks.push(_defineProperty({}, direction, tick2)); + } + return ticks; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/resolveDirection.js +var require_resolveDirection = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/resolveDirection.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.resolveDirection = resolveDirection; + var _calculateDirection = require_calculateDirection(); + var _calculateTraceDirections = require_calculateTraceDirections(); + var _calculateDirectionDelta = require_calculateDirectionDelta(); + var _common = require_common(); + var _types = require_types(); + function resolveDirection(trace) { + var axis = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _types.Axis.X; + var directionDelta = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0; + if (directionDelta) { + var directions = (0, _calculateTraceDirections.calculateTraceDirections)(trace); + var _direction = (0, _calculateDirectionDelta.calculateDirectionDelta)(directions, directionDelta); + return (0, _common.resolveAxisDirection)(axis, _direction); + } + var direction = (0, _calculateDirection.calculateDirection)(trace); + return (0, _common.resolveAxisDirection)(axis, direction); + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculateVelocity.js +var require_calculateVelocity = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculateVelocity.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculateVelocity = calculateVelocity; + function calculateVelocity(x, y, time) { + var magnitude = Math.sqrt(x * x + y * y); + return magnitude / (time || 1); + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/calculatePosition.js +var require_calculatePosition = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/calculatePosition.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calculatePosition = calculatePosition; + var _updateTrace = require_updateTrace(); + var _resolveDirection = require_resolveDirection(); + var _calculateDuration = require_calculateDuration(); + var _calculateVelocity = require_calculateVelocity(); + var _types = require_types(); + function calculatePosition(state, options) { + var start = state.start, x = state.x, y = state.y, traceX = state.traceX, traceY = state.traceY; + var rotatePosition = options.rotatePosition, directionDelta = options.directionDelta; + var deltaX = rotatePosition.x - x; + var deltaY = y - rotatePosition.y; + var absX = Math.abs(deltaX); + var absY = Math.abs(deltaY); + (0, _updateTrace.updateTrace)(traceX, deltaX); + (0, _updateTrace.updateTrace)(traceY, deltaY); + var directionX = (0, _resolveDirection.resolveDirection)(traceX, _types.Axis.X, directionDelta); + var directionY = (0, _resolveDirection.resolveDirection)(traceY, _types.Axis.Y, directionDelta); + var duration2 = (0, _calculateDuration.calculateDuration)(start, Date.now()); + var velocity = (0, _calculateVelocity.calculateVelocity)(absX, absY, duration2); + return { + absX, + absY, + deltaX, + deltaY, + directionX, + directionY, + duration: duration2, + positionX: rotatePosition.x, + positionY: rotatePosition.y, + velocity + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js +var require_checkIsMoreThanSingleTouches = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsMoreThanSingleTouches.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsMoreThanSingleTouches = void 0; + var checkIsMoreThanSingleTouches = function checkIsMoreThanSingleTouches2(e) { + return Boolean(e.touches && e.touches.length > 1); + }; + exports.checkIsMoreThanSingleTouches = checkIsMoreThanSingleTouches; + } +}); + +// node_modules/vanilla-swipe/lib/utils/createOptions.js +var require_createOptions = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/createOptions.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createOptions = createOptions; + function createOptions() { + var proxy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + Object.defineProperty(proxy, "passive", { + get: function get() { + this.isPassiveSupported = true; + return true; + }, + enumerable: true + }); + return proxy; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js +var require_checkIsPassiveSupported = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsPassiveSupported.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsPassiveSupported = checkIsPassiveSupported; + exports.noop = void 0; + var _createOptions = require_createOptions(); + function checkIsPassiveSupported(isPassiveSupported) { + if (typeof isPassiveSupported === "boolean") { + return isPassiveSupported; + } + var proxy = { + isPassiveSupported + }; + try { + var options = (0, _createOptions.createOptions)(proxy); + window.addEventListener("checkIsPassiveSupported", noop2, options); + window.removeEventListener("checkIsPassiveSupported", noop2, options); + } catch (err) { + } + return proxy.isPassiveSupported; + } + var noop2 = function noop3() { + }; + exports.noop = noop2; + } +}); + +// node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js +var require_checkIsTouchEventsSupported = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/checkIsTouchEventsSupported.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.checkIsTouchEventsSupported = void 0; + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); + } + var checkIsTouchEventsSupported = function checkIsTouchEventsSupported2() { + return (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && ("ontouchstart" in window || Boolean(window.navigator.maxTouchPoints)); + }; + exports.checkIsTouchEventsSupported = checkIsTouchEventsSupported; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getInitialState.js +var require_getInitialState = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getInitialState.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getInitialState = void 0; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var getInitialState = function getInitialState2() { + var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + return _objectSpread({ + x: 0, + y: 0, + start: 0, + isSwiping: false, + traceX: [], + traceY: [] + }, options); + }; + exports.getInitialState = getInitialState; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getInitialProps.js +var require_getInitialProps = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getInitialProps.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getInitialProps = void 0; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), true).forEach(function(key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var getInitialProps = function getInitialProps2() { + var props2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + return _objectSpread({ + element: null, + target: null, + delta: 10, + directionDelta: 0, + rotationAngle: 0, + mouseTrackingEnabled: false, + touchTrackingEnabled: true, + preventDefaultTouchmoveEvent: false, + preventTrackingOnMouseleave: false + }, props2); + }; + exports.getInitialProps = getInitialProps; + } +}); + +// node_modules/vanilla-swipe/lib/utils/getOptions.js +var require_getOptions = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/getOptions.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.getOptions = getOptions; + function getOptions() { + var isPassiveSupported = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; + if (isPassiveSupported) { + return { + passive: false + }; + } + return {}; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/rotateByAngle.js +var require_rotateByAngle = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/rotateByAngle.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.rotateByAngle = rotateByAngle; + function rotateByAngle(position) { + var angle = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + if (angle === 0) { + return position; + } + var x = position.x, y = position.y; + var angleInRadians = Math.PI / 180 * angle; + var rotatedX = x * Math.cos(angleInRadians) + y * Math.sin(angleInRadians); + var rotatedY = y * Math.cos(angleInRadians) - x * Math.sin(angleInRadians); + return { + x: rotatedX, + y: rotatedY + }; + } + } +}); + +// node_modules/vanilla-swipe/lib/utils/index.js +var require_utils = __commonJS({ + "node_modules/vanilla-swipe/lib/utils/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _calculateDirection = require_calculateDirection(); + Object.keys(_calculateDirection).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDirection[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDirection[key]; + } + }); + }); + var _calculateDirectionDelta = require_calculateDirectionDelta(); + Object.keys(_calculateDirectionDelta).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDirectionDelta[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDirectionDelta[key]; + } + }); + }); + var _calculateDuration = require_calculateDuration(); + Object.keys(_calculateDuration).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateDuration[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateDuration[key]; + } + }); + }); + var _calculateMovingPosition = require_calculateMovingPosition(); + Object.keys(_calculateMovingPosition).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateMovingPosition[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateMovingPosition[key]; + } + }); + }); + var _calculatePosition = require_calculatePosition(); + Object.keys(_calculatePosition).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculatePosition[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculatePosition[key]; + } + }); + }); + var _calculateTraceDirections = require_calculateTraceDirections(); + Object.keys(_calculateTraceDirections).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateTraceDirections[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateTraceDirections[key]; + } + }); + }); + var _calculateVelocity = require_calculateVelocity(); + Object.keys(_calculateVelocity).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _calculateVelocity[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _calculateVelocity[key]; + } + }); + }); + var _checkIsMoreThanSingleTouches = require_checkIsMoreThanSingleTouches(); + Object.keys(_checkIsMoreThanSingleTouches).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsMoreThanSingleTouches[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsMoreThanSingleTouches[key]; + } + }); + }); + var _checkIsPassiveSupported = require_checkIsPassiveSupported(); + Object.keys(_checkIsPassiveSupported).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsPassiveSupported[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsPassiveSupported[key]; + } + }); + }); + var _checkIsTouchEventsSupported = require_checkIsTouchEventsSupported(); + Object.keys(_checkIsTouchEventsSupported).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _checkIsTouchEventsSupported[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _checkIsTouchEventsSupported[key]; + } + }); + }); + var _common = require_common(); + Object.keys(_common).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _common[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _common[key]; + } + }); + }); + var _createOptions = require_createOptions(); + Object.keys(_createOptions).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _createOptions[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _createOptions[key]; + } + }); + }); + var _getInitialState = require_getInitialState(); + Object.keys(_getInitialState).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getInitialState[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getInitialState[key]; + } + }); + }); + var _getInitialProps = require_getInitialProps(); + Object.keys(_getInitialProps).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getInitialProps[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getInitialProps[key]; + } + }); + }); + var _getOptions = require_getOptions(); + Object.keys(_getOptions).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _getOptions[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _getOptions[key]; + } + }); + }); + var _resolveDirection = require_resolveDirection(); + Object.keys(_resolveDirection).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _resolveDirection[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _resolveDirection[key]; + } + }); + }); + var _rotateByAngle = require_rotateByAngle(); + Object.keys(_rotateByAngle).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _rotateByAngle[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _rotateByAngle[key]; + } + }); + }); + var _updateTrace = require_updateTrace(); + Object.keys(_updateTrace).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (key in exports && exports[key] === _updateTrace[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _updateTrace[key]; + } + }); + }); + } +}); + +// node_modules/vanilla-swipe/lib/index.js +var require_lib = __commonJS({ + "node_modules/vanilla-swipe/lib/index.js"(exports) { + "use strict"; + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { + return typeof obj2; + } : function(obj2) { + return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }, _typeof(obj); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _exportNames = {}; + exports["default"] = void 0; + var Utils2 = _interopRequireWildcard(require_utils()); + var _types = require_types(); + Object.keys(_types).forEach(function(key) { + if (key === "default" || key === "__esModule") + return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) + return; + if (key in exports && exports[key] === _types[key]) + return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function get() { + return _types[key]; + } + }); + }); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function _getRequireWildcardCache2(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { "default": obj }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj["default"] = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + function _classCallCheck(instance101, Constructor) { + if (!(instance101 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props2) { + for (var i = 0; i < props2.length; i++) { + var descriptor = props2[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) + _defineProperties(Constructor.prototype, protoProps); + if (staticProps) + _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { writable: false }); + return Constructor; + } + function _defineProperty(obj, key, value2) { + if (key in obj) { + Object.defineProperty(obj, key, { value: value2, enumerable: true, configurable: true, writable: true }); + } else { + obj[key] = value2; + } + return obj; + } + var VanillaSwipe2 = /* @__PURE__ */ function() { + function VanillaSwipe3(props2) { + _classCallCheck(this, VanillaSwipe3); + _defineProperty(this, "state", void 0); + _defineProperty(this, "props", void 0); + this.state = Utils2.getInitialState(); + this.props = Utils2.getInitialProps(props2); + this.handleSwipeStart = this.handleSwipeStart.bind(this); + this.handleSwipeMove = this.handleSwipeMove.bind(this); + this.handleSwipeEnd = this.handleSwipeEnd.bind(this); + this.handleMouseDown = this.handleMouseDown.bind(this); + this.handleMouseMove = this.handleMouseMove.bind(this); + this.handleMouseUp = this.handleMouseUp.bind(this); + this.handleMouseLeave = this.handleMouseLeave.bind(this); + } + _createClass(VanillaSwipe3, [{ + key: "init", + value: function init3() { + this.setupTouchListeners(); + this.setupMouseListeners(); + } + }, { + key: "update", + value: function update2(props2) { + var prevProps = this.props; + var nextProps = Object.assign({}, prevProps, props2); + if (prevProps.element !== nextProps.element || prevProps.target !== nextProps.target) { + this.destroy(); + this.props = nextProps; + this.init(); + return; + } + this.props = nextProps; + if (prevProps.mouseTrackingEnabled !== nextProps.mouseTrackingEnabled || prevProps.preventTrackingOnMouseleave !== nextProps.preventTrackingOnMouseleave) { + this.cleanupMouseListeners(); + nextProps.mouseTrackingEnabled ? this.setupMouseListeners() : this.cleanupMouseListeners(); + } + if (prevProps.touchTrackingEnabled !== nextProps.touchTrackingEnabled) { + this.cleanupTouchListeners(); + nextProps.touchTrackingEnabled ? this.setupTouchListeners() : this.cleanupTouchListeners(); + } + } + }, { + key: "destroy", + value: function destroy() { + this.cleanupMouseListeners(); + this.cleanupTouchListeners(); + this.state = Utils2.getInitialState(); + this.props = Utils2.getInitialProps(); + } + }, { + key: "setupTouchListeners", + value: function setupTouchListeners() { + var _this$props = this.props, element3 = _this$props.element, target = _this$props.target, touchTrackingEnabled = _this$props.touchTrackingEnabled; + if (element3 && touchTrackingEnabled) { + var listener = target || element3; + var isPassiveSupported = Utils2.checkIsPassiveSupported(); + var options = Utils2.getOptions(isPassiveSupported); + listener.addEventListener("touchstart", this.handleSwipeStart, options); + listener.addEventListener("touchmove", this.handleSwipeMove, options); + listener.addEventListener("touchend", this.handleSwipeEnd, options); + } + } + }, { + key: "cleanupTouchListeners", + value: function cleanupTouchListeners() { + var _this$props2 = this.props, element3 = _this$props2.element, target = _this$props2.target; + var listener = target || element3; + if (listener) { + listener.removeEventListener("touchstart", this.handleSwipeStart); + listener.removeEventListener("touchmove", this.handleSwipeMove); + listener.removeEventListener("touchend", this.handleSwipeEnd); + } + } + }, { + key: "setupMouseListeners", + value: function setupMouseListeners() { + var _this$props3 = this.props, element3 = _this$props3.element, mouseTrackingEnabled = _this$props3.mouseTrackingEnabled, preventTrackingOnMouseleave = _this$props3.preventTrackingOnMouseleave; + if (mouseTrackingEnabled && element3) { + element3.addEventListener("mousedown", this.handleMouseDown); + element3.addEventListener("mousemove", this.handleMouseMove); + element3.addEventListener("mouseup", this.handleMouseUp); + if (preventTrackingOnMouseleave) { + element3.addEventListener("mouseleave", this.handleMouseLeave); + } + } + } + }, { + key: "cleanupMouseListeners", + value: function cleanupMouseListeners() { + var element3 = this.props.element; + if (element3) { + element3.removeEventListener("mousedown", this.handleMouseDown); + element3.removeEventListener("mousemove", this.handleMouseMove); + element3.removeEventListener("mouseup", this.handleMouseUp); + element3.removeEventListener("mouseleave", this.handleMouseLeave); + } + } + }, { + key: "getEventData", + value: function getEventData(e) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { + directionDelta: 0 + }; + var rotationAngle = this.props.rotationAngle; + var directionDelta = options.directionDelta; + var movingPosition = Utils2.calculateMovingPosition(e); + var rotatePosition = Utils2.rotateByAngle(movingPosition, rotationAngle); + return Utils2.calculatePosition(this.state, { + rotatePosition, + directionDelta + }); + } + }, { + key: "handleSwipeStart", + value: function handleSwipeStart(e) { + if (Utils2.checkIsMoreThanSingleTouches(e)) + return; + var rotationAngle = this.props.rotationAngle; + var movingPosition = Utils2.calculateMovingPosition(e); + var _Utils$rotateByAngle = Utils2.rotateByAngle(movingPosition, rotationAngle), x = _Utils$rotateByAngle.x, y = _Utils$rotateByAngle.y; + this.state = Utils2.getInitialState({ + isSwiping: false, + start: Date.now(), + x, + y + }); + } + }, { + key: "handleSwipeMove", + value: function handleSwipeMove(e) { + var _this$state = this.state, x = _this$state.x, y = _this$state.y, isSwiping = _this$state.isSwiping; + if (!x || !y || Utils2.checkIsMoreThanSingleTouches(e)) + return; + var directionDelta = this.props.directionDelta || 0; + var _this$getEventData = this.getEventData(e, { + directionDelta + }), absX = _this$getEventData.absX, absY = _this$getEventData.absY, deltaX = _this$getEventData.deltaX, deltaY = _this$getEventData.deltaY, directionX = _this$getEventData.directionX, directionY = _this$getEventData.directionY, duration2 = _this$getEventData.duration, velocity = _this$getEventData.velocity; + var _this$props4 = this.props, delta = _this$props4.delta, preventDefaultTouchmoveEvent = _this$props4.preventDefaultTouchmoveEvent, onSwipeStart = _this$props4.onSwipeStart, onSwiping = _this$props4.onSwiping; + if (e.cancelable && preventDefaultTouchmoveEvent) + e.preventDefault(); + if (absX < Number(delta) && absY < Number(delta) && !isSwiping) + return; + if (onSwipeStart && !isSwiping) { + onSwipeStart(e, { + deltaX, + deltaY, + absX, + absY, + directionX, + directionY, + duration: duration2, + velocity + }); + } + this.state.isSwiping = true; + if (onSwiping) { + onSwiping(e, { + deltaX, + deltaY, + absX, + absY, + directionX, + directionY, + duration: duration2, + velocity + }); + } + } + }, { + key: "handleSwipeEnd", + value: function handleSwipeEnd(e) { + var _this$props5 = this.props, onSwiped = _this$props5.onSwiped, onTap = _this$props5.onTap; + if (this.state.isSwiping) { + var directionDelta = this.props.directionDelta || 0; + var position = this.getEventData(e, { + directionDelta + }); + onSwiped && onSwiped(e, position); + } else { + var _position = this.getEventData(e); + onTap && onTap(e, _position); + } + this.state = Utils2.getInitialState(); + } + }, { + key: "handleMouseDown", + value: function handleMouseDown(e) { + var target = this.props.target; + if (target) { + if (target === e.target) { + this.handleSwipeStart(e); + } + } else { + this.handleSwipeStart(e); + } + } + }, { + key: "handleMouseMove", + value: function handleMouseMove(e) { + this.handleSwipeMove(e); + } + }, { + key: "handleMouseUp", + value: function handleMouseUp(e) { + var isSwiping = this.state.isSwiping; + var target = this.props.target; + if (target) { + if (target === e.target || isSwiping) { + this.handleSwipeEnd(e); + } + } else { + this.handleSwipeEnd(e); + } + } + }, { + key: "handleMouseLeave", + value: function handleMouseLeave(e) { + var isSwiping = this.state.isSwiping; + if (isSwiping) { + this.handleSwipeEnd(e); + } + } + }], [{ + key: "isTouchEventsSupported", + value: function isTouchEventsSupported() { + return Utils2.checkIsTouchEventsSupported(); + } + }]); + return VanillaSwipe3; + }(); + exports["default"] = VanillaSwipe2; + } +}); + +// node_modules/prismjs/prism.js +var require_prism = __commonJS({ + "node_modules/prismjs/prism.js"(exports, module) { + var _self = typeof window !== "undefined" ? window : typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope ? self : {}; + var Prism2 = function(_self2) { + var lang = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i; + var uniqueId = 0; + var plainTextGrammar = {}; + var _ = { + /** + * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the + * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load + * additional languages or plugins yourself. + * + * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. + * + * You obviously have to change this value before the automatic highlighting started. To do this, you can add an + * empty Prism object into the global scope before loading the Prism script like this: + * + * ```js + * window.Prism = window.Prism || {}; + * Prism.manual = true; + * // add a new \";\n\t\tunsubscribe = listen(\n\t\t\twindow,\n\t\t\t'message',\n\t\t\t/** @param {MessageEvent} event */ (event) => {\n\t\t\t\tif (event.source === iframe.contentWindow) fn();\n\t\t\t}\n\t\t);\n\t} else {\n\t\tiframe.src = 'about:blank';\n\t\tiframe.onload = () => {\n\t\t\tunsubscribe = listen(iframe.contentWindow, 'resize', fn);\n\t\t\t// make sure an initial resize event is fired _after_ the iframe is loaded (which is asynchronous)\n\t\t\t// see https://github.com/sveltejs/svelte/issues/4233\n\t\t\tfn();\n\t\t};\n\t}\n\tappend(node, iframe);\n\treturn () => {\n\t\tif (crossorigin) {\n\t\t\tunsubscribe();\n\t\t} else if (unsubscribe && iframe.contentWindow) {\n\t\t\tunsubscribe();\n\t\t}\n\t\tdetach(iframe);\n\t};\n}\nexport const resize_observer_content_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'content-box'\n});\nexport const resize_observer_border_box = /* @__PURE__ */ new ResizeObserverSingleton({\n\tbox: 'border-box'\n});\nexport const resize_observer_device_pixel_content_box = /* @__PURE__ */ new ResizeObserverSingleton(\n\t{ box: 'device-pixel-content-box' }\n);\nexport { ResizeObserverSingleton };\n\n/**\n * @returns {void} */\nexport function toggle_class(element, name, toggle) {\n\t// The `!!` is required because an `undefined` flag means flipping the current state.\n\telement.classList.toggle(name, !!toggle);\n}\n\n/**\n * @template T\n * @param {string} type\n * @param {T} [detail]\n * @param {{ bubbles?: boolean, cancelable?: boolean }} [options]\n * @returns {CustomEvent}\n */\nexport function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n\treturn new CustomEvent(type, { detail, bubbles, cancelable });\n}\n\n/**\n * @param {string} selector\n * @param {HTMLElement} parent\n * @returns {ChildNodeArray}\n */\nexport function query_selector_all(selector, parent = document.body) {\n\treturn Array.from(parent.querySelectorAll(selector));\n}\n\n/**\n * @param {string} nodeId\n * @param {HTMLElement} head\n * @returns {any[]}\n */\nexport function head_selector(nodeId, head) {\n\tconst result = [];\n\tlet started = 0;\n\tfor (const node of head.childNodes) {\n\t\tif (node.nodeType === 8 /* comment node */) {\n\t\t\tconst comment = node.textContent.trim();\n\t\t\tif (comment === `HEAD_${nodeId}_END`) {\n\t\t\t\tstarted -= 1;\n\t\t\t\tresult.push(node);\n\t\t\t} else if (comment === `HEAD_${nodeId}_START`) {\n\t\t\t\tstarted += 1;\n\t\t\t\tresult.push(node);\n\t\t\t}\n\t\t} else if (started > 0) {\n\t\t\tresult.push(node);\n\t\t}\n\t}\n\treturn result;\n}\n/** */\nexport class HtmlTag {\n\t/**\n\t * @private\n\t * @default false\n\t */\n\tis_svg = false;\n\t/** parent for creating node */\n\te = undefined;\n\t/** html tag nodes */\n\tn = undefined;\n\t/** target */\n\tt = undefined;\n\t/** anchor */\n\ta = undefined;\n\tconstructor(is_svg = false) {\n\t\tthis.is_svg = is_svg;\n\t\tthis.e = this.n = null;\n\t}\n\n\t/**\n\t * @param {string} html\n\t * @returns {void}\n\t */\n\tc(html) {\n\t\tthis.h(html);\n\t}\n\n\t/**\n\t * @param {string} html\n\t * @param {HTMLElement | SVGElement} target\n\t * @param {HTMLElement | SVGElement} anchor\n\t * @returns {void}\n\t */\n\tm(html, target, anchor = null) {\n\t\tif (!this.e) {\n\t\t\tif (this.is_svg)\n\t\t\t\tthis.e = svg_element(/** @type {keyof SVGElementTagNameMap} */ (target.nodeName));\n\t\t\t/** #7364 target for