@nipsys/shadcn-lsd 0.1.0 → 0.2.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.
Files changed (115) hide show
  1. package/README.md +146 -78
  2. package/dist/{Autocomplete-Cuui1Aca.js → Autocomplete-3wLa9P4X.js} +23 -23
  3. package/dist/{Badge-DgWf6s7v.js → Badge-DHID7w-D.js} +18 -18
  4. package/dist/{Input-CNaDUPU7.js → Input-W8QqFI1v.js} +16 -16
  5. package/dist/{Label-Bz0dz1Kz.js → Label-BEM-ZJXI.js} +1 -1
  6. package/dist/{SidebarContext-7jKqX7F3.js → SidebarContext-CRh-DPz_.js} +7 -7
  7. package/dist/{Toggle-B7BF2ro7.js → Toggle-DOc92BjI.js} +1 -1
  8. package/dist/assets/style.css +1 -1
  9. package/dist/components/ui/accordion/AccordionContent.js +1 -1
  10. package/dist/components/ui/accordion/AccordionItem.js +7 -7
  11. package/dist/components/ui/accordion/AccordionTrigger.js +1 -1
  12. package/dist/components/ui/accordion/__tests__/accordion-item.test.js +9 -9
  13. package/dist/components/ui/alert-dialog/AlertDialogContent.js +3 -3
  14. package/dist/components/ui/alert-dialog/__tests__/alert-dialog-content.test.js +1 -1
  15. package/dist/components/ui/autocomplete/Autocomplete.js +1 -1
  16. package/dist/components/ui/autocomplete/AutocompleteList.js +6 -6
  17. package/dist/components/ui/autocomplete/__tests__/autocomplete.test.js +5 -5
  18. package/dist/components/ui/badge/Badge.js +1 -1
  19. package/dist/components/ui/badge/badge.test.js +3 -3
  20. package/dist/components/ui/card/Card.js +1 -1
  21. package/dist/components/ui/card/CardFooter.js +1 -1
  22. package/dist/components/ui/card/CardHeader.js +1 -1
  23. package/dist/components/ui/card/__tests__/card-footer.test.js +1 -1
  24. package/dist/components/ui/card/__tests__/card-header.test.js +1 -1
  25. package/dist/components/ui/card/__tests__/card.test.js +7 -7
  26. package/dist/components/ui/checkbox/Checkbox.js +10 -10
  27. package/dist/components/ui/checkbox/checkbox.test.js +4 -6
  28. package/dist/components/ui/command/Command.js +1 -1
  29. package/dist/components/ui/command/CommandDialog.js +9 -9
  30. package/dist/components/ui/command/CommandGroup.js +5 -5
  31. package/dist/components/ui/command/CommandItem.js +3 -3
  32. package/dist/components/ui/command/CommandShortcut.js +3 -3
  33. package/dist/components/ui/command/__tests__/command-group.test.js +12 -12
  34. package/dist/components/ui/command/__tests__/command-item.test.js +19 -21
  35. package/dist/components/ui/command/__tests__/command-shortcut.test.js +1 -1
  36. package/dist/components/ui/command/__tests__/command.test.js +1 -1
  37. package/dist/components/ui/dialog/DialogContent.js +6 -6
  38. package/dist/components/ui/dialog/DialogDescription.js +6 -6
  39. package/dist/components/ui/dialog/__tests__/dialog-content.test.js +1 -1
  40. package/dist/components/ui/dialog/__tests__/dialog-description.test.js +1 -1
  41. package/dist/components/ui/input/Input.js +1 -1
  42. package/dist/components/ui/input/input.test.js +3 -3
  43. package/dist/components/ui/label/Label.js +1 -1
  44. package/dist/components/ui/label/label.test.js +1 -1
  45. package/dist/components/ui/menubar/Menubar.d.ts +6 -0
  46. package/dist/components/ui/menubar/Menubar.js +17 -0
  47. package/dist/components/ui/menubar/MenubarCheckboxItem.d.ts +6 -0
  48. package/dist/components/ui/menubar/MenubarCheckboxItem.js +28 -0
  49. package/dist/components/ui/menubar/MenubarContent.d.ts +9 -0
  50. package/dist/components/ui/menubar/MenubarContent.js +27 -0
  51. package/dist/components/ui/menubar/MenubarGroup.d.ts +4 -0
  52. package/dist/components/ui/menubar/MenubarGroup.js +10 -0
  53. package/dist/components/ui/menubar/MenubarItem.d.ts +8 -0
  54. package/dist/components/ui/menubar/MenubarItem.js +34 -0
  55. package/dist/components/ui/menubar/MenubarLabel.d.ts +7 -0
  56. package/dist/components/ui/menubar/MenubarLabel.js +18 -0
  57. package/dist/components/ui/menubar/MenubarMenu.d.ts +4 -0
  58. package/dist/components/ui/menubar/MenubarMenu.js +10 -0
  59. package/dist/components/ui/menubar/MenubarPortal.d.ts +4 -0
  60. package/dist/components/ui/menubar/MenubarPortal.js +10 -0
  61. package/dist/components/ui/menubar/MenubarRadioGroup.d.ts +4 -0
  62. package/dist/components/ui/menubar/MenubarRadioGroup.js +10 -0
  63. package/dist/components/ui/menubar/MenubarRadioItem.d.ts +6 -0
  64. package/dist/components/ui/menubar/MenubarRadioItem.js +27 -0
  65. package/dist/components/ui/menubar/MenubarSeparator.d.ts +6 -0
  66. package/dist/components/ui/menubar/MenubarSeparator.js +17 -0
  67. package/dist/components/ui/menubar/MenubarSub.d.ts +4 -0
  68. package/dist/components/ui/menubar/MenubarSub.js +10 -0
  69. package/dist/components/ui/menubar/MenubarSubContent.d.ts +6 -0
  70. package/dist/components/ui/menubar/MenubarSubContent.js +17 -0
  71. package/dist/components/ui/menubar/MenubarSubTrigger.d.ts +7 -0
  72. package/dist/components/ui/menubar/MenubarSubTrigger.js +33 -0
  73. package/dist/components/ui/menubar/MenubarTrigger.d.ts +6 -0
  74. package/dist/components/ui/menubar/MenubarTrigger.js +17 -0
  75. package/dist/components/ui/menubar/__tests__/menubar-trigger.test.d.ts +1 -0
  76. package/dist/components/ui/menubar/__tests__/menubar-trigger.test.js +68 -0
  77. package/dist/components/ui/menubar/__tests__/menubar.test.d.ts +1 -0
  78. package/dist/components/ui/menubar/__tests__/menubar.test.js +66 -0
  79. package/dist/components/ui/menubar/index.d.ts +16 -0
  80. package/dist/components/ui/menubar/types.d.ts +22 -0
  81. package/dist/components/ui/popover/PopoverContent.js +1 -1
  82. package/dist/components/ui/popover/__tests__/popover-content.test.js +1 -1
  83. package/dist/components/ui/progress/Progress.js +24 -24
  84. package/dist/components/ui/progress/progress.test.js +5 -5
  85. package/dist/components/ui/select/SelectContent.js +1 -1
  86. package/dist/components/ui/select/SelectItem.js +7 -7
  87. package/dist/components/ui/select/SelectTrigger.js +13 -13
  88. package/dist/components/ui/select/__tests__/select-content.test.js +1 -1
  89. package/dist/components/ui/sidebar/Sidebar.js +1 -1
  90. package/dist/components/ui/sidebar/SidebarContent.js +2 -2
  91. package/dist/components/ui/sidebar/SidebarContext.js +1 -1
  92. package/dist/components/ui/sidebar/SidebarMenu.js +5 -5
  93. package/dist/components/ui/sidebar/__tests__/sidebar-content.test.js +1 -1
  94. package/dist/components/ui/sidebar/__tests__/sidebar-group.test.js +2 -2
  95. package/dist/components/ui/sidebar/__tests__/sidebar-menu.test.js +2 -2
  96. package/dist/components/ui/sidebar/__tests__/sidebar.test.js +1 -1
  97. package/dist/components/ui/sonner/Toaster.js +60 -60
  98. package/dist/components/ui/sonner/sonner.test.js +14 -14
  99. package/dist/components/ui/switch/Switch.js +14 -14
  100. package/dist/components/ui/switch/switch.test.js +2 -2
  101. package/dist/components/ui/tabs/Tabs.js +1 -1
  102. package/dist/components/ui/tabs/TabsList.js +1 -1
  103. package/dist/components/ui/tabs/TabsTrigger.js +1 -1
  104. package/dist/components/ui/tabs/__tests__/tabs-list.test.js +1 -1
  105. package/dist/components/ui/tabs/__tests__/tabs-trigger.test.js +4 -4
  106. package/dist/components/ui/tabs/__tests__/tabs.test.js +2 -2
  107. package/dist/components/ui/toggle/Toggle.js +1 -1
  108. package/dist/components/ui/toggle/toggle.test.js +4 -4
  109. package/dist/components/ui/toggle-group/ToggleGroupItem.js +1 -1
  110. package/dist/index-DSoDGF_j.js +916 -0
  111. package/dist/main.js +6 -6
  112. package/dist/{types-B02xH7lg.js → types-B0wccExf.js} +2 -2
  113. package/dist/types-D94euSAG.js +69 -0
  114. package/dist/{types-BKY1Yguv.js → types-Um3fwb1D.js} +2 -2
  115. package/package.json +15 -14
