@uselets/ui 0.6.0 → 1.0.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 +70 -18
- package/dist/components/alert-dialog.d.ts +5 -3
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/anchor.js +1 -1
- package/dist/components/anchor.js.map +1 -1
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/button.d.ts +7 -3
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.d.ts +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.d.ts +14 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/combobox.d.ts +8 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/date-range-picker.d.ts +120 -0
- package/dist/components/date-range-picker.js +2 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/grid.d.ts +37 -0
- package/dist/components/grid.js +2 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/group.d.ts +2 -2
- package/dist/components/group.js +1 -1
- package/dist/components/group.js.map +1 -1
- package/dist/components/heading.js +1 -1
- package/dist/components/heading.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/list.js.map +1 -1
- package/dist/components/native-select.d.ts +1 -1
- package/dist/components/native-select.js +1 -1
- package/dist/components/native-select.js.map +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/radio-group.d.ts +23 -2
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/select.d.ts +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/sidebar.d.ts +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/simple-grid.d.ts +24 -0
- package/dist/components/simple-grid.js +2 -0
- package/dist/components/simple-grid.js.map +1 -0
- package/dist/components/spinner.d.ts +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/stack.d.ts +2 -2
- package/dist/components/stack.js +1 -1
- package/dist/components/stack.js.map +1 -1
- package/dist/components/switch.d.ts +11 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/tabs.d.ts +5 -2
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/text.js.map +1 -1
- package/dist/components/toggle-group.d.ts +2 -0
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.d.ts +4 -2
- package/dist/components/toggle.js +1 -1
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/visibility.d.ts +25 -0
- package/dist/components/visibility.js +2 -0
- package/dist/components/visibility.js.map +1 -0
- package/dist/hooks/use-breakpoint-value.d.ts +9 -0
- package/dist/hooks/use-breakpoint-value.js +2 -0
- package/dist/hooks/use-breakpoint-value.js.map +1 -0
- package/dist/hooks/use-breakpoint-value.spec.d.ts +1 -0
- package/dist/hooks/use-breakpoint-value.spec.js +15 -0
- package/dist/hooks/use-breakpoint-value.spec.js.map +1 -0
- package/dist/hooks/use-breakpoint.d.ts +9 -0
- package/dist/hooks/use-breakpoint.js +2 -0
- package/dist/hooks/use-breakpoint.js.map +1 -0
- package/dist/hooks/use-breakpoint.spec.d.ts +1 -0
- package/dist/hooks/use-breakpoint.spec.js +2 -0
- package/dist/hooks/use-breakpoint.spec.js.map +1 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.js +1 -1
- package/dist/lib/button.d.ts +12 -8
- package/dist/lib/button.js +1 -1
- package/dist/lib/button.js.map +1 -1
- package/dist/lib/color.d.ts +20 -0
- package/dist/lib/color.js +2 -0
- package/dist/lib/color.js.map +1 -0
- package/dist/skills/uselets-ui/SKILL.md +73 -0
- package/dist/skills/uselets-ui/agents/openai.yaml +4 -0
- package/dist/skills/uselets-ui/references/component-catalog.md +232 -0
- package/dist/skills/uselets-ui/references/package-guide.md +299 -0
- package/dist/skills/uselets-ui/scripts/print-public-api.mjs +174 -0
- package/dist/styles.css +1 -1
- package/dist/themes/gomax.css +1 -1
- package/dist/themes/max.css +1 -1
- package/package.json +1 -1
- package/skills/uselets-ui/SKILL.md +73 -0
- package/skills/uselets-ui/agents/openai.yaml +4 -0
- package/skills/uselets-ui/references/component-catalog.md +232 -0
- package/skills/uselets-ui/references/package-guide.md +299 -0
- package/skills/uselets-ui/scripts/print-public-api.mjs +174 -0
- package/dist/components/sheet.d.ts +0 -61
- package/dist/components/sheet.js +0 -2
- package/dist/components/sheet.js.map +0 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import fs from 'node:fs'
|
|
4
|
+
import path from 'node:path'
|
|
5
|
+
|
|
6
|
+
function exists(targetPath) {
|
|
7
|
+
return fs.existsSync(targetPath)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function read(filePath) {
|
|
11
|
+
return fs.readFileSync(filePath, 'utf8')
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function listFiles(dirPath, extension) {
|
|
15
|
+
return fs
|
|
16
|
+
.readdirSync(dirPath)
|
|
17
|
+
.filter((file) => file.endsWith(extension))
|
|
18
|
+
.sort((left, right) => left.localeCompare(right))
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function uniqueSorted(values) {
|
|
22
|
+
return [...new Set(values)].sort((left, right) => left.localeCompare(right))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function findInstalledPackageJson(startDir) {
|
|
26
|
+
let currentDir = path.resolve(startDir)
|
|
27
|
+
|
|
28
|
+
while (true) {
|
|
29
|
+
const candidate = path.join(currentDir, 'node_modules/@uselets/ui/package.json')
|
|
30
|
+
|
|
31
|
+
if (exists(candidate)) {
|
|
32
|
+
return candidate
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const parentDir = path.dirname(currentDir)
|
|
36
|
+
|
|
37
|
+
if (parentDir === currentDir) {
|
|
38
|
+
return null
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
currentDir = parentDir
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function parseNamedPart(part) {
|
|
46
|
+
const trimmed = part.trim()
|
|
47
|
+
|
|
48
|
+
if (!trimmed) {
|
|
49
|
+
return null
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const isType = trimmed.startsWith('type ')
|
|
53
|
+
const withoutType = isType ? trimmed.slice(5).trim() : trimmed
|
|
54
|
+
const segments = withoutType.split(/\s+as\s+/i)
|
|
55
|
+
const name = segments[segments.length - 1].trim()
|
|
56
|
+
|
|
57
|
+
if (!name) {
|
|
58
|
+
return null
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return { isType, name }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function collectExports(source) {
|
|
65
|
+
const runtime = []
|
|
66
|
+
const types = []
|
|
67
|
+
|
|
68
|
+
for (const match of source.matchAll(/export\s+(const|function|class|declare\s+const|declare\s+function|declare\s+class)\s+([A-Za-z0-9_]+)/g)) {
|
|
69
|
+
runtime.push(match[2])
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
for (const match of source.matchAll(/export\s+(type|interface)\s+([A-Za-z0-9_]+)/g)) {
|
|
73
|
+
types.push(match[2])
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (const match of source.matchAll(/export\s+(type\s+)?\{([\s\S]*?)\}\s*(?:from\s+['"][^'"]+['"])?/g)) {
|
|
77
|
+
const blockIsTypeOnly = Boolean(match[1])
|
|
78
|
+
const parts = match[2].split(',').map((part) => parseNamedPart(part)).filter(Boolean)
|
|
79
|
+
|
|
80
|
+
for (const part of parts) {
|
|
81
|
+
if (blockIsTypeOnly || part.isType) {
|
|
82
|
+
types.push(part.name)
|
|
83
|
+
} else {
|
|
84
|
+
runtime.push(part.name)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
runtime: uniqueSorted(runtime),
|
|
91
|
+
types: uniqueSorted(types)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function buildModuleList(dirPath, extension, kind, packageRoot) {
|
|
96
|
+
if (!exists(dirPath)) {
|
|
97
|
+
return []
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return listFiles(dirPath, extension).map((fileName) => {
|
|
101
|
+
const source = read(path.join(dirPath, fileName))
|
|
102
|
+
const moduleName = fileName.replace(new RegExp(`${extension}$`), '')
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
kind,
|
|
106
|
+
module: moduleName,
|
|
107
|
+
source: path.relative(packageRoot, path.join(dirPath, fileName)),
|
|
108
|
+
subpath: getPublicSubpath(kind, moduleName),
|
|
109
|
+
...collectExports(source)
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function getPublicSubpath(kind, moduleName) {
|
|
115
|
+
if (kind === 'hooks') {
|
|
116
|
+
return `@uselets/ui/hooks/${moduleName}`
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (kind === 'lib') {
|
|
120
|
+
return moduleName === 'utils' ? '@uselets/ui/utils' : `@uselets/ui/lib/${moduleName}`
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return `@uselets/ui/${moduleName}`
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function printModuleSection(title, modules) {
|
|
127
|
+
console.log(`\n## ${title}\n`)
|
|
128
|
+
|
|
129
|
+
for (const moduleInfo of modules) {
|
|
130
|
+
console.log(`### ${moduleInfo.module}`)
|
|
131
|
+
console.log(`- source: \`${moduleInfo.source}\``)
|
|
132
|
+
console.log(`- subpath: \`${moduleInfo.subpath}\``)
|
|
133
|
+
console.log(`- runtime exports: ${moduleInfo.runtime.length > 0 ? `\`${moduleInfo.runtime.join('`, `')}\`` : '_none_'}`)
|
|
134
|
+
console.log(`- type exports: ${moduleInfo.types.length > 0 ? `\`${moduleInfo.types.join('`, `')}\`` : '_none_'}`)
|
|
135
|
+
console.log('')
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const packageJsonPath = findInstalledPackageJson(process.cwd())
|
|
140
|
+
|
|
141
|
+
if (!packageJsonPath) {
|
|
142
|
+
console.log('# @uselets/ui public API\n')
|
|
143
|
+
console.log('No installed `@uselets/ui` package was found from the current working directory.')
|
|
144
|
+
console.log('Install the package first or use the bundled references in this skill as a snapshot.')
|
|
145
|
+
process.exit(0)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const packageRoot = path.dirname(packageJsonPath)
|
|
149
|
+
const packageJson = JSON.parse(read(packageJsonPath))
|
|
150
|
+
const distRoot = path.join(packageRoot, 'dist')
|
|
151
|
+
|
|
152
|
+
const componentModules = buildModuleList(path.join(distRoot, 'components'), '.d.ts', 'components', packageRoot)
|
|
153
|
+
const hookModules = buildModuleList(path.join(distRoot, 'hooks'), '.d.ts', 'hooks', packageRoot)
|
|
154
|
+
const libModules = buildModuleList(path.join(distRoot, 'lib'), '.d.ts', 'lib', packageRoot)
|
|
155
|
+
|
|
156
|
+
console.log('# @uselets/ui public API\n')
|
|
157
|
+
console.log(`- package root: \`${packageRoot}\``)
|
|
158
|
+
console.log(`- package version: \`${packageJson.version ?? 'unknown'}\``)
|
|
159
|
+
console.log('- barrel: `@uselets/ui`')
|
|
160
|
+
console.log('- component subpaths: `@uselets/ui/*`')
|
|
161
|
+
console.log('- hook subpaths: `@uselets/ui/hooks/*`')
|
|
162
|
+
console.log('- utility helpers: `@uselets/ui/utils`')
|
|
163
|
+
console.log('- styles: `@uselets/ui/styles.css` (legacy Max theme alias)')
|
|
164
|
+
console.log('- Max theme: `@uselets/ui/themes/max.css`')
|
|
165
|
+
console.log('- Gomax theme: `@uselets/ui/themes/gomax.css`')
|
|
166
|
+
console.log('- PostCSS preset: `@uselets/ui/postcss.config`')
|
|
167
|
+
console.log('')
|
|
168
|
+
console.log(`- components: ${componentModules.length}`)
|
|
169
|
+
console.log(`- hooks: ${hookModules.length}`)
|
|
170
|
+
console.log(`- lib modules: ${libModules.length}`)
|
|
171
|
+
|
|
172
|
+
printModuleSection('Components', componentModules)
|
|
173
|
+
printModuleSection('Hooks', hookModules)
|
|
174
|
+
printModuleSection('Lib', libModules)
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
|
-
import { Dialog } from "radix-ui";
|
|
3
|
-
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
|
|
6
|
-
//#region src/components/sheet.d.ts
|
|
7
|
-
type SheetProps = React.ComponentProps<typeof Dialog.Root>;
|
|
8
|
-
type SheetTriggerProps = React.ComponentProps<typeof Dialog.Trigger>;
|
|
9
|
-
type SheetCloseProps = React.ComponentProps<typeof Dialog.Close>;
|
|
10
|
-
type SheetPortalProps = React.ComponentProps<typeof Dialog.Portal>;
|
|
11
|
-
type SheetOverlayProps = React.ComponentProps<typeof Dialog.Overlay>;
|
|
12
|
-
type SheetContentProps = React.ComponentProps<typeof Dialog.Content> & {
|
|
13
|
-
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
14
|
-
showCloseButton?: boolean;
|
|
15
|
-
};
|
|
16
|
-
type SheetHeaderProps = React.ComponentProps<'div'>;
|
|
17
|
-
type SheetFooterProps = React.ComponentProps<'div'>;
|
|
18
|
-
type SheetTitleProps = React.ComponentProps<typeof Dialog.Title>;
|
|
19
|
-
type SheetDescriptionProps = React.ComponentProps<typeof Dialog.Description>;
|
|
20
|
-
declare function Sheet({
|
|
21
|
-
...props
|
|
22
|
-
}: SheetProps): _$react_jsx_runtime0.JSX.Element;
|
|
23
|
-
declare function SheetTrigger({
|
|
24
|
-
...props
|
|
25
|
-
}: SheetTriggerProps): _$react_jsx_runtime0.JSX.Element;
|
|
26
|
-
declare function SheetClose({
|
|
27
|
-
...props
|
|
28
|
-
}: SheetCloseProps): _$react_jsx_runtime0.JSX.Element;
|
|
29
|
-
declare function SheetPortal({
|
|
30
|
-
...props
|
|
31
|
-
}: SheetPortalProps): _$react_jsx_runtime0.JSX.Element;
|
|
32
|
-
declare function SheetOverlay({
|
|
33
|
-
className,
|
|
34
|
-
...props
|
|
35
|
-
}: SheetOverlayProps): _$react_jsx_runtime0.JSX.Element;
|
|
36
|
-
declare function SheetContent({
|
|
37
|
-
className,
|
|
38
|
-
children,
|
|
39
|
-
side,
|
|
40
|
-
showCloseButton,
|
|
41
|
-
...props
|
|
42
|
-
}: SheetContentProps): _$react_jsx_runtime0.JSX.Element;
|
|
43
|
-
declare function SheetHeader({
|
|
44
|
-
className,
|
|
45
|
-
...props
|
|
46
|
-
}: SheetHeaderProps): _$react_jsx_runtime0.JSX.Element;
|
|
47
|
-
declare function SheetFooter({
|
|
48
|
-
className,
|
|
49
|
-
...props
|
|
50
|
-
}: SheetFooterProps): _$react_jsx_runtime0.JSX.Element;
|
|
51
|
-
declare function SheetTitle({
|
|
52
|
-
className,
|
|
53
|
-
...props
|
|
54
|
-
}: SheetTitleProps): _$react_jsx_runtime0.JSX.Element;
|
|
55
|
-
declare function SheetDescription({
|
|
56
|
-
className,
|
|
57
|
-
...props
|
|
58
|
-
}: SheetDescriptionProps): _$react_jsx_runtime0.JSX.Element;
|
|
59
|
-
//#endregion
|
|
60
|
-
export { Sheet, SheetClose, SheetCloseProps, SheetContent, SheetContentProps, SheetDescription, SheetDescriptionProps, SheetFooter, SheetFooterProps, SheetHeader, SheetHeaderProps, SheetOverlay, SheetOverlayProps, SheetPortal, SheetPortalProps, SheetProps, SheetTitle, SheetTitleProps, SheetTrigger, SheetTriggerProps };
|
|
61
|
-
//# sourceMappingURL=sheet.d.ts.map
|
package/dist/components/sheet.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{IconX as n}from"@tabler/icons-react";import{Dialog as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function Sheet({...e}){return i(r.Root,{"data-slot":`sheet`,...e})}function SheetTrigger({...e}){return i(r.Trigger,{"data-slot":`sheet-trigger`,...e})}function SheetClose({...e}){return i(r.Close,{"data-slot":`sheet-close`,...e})}function SheetPortal({...e}){return i(r.Portal,{"data-slot":`sheet-portal`,...e})}function SheetOverlay({className:t,...n}){return i(r.Overlay,{"data-slot":`sheet-overlay`,className:e(`fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,t),...n})}function SheetContent({className:o,children:s,side:c=`right`,showCloseButton:l=!0,...u}){return a(SheetPortal,{children:[i(SheetOverlay,{}),a(r.Content,{"data-slot":`sheet-content`,"data-side":c,className:e(`fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10`,o),...u,children:[s,l&&i(r.Close,{"data-slot":`sheet-close`,asChild:!0,children:a(t,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`,children:[i(n,{}),i(`span`,{className:`sr-only`,children:`Close`})]})})]})]})}function SheetHeader({className:t,...n}){return i(`div`,{"data-slot":`sheet-header`,className:e(`flex flex-col gap-0.5 p-4`,t),...n})}function SheetFooter({className:t,...n}){return i(`div`,{"data-slot":`sheet-footer`,className:e(`mt-auto flex flex-col gap-2 p-4`,t),...n})}function SheetTitle({className:t,...n}){return i(r.Title,{"data-slot":`sheet-title`,className:e(`text-base font-medium text-foreground`,t),...n})}function SheetDescription({className:t,...n}){return i(r.Description,{"data-slot":`sheet-description`,className:e(`text-sm text-muted-foreground`,t),...n})}export{Sheet,SheetClose,SheetContent,SheetDescription,SheetFooter,SheetHeader,SheetOverlay,SheetPortal,SheetTitle,SheetTrigger};
|
|
2
|
-
//# sourceMappingURL=sheet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.js","names":["SheetPrimitive"],"sources":["../../src/components/sheet.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { IconX } from '@tabler/icons-react'\nimport { Dialog as SheetPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\n\nexport type SheetProps = React.ComponentProps<typeof SheetPrimitive.Root>\n\nexport type SheetTriggerProps = React.ComponentProps<typeof SheetPrimitive.Trigger>\n\nexport type SheetCloseProps = React.ComponentProps<typeof SheetPrimitive.Close>\n\nexport type SheetPortalProps = React.ComponentProps<typeof SheetPrimitive.Portal>\n\nexport type SheetOverlayProps = React.ComponentProps<typeof SheetPrimitive.Overlay>\n\nexport type SheetContentProps = React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left'\n showCloseButton?: boolean\n}\n\nexport type SheetHeaderProps = React.ComponentProps<'div'>\n\nexport type SheetFooterProps = React.ComponentProps<'div'>\n\nexport type SheetTitleProps = React.ComponentProps<typeof SheetPrimitive.Title>\n\nexport type SheetDescriptionProps = React.ComponentProps<typeof SheetPrimitive.Description>\n\nfunction Sheet({ ...props }: SheetProps) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetTriggerProps) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetCloseProps) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPortalProps) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetOverlayProps) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({ className, children, side = 'right', showCloseButton = true, ...props }: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close data-slot=\"sheet-close\" asChild>\n <Button variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\">\n <IconX />\n <span className=\"sr-only\">Close</span>\n </Button>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: SheetHeaderProps) {\n return <div data-slot=\"sheet-header\" className={cn('flex flex-col gap-0.5 p-4', className)} {...props} />\n}\n\nfunction SheetFooter({ className, ...props }: SheetFooterProps) {\n return <div data-slot=\"sheet-footer\" className={cn('mt-auto flex flex-col gap-2 p-4', className)} {...props} />\n}\n\nfunction SheetTitle({ className, ...props }: SheetTitleProps) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-base font-medium text-foreground', className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetDescriptionProps) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger\n}\n"],"mappings":"uOA+BA,SAAS,MAAM,CAAE,GAAG,GAAqB,CACvC,OAAO,EAACA,EAAe,KAAhB,CAAqB,YAAU,QAAQ,GAAI,EAAS,CAAA,CAG7D,SAAS,aAAa,CAAE,GAAG,GAA4B,CACrD,OAAO,EAACA,EAAe,QAAhB,CAAwB,YAAU,gBAAgB,GAAI,EAAS,CAAA,CAGxE,SAAS,WAAW,CAAE,GAAG,GAA0B,CACjD,OAAO,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,GAAI,EAAS,CAAA,CAGpE,SAAS,YAAY,CAAE,GAAG,GAA2B,CACnD,OAAO,EAACA,EAAe,OAAhB,CAAuB,YAAU,eAAe,GAAI,EAAS,CAAA,CAGtE,SAAS,aAAa,CAAE,YAAW,GAAG,GAA4B,CAChE,OACE,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EACT,gLACA,EACD,CACD,GAAI,EACJ,CAAA,CAIN,SAAS,aAAa,CAAE,YAAW,WAAU,OAAO,QAAS,kBAAkB,GAAM,GAAG,GAA4B,CAClH,OACE,EAAC,YAAD,CAAA,SAAA,CACE,EAAC,aAAD,EAAgB,CAAA,CAChB,EAACA,EAAe,QAAhB,CACE,YAAU,gBACV,YAAW,EACX,UAAW,EACT,ymCACA,EACD,CACD,GAAI,WAPN,CASG,EACA,GACC,EAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,QAAA,YAC5C,EAAC,EAAD,CAAQ,QAAQ,QAAQ,UAAU,yBAAyB,KAAK,mBAAhE,CACE,EAAC,EAAD,EAAS,CAAA,CACT,EAAC,OAAD,CAAM,UAAU,mBAAU,QAAY,CAAA,CAC/B,GACY,CAAA,CAEF,GACb,CAAA,CAAA,CAIlB,SAAS,YAAY,CAAE,YAAW,GAAG,GAA2B,CAC9D,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,4BAA6B,EAAU,CAAE,GAAI,EAAS,CAAA,CAG3G,SAAS,YAAY,CAAE,YAAW,GAAG,GAA2B,CAC9D,OAAO,EAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAG,kCAAmC,EAAU,CAAE,GAAI,EAAS,CAAA,CAGjH,SAAS,WAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OACE,EAACA,EAAe,MAAhB,CACE,YAAU,cACV,UAAW,EAAG,wCAAyC,EAAU,CACjE,GAAI,EACJ,CAAA,CAIN,SAAS,iBAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAACA,EAAe,YAAhB,CACE,YAAU,oBACV,UAAW,EAAG,gCAAiC,EAAU,CACzD,GAAI,EACJ,CAAA"}
|