@openlv/modal 0.0.1-beta.6 → 0.0.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/assets/logo.d.ts +5 -0
  2. package/dist/components/Header.d.ts +6 -0
  3. package/dist/components/ModalRoot.d.ts +8 -0
  4. package/dist/components/UnknownState.d.ts +4 -0
  5. package/dist/components/footer/Footer.d.ts +1 -0
  6. package/dist/components/footer/StatusIndicator.d.ts +1 -0
  7. package/dist/components/settings/ConnectionPreferences.d.ts +1 -0
  8. package/dist/components/settings/Signaling.d.ts +1 -0
  9. package/dist/components/settings/Transport.d.ts +1 -0
  10. package/dist/components/settings/index.d.ts +1 -0
  11. package/dist/context.d.ts +14 -0
  12. package/dist/element.d.ts +18 -0
  13. package/dist/flow/ConnectionFlow.d.ts +6 -0
  14. package/dist/flow/HandshakeOpen.d.ts +4 -0
  15. package/dist/flow/disconnected/ConnectionGraphic.d.ts +1 -0
  16. package/dist/flow/disconnected/Disconnected.d.ts +4 -0
  17. package/dist/hooks/useClipboard.d.ts +1 -0
  18. package/dist/hooks/useConnectionState.d.ts +7 -0
  19. package/dist/hooks/useEventEmitter.d.ts +2 -0
  20. package/dist/hooks/useProvider.d.ts +5 -0
  21. package/dist/hooks/usePunchTransition.d.ts +8 -0
  22. package/dist/hooks/useSession.d.ts +8 -0
  23. package/dist/hooks/useSettings.d.ts +15 -0
  24. package/dist/index.cjs.js +5 -7
  25. package/dist/index.cjs.js.map +1 -1
  26. package/dist/index.d.ts +19 -25
  27. package/dist/index.es.js +1551 -1158
  28. package/dist/index.es.js.map +1 -1
  29. package/dist/index.iife.js +5 -7
  30. package/dist/index.iife.js.map +1 -1
  31. package/dist/modal.css +1 -1
  32. package/dist/styles/index.d.ts +2 -0
  33. package/dist/theme/index.d.ts +37 -0
  34. package/dist/theme/openlv.d.ts +138 -0
  35. package/dist/theme/simple.d.ts +73 -0
  36. package/dist/theme/types.d.ts +104 -0
  37. package/dist/types/connection.d.ts +13 -0
  38. package/dist/ui/Button.d.ts +62 -0
  39. package/dist/ui/InfoTooltip.d.ts +78 -0
  40. package/dist/ui/Input.d.ts +22 -0
  41. package/dist/ui/Select.d.ts +7 -0
  42. package/dist/ui/Toggle.d.ts +7 -0
  43. package/dist/ui/menu/MenuGroup.d.ts +6 -0
  44. package/dist/ui/menu/MenuItem.d.ts +5 -0
  45. package/dist/utils/log.d.ts +1 -0
  46. package/package.json +6 -6
