@uselets/ui 0.5.0 → 0.6.1
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 +73 -6
- package/dist/chunk-CHh1Zzun.js +1 -0
- package/dist/cli/uselets.mjs +7 -0
- package/dist/cli/uselets.mjs.map +1 -0
- package/dist/components/accordion.d.ts +6 -6
- package/dist/components/accordion.js +1 -1
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.d.ts +14 -14
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/alert.d.ts +8 -8
- package/dist/components/alert.js +1 -1
- package/dist/components/anchor.d.ts +5 -5
- package/dist/components/anchor.js +1 -1
- package/dist/components/avatar.d.ts +8 -8
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.d.ts +5 -5
- package/dist/components/badge.js +1 -1
- package/dist/components/breadcrumb.d.ts +9 -9
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button-group.d.ts +7 -7
- package/dist/components/button-group.js +1 -1
- package/dist/components/button.d.ts +5 -5
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.d.ts +6 -5
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.d.ts +9 -9
- package/dist/components/card.js +1 -1
- package/dist/components/carousel.d.ts +7 -7
- package/dist/components/carousel.js +1 -1
- package/dist/components/center.d.ts +5 -5
- package/dist/components/center.js +1 -1
- package/dist/components/chart.d.ts +90 -90
- package/dist/components/chart.js +1 -1
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox.d.ts +5 -5
- package/dist/components/checkbox.js +1 -1
- package/dist/components/code.d.ts +3 -3
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.d.ts +5 -5
- package/dist/components/collapsible.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/combobox.d.ts +17 -17
- package/dist/components/combobox.js +1 -1
- package/dist/components/command.d.ts +11 -11
- package/dist/components/command.js +1 -1
- package/dist/components/command.js.map +1 -1
- package/dist/components/container.d.ts +5 -5
- package/dist/components/container.js +1 -1
- package/dist/components/dialog.d.ts +14 -14
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.d.ts +14 -14
- package/dist/components/drawer.js +1 -1
- package/dist/components/dropdown-menu.d.ts +17 -17
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/dropzone.d.ts +3 -3
- package/dist/components/dropzone.js +1 -1
- package/dist/components/dropzone.js.map +1 -1
- package/dist/components/empty.d.ts +10 -10
- package/dist/components/empty.js +1 -1
- package/dist/components/field.d.ts +14 -14
- package/dist/components/field.js +1 -1
- package/dist/components/group.d.ts +5 -5
- package/dist/components/group.js +1 -1
- package/dist/components/heading.d.ts +5 -5
- package/dist/components/heading.js +1 -1
- package/dist/components/hover-card.d.ts +5 -5
- package/dist/components/hover-card.js +1 -1
- package/dist/components/hover-card.js.map +1 -1
- package/dist/components/input-group.d.ts +11 -11
- package/dist/components/input-group.js +1 -1
- package/dist/components/input-otp.d.ts +6 -6
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input-otp.js.map +1 -1
- package/dist/components/input.d.ts +3 -3
- package/dist/components/input.js +1 -1
- package/dist/components/kbd.d.ts +4 -4
- package/dist/components/kbd.js +1 -1
- package/dist/components/label.d.ts +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/list.d.ts +7 -7
- package/dist/components/list.js +1 -1
- package/dist/components/list.js.map +1 -1
- package/dist/components/native-select.d.ts +5 -5
- package/dist/components/native-select.js +1 -1
- package/dist/components/navigation-menu.d.ts +12 -12
- package/dist/components/navigation-menu.js +1 -1
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/pagination.d.ts +9 -9
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.d.ts +9 -9
- package/dist/components/popover.js +1 -1
- package/dist/components/progress.d.ts +3 -3
- package/dist/components/progress.js +1 -1
- package/dist/components/radio-group.d.ts +4 -4
- package/dist/components/radio-group.js +1 -1
- package/dist/components/resizable.d.ts +5 -5
- package/dist/components/resizable.js +1 -1
- package/dist/components/scroll-area.d.ts +4 -4
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/select.d.ts +12 -12
- package/dist/components/select.js +1 -1
- package/dist/components/separator.d.ts +3 -3
- package/dist/components/separator.js +1 -1
- package/dist/components/sheet.d.ts +12 -12
- package/dist/components/sheet.js +1 -1
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.d.ts +27 -27
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.d.ts +3 -3
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.d.ts +3 -3
- package/dist/components/slider.js +1 -1
- package/dist/components/sonner.d.ts +3 -3
- package/dist/components/sonner.js +1 -1
- package/dist/components/sonner.js.map +1 -1
- package/dist/components/spinner.d.ts +5 -5
- package/dist/components/spinner.js +1 -1
- package/dist/components/stack.d.ts +5 -5
- package/dist/components/stack.js +1 -1
- package/dist/components/switch.d.ts +3 -3
- package/dist/components/switch.js +1 -1
- package/dist/components/table.d.ts +10 -10
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +8 -8
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text.d.ts +5 -5
- package/dist/components/text.js +1 -1
- package/dist/components/textarea.d.ts +3 -3
- package/dist/components/textarea.js +1 -1
- package/dist/components/theme.d.ts +4 -4
- package/dist/components/theme.js +1 -1
- package/dist/components/timeline.d.ts +5 -5
- package/dist/components/timeline.js +1 -1
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toggle-group.d.ts +4 -4
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle.d.ts +5 -5
- package/dist/components/toggle.js +1 -1
- package/dist/components/tooltip.d.ts +6 -6
- package/dist/components/tooltip.js +1 -1
- package/dist/hooks/use-disclosure.d.ts +23 -0
- package/dist/hooks/use-disclosure.js +2 -0
- package/dist/hooks/use-disclosure.js.map +1 -0
- package/dist/hooks/use-disclosure.spec.d.ts +1 -0
- package/dist/hooks/use-disclosure.spec.js +2 -0
- package/dist/hooks/use-disclosure.spec.js.map +1 -0
- package/dist/hooks/use-document-visibility.d.ts +7 -0
- package/dist/hooks/use-document-visibility.js +2 -0
- package/dist/hooks/use-document-visibility.js.map +1 -0
- package/dist/hooks/use-document-visibility.spec.d.ts +1 -0
- package/dist/hooks/use-document-visibility.spec.js +2 -0
- package/dist/hooks/use-document-visibility.spec.js.map +1 -0
- package/dist/hooks/use-idle.d.ts +14 -0
- package/dist/hooks/use-idle.js +2 -0
- package/dist/hooks/use-idle.js.map +1 -0
- package/dist/hooks/use-idle.spec.d.ts +1 -0
- package/dist/hooks/use-idle.spec.js +2 -0
- package/dist/hooks/use-idle.spec.js.map +1 -0
- package/dist/hooks/use-interval.d.ts +22 -0
- package/dist/hooks/use-interval.js +2 -0
- package/dist/hooks/use-interval.js.map +1 -0
- package/dist/hooks/use-interval.spec.d.ts +1 -0
- package/dist/hooks/use-interval.spec.js +2 -0
- package/dist/hooks/use-interval.spec.js.map +1 -0
- package/dist/hooks/use-local-storage.d.ts +17 -0
- package/dist/hooks/use-local-storage.js +2 -0
- package/dist/hooks/use-local-storage.js.map +1 -0
- package/dist/hooks/use-local-storage.spec.d.ts +1 -0
- package/dist/hooks/use-local-storage.spec.js +2 -0
- package/dist/hooks/use-local-storage.spec.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +1 -1
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/hooks/use-mobile.spec.d.ts +1 -0
- package/dist/hooks/use-mobile.spec.js +2 -0
- package/dist/hooks/use-mobile.spec.js.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.js +1 -1
- package/dist/lib/button.d.ts +1 -1
- package/dist/lib/utils.d.ts +3 -2
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/react.esm-BuxkFT_p.js +59 -0
- package/dist/react.esm-BuxkFT_p.js.map +1 -0
- package/dist/skills/uselets-ui/SKILL.md +72 -0
- package/dist/skills/uselets-ui/agents/openai.yaml +4 -0
- package/dist/skills/uselets-ui/references/component-catalog.md +202 -0
- package/dist/skills/uselets-ui/references/package-guide.md +264 -0
- package/dist/skills/uselets-ui/scripts/print-public-api.mjs +174 -0
- package/dist/styles.css +2 -1437
- package/dist/themes/gomax.css +2 -0
- package/dist/themes/max.css +2 -0
- package/package.json +42 -27
- package/skills/uselets-ui/SKILL.md +72 -0
- package/skills/uselets-ui/agents/openai.yaml +4 -0
- package/skills/uselets-ui/references/component-catalog.md +202 -0
- package/skills/uselets-ui/references/package-guide.md +264 -0
- package/skills/uselets-ui/scripts/print-public-api.mjs +174 -0
- package/dist/chunk-IpJEthwI.js +0 -1
package/README.md
CHANGED
|
@@ -26,6 +26,39 @@ yarn add @uselets/ui
|
|
|
26
26
|
bun add @uselets/ui
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
## Agent skill
|
|
30
|
+
|
|
31
|
+
The package ships the `uselets-ui` agent skill for projects that want local guidance for setup, public
|
|
32
|
+
imports, and the installed package API.
|
|
33
|
+
|
|
34
|
+
After installing `@uselets/ui`, run:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bun uselets skill
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The command reinstalls the skill for both Codex and Claude Code, replacing any older copy:
|
|
41
|
+
|
|
42
|
+
- `.agents/skills/uselets-ui`
|
|
43
|
+
- `.claude/skills/uselets-ui`
|
|
44
|
+
|
|
45
|
+
To target only one agent, run `bun uselets skill --agent codex` or `bun uselets skill --agent claude`.
|
|
46
|
+
|
|
47
|
+
## Project setup
|
|
48
|
+
|
|
49
|
+
To install package dependencies, configure PostCSS, and prepare your global CSS file, run:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
bun uselets init
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The command asks which theme to import, asks for your global CSS path with `src/styles/globals.css` as the
|
|
56
|
+
default, and optionally installs the agent skill. For non-interactive setup, pass options:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
bun uselets init --theme max --css src/styles/globals.css --no-install-skill
|
|
60
|
+
```
|
|
61
|
+
|
|
29
62
|
## Tailwind CSS v4 setup
|
|
30
63
|
|
|
31
64
|
If your app already uses Tailwind CSS v4, you can skip this section.
|
|
@@ -52,13 +85,16 @@ export { default } from '@uselets/ui/postcss.config'
|
|
|
52
85
|
|
|
53
86
|
## Quick start
|
|
54
87
|
|
|
55
|
-
1. Import
|
|
88
|
+
1. Import one package theme once in your app entry point:
|
|
56
89
|
|
|
57
90
|
```tsx
|
|
58
|
-
import '@uselets/ui/
|
|
91
|
+
import '@uselets/ui/themes/max.css'
|
|
59
92
|
import '@fontsource-variable/inter'
|
|
60
93
|
```
|
|
61
94
|
|
|
95
|
+
For Gomax apps, import `@uselets/ui/themes/gomax.css` instead. The legacy
|
|
96
|
+
`@uselets/ui/styles.css` entrypoint is still available and is equivalent to the Max theme.
|
|
97
|
+
|
|
62
98
|
2. Import components from the package root:
|
|
63
99
|
|
|
64
100
|
```tsx
|
|
@@ -77,13 +113,20 @@ export function Example() {
|
|
|
77
113
|
|
|
78
114
|
```tsx
|
|
79
115
|
import { Button } from '@uselets/ui/button'
|
|
80
|
-
import { useIsMobile } from '@uselets/ui/use-mobile'
|
|
116
|
+
import { useIsMobile } from '@uselets/ui/hooks/use-mobile'
|
|
117
|
+
import { useDisclosure } from '@uselets/ui/hooks/use-disclosure'
|
|
118
|
+
import { useLocalStorage } from '@uselets/ui/hooks/use-local-storage'
|
|
119
|
+
import { randomId } from '@uselets/ui/utils'
|
|
81
120
|
```
|
|
82
121
|
|
|
83
122
|
## Theme tokens
|
|
84
123
|
|
|
85
|
-
The package
|
|
86
|
-
|
|
124
|
+
The package ships brand theme entrypoints:
|
|
125
|
+
|
|
126
|
+
- `@uselets/ui/themes/max.css`
|
|
127
|
+
- `@uselets/ui/themes/gomax.css`
|
|
128
|
+
|
|
129
|
+
The compatibility stylesheet (`@uselets/ui/styles.css`) uses the Max theme.
|
|
87
130
|
|
|
88
131
|
### Public palette families
|
|
89
132
|
|
|
@@ -186,7 +229,31 @@ Each module exports its public composition parts and prop types from the same im
|
|
|
186
229
|
|
|
187
230
|
Layout primitives follow the same pattern: `Stack`, `Group`, and `Center` support `size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'`; `Group` also supports `wrap`; `Center` supports `direction: 'horizontal' | 'vertical'`; and `Container` supports `size: 'sm' | 'md' | 'lg' | 'full'`.
|
|
188
231
|
|
|
189
|
-
Public hooks
|
|
232
|
+
Public hooks are exported from the package root and from the `@uselets/ui/hooks/*` namespace:
|
|
233
|
+
|
|
234
|
+
- `useDisclosure` from `@uselets/ui/hooks/use-disclosure`
|
|
235
|
+
- `useInterval` from `@uselets/ui/hooks/use-interval`
|
|
236
|
+
- `useIdle` from `@uselets/ui/hooks/use-idle`
|
|
237
|
+
- `useDocumentVisibility` from `@uselets/ui/hooks/use-document-visibility`
|
|
238
|
+
- `useLocalStorage` from `@uselets/ui/hooks/use-local-storage`
|
|
239
|
+
- `useIsMobile` from `@uselets/ui/hooks/use-mobile`
|
|
240
|
+
|
|
241
|
+
Legacy hook subpaths such as `@uselets/ui/use-mobile` are not public entrypoints.
|
|
242
|
+
|
|
243
|
+
`useLocalStorage` returns a tuple like `useState`, persists values as JSON, and syncs changes between browser tabs by default:
|
|
244
|
+
|
|
245
|
+
```tsx
|
|
246
|
+
const [settings, setSettings] = useLocalStorage('settings', {
|
|
247
|
+
defaultValue: { compact: false }
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
const [draft, setDraft] = useLocalStorage('draft', {
|
|
251
|
+
defaultValue: '',
|
|
252
|
+
sync: false
|
|
253
|
+
})
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Utilities are exported from the package root and `@uselets/ui/utils`, including `cn` and `randomId`.
|
|
190
257
|
|
|
191
258
|
### Sonner example
|
|
192
259
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{__name as n,__toESM as r,__commonJSMin as t};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{spawn as e}from"node:child_process";import t from"node:fs/promises";import n from"node:path";import r from"node:readline/promises";import{fileURLToPath as i}from"node:url";import{Command as a,Option as o}from"commander";const s=`uselets-ui`,c={codex:n.join(`.agents`,`skills`,s),claude:n.join(`.claude`,`skills`,s)},l=Object.keys(c);async function u(e){try{return await t.access(e),!0}catch{return!1}}async function d(e){return JSON.parse(await t.readFile(e,`utf8`))}async function f(){let e=i(new URL(`.`,import.meta.url));for(;;)try{return await t.access(n.join(e,`package.json`)),e}catch{let t=n.dirname(e);if(t===e)throw Error(`Unable to resolve @uselets/ui package root`);e=t}}function p(e){return e===`all`?l:[e]}function m(e,t){return!!(e.dependencies?.[t]||e.devDependencies?.[t]||e.peerDependencies?.[t]||e.optionalDependencies?.[t])}async function h(e,t){let r=t.packageManager?.split(`@`)[0];return r===`bun`||r===`pnpm`||r===`yarn`||r===`npm`?r:await u(n.join(e,`bun.lock`))?`bun`:await u(n.join(e,`pnpm-lock.yaml`))?`pnpm`:await u(n.join(e,`yarn.lock`))?`yarn`:(await u(n.join(e,`package-lock.json`)),`npm`)}function g(e,t,n){switch(e){case`bun`:return[`bun`,`add`,...n?[`-d`]:[],...t];case`pnpm`:return[`pnpm`,`add`,...n?[`-D`]:[],...t];case`yarn`:return[`yarn`,`add`,...n?[`-D`]:[],...t];case`npm`:return[`npm`,`install`,...n?[`-D`]:[],...t]}}async function _(t,n){let[r,...i]=t;if(!r)throw Error(`Missing command`);console.log(`Running: ${t.join(` `)}`),await new Promise((t,a)=>{let o=e(r,i,{cwd:n,stdio:`inherit`});o.on(`error`,a),o.on(`close`,e=>{if(e===0){t();return}a(Error(`${r} exited with code ${e}`))})})}function v(e,t){let n=e.dependencies?.[t]??e.devDependencies?.[t];if(!n)throw Error(`Unable to find ${t} version in @uselets/ui package metadata`);return n}async function y(e,t){let r=await f(),i=await d(n.join(r,`package.json`)),a=await h(e,t),o=[],s=[];if(!i.name||!i.version)throw Error(`Unable to resolve @uselets/ui package name and version`);m(t,i.name)||o.push(`${i.name}@${i.version}`),m(t,`@fontsource-variable/inter`)||o.push(`@fontsource-variable/inter@${v(i,`@fontsource-variable/inter`)}`),m(t,`tailwindcss`)||s.push(`tailwindcss@${v(i,`tailwindcss`)}`),m(t,`@tailwindcss/postcss`)||s.push(`@tailwindcss/postcss@${v(i,`@tailwindcss/postcss`)}`),o.length>0?await _(g(a,o,!1),e):console.log(`Runtime dependencies already declared.`),s.length>0?await _(g(a,s,!0),e):console.log(`Tailwind dependencies already declared.`)}async function b(e){let r=await f(),i=n.join(r,`skills`,s);try{await t.access(i)}catch{throw Error(`Bundled skill not found at ${i}`)}let a=[];for(let r of e){let e=n.join(process.cwd(),c[r]);await t.rm(e,{recursive:!0,force:!0}),await t.mkdir(n.dirname(e),{recursive:!0}),await t.cp(i,e,{recursive:!0}),a.push(e)}console.log(`Installed ${s} skill:`);for(let e of a)console.log(`- ${e}`)}async function x(){return r.createInterface({input:process.stdin,output:process.stdout})}async function S(e){if(!process.stdin.isTTY)return e;let t=await x();try{for(;;){let n=(await t.question(`Theme (max/gomax) [${e}]: `)).trim().toLowerCase();if(!n)return e;if(n===`max`||n===`gomax`)return n;console.log(`Please choose "max" or "gomax".`)}}finally{t.close()}}async function C(e){if(!process.stdin.isTTY)return e;let t=await x();try{return(await t.question(`Global CSS path [${e}]: `)).trim()||e}finally{t.close()}}async function w(){if(!process.stdin.isTTY)return!1;let e=await x();try{for(;;){let t=(await e.question(`Install agent skill? (y/N): `)).trim().toLowerCase();if(!t||t===`n`||t===`no`)return!1;if(t===`y`||t===`yes`)return!0;console.log(`Please answer "y" or "n".`)}}finally{e.close()}}async function T(e){let r=n.join(e,`postcss.config.mjs`);if(await u(r)){console.log(`Preserved existing postcss.config.mjs.`);return}await t.writeFile(r,`export { default } from '@uselets/ui/postcss.config'
|
|
3
|
+
`),console.log(`Created postcss.config.mjs.`)}function E(e,t){let n=[],r=/@import\s+['"]tailwindcss['"]/.test(e),i=/@import\s+['"]@uselets\/ui\/themes\/(?:max|gomax)\.css['"]/.test(e),a=/@import\s+['"]@fontsource-variable\/inter['"]/.test(e);return r||n.push(`@import 'tailwindcss';`),i||n.push(`@import '@uselets/ui/themes/${t}.css';`),a||n.push(`@import '@fontsource-variable/inter';`),{imports:n,hasTheme:i}}async function D(e,r,i){let a=n.resolve(e,r),o=await u(a)?await t.readFile(a,`utf8`):``,{imports:s,hasTheme:c}=E(o,i);if(c&&console.log(`Preserved existing @uselets/ui theme import.`),s.length===0){console.log(`Global CSS already configured at ${r}.`);return}let l=o.length>0&&!o.startsWith(`
|
|
4
|
+
`)?`
|
|
5
|
+
`:``,d=`${s.join(`
|
|
6
|
+
`)}${l}${o}`;await t.mkdir(n.dirname(a),{recursive:!0}),await t.writeFile(a,d),console.log(`Updated global CSS at ${r}.`)}async function O(e){let t=process.cwd(),r=n.join(t,`package.json`);if(!await u(r))throw Error(`No package.json found in the current directory. Run uselets init from your project root.`);let i=await d(r),a=e.theme??await S(`max`),o=e.css??await C(`src/styles/globals.css`),s=e.installSkill??await w();await y(t,i),await T(t),await D(t,o,a),s&&await b(l)}async function k(){let e=new a;if(e.name(`uselets`).description(`CLI for @uselets/ui`).showHelpAfterError(),e.command(`skill`).description(`Reinstall the ${s} agent skill`).addOption(new o(`--agent <agent>`,`Target agent directory`).choices([`codex`,`claude`,`all`]).default(`all`)).action(async e=>{await b(p(e.agent))}),e.command(`init`).description(`Set up @uselets/ui in this project`).addOption(new o(`--theme <theme>`,`Theme to import`).choices([`max`,`gomax`])).option(`--css <path>`,`Global CSS file path`).option(`--install-skill`,`Install the agent skill without prompting`).option(`--no-install-skill`,`Skip the agent skill prompt and installation`).action(async e=>{await O(e)}),process.argv.length<=2){e.outputHelp();return}await e.parseAsync()}k().catch(e=>{console.error(e instanceof Error?e.message:e),process.exitCode=1});export{};
|
|
7
|
+
//# sourceMappingURL=uselets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uselets.mjs","names":[],"sources":["../../src/cli/uselets.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { spawn } from 'node:child_process'\nimport fs from 'node:fs/promises'\nimport path from 'node:path'\nimport readline from 'node:readline/promises'\nimport { fileURLToPath } from 'node:url'\n\nimport { Command, Option } from 'commander'\n\nconst SKILL_NAME = 'uselets-ui'\nconst DEFAULT_CSS_PATH = 'src/styles/globals.css'\nconst POSTCSS_CONFIG = \"export { default } from '@uselets/ui/postcss.config'\\n\"\nconst AGENT_TARGETS = {\n codex: path.join('.agents', 'skills', SKILL_NAME),\n claude: path.join('.claude', 'skills', SKILL_NAME)\n} as const\n\ntype AgentTarget = keyof typeof AGENT_TARGETS\ntype AgentOption = AgentTarget | 'all'\ntype ThemeOption = 'max' | 'gomax'\ntype PackageManager = 'bun' | 'pnpm' | 'yarn' | 'npm'\ntype PackageJson = {\n name?: string\n version?: string\n packageManager?: string\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n peerDependencies?: Record<string, string>\n optionalDependencies?: Record<string, string>\n}\ntype InitOptions = {\n theme?: ThemeOption\n css?: string\n installSkill?: boolean\n}\n\nconst ALL_AGENT_TARGETS = Object.keys(AGENT_TARGETS) as AgentTarget[]\n\nasync function pathExists(targetPath: string) {\n try {\n await fs.access(targetPath)\n return true\n } catch {\n return false\n }\n}\n\nasync function readJsonFile<T>(filePath: string) {\n return JSON.parse(await fs.readFile(filePath, 'utf8')) as T\n}\n\nasync function findPackageRoot() {\n let currentDir = fileURLToPath(new URL('.', import.meta.url))\n\n while (true) {\n try {\n await fs.access(path.join(currentDir, 'package.json'))\n return currentDir\n } catch {\n const parentDir = path.dirname(currentDir)\n\n if (parentDir === currentDir) {\n throw new Error('Unable to resolve @uselets/ui package root')\n }\n\n currentDir = parentDir\n }\n }\n}\n\nfunction resolveTargets(agent: AgentOption) {\n return agent === 'all' ? ALL_AGENT_TARGETS : [agent]\n}\n\nfunction hasDependency(packageJson: PackageJson, dependencyName: string) {\n return Boolean(\n packageJson.dependencies?.[dependencyName] ||\n packageJson.devDependencies?.[dependencyName] ||\n packageJson.peerDependencies?.[dependencyName] ||\n packageJson.optionalDependencies?.[dependencyName]\n )\n}\n\nasync function detectPackageManager(projectRoot: string, packageJson: PackageJson): Promise<PackageManager> {\n const declaredManager = packageJson.packageManager?.split('@')[0]\n\n if (\n declaredManager === 'bun' ||\n declaredManager === 'pnpm' ||\n declaredManager === 'yarn' ||\n declaredManager === 'npm'\n ) {\n return declaredManager\n }\n\n if (await pathExists(path.join(projectRoot, 'bun.lock'))) {\n return 'bun'\n }\n\n if (await pathExists(path.join(projectRoot, 'pnpm-lock.yaml'))) {\n return 'pnpm'\n }\n\n if (await pathExists(path.join(projectRoot, 'yarn.lock'))) {\n return 'yarn'\n }\n\n if (await pathExists(path.join(projectRoot, 'package-lock.json'))) {\n return 'npm'\n }\n\n return 'npm'\n}\n\nfunction buildAddCommand(packageManager: PackageManager, dependencies: string[], dev: boolean) {\n switch (packageManager) {\n case 'bun':\n return ['bun', 'add', ...(dev ? ['-d'] : []), ...dependencies]\n case 'pnpm':\n return ['pnpm', 'add', ...(dev ? ['-D'] : []), ...dependencies]\n case 'yarn':\n return ['yarn', 'add', ...(dev ? ['-D'] : []), ...dependencies]\n case 'npm':\n return ['npm', 'install', ...(dev ? ['-D'] : []), ...dependencies]\n }\n}\n\nasync function runCommand(commandParts: string[], cwd: string) {\n const [command, ...args] = commandParts\n\n if (!command) {\n throw new Error('Missing command')\n }\n\n console.log(`Running: ${commandParts.join(' ')}`)\n\n await new Promise<void>((resolve, reject) => {\n const child = spawn(command, args, { cwd, stdio: 'inherit' })\n\n child.on('error', reject)\n child.on('close', (code) => {\n if (code === 0) {\n resolve()\n return\n }\n\n reject(new Error(`${command} exited with code ${code}`))\n })\n })\n}\n\nfunction getPackageVersion(packageJson: PackageJson, dependencyName: string) {\n const version = packageJson.dependencies?.[dependencyName] ?? packageJson.devDependencies?.[dependencyName]\n\n if (!version) {\n throw new Error(`Unable to find ${dependencyName} version in @uselets/ui package metadata`)\n }\n\n return version\n}\n\nasync function installMissingDependencies(projectRoot: string, projectPackageJson: PackageJson) {\n const packageRoot = await findPackageRoot()\n const packageJson = await readJsonFile<PackageJson>(path.join(packageRoot, 'package.json'))\n const packageManager = await detectPackageManager(projectRoot, projectPackageJson)\n const runtimeDependencies = []\n const devDependencies = []\n\n if (!packageJson.name || !packageJson.version) {\n throw new Error('Unable to resolve @uselets/ui package name and version')\n }\n\n if (!hasDependency(projectPackageJson, packageJson.name)) {\n runtimeDependencies.push(`${packageJson.name}@${packageJson.version}`)\n }\n\n if (!hasDependency(projectPackageJson, '@fontsource-variable/inter')) {\n runtimeDependencies.push(\n `@fontsource-variable/inter@${getPackageVersion(packageJson, '@fontsource-variable/inter')}`\n )\n }\n\n if (!hasDependency(projectPackageJson, 'tailwindcss')) {\n devDependencies.push(`tailwindcss@${getPackageVersion(packageJson, 'tailwindcss')}`)\n }\n\n if (!hasDependency(projectPackageJson, '@tailwindcss/postcss')) {\n devDependencies.push(`@tailwindcss/postcss@${getPackageVersion(packageJson, '@tailwindcss/postcss')}`)\n }\n\n if (runtimeDependencies.length > 0) {\n await runCommand(buildAddCommand(packageManager, runtimeDependencies, false), projectRoot)\n } else {\n console.log('Runtime dependencies already declared.')\n }\n\n if (devDependencies.length > 0) {\n await runCommand(buildAddCommand(packageManager, devDependencies, true), projectRoot)\n } else {\n console.log('Tailwind dependencies already declared.')\n }\n}\n\nasync function installSkill(targets: AgentTarget[]) {\n const packageRoot = await findPackageRoot()\n const sourcePath = path.join(packageRoot, 'skills', SKILL_NAME)\n\n try {\n await fs.access(sourcePath)\n } catch {\n throw new Error(`Bundled skill not found at ${sourcePath}`)\n }\n\n const installedPaths = []\n\n for (const target of targets) {\n const targetPath = path.join(process.cwd(), AGENT_TARGETS[target])\n\n await fs.rm(targetPath, { recursive: true, force: true })\n await fs.mkdir(path.dirname(targetPath), { recursive: true })\n await fs.cp(sourcePath, targetPath, { recursive: true })\n\n installedPaths.push(targetPath)\n }\n\n console.log(`Installed ${SKILL_NAME} skill:`)\n\n for (const installedPath of installedPaths) {\n console.log(`- ${installedPath}`)\n }\n}\n\nasync function createPrompt() {\n return readline.createInterface({ input: process.stdin, output: process.stdout })\n}\n\nasync function promptTheme(defaultTheme: ThemeOption) {\n if (!process.stdin.isTTY) {\n return defaultTheme\n }\n\n const prompt = await createPrompt()\n\n try {\n while (true) {\n const answer = (await prompt.question(`Theme (max/gomax) [${defaultTheme}]: `)).trim().toLowerCase()\n\n if (!answer) {\n return defaultTheme\n }\n\n if (answer === 'max' || answer === 'gomax') {\n return answer\n }\n\n console.log('Please choose \"max\" or \"gomax\".')\n }\n } finally {\n prompt.close()\n }\n}\n\nasync function promptCssPath(defaultCssPath: string) {\n if (!process.stdin.isTTY) {\n return defaultCssPath\n }\n\n const prompt = await createPrompt()\n\n try {\n const answer = (await prompt.question(`Global CSS path [${defaultCssPath}]: `)).trim()\n return answer || defaultCssPath\n } finally {\n prompt.close()\n }\n}\n\nasync function promptInstallSkill() {\n if (!process.stdin.isTTY) {\n return false\n }\n\n const prompt = await createPrompt()\n\n try {\n while (true) {\n const answer = (await prompt.question('Install agent skill? (y/N): ')).trim().toLowerCase()\n\n if (!answer || answer === 'n' || answer === 'no') {\n return false\n }\n\n if (answer === 'y' || answer === 'yes') {\n return true\n }\n\n console.log('Please answer \"y\" or \"n\".')\n }\n } finally {\n prompt.close()\n }\n}\n\nasync function ensurePostcssConfig(projectRoot: string) {\n const postcssPath = path.join(projectRoot, 'postcss.config.mjs')\n\n if (await pathExists(postcssPath)) {\n console.log('Preserved existing postcss.config.mjs.')\n return\n }\n\n await fs.writeFile(postcssPath, POSTCSS_CONFIG)\n console.log('Created postcss.config.mjs.')\n}\n\nfunction buildCssImports(source: string, theme: ThemeOption) {\n const imports = []\n const hasTailwind = /@import\\s+['\"]tailwindcss['\"]/.test(source)\n const hasTheme = /@import\\s+['\"]@uselets\\/ui\\/themes\\/(?:max|gomax)\\.css['\"]/.test(source)\n const hasFont = /@import\\s+['\"]@fontsource-variable\\/inter['\"]/.test(source)\n\n if (!hasTailwind) {\n imports.push(\"@import 'tailwindcss';\")\n }\n\n if (!hasTheme) {\n imports.push(`@import '@uselets/ui/themes/${theme}.css';`)\n }\n\n if (!hasFont) {\n imports.push(\"@import '@fontsource-variable/inter';\")\n }\n\n return { imports, hasTheme }\n}\n\nasync function ensureGlobalCss(projectRoot: string, cssPath: string, theme: ThemeOption) {\n const absoluteCssPath = path.resolve(projectRoot, cssPath)\n const existingSource = (await pathExists(absoluteCssPath)) ? await fs.readFile(absoluteCssPath, 'utf8') : ''\n const { imports, hasTheme } = buildCssImports(existingSource, theme)\n\n if (hasTheme) {\n console.log('Preserved existing @uselets/ui theme import.')\n }\n\n if (imports.length === 0) {\n console.log(`Global CSS already configured at ${cssPath}.`)\n return\n }\n\n const separator = existingSource.length > 0 && !existingSource.startsWith('\\n') ? '\\n' : ''\n const updatedSource = `${imports.join('\\n')}${separator}${existingSource}`\n\n await fs.mkdir(path.dirname(absoluteCssPath), { recursive: true })\n await fs.writeFile(absoluteCssPath, updatedSource)\n console.log(`Updated global CSS at ${cssPath}.`)\n}\n\nasync function initProject(options: InitOptions) {\n const projectRoot = process.cwd()\n const packageJsonPath = path.join(projectRoot, 'package.json')\n\n if (!(await pathExists(packageJsonPath))) {\n throw new Error('No package.json found in the current directory. Run uselets init from your project root.')\n }\n\n const projectPackageJson = await readJsonFile<PackageJson>(packageJsonPath)\n const theme = options.theme ?? (await promptTheme('max'))\n const cssPath = options.css ?? (await promptCssPath(DEFAULT_CSS_PATH))\n const shouldInstallSkill = options.installSkill ?? (await promptInstallSkill())\n\n await installMissingDependencies(projectRoot, projectPackageJson)\n await ensurePostcssConfig(projectRoot)\n await ensureGlobalCss(projectRoot, cssPath, theme)\n\n if (shouldInstallSkill) {\n await installSkill(ALL_AGENT_TARGETS)\n }\n}\n\nasync function main() {\n const program = new Command()\n\n program.name('uselets').description('CLI for @uselets/ui').showHelpAfterError()\n\n program\n .command('skill')\n .description(`Reinstall the ${SKILL_NAME} agent skill`)\n .addOption(\n new Option('--agent <agent>', 'Target agent directory').choices(['codex', 'claude', 'all']).default('all')\n )\n .action(async (options: { agent: AgentOption }) => {\n await installSkill(resolveTargets(options.agent))\n })\n\n program\n .command('init')\n .description('Set up @uselets/ui in this project')\n .addOption(new Option('--theme <theme>', 'Theme to import').choices(['max', 'gomax']))\n .option('--css <path>', 'Global CSS file path')\n .option('--install-skill', 'Install the agent skill without prompting')\n .option('--no-install-skill', 'Skip the agent skill prompt and installation')\n .action(async (options: InitOptions) => {\n await initProject(options)\n })\n\n if (process.argv.length <= 2) {\n program.outputHelp()\n return\n }\n\n await program.parseAsync()\n}\n\nmain().catch((error: unknown) => {\n console.error(error instanceof Error ? error.message : error)\n process.exitCode = 1\n})\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
2
|
import { Accordion as Accordion$1 } from "radix-ui";
|
|
3
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/accordion.d.ts
|
|
@@ -11,21 +11,21 @@ type AccordionContentProps = React.ComponentProps<typeof Accordion$1.Content>;
|
|
|
11
11
|
declare function Accordion({
|
|
12
12
|
className,
|
|
13
13
|
...props
|
|
14
|
-
}: AccordionProps): react_jsx_runtime0.JSX.Element;
|
|
14
|
+
}: AccordionProps): _$react_jsx_runtime0.JSX.Element;
|
|
15
15
|
declare function AccordionItem({
|
|
16
16
|
className,
|
|
17
17
|
...props
|
|
18
|
-
}: AccordionItemProps): react_jsx_runtime0.JSX.Element;
|
|
18
|
+
}: AccordionItemProps): _$react_jsx_runtime0.JSX.Element;
|
|
19
19
|
declare function AccordionTrigger({
|
|
20
20
|
className,
|
|
21
21
|
children,
|
|
22
22
|
...props
|
|
23
|
-
}: AccordionTriggerProps): react_jsx_runtime0.JSX.Element;
|
|
23
|
+
}: AccordionTriggerProps): _$react_jsx_runtime0.JSX.Element;
|
|
24
24
|
declare function AccordionContent({
|
|
25
25
|
className,
|
|
26
26
|
children,
|
|
27
27
|
...props
|
|
28
|
-
}: AccordionContentProps): react_jsx_runtime0.JSX.Element;
|
|
28
|
+
}: AccordionContentProps): _$react_jsx_runtime0.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps };
|
|
31
31
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{IconChevronDown as t,IconChevronUp as n}from"@tabler/icons-react";import{Accordion as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function Accordion({className:t,...n}){return i(r.Root,{"data-slot":`accordion`,className:e(`flex w-full flex-col`,t),...n})}function AccordionItem({className:t,...n}){return i(r.Item,{"data-slot":`accordion-item`,className:e(`not-last:border-b`,t),...n})}function AccordionTrigger({className:o,children:s,...c}){return i(r.Header,{className:`flex`,children:a(r.Trigger,{"data-slot":`accordion-trigger`,className:e(`group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground`,o),...c,children:[s,i(t,{"data-slot":`accordion-trigger-icon`,className:`pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden`}),i(n,{"data-slot":`accordion-trigger-icon`,className:`pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline`})]})})}function AccordionContent({className:t,children:n,...a}){return i(r.Content,{"data-slot":`accordion-content`,className:`overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up`,...a,children:i(`div`,{className:e(`h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4`,t),children:n})})}export{Accordion,AccordionContent,AccordionItem,AccordionTrigger};
|
|
2
2
|
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { IconChevronDown, IconChevronUp } from '@tabler/icons-react'\nimport { Accordion as AccordionPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nexport type AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>\n\nexport type AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nexport type AccordionTriggerProps = React.ComponentProps<typeof AccordionPrimitive.Trigger>\n\nexport type AccordionContentProps = React.ComponentProps<typeof AccordionPrimitive.Content>\n\nfunction Accordion({ className, ...props }: AccordionProps) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" className={cn('flex w-full flex-col', className)} {...props} />\n}\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item data-slot=\"accordion-item\" className={cn('not-last:border-b', className)} {...props} />\n )\n}\n\nfunction AccordionTrigger({ className, children, ...props }: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',\n className\n )}\n {...props}\n >\n {children}\n <IconChevronDown\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <IconChevronUp\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({ className, children, ...props }: AccordionContentProps) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n 'h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger
|
|
1
|
+
{"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { IconChevronDown, IconChevronUp } from '@tabler/icons-react'\nimport { Accordion as AccordionPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\n\nexport type AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>\n\nexport type AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nexport type AccordionTriggerProps = React.ComponentProps<typeof AccordionPrimitive.Trigger>\n\nexport type AccordionContentProps = React.ComponentProps<typeof AccordionPrimitive.Content>\n\nfunction Accordion({ className, ...props }: AccordionProps) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" className={cn('flex w-full flex-col', className)} {...props} />\n}\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item data-slot=\"accordion-item\" className={cn('not-last:border-b', className)} {...props} />\n )\n}\n\nfunction AccordionTrigger({ className, children, ...props }: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',\n className\n )}\n {...props}\n >\n {children}\n <IconChevronDown\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <IconChevronUp\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({ className, children, ...props }: AccordionContentProps) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n 'h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\n"],"mappings":"kOAeA,SAAS,UAAU,CAAE,YAAW,GAAG,GAAyB,CAC1D,OAAO,EAACA,EAAmB,KAApB,CAAyB,YAAU,YAAY,UAAW,EAAG,uBAAwB,EAAU,CAAE,GAAI,EAAS,CAAA,CAGvH,SAAS,cAAc,CAAE,YAAW,GAAG,GAA6B,CAClE,OACE,EAACA,EAAmB,KAApB,CAAyB,YAAU,iBAAiB,UAAW,EAAG,oBAAqB,EAAU,CAAE,GAAI,EAAS,CAAA,CAIpH,SAAS,iBAAiB,CAAE,YAAW,WAAU,GAAG,GAAgC,CAClF,OACE,EAACA,EAAmB,OAApB,CAA2B,UAAU,gBACnC,EAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAW,EACT,mfACA,EACD,CACD,GAAI,WANN,CAQG,EACD,EAAC,EAAD,CACE,YAAU,yBACV,UAAU,4EACV,CAAA,CACF,EAAC,EAAD,CACE,YAAU,yBACV,UAAU,mFACV,CAAA,CACyB,GACH,CAAA,CAIhC,SAAS,iBAAiB,CAAE,YAAW,WAAU,GAAG,GAAgC,CAClF,OACE,EAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAU,4FACV,GAAI,WAEJ,EAAC,MAAD,CACE,UAAW,EACT,oJACA,EACD,CAEA,WACG,CAAA,CACqB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
2
|
import { Button } from "./button.js";
|
|
3
3
|
import { AlertDialog as AlertDialog$1 } from "radix-ui";
|
|
4
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
|
|
7
7
|
//#region src/components/alert-dialog.d.ts
|
|
@@ -21,54 +21,54 @@ type AlertDialogActionProps = React.ComponentProps<typeof AlertDialog$1.Action>
|
|
|
21
21
|
type AlertDialogCancelProps = React.ComponentProps<typeof AlertDialog$1.Cancel> & Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>;
|
|
22
22
|
declare function AlertDialog({
|
|
23
23
|
...props
|
|
24
|
-
}: AlertDialogProps): react_jsx_runtime0.JSX.Element;
|
|
24
|
+
}: AlertDialogProps): _$react_jsx_runtime0.JSX.Element;
|
|
25
25
|
declare function AlertDialogTrigger({
|
|
26
26
|
...props
|
|
27
|
-
}: AlertDialogTriggerProps): react_jsx_runtime0.JSX.Element;
|
|
27
|
+
}: AlertDialogTriggerProps): _$react_jsx_runtime0.JSX.Element;
|
|
28
28
|
declare function AlertDialogPortal({
|
|
29
29
|
...props
|
|
30
|
-
}: AlertDialogPortalProps): react_jsx_runtime0.JSX.Element;
|
|
30
|
+
}: AlertDialogPortalProps): _$react_jsx_runtime0.JSX.Element;
|
|
31
31
|
declare function AlertDialogOverlay({
|
|
32
32
|
className,
|
|
33
33
|
...props
|
|
34
|
-
}: AlertDialogOverlayProps): react_jsx_runtime0.JSX.Element;
|
|
34
|
+
}: AlertDialogOverlayProps): _$react_jsx_runtime0.JSX.Element;
|
|
35
35
|
declare function AlertDialogContent({
|
|
36
36
|
className,
|
|
37
37
|
size,
|
|
38
38
|
...props
|
|
39
|
-
}: AlertDialogContentProps): react_jsx_runtime0.JSX.Element;
|
|
39
|
+
}: AlertDialogContentProps): _$react_jsx_runtime0.JSX.Element;
|
|
40
40
|
declare function AlertDialogHeader({
|
|
41
41
|
className,
|
|
42
42
|
...props
|
|
43
|
-
}: AlertDialogHeaderProps): react_jsx_runtime0.JSX.Element;
|
|
43
|
+
}: AlertDialogHeaderProps): _$react_jsx_runtime0.JSX.Element;
|
|
44
44
|
declare function AlertDialogFooter({
|
|
45
45
|
className,
|
|
46
46
|
...props
|
|
47
|
-
}: AlertDialogFooterProps): react_jsx_runtime0.JSX.Element;
|
|
47
|
+
}: AlertDialogFooterProps): _$react_jsx_runtime0.JSX.Element;
|
|
48
48
|
declare function AlertDialogMedia({
|
|
49
49
|
className,
|
|
50
50
|
...props
|
|
51
|
-
}: AlertDialogMediaProps): react_jsx_runtime0.JSX.Element;
|
|
51
|
+
}: AlertDialogMediaProps): _$react_jsx_runtime0.JSX.Element;
|
|
52
52
|
declare function AlertDialogTitle({
|
|
53
53
|
className,
|
|
54
54
|
...props
|
|
55
|
-
}: AlertDialogTitleProps): react_jsx_runtime0.JSX.Element;
|
|
55
|
+
}: AlertDialogTitleProps): _$react_jsx_runtime0.JSX.Element;
|
|
56
56
|
declare function AlertDialogDescription({
|
|
57
57
|
className,
|
|
58
58
|
...props
|
|
59
|
-
}: AlertDialogDescriptionProps): react_jsx_runtime0.JSX.Element;
|
|
59
|
+
}: AlertDialogDescriptionProps): _$react_jsx_runtime0.JSX.Element;
|
|
60
60
|
declare function AlertDialogAction({
|
|
61
61
|
className,
|
|
62
62
|
variant,
|
|
63
63
|
size,
|
|
64
64
|
...props
|
|
65
|
-
}: AlertDialogActionProps): react_jsx_runtime0.JSX.Element;
|
|
65
|
+
}: AlertDialogActionProps): _$react_jsx_runtime0.JSX.Element;
|
|
66
66
|
declare function AlertDialogCancel({
|
|
67
67
|
className,
|
|
68
68
|
variant,
|
|
69
69
|
size,
|
|
70
70
|
...props
|
|
71
|
-
}: AlertDialogCancelProps): react_jsx_runtime0.JSX.Element;
|
|
71
|
+
}: AlertDialogCancelProps): _$react_jsx_runtime0.JSX.Element;
|
|
72
72
|
//#endregion
|
|
73
73
|
export { AlertDialog, AlertDialogAction, AlertDialogActionProps, AlertDialogCancel, AlertDialogCancelProps, AlertDialogContent, AlertDialogContentProps, AlertDialogDescription, AlertDialogDescriptionProps, AlertDialogFooter, AlertDialogFooterProps, AlertDialogHeader, AlertDialogHeaderProps, AlertDialogMedia, AlertDialogMediaProps, AlertDialogOverlay, AlertDialogOverlayProps, AlertDialogPortal, AlertDialogPortalProps, AlertDialogProps, AlertDialogTitle, AlertDialogTitleProps, AlertDialogTrigger, AlertDialogTriggerProps };
|
|
74
74
|
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{AlertDialog as n}from"radix-ui";import{jsx as r,jsxs as i}from"react/jsx-runtime";function AlertDialog({...e}){return r(n.Root,{"data-slot":`alert-dialog`,...e})}function AlertDialogTrigger({...e}){return r(n.Trigger,{"data-slot":`alert-dialog-trigger`,...e})}function AlertDialogPortal({...e}){return r(n.Portal,{"data-slot":`alert-dialog-portal`,...e})}function AlertDialogOverlay({className:t,...i}){return r(n.Overlay,{"data-slot":`alert-dialog-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),...i})}function AlertDialogContent({className:t,size:a=`default`,...o}){return i(AlertDialogPortal,{children:[r(AlertDialogOverlay,{}),r(n.Content,{"data-slot":`alert-dialog-content`,"data-size":a,className:e(`group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-background p-4 ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,t),...o})]})}function AlertDialogHeader({className:t,...n}){return r(`div`,{"data-slot":`alert-dialog-header`,className:e(`grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,t),...n})}function AlertDialogFooter({className:t,...n}){return r(`div`,{"data-slot":`alert-dialog-footer`,className:e(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,t),...n})}function AlertDialogMedia({className:t,...n}){return r(`div`,{"data-slot":`alert-dialog-media`,className:e(`mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6`,t),...n})}function AlertDialogTitle({className:t,...i}){return r(n.Title,{"data-slot":`alert-dialog-title`,className:e(`text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2`,t),...i})}function AlertDialogDescription({className:t,...i}){return r(n.Description,{"data-slot":`alert-dialog-description`,className:e(`text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,t),...i})}function AlertDialogAction({className:i,variant:a=`solid`,size:o=`default`,...s}){return r(t,{variant:a,size:o,asChild:!0,children:r(n.Action,{"data-slot":`alert-dialog-action`,className:e(i),...s})})}function AlertDialogCancel({className:i,variant:a=`outline`,size:o=`default`,...s}){return r(t,{variant:a,size:o,asChild:!0,children:r(n.Cancel,{"data-slot":`alert-dialog-cancel`,className:e(i),...s})})}export{AlertDialog,AlertDialogAction,AlertDialogCancel,AlertDialogContent,AlertDialogDescription,AlertDialogFooter,AlertDialogHeader,AlertDialogMedia,AlertDialogOverlay,AlertDialogPortal,AlertDialogTitle,AlertDialogTrigger};
|
|
2
2
|
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
6
6
|
|
|
7
7
|
//#region src/components/alert.d.ts
|
|
8
8
|
declare const alertVariants: (props?: ({
|
|
9
9
|
variant?: "default" | "destructive" | null | undefined;
|
|
10
|
-
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
10
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
11
11
|
type AlertProps = React.ComponentProps<'div'> & VariantProps<typeof alertVariants>;
|
|
12
12
|
type AlertTitleProps = React.ComponentProps<'div'>;
|
|
13
13
|
type AlertDescriptionProps = React.ComponentProps<'div'>;
|
|
@@ -16,19 +16,19 @@ declare function Alert({
|
|
|
16
16
|
className,
|
|
17
17
|
variant,
|
|
18
18
|
...props
|
|
19
|
-
}: AlertProps): react_jsx_runtime0.JSX.Element;
|
|
19
|
+
}: AlertProps): _$react_jsx_runtime0.JSX.Element;
|
|
20
20
|
declare function AlertTitle({
|
|
21
21
|
className,
|
|
22
22
|
...props
|
|
23
|
-
}: AlertTitleProps): react_jsx_runtime0.JSX.Element;
|
|
23
|
+
}: AlertTitleProps): _$react_jsx_runtime0.JSX.Element;
|
|
24
24
|
declare function AlertDescription({
|
|
25
25
|
className,
|
|
26
26
|
...props
|
|
27
|
-
}: AlertDescriptionProps): react_jsx_runtime0.JSX.Element;
|
|
27
|
+
}: AlertDescriptionProps): _$react_jsx_runtime0.JSX.Element;
|
|
28
28
|
declare function AlertAction({
|
|
29
29
|
className,
|
|
30
30
|
...props
|
|
31
|
-
}: AlertActionProps): react_jsx_runtime0.JSX.Element;
|
|
31
|
+
}: AlertActionProps): _$react_jsx_runtime0.JSX.Element;
|
|
32
32
|
//#endregion
|
|
33
33
|
export { Alert, AlertAction, AlertActionProps, AlertDescription, AlertDescriptionProps, AlertProps, AlertTitle, AlertTitleProps };
|
|
34
34
|
//# sourceMappingURL=alert.d.ts.map
|
package/dist/components/alert.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current`}},defaultVariants:{variant:`default`}});function Alert({className:n,variant:i,...a}){return t(`div`,{"data-slot":`alert`,role:`alert`,className:e(r({variant:i}),n),...a})}function AlertTitle({className:n,...r}){return t(`div`,{"data-slot":`alert-title`,className:e(`font-medium group-has-[>svg]/alert:col-start-2`,`[&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground`,n),...r})}function AlertDescription({className:n,...r}){return t(`div`,{"data-slot":`alert-description`,className:e(`text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4`,`[&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground`,n),...r})}function AlertAction({className:n,...r}){return t(`div`,{"data-slot":`alert-action`,className:e(`absolute top-2 right-2`,n),...r})}export{Alert,AlertAction,AlertDescription,AlertTitle};
|
|
2
2
|
//# sourceMappingURL=alert.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
6
6
|
|
|
7
7
|
//#region src/components/anchor.d.ts
|
|
8
8
|
declare const anchorVariants: (props?: ({
|
|
9
9
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
10
10
|
underline?: "always" | "hover" | "never" | "not-hover" | null | undefined;
|
|
11
|
-
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
11
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
12
12
|
type AnchorProps = React.ComponentProps<'a'> & VariantProps<typeof anchorVariants> & {
|
|
13
13
|
asChild?: boolean;
|
|
14
14
|
};
|
|
@@ -18,7 +18,7 @@ declare function Anchor({
|
|
|
18
18
|
underline,
|
|
19
19
|
asChild,
|
|
20
20
|
...props
|
|
21
|
-
}: AnchorProps): react_jsx_runtime0.JSX.Element;
|
|
21
|
+
}: AnchorProps): _$react_jsx_runtime0.JSX.Element;
|
|
22
22
|
//#endregion
|
|
23
23
|
export { Anchor, AnchorProps, anchorVariants };
|
|
24
24
|
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`text-primary rounded-sm underline-offset-4 transition-colors outline-none hover:text-primary/80 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3`,{variants:{size:{xs:`text-xs leading-4`,sm:`text-sm leading-5`,md:`text-base leading-6`,lg:`text-lg leading-7`,xl:`text-xl leading-8`},underline:{always:`underline`,hover:`no-underline hover:underline`,never:`no-underline`,"not-hover":`underline hover:no-underline`}},defaultVariants:{size:`md`,underline:`hover`}});function Anchor({className:r,size:a=`md`,underline:o=`hover`,asChild:s=!1,...c}){return n(s?t.Root:`a`,{"data-slot":`anchor`,"data-size":a,"data-underline":o,className:e(i({size:a,underline:o}),r),...c})}export{Anchor,i as anchorVariants};
|
|
2
2
|
//# sourceMappingURL=anchor.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
2
|
import { Avatar as Avatar$1 } from "radix-ui";
|
|
3
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/avatar.d.ts
|
|
@@ -16,27 +16,27 @@ declare function Avatar({
|
|
|
16
16
|
className,
|
|
17
17
|
size,
|
|
18
18
|
...props
|
|
19
|
-
}: AvatarProps): react_jsx_runtime0.JSX.Element;
|
|
19
|
+
}: AvatarProps): _$react_jsx_runtime0.JSX.Element;
|
|
20
20
|
declare function AvatarImage({
|
|
21
21
|
className,
|
|
22
22
|
...props
|
|
23
|
-
}: AvatarImageProps): react_jsx_runtime0.JSX.Element;
|
|
23
|
+
}: AvatarImageProps): _$react_jsx_runtime0.JSX.Element;
|
|
24
24
|
declare function AvatarFallback({
|
|
25
25
|
className,
|
|
26
26
|
...props
|
|
27
|
-
}: AvatarFallbackProps): react_jsx_runtime0.JSX.Element;
|
|
27
|
+
}: AvatarFallbackProps): _$react_jsx_runtime0.JSX.Element;
|
|
28
28
|
declare function AvatarBadge({
|
|
29
29
|
className,
|
|
30
30
|
...props
|
|
31
|
-
}: AvatarBadgeProps): react_jsx_runtime0.JSX.Element;
|
|
31
|
+
}: AvatarBadgeProps): _$react_jsx_runtime0.JSX.Element;
|
|
32
32
|
declare function AvatarGroup({
|
|
33
33
|
className,
|
|
34
34
|
...props
|
|
35
|
-
}: AvatarGroupProps): react_jsx_runtime0.JSX.Element;
|
|
35
|
+
}: AvatarGroupProps): _$react_jsx_runtime0.JSX.Element;
|
|
36
36
|
declare function AvatarGroupCount({
|
|
37
37
|
className,
|
|
38
38
|
...props
|
|
39
|
-
}: AvatarGroupCountProps): react_jsx_runtime0.JSX.Element;
|
|
39
|
+
}: AvatarGroupCountProps): _$react_jsx_runtime0.JSX.Element;
|
|
40
40
|
//#endregion
|
|
41
41
|
export { Avatar, AvatarBadge, AvatarBadgeProps, AvatarFallback, AvatarFallbackProps, AvatarGroup, AvatarGroupCount, AvatarGroupCountProps, AvatarGroupProps, AvatarImage, AvatarImageProps, AvatarProps };
|
|
42
42
|
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{Avatar as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function Avatar({className:r,size:i=`default`,...a}){return n(t.Root,{"data-slot":`avatar`,"data-size":i,className:e(`group/avatar relative flex shrink-0 size-8 rounded-full select-none`,`data-[size=lg]:size-10 data-[size=sm]:size-6`,`after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken dark:after:mix-blend-lighten`,r),...a})}function AvatarImage({className:r,...i}){return n(t.Image,{"data-slot":`avatar-image`,className:e(`rounded-full aspect-square size-full object-cover`,r),...i})}function AvatarFallback({className:r,...i}){return n(t.Fallback,{"data-slot":`avatar-fallback`,className:e(`bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs`,r),...i})}function AvatarBadge({className:t,...r}){return n(`span`,{"data-slot":`avatar-badge`,className:e(`bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none`,`group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden`,`group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2`,`group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2`,t),...r})}function AvatarGroup({className:t,...r}){return n(`div`,{"data-slot":`avatar-group`,className:e(`*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2`,t),...r})}function AvatarGroupCount({className:t,...r}){return n(`div`,{"data-slot":`avatar-group-count`,className:e(`bg-muted text-muted-foreground ring-background relative flex shrink-0 items-center justify-center size-8 rounded-full text-sm ring-2`,`group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6`,`[&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3`,t),...r})}export{Avatar,AvatarBadge,AvatarFallback,AvatarGroup,AvatarGroupCount,AvatarImage};
|
|
2
2
|
//# sourceMappingURL=avatar.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
6
6
|
|
|
7
7
|
//#region src/components/badge.d.ts
|
|
8
8
|
declare const badgeVariants: (props?: ({
|
|
9
9
|
variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
|
|
10
|
-
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
10
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
11
11
|
type BadgeProps = React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & {
|
|
12
12
|
asChild?: boolean;
|
|
13
13
|
};
|
|
@@ -16,7 +16,7 @@ declare function Badge({
|
|
|
16
16
|
variant,
|
|
17
17
|
asChild,
|
|
18
18
|
...props
|
|
19
|
-
}: BadgeProps): react_jsx_runtime0.JSX.Element;
|
|
19
|
+
}: BadgeProps): _$react_jsx_runtime0.JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { Badge, BadgeProps, badgeVariants };
|
|
22
22
|
//# sourceMappingURL=badge.d.ts.map
|
package/dist/components/badge.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function Badge({className:r,variant:a=`default`,asChild:o=!1,...s}){return n(o?t.Root:`span`,{"data-slot":`badge`,"data-variant":a,className:e(i({variant:a}),r),...s})}export{Badge,i as badgeVariants};
|
|
2
2
|
//# sourceMappingURL=badge.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
|
+
import { n as __name } from "../chunk-CHh1Zzun.js";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/breadcrumb.d.ts
|
|
@@ -15,33 +15,33 @@ type BreadcrumbEllipsisProps = React.ComponentProps<'span'>;
|
|
|
15
15
|
declare function Breadcrumb({
|
|
16
16
|
className,
|
|
17
17
|
...props
|
|
18
|
-
}: BreadcrumbProps): react_jsx_runtime0.JSX.Element;
|
|
18
|
+
}: BreadcrumbProps): _$react_jsx_runtime0.JSX.Element;
|
|
19
19
|
declare function BreadcrumbList({
|
|
20
20
|
className,
|
|
21
21
|
...props
|
|
22
|
-
}: BreadcrumbListProps): react_jsx_runtime0.JSX.Element;
|
|
22
|
+
}: BreadcrumbListProps): _$react_jsx_runtime0.JSX.Element;
|
|
23
23
|
declare function BreadcrumbItem({
|
|
24
24
|
className,
|
|
25
25
|
...props
|
|
26
|
-
}: BreadcrumbItemProps): react_jsx_runtime0.JSX.Element;
|
|
26
|
+
}: BreadcrumbItemProps): _$react_jsx_runtime0.JSX.Element;
|
|
27
27
|
declare function BreadcrumbLink({
|
|
28
28
|
asChild,
|
|
29
29
|
className,
|
|
30
30
|
...props
|
|
31
|
-
}: BreadcrumbLinkProps): react_jsx_runtime0.JSX.Element;
|
|
31
|
+
}: BreadcrumbLinkProps): _$react_jsx_runtime0.JSX.Element;
|
|
32
32
|
declare function BreadcrumbPage({
|
|
33
33
|
className,
|
|
34
34
|
...props
|
|
35
|
-
}: BreadcrumbPageProps): react_jsx_runtime0.JSX.Element;
|
|
35
|
+
}: BreadcrumbPageProps): _$react_jsx_runtime0.JSX.Element;
|
|
36
36
|
declare function BreadcrumbSeparator({
|
|
37
37
|
children,
|
|
38
38
|
className,
|
|
39
39
|
...props
|
|
40
|
-
}: BreadcrumbSeparatorProps): react_jsx_runtime0.JSX.Element;
|
|
40
|
+
}: BreadcrumbSeparatorProps): _$react_jsx_runtime0.JSX.Element;
|
|
41
41
|
declare function BreadcrumbEllipsis({
|
|
42
42
|
className,
|
|
43
43
|
...props
|
|
44
|
-
}: BreadcrumbEllipsisProps): react_jsx_runtime0.JSX.Element;
|
|
44
|
+
}: BreadcrumbEllipsisProps): _$react_jsx_runtime0.JSX.Element;
|
|
45
45
|
//#endregion
|
|
46
46
|
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps };
|
|
47
47
|
//# sourceMappingURL=breadcrumb.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-
|
|
1
|
+
import"../chunk-CHh1Zzun.js";import{cn as e}from"../lib/utils.js";import{IconChevronRight as t,IconDots as n}from"@tabler/icons-react";import{Slot as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function Breadcrumb({className:t,...n}){return i(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:e(t),...n})}function BreadcrumbList({className:t,...n}){return i(`ol`,{"data-slot":`breadcrumb-list`,className:e(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,t),...n})}function BreadcrumbItem({className:t,...n}){return i(`li`,{"data-slot":`breadcrumb-item`,className:e(`inline-flex items-center gap-1`,t),...n})}function BreadcrumbLink({asChild:t,className:n,...a}){return i(t?r.Root:`a`,{"data-slot":`breadcrumb-link`,className:e(`transition-colors hover:text-foreground`,n),...a})}function BreadcrumbPage({className:t,...n}){return i(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:e(`font-normal text-foreground`,t),...n})}function BreadcrumbSeparator({children:n,className:r,...a}){return i(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:e(`[&>svg]:size-3.5`,r),...a,children:n??i(t,{})})}function BreadcrumbEllipsis({className:t,...r}){return a(`span`,{"data-slot":`breadcrumb-ellipsis`,role:`presentation`,"aria-hidden":`true`,className:e(`flex size-5 items-center justify-center [&>svg]:size-4`,t),...r,children:[i(n,{}),i(`span`,{className:`sr-only`,children:`More`})]})}export{Breadcrumb,BreadcrumbEllipsis,BreadcrumbItem,BreadcrumbLink,BreadcrumbList,BreadcrumbPage,BreadcrumbSeparator};
|
|
2
2
|
//# sourceMappingURL=breadcrumb.js.map
|