package/README.md CHANGED
@@ -1,108 +1,126 @@
1
1
  # @nipsys/shadcn-lsd
2
2
 
3
- A React component library implementing the Logos Design System (LSD) using shadcn / Radix UI and Tailwind CSS.
4
-
5
- ## Overview
6
-
7
- @nipsys/shadcn-lsd follows a minimalist design system. The library offers a comprehensive set of UI components with built-in light and dark theme support.
3
+ A React component library implementing the Logos Design System (LSD). Built with Radix UI primitives and Tailwind CSS, following the shadcn/ui patterns.
8
4
 
9
5
  ## Installation
10
6
 
11
7
  ```bash
12
- npm install @nipsys/shadcn-lsd
13
- # or
14
8
  pnpm add @nipsys/shadcn-lsd
15
9
  ```
16
10
 
17
- ## Quick Start
11
+ ## Usage
12
+
13
+ ### Import the CSS
14
+
15
+ First, import the stylesheet in your application entry point:
18
16
 
19
17
  ```tsx
20
- import { Button, Input, Card } from '@nipsys/shadcn-lsd';
21
18
  import '@nipsys/shadcn-lsd/css';
19
+ ```
20
+
21
+ You can also import it in CSS:
22
+
23
+ ```css
24
+ @import "@nipsys/shadcn-lsd/css";
25
+ ```
26
+
27
+ ### Import Components
28
+
29
+ ```tsx
30
+ import { Dialog, DialogTrigger, DialogContent, Button } from "@nipsys/shadcn-lsd";
22
31
 
23
32
  function App() {
24
33
  return (
25
- <div className="min-h-screen bg-background text-foreground">
26
- <Card className="p-6">
27
- <h1 className="text-2xl mb-4">Welcome to LSD React</h1>
28
- <Input placeholder="Enter your name" className="mb-4" />
29
- <Button>Submit</Button>
30
- </Card>
31
- </div>
34
+ <Dialog>
35
+ <DialogTrigger>
36
+ <Button>Open</Button>
37
+ </DialogTrigger>
38
+ <DialogContent>
39
+ <p>Dialog content here</p>
40
+ </DialogContent>
41
+ </Dialog>
32
42
  );
33
43
  }
44
+
45
+ export default App;
34
46
  ```
