@developit/kinu 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -0
- package/dist/index.css +1 -0
- package/dist/index.js +820 -0
- package/package.json +67 -0
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# kinu - Performance-Focused Preact UI Toolkit
|
|
2
|
+
|
|
3
|
+
A minimal, constraint-driven UI toolkit that enhances HTML instead of replacing it. Built for developers who value performance, simplicity, and the web platform.
|
|
4
|
+
|
|
5
|
+
## Why kinu?
|
|
6
|
+
|
|
7
|
+
- **🚀 Tiny Bundle**: ~5KB JS + ~6KB CSS for all components
|
|
8
|
+
- **⚡ Zero Re-renders**: No state, direct DOM reactions via native `commandFor` (with fallback)
|
|
9
|
+
- **🌐 Platform-Native**: Uses `<dialog>`, form validation, CSS custom properties
|
|
10
|
+
- **📦 Tree-Shakeable**: Import only what you use
|
|
11
|
+
- **🎨 Beautiful by Default**: Carefully crafted design system
|
|
12
|
+
|
|
13
|
+
## Screenshot
|
|
14
|
+
|
|
15
|
+
<img src="demo/public/kinu-1.png" width="784">
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add kinu
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { Button, Dialog, Input } from 'kinu';
|
|
25
|
+
|
|
26
|
+
function App() {
|
|
27
|
+
return (
|
|
28
|
+
<>
|
|
29
|
+
<Button variant="outline" size="lg">
|
|
30
|
+
Click me
|
|
31
|
+
</Button>
|
|
32
|
+
|
|
33
|
+
<Dialog>
|
|
34
|
+
<Dialog.Trigger>
|
|
35
|
+
<Button>Open Dialog</Button>
|
|
36
|
+
</Dialog.Trigger>
|
|
37
|
+
<Dialog.Content>
|
|
38
|
+
<h2>Hello World</h2>
|
|
39
|
+
<Input placeholder="Type something..." />
|
|
40
|
+
</Dialog.Content>
|
|
41
|
+
</Dialog>
|
|
42
|
+
</>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Live Demo
|
|
48
|
+
|
|
49
|
+
Check out the [live demo](https://kinu-demo.netlify.app) to see all components in action.
|
|
50
|
+
|
|
51
|
+
## Documentation
|
|
52
|
+
|
|
53
|
+
- [Architecture Overview](./ARCHITECTURE.md) - Technical details and design decisions
|
|
54
|
+
- [Component Reference](./docs/components.md) - Complete component API documentation
|
|
55
|
+
|
|
56
|
+
## Development
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Run the demo app locally
|
|
60
|
+
cd demo
|
|
61
|
+
pnpm install
|
|
62
|
+
pnpm run dev
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
MIT
|
package/dist/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[k=badge]{display:inline-flex;align-items:center;border-radius:calc(var(--k-radius) - 2px);padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border:1px solid transparent;background-color:hsl(var(--k-primary));color:hsl(var(--k-primary-foreground))}[k=badge][variant=secondary]{border:1px solid transparent;background-color:hsl(var(--k-secondary));color:hsl(var(--k-secondary-foreground))}[k=badge][variant=secondary]:hover{background-color:hsl(var(--k-secondary-hover))}[k=badge][variant=destructive]{border:1px solid transparent;background-color:hsl(var(--k-destructive));color:hsl(var(--k-destructive-foreground))}[k=badge][variant=destructive]:hover{background-color:hsl(var(--k-destructive-hover))}[k=badge][variant=outline]{border-color:hsl(var(--k-border));background-color:transparent;color:hsl(var(--k-foreground))}[k=button]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border-radius:var(--k-radius);font-size:.875rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border:1px solid transparent;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:hsl(var(--k-primary));color:hsl(var(--k-primary-foreground))}[k=button]:focus-visible{outline:none;box-shadow:0 0 0 4px hsl(var(--k-ring) / .2);border-color:hsl(var(--k-ring));background-color:hsl(var(--k-primary));color:hsl(var(--k-primary-foreground))}[k=button]:hover{background-color:hsl(var(--k-primary-hover))}[k=button]:not([size]),[k=button][size=md]{height:2.5rem;padding-left:1rem;padding-right:1rem}[k=button]:disabled{pointer-events:none;opacity:.5}[k=button]:active:not(:disabled):not([loading]){transform:translateY(1px)}[k=button][loading]{pointer-events:none;opacity:.6}[k=button][variant=destructive]{background-color:hsl(var(--k-destructive));color:hsl(var(--k-destructive-foreground))}[k=button][variant=destructive]:hover{background-color:hsl(var(--k-destructive-hover))}[k=button][variant=outline]{border:1px solid hsl(var(--k-border));background-color:hsl(var(--k-background));color:hsl(var(--k-foreground))}[k=button][variant=outline]:hover{background-color:hsl(var(--k-accent));color:hsl(var(--k-accent-foreground))}[k=button][variant=secondary]{background-color:hsl(var(--k-secondary));color:hsl(var(--k-secondary-foreground))}[k=button][variant=secondary]:hover{background-color:hsl(var(--k-secondary-hover))}[k=button][variant=ghost]{background-color:transparent;color:hsl(var(--k-foreground))}[k=button][variant=ghost]:hover{background-color:hsl(var(--k-accent));color:hsl(var(--k-accent-foreground))}[k=button][variant=link]{background-color:transparent;color:hsl(var(--k-primary));text-decoration:underline;text-underline-offset:4px}[k=button][variant=link]:hover{text-decoration:none}[k=button][size=sm]{height:2.25rem;border-radius:calc(var(--k-radius) - 2px);padding-left:.75rem;padding-right:.75rem;font-size:.8125rem}[k=button][size=lg]{height:2.75rem;border-radius:calc(var(--k-radius) - 2px);padding-left:2rem;padding-right:2rem}[k=button][size=icon]{height:2.5rem;width:2.5rem;padding:0}[k=input]{display:flex;width:100%;border-radius:var(--k-radius);border:1px solid hsl(var(--k-input));background-color:hsl(var(--k-background));font:inherit;font-size:.875rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;height:2.5rem;padding-left:.75rem;padding-right:.75rem}[k=input]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=input]:disabled{cursor:not-allowed;opacity:.5}[k=input]::placeholder{color:hsl(var(--k-muted-foreground))}[k=input]:invalid,[k=input][invalid]{border-color:hsl(var(--k-destructive))}[k=input]:invalid:focus-visible,[k=input][invalid]:focus-visible{box-shadow:0 0 0 2px hsl(var(--k-destructive))}[k=input][size=sm]{height:2.25rem;border-radius:calc(var(--k-radius) - 2px);padding-left:.5rem;padding-right:.5rem;font-size:.8125rem}[k=input][size=lg]{height:2.75rem;padding-left:1rem;padding-right:1rem}[k=card]{border-radius:var(--k-radius);border:1px solid hsl(var(--k-border));background-color:hsl(var(--k-card));color:hsl(var(--k-card-foreground));box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;padding:1.5rem}[k=card][padding=none]{padding:0}[k=card][padding=sm]{padding:1rem}[k=card][padding=lg]{padding:2rem}[k=dialog-content]{border:none;border-radius:var(--k-radius);background-color:hsl(var(--k-background));padding:0;max-width:32rem;box-shadow:0 4px 12px #00000026;flex-direction:column;padding:1.5rem;gap:1rem;opacity:0;transform:scale(.96);transition:opacity .3s var(--k-ease),transform .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=dialog-content][open]{display:flex;opacity:1;transform:scale(1);overscroll-behavior:contain}@starting-style{[k=dialog-content][open]{opacity:0;transform:scale(.96)}}[k=dialog-content]::backdrop{background-color:#000c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);overscroll-behavior:contain;overflow:auto;scrollbar-width:none;opacity:0;transition:opacity .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=dialog-content][open]::backdrop{opacity:1}@starting-style{[k=dialog-content][open]::backdrop{opacity:0}}[k=accordion]{border-bottom:1px solid hsl(var(--k-border))}[k=accordion]:last-of-type{border-bottom:none}[k=accordion]>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:1rem 0;font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;transition:color .2s;-webkit-user-select:none;user-select:none}[k=accordion]>summary::-webkit-details-marker{display:none}[k=accordion]>summary:hover{text-decoration:underline}[k=accordion]>summary:after{content:"";border:solid currentColor;border-width:0 2px 2px 0;display:inline-block;width:.5rem;height:.5rem;margin-left:.5rem;transform:rotate(45deg);transition:transform .2s ease-out}[k=accordion][open]>summary:after{transform:rotate(-135deg)}[k=accordion]>*:not(summary){font-size:.875rem;padding:0 0 1rem}[k=accordion]::details-content{overflow:hidden;height:0;transition:height .2s ease,content-visibility .2s linear;transition-behavior:allow-discrete}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}[k=accordion][open]::details-content{height:auto}}@supports not (interpolate-size: allow-keywords){[k=accordion]::details-content{transition:none}[k=accordion][open]::details-content{height:auto}}[k=tablist]{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;height:2.25rem;width:fit-content;background:hsl(var(--k-muted));color:hsl(var(--k-muted-foreground));padding:3px;border-radius:var(--k-radius);gap:2px}[k=tab]{position:relative;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-radius:calc(var(--k-radius) - 2px);height:calc(100% - 1px);padding:0 .5rem;font-size:.875rem;font-weight:500;cursor:pointer;color:hsl(var(--k-foreground));display:inline-flex;align-items:center;justify-content:center;gap:.375rem;transition:color .15s,box-shadow .15s}[k=tab][aria-selected=true]{background:hsl(var(--k-background));color:hsl(var(--k-foreground));border-color:transparent;box-shadow:0 1px 3px 0 var(--k-shadow-color, rgba(0, 0, 0, .1)),0 1px 2px -1px var(--k-shadow-color, rgba(0, 0, 0, .1))}@supports (anchor-name: --k-tab-anchor) and (inset-inline-start: anchor(left)){[k=tablist]:before{content:"";position:absolute;z-index:0;top:3px;inset-inline-start:3px;block-size:calc(100% - 6px);inline-size:0;border:1px solid transparent;border-radius:calc(var(--k-radius) - 2px);background:hsl(var(--k-background));box-shadow:0 1px 3px 0 var(--k-shadow-color, rgba(0, 0, 0, .1)),0 1px 2px -1px var(--k-shadow-color, rgba(0, 0, 0, .1));pointer-events:none;transition:inset-inline-start .3s cubic-bezier(.2,.8,.2,1),inline-size .3s cubic-bezier(.2,.8,.2,1)}[k=tab][aria-selected=true]{anchor-name:--k-tab-anchor;background:transparent;border-color:transparent;box-shadow:none}[k=tablist]:has([k=tab][aria-selected=true]):before{position-anchor:--k-tab-anchor;inset-inline-start:anchor(left);inline-size:anchor-size(width)}}[k=tab]:focus-visible{outline:1px solid hsl(var(--k-ring));box-shadow:0 0 0 3px hsl(var(--k-ring) / .5)}[k=tab][disabled]{pointer-events:none;opacity:.5}[k=tab-panel]{padding-top:.5rem}[k=tooltip]{position:relative;display:inline-flex}[k=tooltip][title]:after{content:attr(title);position:absolute;left:50%;bottom:100%;--k-tl: -50%;--k-tt: 0%;--k-to: -.25rem;transform:translate(var(--k-tl),calc(var(--k-tt) + var(--k-to)));background-color:hsl(var(--k-foreground));color:hsl(var(--k-background));padding:.25rem .5rem;border-radius:calc(var(--k-radius) - 2px);font-size:.75rem;line-height:1rem;white-space:nowrap;opacity:0;pointer-events:none;display:none;transition:opacity .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1),display .15s allow-discrete;z-index:10}[k=tooltip][side=bottom][title]:after{bottom:auto;top:100%;--k-to: .25rem}[k=tooltip][side=left][title]:after{top:50%;left:0;--k-tt: -50%;--k-tl: -100%;--k-to: 0}[k=tooltip][side=right][title]:after{top:50%;left:100%;--k-tt: -50%;--k-tl: 0;--k-to: 0}[k=tooltip][title]:hover:after,[k=tooltip][title]:focus:after{display:block;opacity:1;transform:translate(var(--k-tl),calc(var(--k-tt) + var(--k-to) * 2))}@starting-style{[k=tooltip][title]:hover:after,[k=tooltip][title]:focus:after{opacity:0;transform:translate(var(--k-tl),calc(var(--k-tt) + var(--k-to)))}}[k=progress]{width:100%;height:.5rem;-moz-appearance:none;appearance:none;-webkit-appearance:none;overflow:hidden;border-radius:var(--k-radius);background-color:hsl(var(--k-secondary))}[k=progress]::-webkit-progress-bar{background-color:transparent}[k=progress]::-webkit-progress-value{background-color:hsl(var(--k-primary));transition:all .3s var(--k-ease)}[k=progress]::-moz-progress-bar{background-color:hsl(var(--k-primary));transition:all .3s var(--k-ease)}[k=skeleton]{position:relative;overflow:hidden;background-color:hsl(var(--k-muted));border-radius:var(--k-radius)}[k=skeleton]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:p-skeleton 1.5s infinite}@keyframes p-skeleton{0%{transform:translate(-100%)}to{transform:translate(100%)}}[k=switch]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-block;width:2.625rem;height:1.375rem;border-radius:9999px;background-color:hsl(var(--k-input));border:1px solid hsl(var(--k-input));cursor:pointer;padding:0;transition:background-color .15s ease,border-color .15s ease}[k=switch]:before{content:"";position:absolute;top:.125rem;left:.1875rem;width:1rem;height:1rem;border-radius:9999px;background-color:hsl(var(--k-background));transition:transform .25s var(--k-ease)}[k=switch]:checked{background-color:hsl(var(--k-primary));border-color:hsl(var(--k-primary))}[k=switch]:checked:before{transform:translate(1.2rem)}[k=switch]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=switch]:disabled{opacity:.5;pointer-events:none}[k=textarea]{display:block;width:100%;border-radius:var(--k-radius);border:1px solid hsl(var(--k-input));background-color:hsl(var(--k-background));font:inherit;font-size:.875rem;min-height:2.5rem;padding:.5rem .75rem;resize:vertical;transition-property:color,background-color,border-color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}[k=textarea]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=textarea]:disabled{cursor:not-allowed;opacity:.5}[k=textarea]::placeholder{color:hsl(var(--k-muted-foreground))}[k=label]{display:inline-block;font-size:.875rem;font-weight:500;color:hsl(var(--k-foreground));cursor:pointer;-webkit-user-select:none;user-select:none}[k=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1rem;height:1rem;border:1px solid hsl(var(--k-input));border-radius:calc(var(--k-radius) - 2px);background-color:hsl(var(--k-background));display:inline-grid;place-content:center;cursor:pointer;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1)}[k=checkbox]:before{content:"";width:.5rem;height:.5rem;transform:scale(0);transition:transform .15s cubic-bezier(.4,0,.2,1);background-color:hsl(var(--k-foreground));clip-path:polygon(14% 44%,0 65%,50% 100%,100% 10%,80% 0%,43% 62%)}[k=checkbox]:checked{background-color:hsl(var(--k-primary));border-color:hsl(var(--k-primary))}[k=checkbox]:checked:before{transform:scale(1);background-color:hsl(var(--k-primary-foreground))}[k=checkbox]:disabled{opacity:.5;pointer-events:none}[k=radio-group]{display:flex;gap:.5rem;align-items:center}[k=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;width:1rem;height:1rem;border-radius:9999px;border:1px solid hsl(var(--k-input));background-color:hsl(var(--k-background));display:inline-grid;place-content:center;cursor:pointer;transition:border-color .15s cubic-bezier(.4,0,.2,1)}[k=radio]:before{content:"";width:.5rem;height:.5rem;border-radius:9999px;background-color:hsl(var(--k-primary));transform:scale(0);transition:transform .15s cubic-bezier(.4,0,.2,1)}[k=radio]:checked:before{transform:scale(1)}[k=radio]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=radio]:disabled{opacity:.5;pointer-events:none}[k=select]{display:inline-flex;align-items:center;border-radius:var(--k-radius);border:1px solid hsl(var(--k-input));background-color:hsl(var(--k-background));height:2.5rem;padding-left:.75rem;padding-right:2rem;font-size:.875rem;cursor:pointer;transition:border-color .15s cubic-bezier(.4,0,.2,1);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="%23999"><path d="M5.8 7l4.2 4.2L14.2 7" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" /></svg>');background-repeat:no-repeat;background-size:1.6em;background-position:right .5rem center}[k=select]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=select]:disabled{opacity:.5;pointer-events:none}[k=slider]{--o: 1;width:100%;height:.375rem;border-radius:var(--k-radius);background:linear-gradient(to right,hsl(var(--k-primary) / var(--o)) var(--progress),hsl(var(--k-secondary)) var(--progress));-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;font-size:1rem}[k=slider]:disabled{--o: .5}[k=slider]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1em;height:1em;border-radius:9999px;background-color:hsl(var(--k-primary-foreground));border:1px solid hsl(var(--k-primary) / var(--o));transition:box-shadow .15s ease}[k=slider]:not(:disabled)::-webkit-slider-thumb:hover,[k=slider]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px hsl(var(--k-ring) / .2)}[k=slider]::-moz-range-thumb{width:1em;height:1em;border-radius:9999px;background-color:hsl(var(--k-primary-foreground));border:1px solid hsl(var(--k-primary) / var(--o));transition:box-shadow .15s ease}[k=slider]:not(:disabled)::-moz-range-thumb:hover,[k=slider]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px hsl(var(--k-ring) / .2)}[k=separator]{width:100%;height:1px;background-color:hsl(var(--k-border))}[k=avatar]{display:inline-block;width:2rem;height:2rem;border-radius:9999px;object-fit:cover;background-color:hsl(var(--k-muted));font-size:.01em;position:relative;overflow:hidden}[k=avatar]:after{position:absolute;display:block;left:0;top:0;width:100%;height:100%;background-color:hsl(var(--k-muted));font-size:100em;display:flex;align-items:center;justify-content:center;content:attr(alt)}[k=toggle]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid hsl(var(--k-input));background-color:hsl(var(--k-background));color:hsl(var(--k-foreground));border-radius:var(--k-radius);padding:.25rem .75rem;font-size:.875rem;cursor:pointer;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1)}[k=toggle][aria-pressed=true]{border-color:hsl(var(--k-primary));background-color:hsl(var(--k-primary) / .8);color:hsl(var(--k-primary-foreground))}[k=toggle]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=toggle]:disabled{pointer-events:none;opacity:.5}[k=toggle-group]{display:inline-flex;gap:0}[k=toggle-group]>[k=toggle]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}[k=toggle-group]>[k=toggle]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}[k=toggle-group]>[k=toggle]+[k=toggle]{margin-left:-1px}[k=toggle-group]>[k=toggle][aria-pressed=true],[k=toggle-group]>[k=toggle]:focus-visible{position:relative;z-index:1}[k=aspect-ratio]{position:relative;width:100%;--ratio: 1 / 1;aspect-ratio:var(--ratio)}[k=aspect-ratio]>*{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}[k=scroll-area]{overflow:auto;scrollbar-width:thin}[k=alert]{border-radius:var(--k-radius);border:1px solid hsl(var(--k-border));padding:1rem;background-color:hsl(var(--k-muted));color:hsl(var(--k-foreground))}[k=alert][variant=destructive]{background-color:hsl(var(--k-destructive));color:hsl(var(--k-destructive-foreground))}[k=table]{width:100%;border-collapse:collapse;font-size:.875rem}[k=table] th,[k=table] td{border:1px solid hsl(var(--k-border));padding:.5rem}[k=table] th{background-color:hsl(var(--k-muted));text-align:left}[k=toast-container]{position:fixed;bottom:1rem;right:1rem;width:20rem;pointer-events:none;--gap: .5rem;z-index:1000}[k=toast]{position:absolute;right:0;left:0;bottom:0;--scale: 1;--offset: 0;background:hsl(var(--k-popover));font-size:.875rem;height:4rem;color:hsl(var(--k-popover-foreground) / .7);border:1px solid hsl(var(--k-border));border-radius:var(--k-radius);padding:.5rem .75rem;box-shadow:0 4px 12px #00000026;opacity:0;transform:translateY(calc(100% + var(--offset))) scale(var(--scale));pointer-events:auto;transition:transform .4s var(--k-ease-elastic),opacity .4s var(--k-ease-elastic);display:grid;grid-template:auto auto / 0fr auto 1fr;grid-auto-flow:column;grid-column-gap:.5rem;align-items:center;align-content:center}[k=toast]:after{content:"";position:absolute;top:100%;left:0;width:100%;height:.75rem}[k=toast-container]:hover [k=toast]{--gap: -4.5rem;transform:translateY(var(--offset))}[k=toast-icon]{grid-area:1 / 1 / 3 / 2}[k=toast-title]{grid-area:1 / 2 / 2 / 3}[k=toast-action]{grid-area:1 / 3 / 3 / 4}[k=toast-title]{margin:0;padding:0;font:inherit;line-height:inherit;font-weight:600;color:hsl(var(--k-popover-foreground))}[k=toast-content]{max-height:2rem;line-clamp:2;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis!important}[k=toast-title]+[k=toast-content]{font-size:.8rem}[k=toast] [k=button]{height:auto;border-radius:calc(var(--k-radius) - 2px);padding:.2rem .4rem;font-size:.8125rem}[k=toast]:nth-last-child(4){--offset: calc(3 * var(--gap));--scale: .85;z-index:0}[k=toast]:nth-last-child(3){--offset: calc(2 * var(--gap));--scale: .9;z-index:1}[k=toast]:nth-last-child(2){--offset: var(--gap);--scale: .95;z-index:2}[k=toast]:nth-last-child(1){--offset: 0;--scale: 1;z-index:3}[k=toast][data-mounted]{opacity:1;transform:translateY(calc(-1 * var(--offset))) scale(var(--scale))}[k=toast]:nth-last-child(1):not([data-mounted]){transform:translateY(calc(100% + .25rem)) scale(var(--scale))}[k=toast][data-closing]{opacity:0;transform:translateY(calc(110% + var(--offset))) scale(var(--scale))}[k=collapsible]>summary{display:none}[k=collapsible]::details-content{overflow:clip;height:0;transition:height .25s var(--k-ease),content-visibility .25s linear allow-discrete}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}[k=collapsible][open]::details-content{height:auto}}@supports not (interpolate-size: allow-keywords){[k=collapsible]::details-content{transition:none}[k=collapsible][open]::details-content{height:auto}}[k=resizable]{resize:both;overflow:auto;border:1px solid hsl(var(--k-border));border-radius:var(--k-radius);padding:1rem;min-width:2rem;min-height:2rem}[k=sheet-content]{border:none;padding:1rem;margin:0;width:20rem;max-width:90vw;height:100vh;max-height:100vh;position:fixed;left:auto;top:0;right:0;bottom:0;background-color:hsl(var(--k-background));box-shadow:0 4px 12px #00000026;border-radius:0;overscroll-behavior:contain;transform:translate(100%);transition:transform .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=sheet-content][open]{transform:translate(0)}@starting-style{[k=sheet-content][open]{transform:translate(100%)}}[k=sheet-content]::backdrop{background-color:#000c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);overscroll-behavior:contain;overflow:auto;scrollbar-width:none;opacity:0;transition:opacity .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=sheet-content][open]::backdrop{opacity:1}@starting-style{[k=sheet-content][open]::backdrop{opacity:0}}[k=sidebar]{position:fixed;top:0;left:0;bottom:0;width:16rem;height:100vh;max-height:100vh;margin:0;padding:.5rem;flex-shrink:0;display:flex;flex-direction:column;border:none;border-right:1px solid hsl(var(--k-border));background-color:hsl(var(--k-sidebar));overflow:auto;overscroll-behavior:contain;transition:all .3s var(--k-ease);z-index:500;gap:.5rem}[k=sidebar] nav{display:flex;flex-direction:column}[k=sidebar] nav a,[k=sidebar] nav button{display:flex;align-items:center;padding:.35rem .75rem;border:none;background:transparent;color:hsl(var(--k-foreground));font-size:.875rem;line-height:1.25rem;border-radius:.375rem;cursor:pointer;transition:all .15s ease;text-decoration:none;width:100%}[k=sidebar] nav a:hover,[k=sidebar] nav button:hover,[k=sidebar] nav a[aria-current=page],[k=sidebar] nav button[aria-current=page]{background-color:hsl(var(--k-accent));color:hsl(var(--k-accent-foreground))}[k=sidebar] h2,[k=sidebar] h3{font-size:.75rem;font-weight:600;color:hsl(var(--k-muted-foreground));text-transform:uppercase;letter-spacing:.05em;margin:.5rem 0 0;padding:0 .75rem}@media (min-width: 641px){[k=sidebar]+*{transition:padding-left .3s var(--k-ease)}[k=sidebar]:not([hidden])+*{padding-left:16rem}[k=sidebar][hidden]{margin-right:-16rem;transform:translate(-100%);opacity:0;pointer-events:none}}@media (max-width: 640px){[k=sidebar]{--modal: 1;position:fixed;max-width:80vw;border-right:none;background-color:hsl(var(--k-background));transform:translate(-20px) translate(-100%);transition:transform .3s var(--k-ease);box-shadow:0 0 15px #00000026}[k=sidebar][open]{transform:none}[k=sidebar]::backdrop{background-color:#000c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);overscroll-behavior:contain;overflow:auto;scrollbar-width:none}}[k=breadcrumb-list]{list-style:none;display:flex;gap:.25rem;padding:0;margin:0}[k=breadcrumb-item]:after{content:"/";padding:0 .25rem}[k=breadcrumb-item]:last-child:after{content:none}[k=breadcrumb-link]{color:inherit;text-decoration:none}[k=breadcrumb-link]:hover{text-decoration:underline}[k=menubar]{display:flex;gap:.5rem}[k=menubar-item]{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font:inherit;color:inherit}[k=menubar-item]:hover{background-color:hsl(var(--k-muted))}[k=navigation-menu-list]{list-style:none;display:flex;gap:.5rem;padding:0;margin:0}[k=navigation-menu-link]{text-decoration:none;color:inherit;padding:.25rem .5rem;border-radius:var(--k-radius)}[k=navigation-menu-link]:hover{background-color:hsl(var(--k-muted))}[k=pagination-list]{list-style:none;display:flex;gap:.25rem;padding:0;margin:0}[k=pagination-link]{background:none;border:1px solid hsl(var(--k-border));border-radius:var(--k-radius);padding:.25rem .5rem;cursor:pointer}[k=pagination-link]:hover{background-color:hsl(var(--k-muted))}[k=pagination-link][aria-current=page]{background-color:hsl(var(--k-primary));color:hsl(var(--k-primary-foreground));border-color:hsl(var(--k-primary))}[k=combobox]{position:relative;display:inline-block}[k=combobox-input]{display:block;width:100%;padding:.5rem .75rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius);background-color:hsl(var(--k-background));font:inherit;font-size:.875rem}[k=combobox-list]{width:100%}[k=combobox-list] ul{list-style:none;margin:0;padding:0}body [k=context-menu]{position:fixed;left:var(--k-context-menu-client-x, 0px);top:var(--k-context-menu-client-y, 0px);--tf-x: 0;min-width:6rem;margin:0;max-inline-size:calc(100vw - .5rem);max-block-size:calc(100dvh - .5rem);overflow:auto}@position-try --k-context-menu-right-top{left:auto;right:var(--k-context-menu-client-right, 0px);top:var(--k-context-menu-client-y, 0px);bottom:auto}@position-try --k-context-menu-left-bottom{left:var(--k-context-menu-client-x, 0px);right:auto;top:auto;bottom:var(--k-context-menu-client-bottom, 0px)}@position-try --k-context-menu-right-bottom{left:auto;right:var(--k-context-menu-client-right, 0px);top:auto;bottom:var(--k-context-menu-client-bottom, 0px)}@supports (position-try-fallbacks: --k-context-menu-right-top){body [k=context-menu]{position-try-fallbacks:--k-context-menu-right-top,--k-context-menu-left-bottom,--k-context-menu-right-bottom}}[k=context-menu]::backdrop{opacity:0}[k=drawer-content]{border:none;padding:1rem;margin:0;width:100%;max-width:100vw;border-radius:0;position:fixed;top:auto;bottom:0;left:0;background-color:hsl(var(--k-background));overscroll-behavior:contain;transform:translateY(100%);transition:transform .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=drawer-content][open]{transform:translateY(0)}@starting-style{[k=drawer-content][open]{transform:translateY(100%)}}[k=drawer-content]::backdrop{background-color:#000c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);overscroll-behavior:contain;overflow:auto;scrollbar-width:none;opacity:0;transition:opacity .3s var(--k-ease),display .3s allow-discrete,overlay .3s allow-discrete}[k=drawer-content][open]::backdrop{opacity:1}@starting-style{[k=drawer-content][open]::backdrop{opacity:0}}[k=popover],[k=dropdown]{position:relative;display:inline-block;overflow:visible}[k=popover],[k=dropdown],[k=combobox]{anchor-scope:--k-trigger}[k=popover]>[commandfor],[k=dropdown]>[commandfor],[k=combobox]>[k=combobox-input]{anchor-name:--k-trigger}[k=popover-content],[k=dropdown-content],[k=context-menu],[k=combobox-list]{position:absolute;display:none;top:100%;left:50%;--tf-x: -50%;min-width:100%;transform-origin:top center;background-color:hsl(var(--k-popover));color:hsl(var(--k-popover-foreground));border-radius:var(--k-radius);border:1px solid hsl(var(--k-border));padding:0;margin:.25rem 0 0;box-shadow:0 4px 12px #00000026;pointer-events:none;opacity:0;transform:translate(var(--tf-x)) scale(.94);transition:opacity .2s var(--k-ease),transform .2s var(--k-ease),display .2s allow-discrete,overlay .2s allow-discrete;z-index:10;outline:none}[k=popover-content][open],[k=dropdown-content][open],[k=context-menu][open],[k=combobox-list][open]{display:inline-block;pointer-events:auto;opacity:1;transform:translate(var(--tf-x)) scale(1)}@starting-style{[k=popover-content][open],[k=dropdown-content][open],[k=context-menu][open],[k=combobox-list][open]{opacity:0;transform:translate(var(--tf-x)) scale(.94)}}@position-try --k-menu-right-top{left:auto;right:anchor(right);top:anchor(bottom);bottom:auto;margin:.25rem 0 0}@position-try --k-menu-left-bottom{left:anchor(left);right:auto;top:auto;bottom:anchor(top);margin:0 0 .25rem}@position-try --k-menu-right-bottom{left:auto;right:anchor(right);top:auto;bottom:anchor(top);margin:0 0 .25rem}@supports (position-anchor: --k-trigger) and (position-try-fallbacks: --k-menu-right-top){[k=popover-content],[k=dropdown-content],[k=combobox-list]{position:fixed;position-anchor:--k-trigger;left:anchor(left);right:auto;top:anchor(bottom);bottom:auto;margin:.25rem 0 0;width:max-content;max-inline-size:min(24rem,calc(100vw - 1rem));max-block-size:min(24rem,calc(100dvh - 1rem));overflow:auto;position-try-fallbacks:--k-menu-right-top,--k-menu-left-bottom,--k-menu-right-bottom}[k=popover-content]{--tf-x: 0;min-width:anchor-size(width)}[k=dropdown-content]{--tf-x: 0;min-width:max(13.5rem,anchor-size(width))}[k=combobox-list]{--tf-x: 0;min-width:anchor-size(width)}}[k=dropdown-content]{left:0;--tf-x: 0;min-width:max(13.5rem,100%)}[k=dropdown-content][to=left]{left:auto;right:0;--tf-x: 0;min-width:max(13.5rem,100%)}[k=dropdown-content],[k=context-menu],[k=combobox-list]{border-radius:calc(var(--k-radius) + .25rem);border-color:hsl(var(--k-border));padding:.5rem;box-shadow:0 14px 30px #00000024}[k=dropdown-menu-item],[k=context-menu-item],[k=combobox-option]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;border-radius:calc(var(--k-radius) - .125rem);text-align:left;padding:.5rem .75rem;min-height:2.375rem;white-space:nowrap;font:inherit;font-size:1.05rem;line-height:1.2;cursor:pointer;color:inherit;text-decoration:none;outline:none}[k=dropdown-menu-item]:hover,[k=dropdown-menu-item]:focus-visible,[k=dropdown-menu-item][selected],[k=context-menu-item]:hover,[k=context-menu-item]:focus-visible,[k=context-menu-item][selected],[k=combobox-option]:hover,[k=combobox-option]:focus-visible,[k=combobox-option][selected]{background-color:hsl(var(--k-primary));color:hsl(var(--k-primary-foreground))}[k=dropdown-menu-item][disabled],[k=dropdown-menu-item]:disabled,[k=context-menu-item][disabled],[k=context-menu-item]:disabled,[k=combobox-option][disabled],[k=combobox-option]:disabled{opacity:.45;pointer-events:none}[k=dropdown-menu-item][shortcut]:after,[k=context-menu-item][shortcut]:after,[k=combobox-option][shortcut]:after{content:attr(shortcut);margin-left:auto;color:hsl(var(--k-muted-foreground));letter-spacing:.02em}[k=dropdown-menu-item][shortcut]:hover:after,[k=dropdown-menu-item][shortcut]:focus-visible:after,[k=dropdown-menu-item][selected]:after,[k=context-menu-item][shortcut]:hover:after,[k=context-menu-item][shortcut]:focus-visible:after,[k=context-menu-item][selected]:after,[k=combobox-option][shortcut]:hover:after,[k=combobox-option][shortcut]:focus-visible:after,[k=combobox-option][selected]:after{color:inherit;opacity:.85}[k=dropdown-menu-item][destructive],[k=context-menu-item][destructive],[k=combobox-option][destructive]{color:hsl(var(--k-destructive))}[k=dropdown-content] hr,[k=context-menu] hr,[k=combobox-list] hr,[k=dropdown-content] [role=separator],[k=context-menu] [role=separator],[k=combobox-list] [role=separator],[k=dropdown-content] [k=separator],[k=context-menu] [k=separator],[k=combobox-list] [k=separator]{border:0;border-top:1px solid hsl(var(--k-border));height:0;margin:.5rem .25rem}@supports (position-anchor: --k-trigger){[k=dropdown-content]{left:anchor(left);right:auto;--tf-x: 0;min-width:max(13.5rem,anchor-size(width))}[k=dropdown-content][to=left]{left:auto;right:anchor(right);--tf-x: 0;min-width:max(13.5rem,anchor-size(width))}}[k=hover-card]{position:relative;display:inline-block}[k=hover-card-content]{position:absolute;top:100%;left:50%;width:max-content;transform:translate(-50%) scale(.95);transform-origin:top center;background-color:hsl(var(--k-popover));color:hsl(var(--k-popover-foreground));border-radius:var(--k-radius);border:1px solid hsl(var(--k-border));padding:.5rem;margin-top:.25rem;box-shadow:0 4px 12px #00000026;opacity:0;pointer-events:none;transition:opacity .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1);z-index:10}[k=hover-card]:hover>[k=hover-card-content]{opacity:1;pointer-events:auto;transform:translate(-50%) scale(1)}[k=calendar]{padding:.25rem .5rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius)}[k=carousel]{position:relative;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;width:100%;height:200px;scrollbar-width:none;-ms-overflow-style:none}[k=carousel]::-webkit-scrollbar{display:none}[k=carousel-item]{flex:0 0 100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center}[k=carousel-previous],[k=carousel-next]{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:none;padding:.5rem;cursor:pointer;font-size:1.2rem;border-radius:.25rem;z-index:1}[k=carousel-previous]:hover,[k=carousel-next]:hover{background:#000000b3}[k=carousel-previous]{left:.5rem}[k=carousel-next]{right:.5rem}[k=color-picker]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.5rem;height:2.5rem;padding:.25rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius);background-color:hsl(var(--k-background));cursor:pointer}[k=color-picker]::-webkit-color-swatch-wrapper{padding:0;border-radius:calc(var(--k-radius) - 4px)}[k=color-picker]::-webkit-color-swatch{border:none;border-radius:calc(var(--k-radius) - 4px)}[k=color-picker]::-moz-color-swatch{border:none;border-radius:calc(var(--k-radius) - 4px)}[k=color-picker]:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--k-ring))}[k=color-picker]:disabled{cursor:not-allowed;opacity:.5}[k=date-picker]{padding:.25rem .5rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius)}[k=file-upload]{font:inherit;font-size:.875rem}[k=file-upload]::file-selector-button{margin-right:.75rem;padding:.25rem .75rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius);background-color:hsl(var(--k-background));font:inherit;font-weight:500;cursor:pointer}[k=file-upload]::file-selector-button:hover{background-color:hsl(var(--k-accent))}[k=file-upload]:disabled{opacity:.5;cursor:not-allowed}[k=time-picker]{padding:.25rem .5rem;border:1px solid hsl(var(--k-input));border-radius:var(--k-radius)}[k=spinner]{display:inline-block;width:1.5rem;height:1.5rem;--k-spinner-color: currentColor;--k-spinner-track: hsl(var(--k-muted-foreground) / .6);border:2px solid transparent;border-top-color:var(--k-spinner-color);border-radius:9999px;animation:p-spinner-spin 1s linear infinite;flex-shrink:0;position:relative;box-sizing:border-box}[k=spinner]:before,[k=spinner]:after{box-sizing:border-box}[k=spinner][variant=primary]{--k-spinner-color: hsl(var(--k-primary))}[k=spinner][variant=secondary]{--k-spinner-color: hsl(var(--k-muted-foreground))}[k=spinner][variant=destructive]{--k-spinner-color: hsl(var(--k-destructive))}[k=spinner][size=sm]{width:1rem;height:1rem}[k=spinner][size=lg]{width:2rem;height:2rem;border-width:3px}[k=spinner][type=turn]{border:2px solid var(--k-spinner-track);animation:p-spinner-spin .9s linear infinite}[k=spinner][type=turn]:after{content:"";position:absolute;top:.175rem;right:.175rem;bottom:.175rem;left:.175rem;border-radius:9999px;border:2px solid;border-color:var(--k-spinner-color) transparent}[k=spinner][type=concentric]{border:2px solid;border-color:var(--k-spinner-track) var(--k-spinner-track) transparent;animation:p-spinner-spin 1s linear infinite}[k=spinner][type=concentric]:after{content:"";position:absolute;top:.25rem;right:.25rem;bottom:.25rem;left:.25rem;border-radius:9999px;border:2px solid;border-color:transparent var(--k-spinner-color) var(--k-spinner-color);animation:p-spinner-rotation-back .55s linear infinite}[k=spinner][type=ripple]{border:0;animation:none}[k=spinner][type=ripple]:before,[k=spinner][type=ripple]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9999px;border:2px solid var(--k-spinner-color);animation:p-spinner-ripple 1.8s linear infinite}[k=spinner][type=ripple]:after{animation-delay:.9s}[k=spinner][type=light]{border:0;border-radius:9999px;padding:2px;background:var(--k-spinner-color);--k-spinner-light-mask: conic-gradient(transparent 12%, #000), linear-gradient(#000 0 0) content-box;-webkit-mask:var(--k-spinner-light-mask);mask:var(--k-spinner-light-mask);-webkit-mask-composite:xor;mask-composite:subtract;animation:p-spinner-spin .95s linear infinite}[k=spinner][type=light]:after{content:none}[k=spinner][type=radar]{border:0;background:color-mix(in srgb,var(--k-spinner-color) 12%,transparent);border-radius:9999px;animation:p-spinner-radar-pulse 2s linear infinite}[k=spinner][type=radar]:before,[k=spinner][type=radar]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9999px;background:var(--k-spinner-color);opacity:.25;animation:p-spinner-radar-rings 2s ease-out infinite}[k=spinner][type=radar]:after{animation-delay:1s}[k=spinner][type=bubble]{border:0;animation:p-spinner-spin .95s linear infinite}[k=spinner][type=bubble]:before,[k=spinner][type=bubble]:after{content:"";position:absolute;top:50%;left:50%;width:50%;height:50%;border-radius:9999px}[k=spinner][type=bubble]:before{background:color-mix(in srgb,var(--k-spinner-track) 85%,transparent);animation:p-spinner-bubble-muted 1s ease-in-out infinite}[k=spinner][type=bubble]:after{background:var(--k-spinner-color);animation:p-spinner-bubble-primary 1s ease-in-out infinite}[k=spinner][type=circle]{border:2px solid var(--k-spinner-color);border-radius:9999px;animation:p-spinner-circle-clip .8s infinite linear alternate,p-spinner-circle-flip 1.6s infinite linear}[k=spinner][type=dots]{border:0;border-radius:0;width:1.5rem;height:.75rem;aspect-ratio:2;--k-spinner-dot: no-repeat radial-gradient(circle closest-side, var(--k-spinner-color) 88%, transparent);background:var(--k-spinner-dot) 0% 50%,var(--k-spinner-dot) 50% 50%,var(--k-spinner-dot) 100% 50%;background-size:calc(100% / 3) 70%;animation:p-spinner-dots 1s infinite linear}[k=spinner][size=sm][variant=dots]{width:1rem;height:.5rem}[k=spinner][size=lg][variant=dots]{width:2rem;height:1rem}[k=spinner][type=fold]{border:0;transform:rotate(45deg);animation:none}[k=spinner][type=fold]:before{content:"";position:absolute;width:50%;height:50%;left:0;top:-50%;box-shadow:0 .75rem transparent,.75rem .75rem transparent,.75rem 1.5rem transparent,0 1.5rem transparent;animation:p-spinner-fold-cells 2.8s ease infinite}[k=spinner][type=fold]:after{content:"";position:absolute;width:50%;height:50%;left:0;top:0;background:color-mix(in srgb,var(--k-spinner-color) 85%,transparent);box-shadow:0 0 10px hsl(var(--k-foreground) / .12);animation:p-spinner-fold-face 1.4s ease infinite}@keyframes p-spinner-spin{to{transform:rotate(360deg)}}@keyframes p-spinner-rotation-back{to{transform:rotate(-360deg)}}@keyframes p-spinner-ripple{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}@keyframes p-spinner-radar-pulse{0%,to{background:color-mix(in srgb,var(--k-spinner-color) 10%,transparent)}50%{background:color-mix(in srgb,var(--k-spinner-color) 18%,transparent)}}@keyframes p-spinner-radar-rings{0%{transform:scale(.15);opacity:.45}to{transform:scale(1);opacity:0}}@keyframes p-spinner-bubble-muted{0%,to{transform:translate(-20%,-20%) scale(.55)}50%{transform:translate(-90%,-90%) scale(1)}}@keyframes p-spinner-bubble-primary{0%,to{transform:translate(-100%,-100%) scale(.55)}50%{transform:translate(-30%,-30%) scale(1)}}@keyframes p-spinner-circle-clip{0%{clip-path:polygon(50% 50%,0 0,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%)}12.5%{clip-path:polygon(50% 50%,0 0,50% 0%,100% 0%,100% 0%,100% 0%,100% 0%)}25%{clip-path:polygon(50% 50%,0 0,50% 0%,100% 0%,100% 100%,100% 100%,100% 100%)}50%{clip-path:polygon(50% 50%,0 0,50% 0%,100% 0%,100% 100%,50% 100%,0 100%)}62.5%{clip-path:polygon(50% 50%,100% 0,100% 0%,100% 0%,100% 100%,50% 100%,0 100%)}75%{clip-path:polygon(50% 50%,100% 100%,100% 100%,100% 100%,100% 100%,50% 100%,0 100%)}to{clip-path:polygon(50% 50%,50% 100%,50% 100%,50% 100%,50% 100%,50% 100%,0 100%)}}@keyframes p-spinner-circle-flip{0%{transform:scaleY(1) rotate(0)}49.99%{transform:scaleY(1) rotate(135deg)}50%{transform:scaleY(-1) rotate(0)}to{transform:scaleY(-1) rotate(-135deg)}}@keyframes p-spinner-dots{20%{background-position:0% 0%,50% 50%,100% 50%}40%{background-position:0% 100%,50% 0%,100% 50%}60%{background-position:0% 50%,50% 100%,100% 0%}80%{background-position:0% 50%,50% 50%,100% 100%}}@keyframes p-spinner-fold-cells{0%{box-shadow:0 .75rem transparent,.75rem .75rem transparent,.75rem 1.5rem transparent,0 1.5rem transparent}12%{box-shadow:0 .75rem var(--k-spinner-color),.75rem .75rem transparent,.75rem 1.5rem transparent,0 1.5rem transparent}25%{box-shadow:0 .75rem var(--k-spinner-color),.75rem .75rem var(--k-spinner-color),.75rem 1.5rem transparent,0 1.5rem transparent}37%{box-shadow:0 .75rem var(--k-spinner-color),.75rem .75rem var(--k-spinner-color),.75rem 1.5rem var(--k-spinner-color),0 1.5rem transparent}50%{box-shadow:0 .75rem var(--k-spinner-color),.75rem .75rem var(--k-spinner-color),.75rem 1.5rem var(--k-spinner-color),0 1.5rem var(--k-spinner-color)}62%{box-shadow:0 .75rem transparent,.75rem .75rem var(--k-spinner-color),.75rem 1.5rem var(--k-spinner-color),0 1.5rem var(--k-spinner-color)}75%{box-shadow:0 .75rem transparent,.75rem .75rem transparent,.75rem 1.5rem var(--k-spinner-color),0 1.5rem var(--k-spinner-color)}87%{box-shadow:0 .75rem transparent,.75rem .75rem transparent,.75rem 1.5rem transparent,0 1.5rem var(--k-spinner-color)}to{box-shadow:0 .75rem transparent,.75rem .75rem transparent,.75rem 1.5rem transparent,0 1.5rem transparent}}@keyframes p-spinner-fold-face{0%{transform:translate(0) rotateX(0) rotateY(0)}25%{transform:translate(100%) rotateY(180deg)}50%{transform:translate(100%,100%) rotateX(-180deg) rotateY(180deg)}75%{transform:translateY(100%) rotateX(-180deg) rotateY(360deg)}to{transform:translate(0) rotateY(360deg)}}[k=input-group]{display:flex;align-items:stretch;border:none;padding:0;margin:0}[k=input-group]>:is([k=input],[k=textarea],[k=select],input,textarea,select){flex:1}[k=input-group]>:is([k=input],[k=textarea],[k=select],[k=button],input,textarea,select,button){border-radius:0}[k=input-group]>:is([k=input],[k=textarea],[k=select],input,textarea,select):not(:last-child){border-inline-end:0}[k=input-group]>:is([k=input],[k=textarea],[k=select],[k=button],input,textarea,select,button):first-child{border-start-start-radius:var(--k-radius);border-end-start-radius:var(--k-radius)}[k=input-group]>:is([k=input],[k=textarea],[k=select],[k=button],input,textarea,select,button):last-child{border-start-end-radius:var(--k-radius);border-end-end-radius:var(--k-radius)}[k=input-group]>legend{float:inline-start;display:inline-flex;align-items:center;padding:0 .75rem;font-size:.875rem;font-weight:400;color:hsl(var(--k-muted-foreground));background-color:hsl(var(--k-muted));border:1px solid hsl(var(--k-input));border-inline-end:none;border-start-start-radius:var(--k-radius);border-end-start-radius:var(--k-radius)}[k=input-group]:has(>:is([k=input],[k=textarea],[k=select]):focus-visible):not(:has(>:is([k=input],[k=textarea],[k=select])~:is([k=input],[k=textarea],[k=select]))){box-shadow:0 0 0 2px hsl(var(--k-ring));border-radius:var(--k-radius)}[k=input-group]:has(>:is([k=input],[k=textarea],[k=select]):focus-visible):not(:has(>:is([k=input],[k=textarea],[k=select])~:is([k=input],[k=textarea],[k=select])))>:is([k=input],[k=textarea],[k=select]):focus-visible{box-shadow:none;border-color:hsl(var(--k-input))}[k=tree]{--k-tree-indent: 1rem;display:grid;gap:.125rem;font-size:.875rem}[k=tree-item]{margin:0}[k=tree-item]::details-content{overflow:clip;height:0;transition:height .25s var(--k-ease),content-visibility .25s linear allow-discrete}@supports (interpolate-size: allow-keywords){:root{interpolate-size:allow-keywords}[k=tree-item][open]::details-content{height:auto}}@supports not (interpolate-size: allow-keywords){[k=tree-item]::details-content{transition:none}[k=tree-item][open]::details-content{height:auto}}[k=tree-item]>[k=tree-label]{list-style:none;display:flex;align-items:center;gap:.375rem;cursor:pointer;color:hsl(var(--k-foreground));border-radius:calc(var(--k-radius) - 2px);padding:.25rem .5rem}[k=tree-item]>[k=tree-label]::-webkit-details-marker{display:none}[k=tree-item]>[k=tree-label]:before{content:"▸";color:hsl(var(--k-muted-foreground));opacity:.5;transition:transform .2s var(--k-ease)}[k=tree-item][open]>[k=tree-label]:before{transform:rotate(90deg)}[k=tree-group]{display:grid;gap:.125rem;margin-inline-start:var(--k-tree-indent);border-inline-start:1px solid hsl(var(--k-border));padding-inline-start:.5rem}[k=tree-leaf]{border:0;margin:0;background:transparent;color:hsl(var(--k-foreground));text-align:left;border-radius:calc(var(--k-radius) - 2px);padding:.25rem .5rem;font:inherit;width:100%;cursor:pointer}[k=tree-item]>[k=tree-label]:is(:hover,:focus-visible),[k=tree-leaf]:is(:hover,:focus-visible){background:hsl(var(--k-accent));color:hsl(var(--k-accent-foreground))}[k=tree-item]>[k=tree-label]:focus-visible,[k=tree-leaf]:focus-visible{outline:2px solid hsl(var(--k-ring));outline-offset:1px}:root{--k-background: 0 0% 100%;--k-foreground: 222.2 84% 4.9%;--k-card: 0 0% 100%;--k-card-foreground: 222.2 84% 4.9%;--k-popover: 0 0% 100%;--k-popover-foreground: 222.2 84% 4.9%;--k-sidebar: 0 0% 98%;--k-primary: 222.2 47.4% 11.2%;--k-primary-foreground: 210 40% 98%;--k-primary-hover: 222.2 47.4% 8.2%;--k-secondary: 210 40% 96%;--k-secondary-foreground: 222.2 84% 4.9%;--k-secondary-hover: 210 40% 92%;--k-muted: 210 40% 96%;--k-muted-foreground: 215.4 16.3% 46.9%;--k-accent: 210 40% 95%;--k-accent-foreground: 222.2 84% 4.9%;--k-destructive: 0 84.2% 60.2%;--k-destructive-foreground: 210 40% 98%;--k-destructive-hover: 0 84.2% 50.2%;--k-border: 214.3 31.8% 91.4%;--k-input: 214.3 31.8% 91.4%;--k-ring: 222.2 84% 4.9%;--k-radius: .5rem;--k-ease-fallback: cubic-bezier(.4, 0, .2, 1);--k-ease-out: var(--k-ease-fallback);--k-ease-elastic: var(--k-ease-fallback);--k-ease-spring: var(--k-ease-fallback);--k-ease-out: linear( 0, .012 .9%, .049 2%, .409 9.3%, .513 11.9%, .606 14.7%, .691 17.9%, .762 21.3%, .82 25%, .868 29.1%, .907 33.6%, .937 38.7%, .976 51.3%, .994 68.8%, 1 );--k-ease-elastic: linear( 0, .007 1.2%, .027 2.5%, .109 5.4%, .573 16.5%, .766 22.1%, .838 24.8%, .898 27.6%, .946 30.5%, .983 33.5%, 1.021 39.1%, 1.035 46%, 1.004 74.2%, 1 );--k-ease-spring: linear( 0, -.012 8.8%, -.081 25.4%, -.078 29.8%, -.052 33.7%, .024 38.6%, .149 43%, .318 46.9%, .785 55.3%, .924 59.3%, 1.017 63.6%, 1.068 68.2%, 1.082 73.4%, 1.07 78.2%, 1.011 91.5%, 1 );--k-ease: var(--k-ease-out)}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--k-background: 222.2 50% 7%;--k-foreground: 210 40% 98%;--k-card: 222.2 84% 4.9%;--k-card-foreground: 210 40% 98%;--k-popover: 222.2 84% 4.9%;--k-popover-foreground: 210 40% 98%;--k-sidebar: 222.2 50% 9%;--k-primary: 210 40% 98%;--k-primary-foreground: 222.2 47.4% 11.2%;--k-primary-hover: 210 40% 90%;--k-secondary: 217.2 32.6% 17.5%;--k-secondary-foreground: 210 40% 98%;--k-secondary-hover: 217.2 32.6% 25%;--k-muted: 217.2 32.6% 17.5%;--k-muted-foreground: 215 20.2% 65.1%;--k-accent: 217.2 32.6% 17.5%;--k-accent-foreground: 210 40% 98%;--k-destructive: 0 62.8% 30.6%;--k-destructive-foreground: 210 40% 98%;--k-destructive-hover: 0 62.8% 40%;--k-border: 217.2 32.6% 17.5%;--k-input: 217.2 32.6% 17.5%;--k-ring: 212.7 26.8% 83.9%}}.dark{color-scheme:dark;--k-background: 222.2 50% 7%;--k-foreground: 210 40% 98%;--k-card: 222.2 84% 4.9%;--k-card-foreground: 210 40% 98%;--k-popover: 222.2 84% 4.9%;--k-popover-foreground: 210 40% 98%;--k-sidebar: 222.2 50% 9%;--k-primary: 210 40% 98%;--k-primary-foreground: 222.2 47.4% 11.2%;--k-primary-hover: 210 40% 90%;--k-secondary: 217.2 32.6% 17.5%;--k-secondary-foreground: 210 40% 98%;--k-secondary-hover: 217.2 32.6% 25%;--k-muted: 217.2 32.6% 17.5%;--k-muted-foreground: 215 20.2% 65.1%;--k-accent: 217.2 32.6% 17.5%;--k-accent-foreground: 210 40% 98%;--k-destructive: 0 62.8% 30.6%;--k-destructive-foreground: 210 40% 98%;--k-destructive-hover: 0 62.8% 40%;--k-border: 217.2 32.6% 17.5%;--k-input: 217.2 32.6% 17.5%;--k-ring: 212.7 26.8% 83.9%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.1}p{margin:.5rem 0}ul,ol{margin-left:1.25rem;padding:0}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,820 @@
|
|
|
1
|
+
import { options as q, h as O, cloneElement as H, createContext as g } from "preact";
|
|
2
|
+
import { jsx as u, jsxs as W } from "preact/jsx-runtime";
|
|
3
|
+
import { useId as v, useContext as m, useState as z, useEffect as U } from "preact/hooks";
|
|
4
|
+
let B;
|
|
5
|
+
function b() {
|
|
6
|
+
B || typeof document > "u" || (B = !0, !("commandFor" in HTMLButtonElement.prototype) && addEventListener("click", V));
|
|
7
|
+
}
|
|
8
|
+
function R(t) {
|
|
9
|
+
return "closest" in t ? t : t.parentNode;
|
|
10
|
+
}
|
|
11
|
+
function V(t) {
|
|
12
|
+
var a;
|
|
13
|
+
const e = R(t.target), n = e.closest("[command]");
|
|
14
|
+
if (!n || t.defaultPrevented) return;
|
|
15
|
+
const o = n.getAttribute("commandfor"), i = o ? document.getElementById(o) : e;
|
|
16
|
+
if (!i) return;
|
|
17
|
+
t.preventDefault();
|
|
18
|
+
const c = n.getAttribute("command") || "toggle-popover";
|
|
19
|
+
if (c[0] === "-") {
|
|
20
|
+
const d = Object.defineProperties(
|
|
21
|
+
new Event("command", { bubbles: !0, cancelable: !0 }),
|
|
22
|
+
{
|
|
23
|
+
source: { value: n },
|
|
24
|
+
command: { value: c }
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
i.dispatchEvent(d);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const s = c.replace(/-([a-z])/g, (d, l) => l.toUpperCase());
|
|
31
|
+
(a = i[s]) == null || a.call(i);
|
|
32
|
+
}
|
|
33
|
+
let F;
|
|
34
|
+
function k() {
|
|
35
|
+
F || typeof document > "u" || (F = !0, addEventListener("click", X, !0));
|
|
36
|
+
}
|
|
37
|
+
function X(t) {
|
|
38
|
+
const e = t.target;
|
|
39
|
+
if (e.localName === "dialog" && e.getAttribute("k")) {
|
|
40
|
+
const { clientX: n, clientY: o } = t, { left: i, right: c, top: s, bottom: a } = e.getBoundingClientRect();
|
|
41
|
+
if (n < i || n > c || o < s || o > a) {
|
|
42
|
+
e.close(), t.preventDefault();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
for (const n of Array.from(
|
|
47
|
+
document.querySelectorAll(
|
|
48
|
+
'[k="dropdown-content"],[k="popover-content"]'
|
|
49
|
+
)
|
|
50
|
+
))
|
|
51
|
+
n.contains(e) || n.close();
|
|
52
|
+
}
|
|
53
|
+
let _;
|
|
54
|
+
function j() {
|
|
55
|
+
_ || typeof document > "u" || (_ = !0, addEventListener("keydown", Y));
|
|
56
|
+
}
|
|
57
|
+
function Y(t) {
|
|
58
|
+
const e = R(t.target);
|
|
59
|
+
let n = e.closest("dialog[k]"), o = !0;
|
|
60
|
+
if (n || (n = e.parentNode.querySelector("dialog[k][open]"), o = !1), !n) return;
|
|
61
|
+
const i = n.querySelector(
|
|
62
|
+
o ? "[k]:focus" : "[k][selected]"
|
|
63
|
+
);
|
|
64
|
+
if (t.key === "Enter" && !o) {
|
|
65
|
+
t.preventDefault(), i == null || i.click();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const c = t.key === "ArrowDown" ? 1 : t.key === "ArrowUp" ? -1 : 0;
|
|
69
|
+
if (!c) return;
|
|
70
|
+
if (t.preventDefault(), !i) {
|
|
71
|
+
const d = n.querySelectorAll("button[k],[k][tabindex]"), l = d[c > 0 ? 0 : d.length - 1];
|
|
72
|
+
o ? l == null || l.focus() : l == null || l.toggleAttribute("selected", !0);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const s = i.getAttribute("k");
|
|
76
|
+
if (!i) return;
|
|
77
|
+
let a = i;
|
|
78
|
+
for (; a = a[c > 0 ? "nextElementSibling" : "previousElementSibling"]; )
|
|
79
|
+
if (a.getAttribute("k") === s) {
|
|
80
|
+
o ? a.focus() : (i.toggleAttribute("selected", !1), a.toggleAttribute("selected", !0)), t.preventDefault();
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const N = q.__b;
|
|
85
|
+
q.__b = (t) => {
|
|
86
|
+
const e = t.type;
|
|
87
|
+
if (typeof e == "function" && "_pf" in e) {
|
|
88
|
+
const n = t.ref;
|
|
89
|
+
n && (t.props.ref = n, t.ref = null);
|
|
90
|
+
}
|
|
91
|
+
N && N(t);
|
|
92
|
+
};
|
|
93
|
+
function K(t) {
|
|
94
|
+
function e(n) {
|
|
95
|
+
const o = n.ref;
|
|
96
|
+
return o && (n.ref = void 0), t.call(this, n, o);
|
|
97
|
+
}
|
|
98
|
+
return e._pf = e;
|
|
99
|
+
}
|
|
100
|
+
function r(t, e = "div", n, o) {
|
|
101
|
+
const i = Object.getOwnPropertyDescriptors(n || {});
|
|
102
|
+
function c(a) {
|
|
103
|
+
let d;
|
|
104
|
+
this && (typeof this == "function" ? d = this(a) : this.current = a);
|
|
105
|
+
const l = o == null ? void 0 : o(a);
|
|
106
|
+
return () => {
|
|
107
|
+
d && d(), l && l();
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const s = K(function(d, l) {
|
|
111
|
+
let p = d;
|
|
112
|
+
if (n || o) {
|
|
113
|
+
const G = Object.create(d, i);
|
|
114
|
+
p = Object.assign(
|
|
115
|
+
{},
|
|
116
|
+
G,
|
|
117
|
+
d
|
|
118
|
+
), p.ref = this.$_ref || (this.$_ref = c.bind(l || d.ref));
|
|
119
|
+
}
|
|
120
|
+
p.k = t;
|
|
121
|
+
const h = typeof e == "function" ? e(d) : e;
|
|
122
|
+
return O(h, p);
|
|
123
|
+
});
|
|
124
|
+
return s.displayName = t, s;
|
|
125
|
+
}
|
|
126
|
+
const yt = r("badge", "span"), wt = r(
|
|
127
|
+
"button",
|
|
128
|
+
(t) => t.href ? "a" : "button"
|
|
129
|
+
), Tt = r(
|
|
130
|
+
"input",
|
|
131
|
+
"input"
|
|
132
|
+
), Et = r("card", "div");
|
|
133
|
+
function f(t, e) {
|
|
134
|
+
if (!t || typeof t != "object") return t;
|
|
135
|
+
if (!Array.isArray(t))
|
|
136
|
+
return H(t, e);
|
|
137
|
+
const n = [];
|
|
138
|
+
for (const o of t)
|
|
139
|
+
n.push(f(o, e));
|
|
140
|
+
return n;
|
|
141
|
+
}
|
|
142
|
+
const C = g(void 0);
|
|
143
|
+
function x({ id: t, children: e }) {
|
|
144
|
+
const n = v(), o = t ?? n;
|
|
145
|
+
return /* @__PURE__ */ u(C.Provider, { value: o, children: e });
|
|
146
|
+
}
|
|
147
|
+
function J({
|
|
148
|
+
children: t,
|
|
149
|
+
...e
|
|
150
|
+
}) {
|
|
151
|
+
b(), k();
|
|
152
|
+
const n = m(C);
|
|
153
|
+
return f(t, {
|
|
154
|
+
...e,
|
|
155
|
+
commandfor: n,
|
|
156
|
+
command: "show-modal"
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function Q({
|
|
160
|
+
id: t,
|
|
161
|
+
...e
|
|
162
|
+
}) {
|
|
163
|
+
const n = m(C);
|
|
164
|
+
return /* @__PURE__ */ u("dialog", { k: "dialog-content", id: t ?? n, ...e });
|
|
165
|
+
}
|
|
166
|
+
function Z({
|
|
167
|
+
children: t,
|
|
168
|
+
...e
|
|
169
|
+
}) {
|
|
170
|
+
const n = m(C);
|
|
171
|
+
return f(t, {
|
|
172
|
+
...e,
|
|
173
|
+
commandfor: n,
|
|
174
|
+
command: "close"
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
x.Trigger = J;
|
|
178
|
+
x.Content = Q;
|
|
179
|
+
x.Close = Z;
|
|
180
|
+
const Lt = r(
|
|
181
|
+
"accordion",
|
|
182
|
+
"details"
|
|
183
|
+
), At = r(
|
|
184
|
+
"tablist",
|
|
185
|
+
"div"
|
|
186
|
+
), Dt = r("tab", "button"), It = r(
|
|
187
|
+
"tab-panel",
|
|
188
|
+
"div"
|
|
189
|
+
), St = r(
|
|
190
|
+
"tooltip",
|
|
191
|
+
"span"
|
|
192
|
+
), Pt = r(
|
|
193
|
+
"progress",
|
|
194
|
+
"progress"
|
|
195
|
+
), Mt = r(
|
|
196
|
+
"skeleton",
|
|
197
|
+
"div"
|
|
198
|
+
), Bt = r(
|
|
199
|
+
"switch",
|
|
200
|
+
"input",
|
|
201
|
+
{
|
|
202
|
+
role: "switch",
|
|
203
|
+
type: "checkbox"
|
|
204
|
+
}
|
|
205
|
+
), Ft = r(
|
|
206
|
+
"textarea",
|
|
207
|
+
"textarea"
|
|
208
|
+
), _t = r(
|
|
209
|
+
"label",
|
|
210
|
+
"label"
|
|
211
|
+
), Nt = r(
|
|
212
|
+
"checkbox",
|
|
213
|
+
"input",
|
|
214
|
+
{ type: "checkbox" }
|
|
215
|
+
), $t = r(
|
|
216
|
+
"radio-group",
|
|
217
|
+
"div"
|
|
218
|
+
), qt = r(
|
|
219
|
+
"radio",
|
|
220
|
+
"input",
|
|
221
|
+
{ type: "radio" }
|
|
222
|
+
), Rt = r(
|
|
223
|
+
"select",
|
|
224
|
+
"select"
|
|
225
|
+
);
|
|
226
|
+
function E() {
|
|
227
|
+
const t = `${((+this.min || 0) + +this.value) / (+this.max || 100) * 100}%`;
|
|
228
|
+
this.style.setProperty("--progress", t);
|
|
229
|
+
}
|
|
230
|
+
const jt = r(
|
|
231
|
+
"slider",
|
|
232
|
+
"input",
|
|
233
|
+
{ type: "range" },
|
|
234
|
+
(t) => (t.addEventListener("input", E), E.call(t), () => t.removeEventListener("input", E))
|
|
235
|
+
), Gt = r(
|
|
236
|
+
"separator",
|
|
237
|
+
"div"
|
|
238
|
+
);
|
|
239
|
+
function Ot({ children: t, alt: e, ...n }) {
|
|
240
|
+
return /* @__PURE__ */ u("img", { k: "avatar", alt: String(t ?? e ?? ""), ...n });
|
|
241
|
+
}
|
|
242
|
+
const Ht = r(
|
|
243
|
+
"toggle",
|
|
244
|
+
"button",
|
|
245
|
+
{
|
|
246
|
+
get "aria-pressed"() {
|
|
247
|
+
return this.pressed;
|
|
248
|
+
},
|
|
249
|
+
onClickCapture(t) {
|
|
250
|
+
var n, o;
|
|
251
|
+
const e = t.currentTarget;
|
|
252
|
+
(o = (n = e.closest('[k="toggle-group"]')) == null ? void 0 : n.querySelector("[aria-pressed]")) == null || o.removeAttribute("aria-pressed"), e.hasAttribute("aria-pressed") ? e.removeAttribute("aria-pressed") : e.setAttribute("aria-pressed", "true");
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
), Wt = r(
|
|
256
|
+
"toggle-group",
|
|
257
|
+
"div"
|
|
258
|
+
);
|
|
259
|
+
function zt({ ratio: t, style: e, ...n }) {
|
|
260
|
+
const o = t ? {
|
|
261
|
+
...typeof e == "object" && e ? e : {},
|
|
262
|
+
"--ratio": t
|
|
263
|
+
} : e;
|
|
264
|
+
return /* @__PURE__ */ u(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
k: "aspect-ratio",
|
|
268
|
+
...n,
|
|
269
|
+
style: o
|
|
270
|
+
}
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
const Ut = r(
|
|
274
|
+
"scroll-area",
|
|
275
|
+
"div"
|
|
276
|
+
), D = g(void 0);
|
|
277
|
+
function Vt({ id: t, children: e }) {
|
|
278
|
+
b();
|
|
279
|
+
const n = v(), o = t ?? n;
|
|
280
|
+
return /* @__PURE__ */ u(D.Provider, { value: o, children: /* @__PURE__ */ u("span", { k: "popover", children: e }) });
|
|
281
|
+
}
|
|
282
|
+
function Xt({
|
|
283
|
+
children: t,
|
|
284
|
+
...e
|
|
285
|
+
}) {
|
|
286
|
+
const n = m(D);
|
|
287
|
+
return f(t, {
|
|
288
|
+
...e,
|
|
289
|
+
commandfor: n,
|
|
290
|
+
command: "show"
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
function Yt({
|
|
294
|
+
id: t,
|
|
295
|
+
...e
|
|
296
|
+
}) {
|
|
297
|
+
const n = m(D);
|
|
298
|
+
return /* @__PURE__ */ u("dialog", { k: "popover-content", id: t ?? n, ...e });
|
|
299
|
+
}
|
|
300
|
+
const Kt = r("alert", "div"), Jt = x, Qt = r(
|
|
301
|
+
"table",
|
|
302
|
+
"table"
|
|
303
|
+
), A = "kinu-toast-show";
|
|
304
|
+
let tt = Date.now();
|
|
305
|
+
function et(t, e = {}) {
|
|
306
|
+
const n = { content: t, ...e };
|
|
307
|
+
dispatchEvent(new CustomEvent(A, { detail: n }));
|
|
308
|
+
}
|
|
309
|
+
const Zt = { show: et };
|
|
310
|
+
function te() {
|
|
311
|
+
const [t, e] = z([]);
|
|
312
|
+
U(() => {
|
|
313
|
+
const o = (i) => {
|
|
314
|
+
const c = i.detail;
|
|
315
|
+
c.id = tt++, e((s) => s.slice(-3).concat(c)), requestAnimationFrame(() => {
|
|
316
|
+
requestAnimationFrame(() => {
|
|
317
|
+
e(
|
|
318
|
+
(s) => s.map((a) => a.id === c.id ? { ...a, mounted: !0 } : a)
|
|
319
|
+
);
|
|
320
|
+
});
|
|
321
|
+
}), setTimeout(n, c.duration || 3e3, c.id);
|
|
322
|
+
};
|
|
323
|
+
return addEventListener(A, o), () => {
|
|
324
|
+
removeEventListener(A, o);
|
|
325
|
+
};
|
|
326
|
+
}, []);
|
|
327
|
+
function n(o) {
|
|
328
|
+
e((i) => {
|
|
329
|
+
const c = i.find((s) => s.id === o);
|
|
330
|
+
return !c || c.closing ? i : (setTimeout(() => {
|
|
331
|
+
e((s) => s.filter((a) => a.id !== o));
|
|
332
|
+
}, 400), i.map((s) => s.id === o ? { ...s, closing: !0 } : s));
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return /* @__PURE__ */ u("div", { k: "toast-container", children: t.map((o) => /* @__PURE__ */ W(
|
|
336
|
+
"div",
|
|
337
|
+
{
|
|
338
|
+
k: "toast",
|
|
339
|
+
"data-toast": o.id,
|
|
340
|
+
"data-mounted": o.mounted || void 0,
|
|
341
|
+
"data-closing": o.closing || void 0,
|
|
342
|
+
children: [
|
|
343
|
+
o.title && /* @__PURE__ */ u("h6", { k: "toast-title", children: o.title }),
|
|
344
|
+
/* @__PURE__ */ u("div", { k: "toast-content", children: o.content }),
|
|
345
|
+
/* @__PURE__ */ u("div", { k: "toast-icon", children: o.icon }),
|
|
346
|
+
o.action && /* @__PURE__ */ u("div", { k: "toast-action", children: o.action })
|
|
347
|
+
]
|
|
348
|
+
},
|
|
349
|
+
o.id
|
|
350
|
+
)) });
|
|
351
|
+
}
|
|
352
|
+
const ee = r(
|
|
353
|
+
"collapsible",
|
|
354
|
+
"details",
|
|
355
|
+
{},
|
|
356
|
+
(t) => {
|
|
357
|
+
t.addEventListener("command", () => {
|
|
358
|
+
t.open = !t.open;
|
|
359
|
+
}), t.insertBefore(document.createElement("summary"), t.firstChild);
|
|
360
|
+
}
|
|
361
|
+
), ne = r(
|
|
362
|
+
"resizable",
|
|
363
|
+
"div"
|
|
364
|
+
), y = g(void 0);
|
|
365
|
+
function I({ id: t, children: e }) {
|
|
366
|
+
b(), k();
|
|
367
|
+
const n = v(), o = t ?? n;
|
|
368
|
+
return /* @__PURE__ */ u(y.Provider, { value: o, children: /* @__PURE__ */ u("div", { k: "sheet", children: e }) });
|
|
369
|
+
}
|
|
370
|
+
function nt({
|
|
371
|
+
children: t,
|
|
372
|
+
...e
|
|
373
|
+
}) {
|
|
374
|
+
const n = m(y);
|
|
375
|
+
return f(t, {
|
|
376
|
+
...e,
|
|
377
|
+
commandfor: n,
|
|
378
|
+
command: "show-modal"
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
function ot({
|
|
382
|
+
id: t,
|
|
383
|
+
...e
|
|
384
|
+
}) {
|
|
385
|
+
const n = m(y);
|
|
386
|
+
return /* @__PURE__ */ u("dialog", { k: "sheet-content", id: t || n, ...e });
|
|
387
|
+
}
|
|
388
|
+
function rt({
|
|
389
|
+
children: t,
|
|
390
|
+
...e
|
|
391
|
+
}) {
|
|
392
|
+
const n = m(y);
|
|
393
|
+
return f(t, {
|
|
394
|
+
...e,
|
|
395
|
+
commandfor: n,
|
|
396
|
+
command: "close"
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
I.Trigger = nt;
|
|
400
|
+
I.Content = ot;
|
|
401
|
+
I.Close = rt;
|
|
402
|
+
const oe = r(
|
|
403
|
+
"sidebar-trigger",
|
|
404
|
+
"button",
|
|
405
|
+
{},
|
|
406
|
+
(t) => {
|
|
407
|
+
function e(n) {
|
|
408
|
+
var i;
|
|
409
|
+
let o = t;
|
|
410
|
+
for (; o; ) {
|
|
411
|
+
const c = t.getAttribute("commandfor"), s = (i = o.querySelector) == null ? void 0 : i.call(
|
|
412
|
+
o,
|
|
413
|
+
c ? `#${c}` : '[k="sidebar"]'
|
|
414
|
+
);
|
|
415
|
+
if (s) {
|
|
416
|
+
getComputedStyle(s).getPropertyValue("--modal") ? (s.toggleAttribute("hidden", !1), s.showModal()) : s.toggleAttribute("hidden");
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
o = o.parentNode;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
return t.addEventListener("click", e), () => t.removeEventListener("click", e);
|
|
423
|
+
}
|
|
424
|
+
), re = r(
|
|
425
|
+
"sidebar",
|
|
426
|
+
"dialog",
|
|
427
|
+
{
|
|
428
|
+
tabIndex: -1
|
|
429
|
+
},
|
|
430
|
+
() => {
|
|
431
|
+
b(), k();
|
|
432
|
+
}
|
|
433
|
+
), ie = r(
|
|
434
|
+
"breadcrumb",
|
|
435
|
+
"nav"
|
|
436
|
+
), ce = r("breadcrumb-list", "ol"), se = r("breadcrumb-item", "li"), ae = r("breadcrumb-link", "a"), ue = r(
|
|
437
|
+
"menubar",
|
|
438
|
+
"nav"
|
|
439
|
+
), de = r(
|
|
440
|
+
"menubar-item",
|
|
441
|
+
"button",
|
|
442
|
+
{
|
|
443
|
+
onMouseEnterCapture(t) {
|
|
444
|
+
var n;
|
|
445
|
+
((n = t.currentTarget.closest('[k="menubar"]')) == null ? void 0 : n.querySelector('[k="dropdown-content"][open]')) && t.currentTarget.click();
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
), le = r("navigation-menu", "nav"), me = r("navigation-menu-list", "ul"), fe = r("navigation-menu-item", "li"), pe = r("navigation-menu-link", "a"), ge = r(
|
|
449
|
+
"pagination",
|
|
450
|
+
"nav"
|
|
451
|
+
), ve = r(
|
|
452
|
+
"pagination-list",
|
|
453
|
+
"ul"
|
|
454
|
+
), be = r(
|
|
455
|
+
"pagination-item",
|
|
456
|
+
"li"
|
|
457
|
+
), ke = r("pagination-link", "button"), it = r(
|
|
458
|
+
"combobox",
|
|
459
|
+
"span",
|
|
460
|
+
{},
|
|
461
|
+
() => {
|
|
462
|
+
j();
|
|
463
|
+
}
|
|
464
|
+
), ct = r(
|
|
465
|
+
"combobox-input",
|
|
466
|
+
"input",
|
|
467
|
+
{},
|
|
468
|
+
(t) => {
|
|
469
|
+
const e = () => {
|
|
470
|
+
var c;
|
|
471
|
+
return (c = t.closest('[k="combobox"]')) == null ? void 0 : c.querySelector('[k="combobox-list"]');
|
|
472
|
+
};
|
|
473
|
+
function n(c) {
|
|
474
|
+
i(c.type !== "input"), e().show(), t.focus();
|
|
475
|
+
}
|
|
476
|
+
function o(c) {
|
|
477
|
+
const s = c.relatedTarget, a = e();
|
|
478
|
+
s && (a != null && a.contains(s)) || a.close();
|
|
479
|
+
}
|
|
480
|
+
function i(c) {
|
|
481
|
+
const s = t.value.toLowerCase(), a = e().querySelectorAll(
|
|
482
|
+
'[k="combobox-option"]'
|
|
483
|
+
);
|
|
484
|
+
let d = !1;
|
|
485
|
+
for (const l of a) {
|
|
486
|
+
const p = l.textContent.toLowerCase().includes(s);
|
|
487
|
+
l.removeAttribute("selected");
|
|
488
|
+
const h = c || p;
|
|
489
|
+
l.style.display = h ? "" : "none", (c ? p : h) && !d && (l.toggleAttribute("selected", !0), d = !0);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return t.addEventListener("input", n), t.addEventListener("click", n), t.addEventListener("focus", n), t.addEventListener("blur", o), () => {
|
|
493
|
+
t.removeEventListener("input", n), t.removeEventListener("click", n), t.removeEventListener("focus", n), t.removeEventListener("blur", o);
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
), st = r(
|
|
497
|
+
"combobox-list",
|
|
498
|
+
"dialog",
|
|
499
|
+
{
|
|
500
|
+
onMouseDown: (t) => t.preventDefault(),
|
|
501
|
+
onClick: (t) => t.currentTarget.close()
|
|
502
|
+
}
|
|
503
|
+
), at = r(
|
|
504
|
+
"combobox-option",
|
|
505
|
+
"button",
|
|
506
|
+
{
|
|
507
|
+
tabIndex: -1
|
|
508
|
+
},
|
|
509
|
+
(t) => {
|
|
510
|
+
function e(n) {
|
|
511
|
+
n.preventDefault();
|
|
512
|
+
const o = document.activeElement;
|
|
513
|
+
o.value = t.textContent || "", o.dispatchEvent(new Event("input", { bubbles: !0 })), o.focus();
|
|
514
|
+
}
|
|
515
|
+
return t.addEventListener("click", e), () => t.removeEventListener("click", e);
|
|
516
|
+
}
|
|
517
|
+
), he = Object.assign(it, {
|
|
518
|
+
Input: ct,
|
|
519
|
+
List: st,
|
|
520
|
+
Option: at
|
|
521
|
+
}), S = g(void 0);
|
|
522
|
+
let L = null;
|
|
523
|
+
function ut(t) {
|
|
524
|
+
t.preventDefault();
|
|
525
|
+
const e = t.currentTarget;
|
|
526
|
+
L && (L.style.anchorName = ""), L = e, e.style.anchorName = "--k-context-menu";
|
|
527
|
+
const n = e.ownerDocument.getElementById(
|
|
528
|
+
e.getAttribute("commandfor")
|
|
529
|
+
);
|
|
530
|
+
if (!n) return;
|
|
531
|
+
const i = e.ownerDocument.defaultView;
|
|
532
|
+
i && (n.style.setProperty("--k-context-menu-client-x", `${t.clientX}px`), n.style.setProperty("--k-context-menu-client-y", `${t.clientY}px`), n.style.setProperty("--k-context-menu-client-right", `${i.innerWidth - t.clientX}px`), n.style.setProperty("--k-context-menu-client-bottom", `${i.innerHeight - t.clientY}px`), n.showModal());
|
|
533
|
+
}
|
|
534
|
+
function Ce({
|
|
535
|
+
children: t
|
|
536
|
+
}) {
|
|
537
|
+
const e = m(S);
|
|
538
|
+
return f(t, {
|
|
539
|
+
commandfor: e,
|
|
540
|
+
onContextMenu: ut
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
function xe({ id: t, children: e }) {
|
|
544
|
+
k();
|
|
545
|
+
const n = v(), o = t ?? n;
|
|
546
|
+
return /* @__PURE__ */ u(S.Provider, { value: o, children: e });
|
|
547
|
+
}
|
|
548
|
+
function $(t) {
|
|
549
|
+
t.defaultPrevented || (t.preventDefault(), t.currentTarget.close());
|
|
550
|
+
}
|
|
551
|
+
function ye({
|
|
552
|
+
id: t,
|
|
553
|
+
...e
|
|
554
|
+
}) {
|
|
555
|
+
const n = m(S);
|
|
556
|
+
return /* @__PURE__ */ u(
|
|
557
|
+
"dialog",
|
|
558
|
+
{
|
|
559
|
+
k: "context-menu",
|
|
560
|
+
id: t ?? n,
|
|
561
|
+
onClickCapture: $,
|
|
562
|
+
onContextMenuCapture: $,
|
|
563
|
+
...e
|
|
564
|
+
}
|
|
565
|
+
);
|
|
566
|
+
}
|
|
567
|
+
const we = r("context-menu-item", "button", { tabIndex: 0 }), w = g(void 0);
|
|
568
|
+
function P({ id: t, children: e }) {
|
|
569
|
+
b(), k();
|
|
570
|
+
const n = v(), o = t ?? n;
|
|
571
|
+
return /* @__PURE__ */ u(w.Provider, { value: o, children: /* @__PURE__ */ u("div", { k: "drawer", children: e }) });
|
|
572
|
+
}
|
|
573
|
+
function dt({
|
|
574
|
+
children: t,
|
|
575
|
+
...e
|
|
576
|
+
}) {
|
|
577
|
+
const n = m(w);
|
|
578
|
+
return f(t, {
|
|
579
|
+
...e,
|
|
580
|
+
commandfor: n,
|
|
581
|
+
command: "show-modal"
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
function lt({
|
|
585
|
+
id: t,
|
|
586
|
+
...e
|
|
587
|
+
}) {
|
|
588
|
+
const n = m(w);
|
|
589
|
+
return /* @__PURE__ */ u("dialog", { k: "drawer-content", id: t ?? n, ...e });
|
|
590
|
+
}
|
|
591
|
+
function mt({
|
|
592
|
+
children: t,
|
|
593
|
+
...e
|
|
594
|
+
}) {
|
|
595
|
+
const n = m(w);
|
|
596
|
+
return f(t, {
|
|
597
|
+
...e,
|
|
598
|
+
commandfor: n,
|
|
599
|
+
command: "close"
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
P.Trigger = dt;
|
|
603
|
+
P.Content = lt;
|
|
604
|
+
P.Close = mt;
|
|
605
|
+
const M = g(void 0);
|
|
606
|
+
function Te({ id: t, children: e }) {
|
|
607
|
+
b(), k(), j();
|
|
608
|
+
const n = v(), o = t ?? n;
|
|
609
|
+
return /* @__PURE__ */ u(M.Provider, { value: o, children: /* @__PURE__ */ u("span", { k: "dropdown", children: e }) });
|
|
610
|
+
}
|
|
611
|
+
function Ee({
|
|
612
|
+
children: t,
|
|
613
|
+
...e
|
|
614
|
+
}) {
|
|
615
|
+
const n = m(M);
|
|
616
|
+
return f(t, {
|
|
617
|
+
...e,
|
|
618
|
+
commandFor: n,
|
|
619
|
+
command: "show"
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
function Le({
|
|
623
|
+
id: t,
|
|
624
|
+
command: e = "close",
|
|
625
|
+
commandFor: n,
|
|
626
|
+
...o
|
|
627
|
+
}) {
|
|
628
|
+
const i = m(M), c = t ?? i;
|
|
629
|
+
return /* @__PURE__ */ u(
|
|
630
|
+
"dialog",
|
|
631
|
+
{
|
|
632
|
+
k: "dropdown-content",
|
|
633
|
+
id: c,
|
|
634
|
+
command: e,
|
|
635
|
+
commandFor: n ?? c,
|
|
636
|
+
...o
|
|
637
|
+
}
|
|
638
|
+
);
|
|
639
|
+
}
|
|
640
|
+
const Ae = r("dropdown-menu-item", (t) => t.href ? "a" : "button"), De = r(
|
|
641
|
+
"hover-card",
|
|
642
|
+
"div"
|
|
643
|
+
), Ie = r("hover-card-trigger", "span"), Se = r("hover-card-content", "div"), Pe = r(
|
|
644
|
+
"calendar",
|
|
645
|
+
"input",
|
|
646
|
+
{ type: "date" }
|
|
647
|
+
), T = g(void 0);
|
|
648
|
+
function Me({ id: t, children: e }) {
|
|
649
|
+
b();
|
|
650
|
+
const n = t ?? v();
|
|
651
|
+
return /* @__PURE__ */ u(T.Provider, { value: n, children: /* @__PURE__ */ u("div", { style: { position: "relative" }, children: e }) });
|
|
652
|
+
}
|
|
653
|
+
const ft = r(
|
|
654
|
+
"carousel",
|
|
655
|
+
"div",
|
|
656
|
+
{},
|
|
657
|
+
(t) => {
|
|
658
|
+
const e = (n) => {
|
|
659
|
+
const o = t.clientWidth, i = n.command;
|
|
660
|
+
i === "--prev" ? t.scrollBy({ left: -o, behavior: "smooth" }) : i === "--next" ? t.scrollBy({ left: o, behavior: "smooth" }) : t.scrollTo({ left: i.slice(7) * o, behavior: "smooth" });
|
|
661
|
+
};
|
|
662
|
+
return t.addEventListener("command", e), () => t.removeEventListener("command", e);
|
|
663
|
+
}
|
|
664
|
+
);
|
|
665
|
+
function Be({ children: t }) {
|
|
666
|
+
const e = m(T);
|
|
667
|
+
return /* @__PURE__ */ u(ft, { id: e, children: t });
|
|
668
|
+
}
|
|
669
|
+
const Fe = r(
|
|
670
|
+
"carousel-item",
|
|
671
|
+
"div"
|
|
672
|
+
);
|
|
673
|
+
function _e({
|
|
674
|
+
children: t,
|
|
675
|
+
commandFor: e,
|
|
676
|
+
command: n,
|
|
677
|
+
...o
|
|
678
|
+
}) {
|
|
679
|
+
const i = m(T);
|
|
680
|
+
return /* @__PURE__ */ u("button", { ...o, k: "carousel-previous", command: "--prev", commandfor: i ?? void 0, children: t });
|
|
681
|
+
}
|
|
682
|
+
function Ne({
|
|
683
|
+
children: t,
|
|
684
|
+
commandFor: e,
|
|
685
|
+
command: n,
|
|
686
|
+
...o
|
|
687
|
+
}) {
|
|
688
|
+
const i = m(T);
|
|
689
|
+
return /* @__PURE__ */ u("button", { ...o, k: "carousel-next", command: "--next", commandfor: i ?? void 0, children: t });
|
|
690
|
+
}
|
|
691
|
+
const $e = r(
|
|
692
|
+
"color-picker",
|
|
693
|
+
"input",
|
|
694
|
+
{ type: "color" }
|
|
695
|
+
), qe = r(
|
|
696
|
+
"date-picker",
|
|
697
|
+
"input",
|
|
698
|
+
{ type: "date" }
|
|
699
|
+
), Re = r(
|
|
700
|
+
"file-upload",
|
|
701
|
+
"input",
|
|
702
|
+
{ type: "file" }
|
|
703
|
+
), je = r(
|
|
704
|
+
"time-picker",
|
|
705
|
+
"input",
|
|
706
|
+
{ type: "time" }
|
|
707
|
+
), Ge = r(
|
|
708
|
+
"spinner",
|
|
709
|
+
"span"
|
|
710
|
+
), Oe = r(
|
|
711
|
+
"input-group",
|
|
712
|
+
"fieldset"
|
|
713
|
+
), pt = r("tree", "div"), gt = r(
|
|
714
|
+
"tree-item",
|
|
715
|
+
"details"
|
|
716
|
+
), vt = r(
|
|
717
|
+
"tree-label",
|
|
718
|
+
"summary"
|
|
719
|
+
), bt = r(
|
|
720
|
+
"tree-group",
|
|
721
|
+
"div"
|
|
722
|
+
), kt = r(
|
|
723
|
+
"tree-leaf",
|
|
724
|
+
"button"
|
|
725
|
+
), He = Object.assign(pt, {
|
|
726
|
+
Group: gt,
|
|
727
|
+
GroupLabel: vt,
|
|
728
|
+
GroupItems: bt,
|
|
729
|
+
Item: kt
|
|
730
|
+
});
|
|
731
|
+
export {
|
|
732
|
+
Lt as Accordion,
|
|
733
|
+
Kt as Alert,
|
|
734
|
+
Jt as AlertDialog,
|
|
735
|
+
zt as AspectRatio,
|
|
736
|
+
Ot as Avatar,
|
|
737
|
+
yt as Badge,
|
|
738
|
+
ie as Breadcrumb,
|
|
739
|
+
se as BreadcrumbItem,
|
|
740
|
+
ae as BreadcrumbLink,
|
|
741
|
+
ce as BreadcrumbList,
|
|
742
|
+
wt as Button,
|
|
743
|
+
Pe as Calendar,
|
|
744
|
+
Et as Card,
|
|
745
|
+
Me as Carousel,
|
|
746
|
+
Be as CarouselContent,
|
|
747
|
+
Fe as CarouselItem,
|
|
748
|
+
Ne as CarouselNext,
|
|
749
|
+
_e as CarouselPrevious,
|
|
750
|
+
Nt as Checkbox,
|
|
751
|
+
ee as Collapsible,
|
|
752
|
+
$e as ColorPicker,
|
|
753
|
+
he as Combobox,
|
|
754
|
+
ct as ComboboxInput,
|
|
755
|
+
st as ComboboxList,
|
|
756
|
+
at as ComboboxOption,
|
|
757
|
+
xe as ContextMenu,
|
|
758
|
+
ye as ContextMenuContent,
|
|
759
|
+
we as ContextMenuItem,
|
|
760
|
+
Ce as ContextMenuTrigger,
|
|
761
|
+
qe as DatePicker,
|
|
762
|
+
x as Dialog,
|
|
763
|
+
P as Drawer,
|
|
764
|
+
mt as DrawerClose,
|
|
765
|
+
lt as DrawerContent,
|
|
766
|
+
dt as DrawerTrigger,
|
|
767
|
+
Te as DropdownMenu,
|
|
768
|
+
Le as DropdownMenuContent,
|
|
769
|
+
Ae as DropdownMenuItem,
|
|
770
|
+
Ee as DropdownMenuTrigger,
|
|
771
|
+
Re as FileUpload,
|
|
772
|
+
De as HoverCard,
|
|
773
|
+
Se as HoverCardContent,
|
|
774
|
+
Ie as HoverCardTrigger,
|
|
775
|
+
Tt as Input,
|
|
776
|
+
Oe as InputGroup,
|
|
777
|
+
_t as Label,
|
|
778
|
+
ue as Menubar,
|
|
779
|
+
de as MenubarItem,
|
|
780
|
+
le as NavigationMenu,
|
|
781
|
+
fe as NavigationMenuItem,
|
|
782
|
+
pe as NavigationMenuLink,
|
|
783
|
+
me as NavigationMenuList,
|
|
784
|
+
ge as Pagination,
|
|
785
|
+
be as PaginationItem,
|
|
786
|
+
ke as PaginationLink,
|
|
787
|
+
ve as PaginationList,
|
|
788
|
+
Vt as Popover,
|
|
789
|
+
Yt as PopoverContent,
|
|
790
|
+
Xt as PopoverTrigger,
|
|
791
|
+
Pt as Progress,
|
|
792
|
+
qt as Radio,
|
|
793
|
+
$t as RadioGroup,
|
|
794
|
+
ne as Resizable,
|
|
795
|
+
Ut as ScrollArea,
|
|
796
|
+
Rt as Select,
|
|
797
|
+
Gt as Separator,
|
|
798
|
+
I as Sheet,
|
|
799
|
+
rt as SheetClose,
|
|
800
|
+
ot as SheetContent,
|
|
801
|
+
nt as SheetTrigger,
|
|
802
|
+
re as Sidebar,
|
|
803
|
+
oe as SidebarTrigger,
|
|
804
|
+
Mt as Skeleton,
|
|
805
|
+
jt as Slider,
|
|
806
|
+
Ge as Spinner,
|
|
807
|
+
Bt as Switch,
|
|
808
|
+
Dt as Tab,
|
|
809
|
+
At as TabList,
|
|
810
|
+
It as TabPanel,
|
|
811
|
+
Qt as Table,
|
|
812
|
+
Ft as Textarea,
|
|
813
|
+
je as TimePicker,
|
|
814
|
+
te as ToastContainer,
|
|
815
|
+
Ht as Toggle,
|
|
816
|
+
Wt as ToggleGroup,
|
|
817
|
+
St as Tooltip,
|
|
818
|
+
He as Tree,
|
|
819
|
+
Zt as toast
|
|
820
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@developit/kinu",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Performance-focused Preact UI toolkit",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/developit/pui.git"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"main": "./dist/index.js",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"style": "./dist/index.css",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"source": "./src/index.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./style.css": "./dist/index.css"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "vite build",
|
|
27
|
+
"build:demo": "cd demo && pnpm build",
|
|
28
|
+
"lint": "tsc && biome lint",
|
|
29
|
+
"dev": "vite build --watch",
|
|
30
|
+
"test": "vitest run",
|
|
31
|
+
"changeset": "changeset",
|
|
32
|
+
"version-packages": "changeset version",
|
|
33
|
+
"release": "changeset publish"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"preact": "^10.26.8"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@biomejs/biome": "^1.9.4",
|
|
40
|
+
"@changesets/cli": "^2.29.8",
|
|
41
|
+
"@preact/preset-vite": "^2.10.1",
|
|
42
|
+
"@types/node": "^22.15.30",
|
|
43
|
+
"preact": "^10.26.9",
|
|
44
|
+
"preact-forwardref": "^0.2.0",
|
|
45
|
+
"preact-render-to-string": "^6.5.11",
|
|
46
|
+
"typescript": "^5.8.3",
|
|
47
|
+
"vite": "^6.3.5",
|
|
48
|
+
"vitest": "^3.0.6"
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"preact",
|
|
52
|
+
"ui",
|
|
53
|
+
"ui-toolkit",
|
|
54
|
+
"kinu"
|
|
55
|
+
],
|
|
56
|
+
"author": "Jason Miller (http://developit.dev)",
|
|
57
|
+
"license": "MIT",
|
|
58
|
+
"pnpm": {
|
|
59
|
+
"patchedDependencies": {
|
|
60
|
+
"preact-iso": "patches/preact-iso.patch"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"publishConfig": {
|
|
64
|
+
"access": "public",
|
|
65
|
+
"provenance": true
|
|
66
|
+
}
|
|
67
|
+
}
|