package/dist/modal.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-body-background:var(--lv-body-background);--radius-radius:var(--lv-border-radius)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-5{top:calc(var(--spacing)*5)}.top-full{top:100%}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-10{z-index:10}.z-\[10000\]{z-index:10000}.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-18{height:calc(var(--spacing)*18)}.h-38{height:calc(var(--spacing)*38)}.h-\[200px\]{height:200px}.h-full{height:100%}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-48{width:calc(var(--spacing)*48)}.w-\[200px\]{width:200px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[400px\]{max-width:400px}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-\[bg-in_0\.15s_ease-in-out\]{animation:.15s ease-in-out bg-in}.animate-\[fade-in_0\.15s_ease-in-out\]{animation:.15s ease-in-out fade-in}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-radius{border-top-left-radius:var(--radius-radius);border-top-right-radius:var(--radius-radius)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-500{border-color:var(--color-gray-500)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-t-transparent{border-top-color:#0000}.bg-\[\#F4F5F6\]{background-color:#f4f5f6}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-body-background{background-color:var(--color-body-background)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-white{background-color:var(--color-white)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pr-0\.5{padding-right:calc(var(--spacing)*.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pb-0\.5{padding-bottom:calc(var(--spacing)*.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.font-sans{font-family:var(--font-sans)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\[200ms\]{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-200:focus{--tw-ring-color:var(--color-blue-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}@media (min-width:48rem){.md\:items-center{align-items:center}.md\:rounded-b-radius{border-bottom-right-radius:var(--radius-radius);border-bottom-left-radius:var(--radius-radius)}}@media (min-width:64rem){.lg\:p-4{padding:calc(var(--spacing)*4)}}}@keyframes fade-in{0%{transform:translateY(-2px)scale(.95)}to{transform:translateY(0)scale(1)}}@keyframes bg-in{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.modal-transition__container{display:grid;position:relative}.modal-transition__layer{will-change:transform,opacity;grid-area:1/1;width:100%}.modal-transition__layer--outgoing{z-index:2;animation:.2s ease-out forwards modal-transition-out;position:absolute}.modal-transition__layer--incoming{animation:.2s ease-out forwards modal-transition-in}@keyframes modal-transition-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes modal-transition-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
1
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-5{top:calc(var(--spacing)*5)}.top-full{top:100%}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-1\/2{left:50%}.z-10{z-index:10}.z-10000{z-index:10000}.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-18{height:calc(var(--spacing)*18)}.h-38{height:calc(var(--spacing)*38)}.h-\[200px\]{height:200px}.h-full{height:100%}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-48{width:calc(var(--spacing)*48)}.w-\[200px\]{width:200px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[400px\]{max-width:400px}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-\[bg-in_0\.15s_ease-in-out\]{animation:.15s ease-in-out bg-in}.animate-\[fade-in_0\.15s_ease-in-out\]{animation:.15s ease-in-out fade-in}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[var\(--lv-button-primary-border\)\]{border-color:var(--lv-button-primary-border)}.border-\[var\(--lv-button-secondary-border\,var\(--lv-button-secondary-background\)\)\]{border-color:var(--lv-button-secondary-border,var(--lv-button-secondary-background))}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-500{border-color:var(--color-gray-500)}.border-t-transparent{border-top-color:#0000}.bg-\(--lv-button-secondary-background\){background-color:var(--lv-button-secondary-background)}.bg-\[var\(--lv-button-primary-background\)\]{background-color:var(--lv-button-primary-background)}.bg-\[var\(--lv-button-secondary-background\)\]{background-color:var(--lv-button-secondary-background)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pr-0\.5{padding-right:calc(var(--spacing)*.5)}.pb-0\.5{padding-bottom:calc(var(--spacing)*.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-1{padding-left:calc(var(--spacing)*1)}.text-center{text-align:center}.font-sans{font-family:var(--font-sans)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--lv-button-primary-color\)\]{color:var(--lv-button-primary-color)}.text-\[var\(--lv-button-secondary-color\)\]{color:var(--lv-button-secondary-color)}.text-\[var\(--lv-text-muted\)\]{color:var(--lv-text-muted)}.text-\[var\(--lv-text-primary\)\]{color:var(--lv-text-primary)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.first\:border-l-0:first-child{border-left-style:var(--tw-border-style);border-left-width:0}@media(hover:hover){.hover\:\[background-color\:var\(--lv-button-tertiary-hoverBackground\)\]:hover{background-color:var(--lv-button-tertiary-hoverBackground)}.hover\:bg-\(--lv-button-secondary-hoverBackground\):hover{background-color:var(--lv-button-secondary-hoverBackground)}.hover\:bg-\[var\(--lv-button-primary-background-hover\)\]:hover{background-color:var(--lv-button-primary-background-hover)}.hover\:bg-\[var\(--lv-button-primary-hoverBackground\,var\(--lv-button-primary-background\)\)\]:hover{background-color:var(--lv-button-primary-hoverBackground,var(--lv-button-primary-background))}.hover\:bg-\[var\(--lv-button-secondary-background\)\]:hover{background-color:var(--lv-button-secondary-background)}.hover\:bg-\[var\(--lv-button-secondary-hoverBackground\,var\(--lv-button-secondary-background\)\)\]:hover{background-color:var(--lv-button-secondary-hoverBackground,var(--lv-button-secondary-background))}.hover\:bg-\[var\(--lv-control-button-tertiary-hoverBackground\,transparent\)\]:hover{background-color:var(--lv-control-button-tertiary-hoverBackground,transparent)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-200:focus{--tw-ring-color:var(--color-blue-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:bg-\(--lv-button-secondary-activeBackground\):active{background-color:var(--lv-button-secondary-activeBackground)}.active\:bg-\[var\(--lv-button-primary-activeBackground\,var\(--lv-button-primary-hoverBackground\,var\(--lv-button-primary-background\)\)\)\]:active{background-color:var(--lv-button-primary-activeBackground,var(--lv-button-primary-hoverBackground,var(--lv-button-primary-background)))}.active\:bg-\[var\(--lv-button-secondary-activeBackground\,var\(--lv-button-secondary-hoverBackground\,var\(--lv-button-secondary-background\)\)\)\]:active{background-color:var(--lv-button-secondary-activeBackground,var(--lv-button-secondary-hoverBackground,var(--lv-button-secondary-background)))}.active\:bg-\[var\(--lv-control-button-tertiary-activeBackground\,var\(--lv-control-button-tertiary-hoverBackground\,transparent\)\)\]:active{background-color:var(--lv-control-button-tertiary-activeBackground,var(--lv-control-button-tertiary-hoverBackground,transparent))}.disabled\:bg-\[var\(--lv-button-primary-disabledBackground\,var\(--lv-button-primary-background\)\)\]:disabled{background-color:var(--lv-button-primary-disabledBackground,var(--lv-button-primary-background))}.disabled\:bg-\[var\(--lv-button-secondary-disabledBackground\,var\(--lv-button-secondary-background\)\)\]:disabled{background-color:var(--lv-button-secondary-disabledBackground,var(--lv-button-secondary-background))}.disabled\:text-\[var\(--lv-button-primary-disabledColor\,var\(--lv-button-primary-color\)\)\]:disabled{color:var(--lv-button-primary-disabledColor,var(--lv-button-primary-color))}.disabled\:text-\[var\(--lv-button-secondary-disabledColor\,var\(--lv-button-secondary-color\)\)\]:disabled{color:var(--lv-button-secondary-disabledColor,var(--lv-button-secondary-color))}.disabled\:text-\[var\(--lv-control-button-tertiary-disabledColor\,var\(--lv-text-muted\)\)\]:disabled{color:var(--lv-control-button-tertiary-disabledColor,var(--lv-text-muted))}@media(min-width:48rem){.md\:items-center{align-items:center}}@media(min-width:64rem){.lg\:p-4{padding:calc(var(--spacing)*4)}}}:root,:host{--color-body-background:var(--lv-body-background);--radius-radius:var(--lv-border-radius)}.border{border-style:solid}@keyframes fade-in{0%{transform:translateY(-2px)scale(.95)}to{transform:translateY(0)scale(1)}}@keyframes bg-in{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.modal-transition__container{display:grid;position:relative}.modal-transition__layer{will-change:transform,opacity;grid-area:1/1;width:100%}.modal-transition__layer--outgoing{z-index:2;animation:.2s ease-out forwards modal-transition-out;position:absolute}.modal-transition__layer--incoming{animation:.2s ease-out forwards modal-transition-in}[data-openlv-mode=dark] img[data-openlv-brand-logo]{filter:invert()brightness(1.1)}@keyframes modal-transition-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes modal-transition-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
@@ -0,0 +1,2 @@
1
+ import { ThemeConfig } from '../theme/index.js';
2
+ export declare const ensureStyles: (shadowRoot?: ShadowRoot, theme?: ThemeConfig) => Promise<void>;
@@ -0,0 +1,37 @@
1
+ import { FC, PropsWithChildren } from 'preact/compat';
2
+ import { openlvThemeTokens } from './openlv.js';
3
+ import { simpleThemeTokens } from './simple.js';
4
+ import { ModesForTokens, OpenLVTheme, ThemeConfig, ThemeIdentifier, ThemeMode, ThemeTokensMap } from './types.js';
5
+ /**
6
+ * Maps theme identifiers to their token types using typeof.
7
+ */
8
+ type ThemeTokensFor = {
9
+ openlv: typeof openlvThemeTokens;
10
+ simple: typeof simpleThemeTokens;
11
+ };
12
+ /**
13
+ * Type-safe theme configuration that infers allowed modes from the theme identifier.
14
+ */
15
+ export type ThemeConfigInput = {
16
+ [K in ThemeIdentifier]: {
17
+ theme: K;
18
+ tokens?: ThemeTokensFor[K];
19
+ mode: ModesForTokens<ThemeTokensFor[K]>;
20
+ };
21
+ }[ThemeIdentifier];
22
+ /**
23
+ * Converts the theme to css variables prefixed with --lv-
24
+ * including nested keys using - notation
25
+ */
26
+ export declare const buildTheme: (tokens: OpenLVTheme) => {
27
+ [k: string]: string;
28
+ };
29
+ export { openlvThemeTokens, simpleThemeTokens };
30
+ export type { OpenLVTheme, ThemeConfig, ThemeIdentifier, ThemeMode, ThemeTokensMap, };
31
+ export type ThemeProviderProps<T extends ThemeTokensMap = ThemeTokensMap> = PropsWithChildren<ThemeConfig<T>>;
32
+ export declare const DEFAULT_THEME_CONFIG: ThemeConfig<typeof openlvThemeTokens>;
33
+ export declare const resolveTheme: <T extends ThemeTokensMap>(config: ThemeConfig<T>) => {
34
+ tokens: OpenLVTheme;
35
+ mode: ThemeMode;
36
+ };
37
+ export declare const ThemeProvider: FC<ThemeProviderProps>;
@@ -0,0 +1,138 @@
1
+ export declare const openlvThemeTokens: {
2
+ light: {
3
+ font: {
4
+ family: string;
5
+ };
6
+ body: {
7
+ color: string;
8
+ background: string;
9
+ };
10
+ border: {
11
+ radius: string;
12
+ };
13
+ overlay: {
14
+ background: string;
15
+ backdrop: {
16
+ filter: string;
17
+ };
18
+ };
19
+ modal: {
20
+ shadow: string;
21
+ };
22
+ control: {
23
+ input: {
24
+ background: string;
25
+ border: string;
26
+ text: string;
27
+ };
28
+ button: {
29
+ primary: {
30
+ background: string;
31
+ color: string;
32
+ padding: string;
33
+ hoverBackground: string;
34
+ activeBackground: string;
35
+ disabledBackground: string;
36
+ disabledColor: string;
37
+ border: string;
38
+ };
39
+ secondary: {
40
+ background: string;
41
+ color: string;
42
+ hoverBackground: string;
43
+ activeBackground: string;
44
+ disabledBackground: string;
45
+ disabledColor: string;
46
+ border: string;
47
+ };
48
+ tertiary: {
49
+ color: string;
50
+ hoverBackground: string;
51
+ activeBackground: string;
52
+ disabledColor: string;
53
+ };
54
+ };
55
+ };
56
+ qr: {
57
+ background: string;
58
+ color: string;
59
+ };
60
+ card: {
61
+ background: string;
62
+ };
63
+ text: {
64
+ primary: string;
65
+ secondary: string;
66
+ muted: string;
67
+ };
68
+ };
69
+ dark: {
70
+ font: {
71
+ family: string;
72
+ };
73
+ body: {
74
+ color: string;
75
+ background: string;
76
+ };
77
+ border: {
78
+ radius: string;
79
+ color: string;
80
+ width: string;
81
+ };
82
+ overlay: {
83
+ background: string;
84
+ backdrop: {
85
+ filter: string;
86
+ };
87
+ };
88
+ modal: {
89
+ shadow: string;
90
+ };
91
+ control: {
92
+ input: {
93
+ background: string;
94
+ border: string;
95
+ text: string;
96
+ };
97
+ button: {
98
+ primary: {
99
+ background: string;
100
+ color: string;
101
+ padding: string;
102
+ hoverBackground: string;
103
+ activeBackground: string;
104
+ disabledBackground: string;
105
+ disabledColor: string;
106
+ border: string;
107
+ };
108
+ secondary: {
109
+ background: string;
110
+ color: string;
111
+ hoverBackground: string;
112
+ activeBackground: string;
113
+ disabledBackground: string;
114
+ disabledColor: string;
115
+ border: string;
116
+ };
117
+ tertiary: {
118
+ color: string;
119
+ hoverBackground: string;
120
+ activeBackground: string;
121
+ disabledColor: string;
122
+ };
123
+ };
124
+ };
125
+ qr: {
126
+ background: string;
127
+ color: string;
128
+ };
129
+ card: {
130
+ background: string;
131
+ };
132
+ text: {
133
+ primary: string;
134
+ secondary: string;
135
+ muted: string;
136
+ };
137
+ };
138
+ };
@@ -0,0 +1,73 @@
1
+ export declare const simpleThemeTokens: {
2
+ light: {
3
+ font: {
4
+ family: string;
5
+ };
6
+ body: {
7
+ color: string;
8
+ background: string;
9
+ };
10
+ border: {
11
+ radius: string;
12
+ };
13
+ overlay: {
14
+ background: string;
15
+ backdrop: {
16
+ filter: string;
17
+ };
18
+ };
19
+ modal: {
20
+ shadow: string;
21
+ };
22
+ control: {
23
+ input: {
24
+ background: string;
25
+ border: string;
26
+ text: string;
27
+ };
28
+ button: {
29
+ primary: {
30
+ background: string;
31
+ color: string;
32
+ padding: string;
33
+ hoverBackground: string;
34
+ activeBackground: string;
35
+ disabledBackground: string;
36
+ disabledColor: string;
37
+ border: string;
38
+ };
39
+ secondary: {
40
+ background: string;
41
+ color: string;
42
+ hoverBackground: string;
43
+ activeBackground: string;
44
+ disabledBackground: string;
45
+ disabledColor: string;
46
+ border: string;
47
+ selectedBackground: string;
48
+ selectedColor: string;
49
+ };
50
+ tertiary: {
51
+ color: string;
52
+ hoverBackground: string;
53
+ activeBackground: string;
54
+ disabledColor: string;
55
+ };
56
+ };
57
+ };
58
+ qr: {
59
+ background: string;
60
+ color: string;
61
+ };
62
+ card: {
63
+ background: string;
64
+ };
65
+ text: {
66
+ primary: string;
67
+ secondary: string;
68
+ muted: string;
69
+ heading: string;
70
+ body: string;
71
+ };
72
+ };
73
+ };
@@ -0,0 +1,104 @@
1
+ export type ThemeIdentifier = "openlv" | "simple";
2
+ export type ThemeMode = "light" | "dark" | "system";
3
+ export type OpenLVTheme = Partial<{
4
+ font: {
5
+ family: string;
6
+ };
7
+ body: {
8
+ color: string;
9
+ background: string;
10
+ };
11
+ border: {
12
+ radius: string;
13
+ width?: string;
14
+ color?: string;
15
+ };
16
+ overlay: {
17
+ background: string;
18
+ backdrop: {
19
+ filter: string;
20
+ };
21
+ };
22
+ modal: {
23
+ shadow: string;
24
+ };
25
+ control: {
26
+ input: {
27
+ background: string;
28
+ border: string;
29
+ text: string;
30
+ };
31
+ button: {
32
+ primary: {
33
+ background: string;
34
+ color: string;
35
+ padding: string;
36
+ hoverBackground?: string;
37
+ activeBackground?: string;
38
+ disabledBackground?: string;
39
+ disabledColor?: string;
40
+ border?: string;
41
+ };
42
+ secondary: {
43
+ background: string;
44
+ color: string;
45
+ hoverBackground?: string;
46
+ activeBackground?: string;
47
+ disabledBackground?: string;
48
+ disabledColor?: string;
49
+ border?: string;
50
+ selectedBackground?: string;
51
+ selectedColor?: string;
52
+ };
53
+ tertiary?: {
54
+ color: string;
55
+ hoverBackground?: string;
56
+ activeBackground?: string;
57
+ disabledColor?: string;
58
+ };
59
+ };
60
+ };
61
+ qr: {
62
+ background: string;
63
+ color: string;
64
+ };
65
+ card: {
66
+ background: string;
67
+ };
68
+ text: {
69
+ primary?: string;
70
+ secondary?: string;
71
+ muted?: string;
72
+ heading?: string;
73
+ body?: string;
74
+ };
75
+ }>;
76
+ export type ThemeTokensMap = {
77
+ common?: OpenLVTheme;
78
+ light?: OpenLVTheme;
79
+ dark?: OpenLVTheme;
80
+ } & ({
81
+ light: OpenLVTheme;
82
+ } | {
83
+ dark: OpenLVTheme;
84
+ });
85
+ type HasLight<T extends ThemeTokensMap> = T extends {
86
+ light: OpenLVTheme;
87
+ } ? true : false;
88
+ type HasDark<T extends ThemeTokensMap> = T extends {
89
+ dark: OpenLVTheme;
90
+ } ? true : false;
91
+ export type ModesForTokens<T extends ThemeTokensMap> = HasLight<T> extends true ? HasDark<T> extends true ? ThemeMode : "light" : HasDark<T> extends true ? "dark" : never;
92
+ export type ThemeConfig<T extends ThemeTokensMap = ThemeTokensMap> = {
93
+ theme: ThemeIdentifier;
94
+ /**
95
+ * Optional override tokens for the selected theme.
96
+ * If omitted, defaults will be looked up by `theme`.
97
+ */
98
+ tokens?: T;
99
+ /**
100
+ * Active mode. Must be compatible with the provided/derived tokens.
101
+ */
102
+ mode: ModesForTokens<T>;
103
+ };
104
+ export {};
@@ -0,0 +1,13 @@
1
+ export type ConnectionState = "idle" | "initializing" | "connecting" | "qr-ready" | "connected" | "error" | "disconnected";
2
+ export interface ConnectionInfo {
3
+ state: ConnectionState;
4
+ uri?: string;
5
+ error?: string;
6
+ connectedAccount?: string;
7
+ chainId?: number;
8
+ }
9
+ export interface ModalConnectionInterface {
10
+ showModal: () => void;
11
+ hideModal: () => void;
12
+ onClose?: () => void;
13
+ }
@@ -0,0 +1,62 @@
1
+ import { AnchorHTMLAttributes, ButtonHTMLAttributes } from 'preact';
2
+ import { PropsWithChildren } from 'preact/compat';
3
+ import { VariantProps } from 'tailwind-variants/lite';
4
+ declare const styles: import('tailwind-variants/lite').TVReturnType<{
5
+ $variant: {
6
+ primary: string;
7
+ secondary: string;
8
+ tertiary: string;
9
+ };
10
+ $size: {
11
+ sm: string;
12
+ md: string;
13
+ lg: string;
14
+ };
15
+ $aspect: {
16
+ square: string;
17
+ auto: string;
18
+ };
19
+ }, undefined, "lv-button flex items-center justify-center rounded-lg transition-colors cursor-pointer active:scale-95 transition-transform", {
20
+ $variant: {
21
+ primary: string;
22
+ secondary: string;
23
+ tertiary: string;
24
+ };
25
+ $size: {
26
+ sm: string;
27
+ md: string;
28
+ lg: string;
29
+ };
30
+ $aspect: {
31
+ square: string;
32
+ auto: string;
33
+ };
34
+ }, undefined, import('tailwind-variants/lite').TVReturnType<{
35
+ $variant: {
36
+ primary: string;
37
+ secondary: string;
38
+ tertiary: string;
39
+ };
40
+ $size: {
41
+ sm: string;
42
+ md: string;
43
+ lg: string;
44
+ };
45
+ $aspect: {
46
+ square: string;
47
+ auto: string;
48
+ };
49
+ }, undefined, "lv-button flex items-center justify-center rounded-lg transition-colors cursor-pointer active:scale-95 transition-transform", unknown, unknown, undefined>>;
50
+ export type ButtonButtonProps = {
51
+ onClick: () => void;
52
+ } & ButtonHTMLAttributes<HTMLButtonElement>;
53
+ export type ButtonLinkProps = {
54
+ href: string;
55
+ } & AnchorHTMLAttributes<HTMLAnchorElement>;
56
+ export type ButtonProps = PropsWithChildren<VariantProps<typeof styles> & (({
57
+ href: string;
58
+ } & ButtonLinkProps) | ({
59
+ onClick: () => void;
60
+ } & ButtonButtonProps))>;
61
+ export declare function Button(rawProps: ButtonProps): import('preact').VNode<import('preact').ClassAttributes<HTMLElement> & Record<string, unknown>>;
62
+ export {};
@@ -0,0 +1,78 @@
1
+ import { FC, PropsWithChildren } from 'preact/compat';
2
+ import { VariantProps } from 'tailwind-variants/lite';
3
+ declare const styles: import('tailwind-variants/lite').TVReturnType<{
4
+ size: {
5
+ sm: {
6
+ box: string;
7
+ icon: string;
8
+ };
9
+ md: {
10
+ box: string;
11
+ icon: string;
12
+ };
13
+ lg: {
14
+ box: string;
15
+ icon: string;
16
+ };
17
+ };
18
+ variant: {
19
+ icon: string;
20
+ text: string;
21
+ };
22
+ }, {
23
+ root: string;
24
+ box: string;
25
+ popover: string;
26
+ icon: string;
27
+ }, undefined, {
28
+ size: {
29
+ sm: {
30
+ box: string;
31
+ icon: string;
32
+ };
33
+ md: {
34
+ box: string;
35
+ icon: string;
36
+ };
37
+ lg: {
38
+ box: string;
39
+ icon: string;
40
+ };
41
+ };
42
+ variant: {
43
+ icon: string;
44
+ text: string;
45
+ };
46
+ }, {
47
+ root: string;
48
+ box: string;
49
+ popover: string;
50
+ icon: string;
51
+ }, import('tailwind-variants/lite').TVReturnType<{
52
+ size: {
53
+ sm: {
54
+ box: string;
55
+ icon: string;
56
+ };
57
+ md: {
58
+ box: string;
59
+ icon: string;
60
+ };
61
+ lg: {
62
+ box: string;
63
+ icon: string;
64
+ };
65
+ };
66
+ variant: {
67
+ icon: string;
68
+ text: string;
69
+ };
70
+ }, {
71
+ root: string;
72
+ box: string;
73
+ popover: string;
74
+ icon: string;
75
+ }, undefined, unknown, unknown, undefined>>;
76
+ export type InfoTooltipProps = VariantProps<typeof styles>;
77
+ export declare const InfoTooltip: FC<PropsWithChildren<InfoTooltipProps>>;
78
+ export {};
@@ -0,0 +1,22 @@
1
+ type LabelProps = {
2
+ htmlFor?: string;
3
+ children: string;
4
+ };
5
+ export declare const Label: ({ htmlFor, children }: LabelProps) => import("preact").JSX.Element;
6
+ type InputProps = {
7
+ id?: string;
8
+ value: string;
9
+ placeholder?: string;
10
+ ariaLabel?: string;
11
+ readOnly?: boolean;
12
+ onChange?: (value: string) => void;
13
+ };
14
+ export declare const Input: ({ id, value, placeholder, ariaLabel, readOnly, onChange, }: InputProps) => import("preact").JSX.Element;
15
+ type InputGroupProps = {
16
+ label: string;
17
+ values: readonly string[];
18
+ placeholder?: string;
19
+ inputIdPrefix?: string;
20
+ };
21
+ export declare const InputGroup: ({ label, values, placeholder, inputIdPrefix, }: InputGroupProps) => import("preact").JSX.Element;
22
+ export {};
@@ -0,0 +1,7 @@
1
+ import { FC } from 'preact/compat';
2
+ export type SelectProps = {
3
+ options: string[][];
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ };
7
+ export declare const Select: FC<SelectProps>;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'preact/compat';
2
+ export type ToggleProps = {
3
+ label: string;
4
+ value: boolean;
5
+ onChange: (value: boolean) => void;
6
+ };
7
+ export declare const Toggle: FC<ToggleProps>;
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren, ReactNode } from 'preact/compat';
2
+ export type MenuGroupProps = PropsWithChildren<{
3
+ title: string;
4
+ right?: ReactNode;
5
+ }>;
6
+ export declare const MenuGroup: FC<MenuGroupProps>;
@@ -0,0 +1,5 @@
1
+ import { FC, PropsWithChildren } from 'preact/compat';
2
+ export type MenuItemProps = PropsWithChildren<{
3
+ label: string;
4
+ }>;
5
+ export declare const MenuItem: FC<MenuItemProps>;
@@ -0,0 +1 @@
1
+ export declare const log: (...x: Parameters<typeof console.log>) => void;