35
47
 
36
- ## Theming
48
+ ### Theming
37
49
 
38
- LSD React uses CSS custom properties for theming. The theme can be switched by adding/removing the `.dark` class on the root element (or any container).
50
+ The library supports light and dark themes out of the box. Add the `dark` class to your root element to enable dark mode:
39
51
 
40
- ### Light Theme (Default)
52
+ ```html
53
+ <html class="dark">
54
+ <!-- your app -->
55
+ </html>
56
+ ```
41
57
 
42
- ```css
43
- :root {
44
- --lsd-text: 0 0 0; /* Black */
45
- --lsd-border: 0 0 0; /* Black */
46
- --lsd-surface-primary: 255 255 255; /* White */
47
- --lsd-surface-secondary: 255 255 255; /* White */
48
- }
58
+ ### Theme Variants
59
+
60
+ A teal theme variant is also available:
61
+
62
+ ```html
63
+ <html class="theme-teal">
64
+ <!-- light teal theme -->
65
+ </html>
66
+
67
+ <html class="dark theme-teal">
68
+ <!-- dark teal theme -->
69
+ </html>
49
70
  ```
50
71
 
51
- ### Dark Theme
72
+ ### CSS Variables
73
+
74
+ The design system uses CSS custom properties that you can override:
52
75
 
53
76
  ```css
54
- .dark {
55
- --lsd-text: 255 255 255; /* White */
56
- --lsd-border: 255 255 255; /* White */
57
- --lsd-surface-primary: 0 0 0; /* Black */
58
- --lsd-surface-secondary: 0 0 0; /* Black */
77
+ :root {
78
+ --lsd-primary: #000000;
79
+ --lsd-text-primary: #000000;
80
+ --lsd-text-secondary: #808080;
81
+ --lsd-border: #000000;
82
+ --lsd-surface: #ffffff;
83
+ --lsd-destructive: #b91c1c;
84
+ --lsd-success: #15803d;
85
+ --lsd-warning: #f59e0b;
86
+ --lsd-info: #2563eb;
59
87
  }
60
88
  ```
61
89
 
62
90
  ## Components
63
91
 
64
- LSD React provides a comprehensive set of UI components:
65
-
66
- ### Form Components
67
- - **Input**: Text input with size variants
68
- - **Autocomplete**: Searchable dropdown with async support
69
- - **Select**: Native select with custom styling
70
- - **Checkbox**: Accessible checkbox component
71
- - **Switch**: Toggle switch component
72
- - **Label**: Form label with variants
73
-
74
- ### Navigation Components
75
- - **Tabs**: Tabbed interface with size variants
76
- - **Sidebar**: Collapsible sidebar with submenus
77
- - **Breadcrumb**: Navigation breadcrumb (coming soon)
78
-
79
- ### Layout Components
80
- - **Card**: Container with header, content, and footer
81
- - **Sheet**: Slide-out panel component
82
- - **Separator**: Visual divider
83
- - **ScrollArea**: Custom scrollable area
84
-
85
- ### Data Display Components
86
- - **Badge**: Status and label badges
87
- - **Typography**: Text components with variants
88
- - **Skeleton**: Loading placeholder
89
- - **Progress**: Progress bar with indeterminate state
90
-
91
- ### Feedback Components
92
- - **Dialog**: Modal dialog component
93
- - **AlertDialog**: Confirmation dialog
94
- - **Popover**: Popup content component
95
- - **Tooltip**: Hover tooltip
96
- - **Sonner**: Toast notifications
97
-
98
- ### Input Components
99
- - **Button**: Versatile button with variants and sizes
100
- - **ButtonGroup**: Grouped buttons
101
- - **Toggle**: Toggle button component
102
- - **ToggleGroup**: Grouped toggle buttons
92
+ | Component | Description |
93
+ |-----------|-------------|
94
+ | Accordion | Vertically stacked collapsible sections |
95
+ | AlertDialog | Modal dialog for critical confirmations |
96
+ | Autocomplete | Input with async suggestion fetching |
97
+ | Badge | Small label for status or categorization |
98
+ | Button | Interactive button with multiple variants |
99
+ | ButtonGroup | Grouped buttons with optional separators |
100
+ | Card | Container for related content |
101
+ | Checkbox | Boolean input control |
102
+ | Command | Command palette for keyboard navigation |
103
+ | Dialog | Modal overlay for focused content |
104
+ | Input | Text input field |
105
+ | Label | Form field label |
106
+ | Popover | Floating content anchored to trigger |
107
+ | Progress | Visual indicator of completion |
108
+ | ScrollArea | Custom scrollbar container |
109
+ | Select | Dropdown selection input |
110
+ | Separator | Visual divider between sections |
111
+ | Sheet | Slide-out panel overlay |
112
+ | Sidebar | Navigation sidebar component |
113
+ | Skeleton | Loading placeholder |
114
+ | Sonner | Toast notifications |
115
+ | Switch | Toggle switch input |
116
+ | Tabs | Tabbed content navigation |
117
+ | Toggle | Two-state button |
118
+ | ToggleGroup | Group of toggle buttons |
119
+ | Tooltip | Hover information popup |
120
+ | Typography | Text styling components |
103
121
 
104
122
  ## Development
105
-
123
+ M
106
124
  ### Prerequisites
107
125
 
108
126
  - Node.js >= 24.0.0
@@ -111,20 +129,70 @@ LSD React provides a comprehensive set of UI components:
111
129
  ### Setup
112
130
 
113
131
  ```bash
132
+ # Clone the repository
114
133
  git clone https://github.com/nipsysdev/shadcn-lsd.git
115
134
  cd shadcn-lsd
135
+
136
+ # Install dependencies
116
137
  pnpm install
117
138
  ```
118
139
 
119
140
  ### Scripts
120
141
 
121
- - `pnpm dev` - Start development server
122
- - `pnpm build` - Build the library
123
- - `pnpm cosmos` - Start React Cosmos dev server
124
- - `pnpm cosmos:export` - Export Cosmos site
125
- - `pnpm lint` - Run linting
142
+ ```bash
143
+ # Start component playground
144
+ pnpm cosmos
145
+
146
+ # Build the library
147
+ pnpm build
148
+
149
+ # Run tests
150
+ pnpm test
151
+
152
+ # Run tests in watch mode
153
+ pnpm test:watch
154
+
155
+ # Run tests with coverage
156
+ pnpm test:coverage
157
+
158
+ # Lint code
159
+ pnpm lint
160
+
161
+ # Format code
162
+ pnpm format
163
+ ```
164
+
165
+ ### Component Playground
126
166
 
167
+ The project uses React Cosmos for component development. Run `pnpm cosmos` to start the playground at `http://localhost:5000`.
168
+
169
+ To export a static build for deployment:
170
+
171
+ ```bash
172
+ pnpm cosmos-export
173
+ ```
174
+
175
+ ## Tech Stack
176
+
177
+ - **React 19** - UI library
178
+ - **TypeScript** - Type safety
179
+ - **Tailwind CSS 4** - Utility-first styling
180
+ - **Radix UI** - Accessible primitives
181
+ - **Vite** - Build tooling
182
+ - **Vitest** - Testing framework
183
+ - **React Cosmos** - Component playground
184
+
185
+ ## Peer Dependencies
186
+
187
+ Make sure your project has these installed:
188
+
189
+ ```json
190
+ {
191
+ "react": "^19.2.4",
192
+ "react-dom": "^19.2.4"
193
+ }
194
+ ```
127
195
 
128
196
  ## License
129
197
 
130
- Licensed under GNU GPL v3+
198
+ [GPL-3.0-or-later](LICENSE)
@@ -1,4 +1,4 @@
1
- import { jsxs as w, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as S, jsx as r } from "react/jsx-runtime";
2
2
  import * as s from "react";
3
3
  import { Popover as B } from "./components/ui/popover/Popover.js";
4
4
  import { c as n } from "./utils-DtaLkIY8.js";
@@ -56,10 +56,10 @@ function q({
56
56
  f(!0);
57
57
  const y = async () => {
58
58
  try {
59
- const p = await l(d);
60
- m(p);
61
- } catch (p) {
62
- console.error("Error fetching options:", p), m([]);
59
+ const a = await l(d);
60
+ m(a);
61
+ } catch (a) {
62
+ console.error("Error fetching options:", a), m([]);
63
63
  } finally {
64
64
  f(!1);
65
65
  }
@@ -83,7 +83,7 @@ const G = s.forwardRef(
83
83
  disabled: e = !1,
84
84
  label: y,
85
85
  size: v = "md",
86
- icon: p,
86
+ icon: a,
87
87
  error: T = !1,
88
88
  variant: I = "outlined",
89
89
  clearable: P = !1,
@@ -93,7 +93,7 @@ const G = s.forwardRef(
93
93
  }, _) => {
94
94
  const [E, A] = s.useState(!1), [j, N] = s.useState(""), b = x !== void 0 ? x : j, [u, h] = s.useState(""), O = s.useRef(null);
95
95
  s.useImperativeHandle(_, () => O.current);
96
- const { asyncOptions: S, isLoading: k } = q({
96
+ const { asyncOptions: w, isLoading: k } = q({
97
97
  onOptionsFetch: d,
98
98
  searchText: u,
99
99
  open: E,
@@ -105,14 +105,14 @@ const G = s.forwardRef(
105
105
  [c, x]
106
106
  ), U = () => {
107
107
  x === void 0 && N(""), h(""), c?.(""), f?.();
108
- }, D = s.useMemo(() => d ? S : l ? u ? l.filter(
108
+ }, D = s.useMemo(() => d ? w : l ? u ? l.filter(
109
109
  (t) => t.label.toLowerCase().startsWith(u.toLowerCase())
110
- ) : l : [], [l, S, u, d]), L = g.id || "autocomplete-input", a = Y[v], z = b && (l?.find((t) => t.value === b)?.label || S?.find((t) => t.value === b)?.label) || "";
111
- return /* @__PURE__ */ w(
110
+ ) : l : [], [l, w, u, d]), L = g.id || "autocomplete-input", p = Y[v], z = b && (l?.find((t) => t.value === b)?.label || w?.find((t) => t.value === b)?.label) || "";
111
+ return /* @__PURE__ */ S(
112
112
  "div",
113
113
  {
114
114
  ...g,
115
- className: n("lsd:box-border", a.container, m),
115
+ className: n("lsd:box-border", p.container, m),
116
116
  children: [
117
117
  y && /* @__PURE__ */ r(
118
118
  "label",
@@ -120,20 +120,20 @@ const G = s.forwardRef(
120
120
  htmlFor: L,
121
121
  className: n(
122
122
  "lsd:block lsd:text-sm",
123
- a.label,
123
+ p.label,
124
124
  e ? "lsd:text-lsd-text-secondary" : "lsd:text-lsd-text-primary"
125
125
  ),
126
126
  children: y
127
127
  }
128
128
  ),
129
- /* @__PURE__ */ w(B, { open: E, onOpenChange: A, children: [
130
- /* @__PURE__ */ r(H, { asChild: !0, children: /* @__PURE__ */ w(
129
+ /* @__PURE__ */ S(B, { open: E, onOpenChange: A, children: [
130
+ /* @__PURE__ */ r(H, { asChild: !0, children: /* @__PURE__ */ S(
131
131
  "div",
132
132
  {
133
133
  className: n(
134
134
  "lsd:flex lsd:justify-between",
135
- a.inputContainer,
136
- I === "outlined" ? e ? "lsd:border lsd:border-lsd-text-secondary" : "lsd:border lsd:border-lsd-border-primary" : e ? "lsd:border lsd:border-transparent lsd:border-b-lsd-text-secondary" : "lsd:border lsd:border-transparent lsd:border-b-lsd-border-primary",
135
+ p.inputContainer,
136
+ I === "outlined" ? e ? "lsd:border lsd:border-lsd-text-secondary" : "lsd:border lsd:border-lsd-border" : e ? "lsd:border lsd:border-transparent lsd:border-b-lsd-text-secondary" : "lsd:border lsd:border-transparent lsd:border-b-lsd-border",
137
137
  e ? "lsd:cursor-not-allowed" : "lsd:cursor-pointer"
138
138
  ),
139
139
  children: [
@@ -149,18 +149,18 @@ const G = s.forwardRef(
149
149
  readOnly: !0,
150
150
  className: n(
151
151
  "lsd:border-none lsd:outline-none lsd:bg-none lsd:w-full lsd:text-[14px]",
152
- a.input,
153
- e ? "lsd:text-lsd-text-secondary" : "lsd:text-lsd-text-primary",
152
+ p.input,
153
+ e ? "lsd:text-lsd-text-secondary lsd:cursor-not-allowed" : "lsd:text-lsd-text-primary",
154
154
  T && "lsd:line-through",
155
- "lsd:[&::placeholder]:text-lsd-text-primary lsd:[&::placeholder]:opacity-30"
155
+ "lsd:placeholder:text-lsd-text-primary lsd:placeholder:opacity-30"
156
156
  )
157
157
  }
158
158
  ),
159
- p && /* @__PURE__ */ r(
159
+ a && /* @__PURE__ */ r(
160
160
  "div",
161
161
  {
162
- className: n("lsd:flex lsd:items-center", a.icon),
163
- children: p
162
+ className: n("lsd:flex lsd:items-center", p.icon),
163
+ children: a
164
164
  }
165
165
  ),
166
166
  b && P && /* @__PURE__ */ r(
@@ -171,7 +171,7 @@ const G = s.forwardRef(
171
171
  disabled: e,
172
172
  className: n(
173
173
  "lsd:flex lsd:items-center",
174
- a.icon,
174
+ p.icon,
175
175
  e ? "lsd:cursor-not-allowed" : "lsd:cursor-pointer"
176
176
  ),
177
177
  children: /* @__PURE__ */ r(
@@ -3,11 +3,11 @@ import { S as y } from "./index-BvoZGpli.js";
3
3
  import { c as k } from "./utils-DtaLkIY8.js";
4
4
  import { c as z } from "./index-D69Iqk5J.js";
5
5
  const j = z(
6
- "lsd:inline-flex lsd:items-center lsd:justify-center lsd:border lsd:border-lsd-icon-primary lsd:rounded-[20px] lsd:w-fit lsd:whitespace-nowrap lsd:shrink-0 lsd:[&>svg]:size-3 lsd:[&>svg]:pointer-events-none lsd:hover:underline lsd:focus:underline lsd:cursor-pointer lsd:transition-colors lsd:overflow-hidden",
6
+ "lsd:inline-flex lsd:items-center lsd:justify-center lsd:border lsd:border-lsd-border lsd:rounded-[20px] lsd:w-fit lsd:whitespace-nowrap lsd:shrink-0 lsd:[&>svg]:size-3 lsd:[&>svg]:pointer-events-none lsd:hover:underline lsd:focus:underline lsd:cursor-pointer lsd:transition-colors lsd:overflow-hidden",
7
7
  {
8
8
  variants: {
9
9
  variant: {
10
- filled: "lsd:bg-lsd-primary lsd:text-lsd-surface-primary",
10
+ filled: "lsd:bg-lsd-primary lsd:text-lsd-surface",
11
11
  outlined: "lsd:bg-transparent lsd:text-lsd-text-primary",
12
12
  destructive: "lsd:bg-lsd-destructive lsd:text-white lsd:border-lsd-destructive",
13
13
  success: "lsd:bg-lsd-success lsd:text-white lsd:border-lsd-success",
@@ -50,9 +50,9 @@ const j = z(
50
50
  function I({
51
51
  className: c,
52
52
  variant: n,
53
- size: i,
53
+ size: o,
54
54
  asChild: u = !1,
55
- onDismiss: o,
55
+ onDismiss: i,
56
56
  onClick: t,
57
57
  icon: e,
58
58
  iconPosition: p = "left",
@@ -60,12 +60,12 @@ function I({
60
60
  children: a,
61
61
  ...g
62
62
  }) {
63
- const f = u ? y : "span", l = !!t, r = h || n === "dot", m = (d) => {
64
- l && (d.key === "Enter" || d.key === " ") && (d.preventDefault(), t?.());
65
- }, w = (d) => {
66
- d.stopPropagation(), o?.();
67
- }, b = r ? (() => {
68
- switch (i) {
63
+ const f = u ? y : "span", d = !!t, r = h || n === "dot", m = (l) => {
64
+ d && (l.key === "Enter" || l.key === " ") && (l.preventDefault(), t?.());
65
+ }, b = (l) => {
66
+ l.stopPropagation(), i?.();
67
+ }, w = r ? (() => {
68
+ switch (o) {
69
69
  case "xs":
70
70
  return "lsd:w-[8px] lsd:h-[8px]";
71
71
  case "sm":
@@ -85,27 +85,27 @@ function I({
85
85
  {
86
86
  "data-slot": "badge",
87
87
  className: k(
88
- j({ variant: n, size: i }),
89
- l && "lsd:cursor-pointer",
88
+ j({ variant: n, size: o }),
89
+ d && "lsd:cursor-pointer",
90
90
  r && "lsd:rounded-full lsd:p-0 lsd:border-0",
91
- b,
91
+ w,
92
92
  c
93
93
  ),
94
- role: l ? "button" : void 0,
95
- tabIndex: l ? 0 : void 0,
94
+ role: d ? "button" : void 0,
95
+ tabIndex: d ? 0 : void 0,
96
96
  onKeyDown: m,
97
- onClick: l ? t : void 0,
97
+ onClick: d ? t : void 0,
98
98
  ...g,
99
99
  children: !r && /* @__PURE__ */ x(v, { children: [
100
100
  e && p === "left" && /* @__PURE__ */ s("span", { className: "lsd:flex lsd:items-center lsd:justify-center", children: e }),
101
101
  a && /* @__PURE__ */ s("span", { children: a }),
102
102
  e && p === "right" && /* @__PURE__ */ s("span", { className: "lsd:flex lsd:items-center lsd:justify-center", children: e }),
103
- o && /* @__PURE__ */ s(
103
+ i && /* @__PURE__ */ s(
104
104
  "button",
105
105
  {
106
106
  type: "button",
107
107
  className: "lsd:flex lsd:items-center lsd:justify-center lsd:rounded-full lsd:hover:bg-black/10 lsd:dark:hover:bg-white/10 lsd:transition-colors lsd:cursor-pointer lsd:border-0 lsd:p-0 lsd:bg-transparent",
108
- onClick: w,
108
+ onClick: b,
109
109
  "aria-label": "Dismiss",
110
110
  children: /* @__PURE__ */ s(D, {})
111
111
  }
@@ -1,7 +1,7 @@
1
- import { jsxs as p, jsx as s } from "react/jsx-runtime";
1
+ import { jsxs as b, jsx as s } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
3
  import { c as l } from "./utils-DtaLkIY8.js";
4
- function b(e) {
4
+ function p(e) {
5
5
  switch (e) {
6
6
  case "xs":
7
7
  return "lsd:text-xs file:lsd:text-xs";
@@ -17,7 +17,7 @@ function b(e) {
17
17
  return "lsd:text-base file:lsd:text-base";
18
18
  }
19
19
  }
20
- function y(e) {
20
+ function g(e) {
21
21
  switch (e) {
22
22
  case "xs":
23
23
  return "lsd:py-1";
@@ -33,7 +33,7 @@ function y(e) {
33
33
  return "lsd:py-3";
34
34
  }
35
35
  }
36
- function g(e) {
36
+ function y(e) {
37
37
  switch (e) {
38
38
  case "xs":
39
39
  return "lsd:text-xs";
@@ -60,14 +60,14 @@ const h = i.forwardRef(
60
60
  id: x,
61
61
  type: o,
62
62
  ...u
63
- }, m) => {
64
- const f = i.useId(), n = x || f;
65
- return /* @__PURE__ */ p("div", { className: l("lsd:flex lsd:flex-col lsd:box-border", e), children: [
63
+ }, f) => {
64
+ const m = i.useId(), n = x || m;
65
+ return /* @__PURE__ */ b("div", { className: l("lsd:flex lsd:flex-col lsd:box-border", e), children: [
66
66
  d && /* @__PURE__ */ s(
67
67
  "label",
68
68
  {
69
69
  htmlFor: n,
70
- className: l("lsd:font-medium", g(t)),
70
+ className: l("lsd:font-medium", y(t)),
71
71
  children: d
72
72
  }
73
73
  ),
@@ -76,20 +76,20 @@ const h = i.forwardRef(
76
76
  {
77
77
  className: l(
78
78
  "lsd:flex lsd:items-center lsd:justify-between",
79
- c === "outlined" ? "lsd:border lsd:border-lsd-border-primary" : "lsd:border lsd:border-transparent lsd:border-b-lsd-border-primary",
79
+ c === "outlined" ? "lsd:border lsd:border-lsd-border" : "lsd:border lsd:border-transparent lsd:border-b-lsd-border",
80
80
  a && "lsd:border-lsd-destructive"
81
81
  ),
82
82
  children: /* @__PURE__ */ s(
83
83
  "input",
84
84
  {
85
- ref: m,
85
+ ref: f,
86
86
  type: o,
87
87
  id: n,
88
88
  className: l(
89
- "file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34",
89
+ "file:lsd:text-lsd-text-primary placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34",
90
90
  "focus-visible:lsd:outline-none lsd:px-4",
91
- b(t),
92
- y(t)
91
+ p(t),
92
+ g(t)
93
93
  ),
94
94
  ...u
95
95
  }
@@ -113,7 +113,7 @@ const h = i.forwardRef(
113
113
  h.displayName = "Input";
114
114
  export {
115
115
  h as I,
116
- b as a,
117
- y as b,
118
- g
116
+ p as a,
117
+ g as b,
118
+ y as g
119
119
  };
@@ -16,7 +16,7 @@ var m = "Label", s = d.forwardRef((t, a) => /* @__PURE__ */ l(
16
16
  s.displayName = m;
17
17
  var c = s;
18
18
  const u = n(
19
- "lsd:flex lsd:items-center lsd:gap-2 lsd:select-none lsd:group-data-[disabled=true]:pointer-events-none lsd:group-data-[disabled=true]:opacity-50 peer-lsd:disabled:cursor-not-allowed peer-lsd:disabled:opacity-50",
19
+ "lsd:flex lsd:items-center lsd:gap-2 lsd:select-none lsd:group-data-[disabled=true]:pointer-events-none lsd:group-data-[disabled=true]:opacity-50 lsd:peer-disabled:cursor-not-allowed lsd:peer-disabled:opacity-50",
20
20
  {
21
21
  variants: {
22
22
  variant: {
@@ -16,7 +16,7 @@ function D() {
16
16
  }, []), !!a;
17
17
  }
18
18
  const k = "16rem", T = "18rem", A = "3rem", M = "b", L = y(
19
- "peer/menu-button lsd:flex lsd:w-full lsd:items-center lsd:gap-2 lsd:overflow-hidden lsd:rounded-md lsd:p-2 lsd:text-left lsd:text-sm lsd:outline-hidden ring-sidebar-ring lsd:transition-[width,height,padding] lsd:hover:bg-sidebar-accent lsd:hover:text-sidebar-accent-foreground lsd:focus-visible:ring-2 lsd:active:bg-sidebar-accent lsd:active:text-sidebar-accent-foreground lsd:disabled:pointer-events-none lsd:disabled:opacity-50 lsd:group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-lsd:disabled:pointer-events-none aria-lsd:disabled:opacity-50 lsd:data-[active=true]:bg-sidebar-accent lsd:data-[active=true]:font-medium lsd:data-[active=true]:text-sidebar-accent-foreground lsd:data-[state=open]:hover:bg-sidebar-accent lsd:data-[state=open]:hover:text-sidebar-accent-foreground lsd:group-data-[collapsible=icon]:size-8! lsd:group-data-[collapsible=icon]:p-2! lsd:[&>span:last-child]:truncate lsd:[&>svg]:size-4 lsd:[&>svg]:shrink-0",
19
+ "peer/menu-button lsd:flex lsd:w-full lsd:items-center lsd:gap-2 lsd:overflow-hidden lsd:rounded-md lsd:p-2 lsd:text-left lsd:text-sm lsd:outline-hidden ring-sidebar-ring lsd:transition-[width,height,padding] lsd:hover:bg-sidebar-accent lsd:hover:text-sidebar-accent-foreground lsd:focus-visible:ring-2 lsd:active:bg-sidebar-accent lsd:active:text-sidebar-accent-foreground lsd:disabled:pointer-events-none lsd:disabled:opacity-50 lsd:group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-lsd:disabled:pointer-events-none aria-lsd:disabled:opacity-50 lsd:data-[active=true]:bg-sidebar-accent lsd:data-[active=true]:font-medium lsd:data-[active=true]:text-sidebar-accent-foreground lsd:data-[state=open]:hover:bg-sidebar-accent lsd:data-[state=open]:hover:text-sidebar-accent-foreground lsd:group-data-[collapsible=icon]:size-8! lsd:group-data-[collapsible=icon]:p-2! lsd:[&>span:last-child]:truncate lsd:[&>svg]:size-4 lsd:[&>svg]:shrink-0 lsd:hover:underline lsd:focus:underline",
20
20
  {
21
21
  variants: {
22
22
  variant: {
@@ -34,11 +34,11 @@ const k = "16rem", T = "18rem", A = "3rem", M = "b", L = y(
34
34
  size: "default"
35
35
  }
36
36
  }
37
- ), m = t.createContext(
37
+ ), v = t.createContext(
38
38
  null
39
39
  );
40
40
  function K() {
41
- const a = t.useContext(m);
41
+ const a = t.useContext(v);
42
42
  if (!a)
43
43
  throw new Error("useSidebar must be used within a SidebarProvider.");
44
44
  return a;
@@ -48,7 +48,7 @@ function W({
48
48
  open: r,
49
49
  onOpenChange: d,
50
50
  className: o,
51
- style: v,
51
+ style: m,
52
52
  children: g,
53
53
  ...w
54
54
  }) {
@@ -77,14 +77,14 @@ function W({
77
77
  }),
78
78
  [f, n, l, i, p, c]
79
79
  );
80
- return /* @__PURE__ */ u(m.Provider, { value: S, children: /* @__PURE__ */ u(I, { delayDuration: 0, children: /* @__PURE__ */ u(
80
+ return /* @__PURE__ */ u(v.Provider, { value: S, children: /* @__PURE__ */ u(I, { delayDuration: 0, children: /* @__PURE__ */ u(
81
81
  "div",
82
82
  {
83
83
  "data-slot": "sidebar-wrapper",
84
84
  style: {
85
85
  "--sidebar-width": "16rem",
86
86
  "--sidebar-width-icon": "3rem",
87
- ...v
87
+ ...m
88
88
  },
89
89
  className: E(
90
90
  "lsd:group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar lsd:flex lsd:min-h-svh lsd:w-full",
@@ -101,7 +101,7 @@ export {
101
101
  A as b,
102
102
  T as c,
103
103
  W as d,
104
- m as e,
104
+ v as e,
105
105
  L as s,
106
106
  K as u
107
107
  };
@@ -4,7 +4,7 @@ import * as a from "react";
4
4
  import { c as o } from "./utils-DtaLkIY8.js";
5
5
  import { c as i } from "./index-D69Iqk5J.js";
6
6
  const n = i(
7
- "lsd:inline-flex lsd:items-center lsd:justify-center lsd:border lsd:transition-colors lsd:bg-transparent lsd:text-lsd-text lsd:border-lsd-border lsd:hover:underline lsd:cursor-pointer lsd:disabled:opacity-34 lsd:disabled:cursor-not-allowed lsd:disabled:no-underline lsd:data-[state=on]:bg-lsd-primary lsd:data-[state=on]:text-lsd-surface-primary",
7
+ "lsd:inline-flex lsd:items-center lsd:justify-center lsd:border lsd:transition-colors lsd:bg-transparent lsd:text-lsd-text-primary lsd:border-lsd-border lsd:hover:underline lsd:cursor-pointer lsd:disabled:opacity-34 lsd:disabled:cursor-not-allowed lsd:disabled:no-underline lsd:data-[state=on]:bg-lsd-primary lsd:data-[state=on]:text-lsd-surface",
8
8
  {
9
9
  variants: {
10
10
  size: {