@nextop-os/ui-system 0.0.19 → 0.0.20
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/AGENTS.md +40 -0
- package/agent/nextop-ui-system/SKILL.md +42 -5
- package/agent/nextop-ui-system/references/promote-business-component.md +100 -22
- package/dist/{chunk-LVHEV755.js → chunk-AJCTWBHN.js} +26 -26
- package/dist/chunk-AJCTWBHN.js.map +1 -0
- package/dist/{chunk-GE5YVRTV.js → chunk-TYJPBTBR.js} +11 -1
- package/dist/chunk-TYJPBTBR.js.map +1 -0
- package/dist/components/index.js +2 -2
- package/dist/icons/index.d.ts +2 -1
- package/dist/icons/index.js +3 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/metadata/components.json +105 -91
- package/dist/metadata/index.js +105 -91
- package/dist/metadata/index.js.map +1 -1
- package/package.json +2 -2
- package/ui-system.md +27 -0
- package/dist/chunk-GE5YVRTV.js.map +0 -1
- package/dist/chunk-LVHEV755.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -86,6 +86,46 @@ Rules:
|
|
|
86
86
|
- use the single `nextop-ui-system` skill for component reuse, extraction,
|
|
87
87
|
base/business classification, metadata, and storyboard work
|
|
88
88
|
|
|
89
|
+
## React Component Splitting Rules
|
|
90
|
+
|
|
91
|
+
- default to one component per directory; keep the component file, tests,
|
|
92
|
+
stories, local styles, and tightly coupled implementation-detail helpers
|
|
93
|
+
colocated inside that directory
|
|
94
|
+
- default to one React component per file; allow multiple small stateless
|
|
95
|
+
helpers in one file only when they are tightly coupled implementation detail
|
|
96
|
+
of the exported component
|
|
97
|
+
- split presentational components away from host wiring; components promoted
|
|
98
|
+
into ui-system must receive data, labels, status, and callbacks through props
|
|
99
|
+
rather than owning side effects or app workflow
|
|
100
|
+
- if a component does not need internal state or refs, prefer a plain function
|
|
101
|
+
component; introduce heavier component structure only when state, refs, or
|
|
102
|
+
lifecycle-like coordination is actually required
|
|
103
|
+
- when behavior is reusable but host-owned, extract it into caller-owned hooks,
|
|
104
|
+
adapters, or controller code instead of embedding that logic in the ui-system
|
|
105
|
+
component body
|
|
106
|
+
- do not use mixin-style reuse or implicit component coupling; prefer explicit
|
|
107
|
+
composition through child components, slots, helper modules, or narrow
|
|
108
|
+
wrappers
|
|
109
|
+
- keep component APIs semantic and stable; do not repurpose DOM prop names such
|
|
110
|
+
as `style` or `className` to carry business meaning when a clearer prop like
|
|
111
|
+
`variant`, `tone`, `status`, or `layout` is intended
|
|
112
|
+
- use spread props sparingly on public components; pass explicit props whenever
|
|
113
|
+
possible so the boundary stays readable and host-agnostic
|
|
114
|
+
- list and collection components must render with stable identity from caller
|
|
115
|
+
data; do not rely on array index keys in promoted UI-system surfaces
|
|
116
|
+
- when a component grows multiple visual regions or branches, first try to
|
|
117
|
+
split subparts into local render helpers or child components before adding
|
|
118
|
+
more mode booleans to one large component
|
|
119
|
+
- avoid boolean-prop sprawl for mutually exclusive modes; prefer a finite
|
|
120
|
+
variant, discriminated union, explicit slot, or separate subcomponent when
|
|
121
|
+
states represent distinct rendering modes
|
|
122
|
+
- keep user-visible copy caller-owned by default; if text changes by host,
|
|
123
|
+
locale, or workflow, expose it through props, labels, or children instead of
|
|
124
|
+
hardcoding it inside the shared component
|
|
125
|
+
- use the filename as the component name and keep exported component names in
|
|
126
|
+
PascalCase so file boundaries stay obvious during promotion, review, and
|
|
127
|
+
migration
|
|
128
|
+
|
|
89
129
|
## Validation
|
|
90
130
|
|
|
91
131
|
- Run `pnpm typecheck`
|
|
@@ -22,6 +22,12 @@ Treat these as hard requirements, not cleanup suggestions:
|
|
|
22
22
|
- compose existing UI-system `base` primitives such as `Card`, `Button`,
|
|
23
23
|
`Tooltip`, `Dialog`, and related vocabulary before creating custom panel,
|
|
24
24
|
button, field, or overlay treatments
|
|
25
|
+
- use icon components from `@nextop-os/ui-system/icons` for promoted
|
|
26
|
+
components and storyboard examples. Do not inline SVG/data URI assets, import
|
|
27
|
+
app-local icon files, or pull third-party icon packages directly from promoted
|
|
28
|
+
UI. If the source UI depends on an icon that is not in the UI system, promote
|
|
29
|
+
the source-derived icon into `packages/ui/system/src/icons` with metadata
|
|
30
|
+
first, then consume the UI-system icon export.
|
|
25
31
|
- make storyboard examples render the real component surface and states; do not
|
|
26
32
|
rely on surrounding docs chrome to hide component-level visual drift or to
|
|
27
33
|
fake the final panel/surface language
|
|
@@ -89,11 +95,42 @@ alone. The promotion flow must also add or update a real renderable example in
|
|
|
89
95
|
`apps/ui-storyboard` so the component is visible in navigation and can be
|
|
90
96
|
visually reviewed in shared docs immediately after promotion.
|
|
91
97
|
|
|
92
|
-
For business component promotion,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
For business component promotion, use a copy-first workflow: move the existing
|
|
99
|
+
business component structure as intact as possible, preserve the real DOM,
|
|
100
|
+
visual hierarchy, state branches, and interaction layout, then progressively
|
|
101
|
+
remove host dependencies and standardize the public API. Do not begin by
|
|
102
|
+
inventing a cleaner abstraction or new visual treatment. The state matrix,
|
|
103
|
+
props boundary, and candidate source UI define what to copy, what to keep
|
|
104
|
+
caller-owned, and what to standardize after parity exists.
|
|
105
|
+
|
|
106
|
+
Treat business component promotion as an iterative migration-review loop, not a
|
|
107
|
+
single extraction pass:
|
|
108
|
+
|
|
109
|
+
1. migrate the source UI copy-first
|
|
110
|
+
2. recreate source-backed states in storyboard
|
|
111
|
+
3. run independent review against the original source and screenshot
|
|
112
|
+
4. migrate again to close review findings
|
|
113
|
+
5. repeat review until source/design parity is acceptable
|
|
114
|
+
|
|
115
|
+
Only after that loop should the API be generalized further. Do not report the
|
|
116
|
+
component as complete after the first migration if review still shows material
|
|
117
|
+
DOM, visual, token, state, icon, or storyboard coverage drift.
|
|
118
|
+
|
|
119
|
+
The promoted UI must follow the original design exactly unless the user
|
|
120
|
+
explicitly approves a visual change. Do not add new decoration, controls,
|
|
121
|
+
icons, layout chrome, copy, motion, states, spacing, or visual hierarchy that
|
|
122
|
+
does not exist in the source UI or provided screenshot. If UI-system token or
|
|
123
|
+
primitive replacement is needed, it must preserve the observed design and
|
|
124
|
+
interaction path rather than becoming a redesign.
|
|
125
|
+
|
|
126
|
+
Copy-first also applies to dependent presentational subcomponents and
|
|
127
|
+
third-party-library wrappers used by the candidate UI. Do not copy only the top
|
|
128
|
+
level JSX and recreate nested behavior from memory. Trace the dependency tree:
|
|
129
|
+
pure display helpers should move with the component; reusable wrappers around
|
|
130
|
+
Radix, floating UI, resizable panels, virtualization, or similar libraries
|
|
131
|
+
should be promoted or reused as `base` primitives first; host-coupled children
|
|
132
|
+
must be split into caller-owned data, labels, callbacks, or slots before the
|
|
133
|
+
business component is considered promoted.
|
|
97
134
|
|
|
98
135
|
## Design Foundation Verification
|
|
99
136
|
|
|
@@ -21,6 +21,9 @@ conflicting evidence or an unclear business meaning.
|
|
|
21
21
|
Scan:
|
|
22
22
|
|
|
23
23
|
- source component and nearby helpers
|
|
24
|
+
- dependent presentational subcomponents imported by the source component
|
|
25
|
+
- third-party-library wrappers used by the candidate UI, such as Radix,
|
|
26
|
+
floating UI, resizable panels, drag/drop, virtualization, or editor shells
|
|
24
27
|
- call sites and conditional rendering branches
|
|
25
28
|
- props, types, tests, mocks, fixtures, and sample data
|
|
26
29
|
- relevant i18n keys and resolved labels
|
|
@@ -86,19 +89,82 @@ explicit variants, or keep the UI local.
|
|
|
86
89
|
|
|
87
90
|
## Implementation Blueprint
|
|
88
91
|
|
|
92
|
+
Use a copy-first promotion workflow. The first implementation should be a
|
|
93
|
+
props-driven copy of the source business UI, not a new abstraction designed from
|
|
94
|
+
memory. Preserve the source DOM hierarchy, visual structure, spacing, state
|
|
95
|
+
branches, slots, and interaction affordances until parity is visible in
|
|
96
|
+
storyboard. Only after parity exists should the API be tightened and generalized.
|
|
97
|
+
|
|
98
|
+
Run promotion as a loop: migrate, review, migrate, review. The first migration
|
|
99
|
+
must make source-backed parity visible; review then measures drift against the
|
|
100
|
+
original code and screenshot; the next migration closes those findings without
|
|
101
|
+
redesigning. Continue until no material DOM, visual, token, state, icon, or
|
|
102
|
+
storyboard coverage drift remains. Do not treat the first extracted abstraction
|
|
103
|
+
as done if review still reports medium or high difference.
|
|
104
|
+
|
|
105
|
+
The promoted UI must follow the original design. Do not introduce new visual
|
|
106
|
+
ideas while promoting: no extra decoration, layout chrome, icons, controls,
|
|
107
|
+
copy, motion, spacing, state branches, or hierarchy that cannot be traced to the
|
|
108
|
+
source UI or the user's screenshot. Token replacement and primitive composition
|
|
109
|
+
are allowed only when they preserve the observed design and interaction path.
|
|
110
|
+
|
|
111
|
+
Icons are part of that source-derived visual contract and must still enter the
|
|
112
|
+
shared package through the UI-system icon layer. When the source UI uses an
|
|
113
|
+
icon, first reuse an existing `@nextop-os/ui-system/icons` export. If no
|
|
114
|
+
matching icon exists, promote the source-derived SVG or mark into
|
|
115
|
+
`packages/ui/system/src/icons`, add metadata, and consume that exported icon
|
|
116
|
+
from the business component or storyboard. Do not leave inline SVG/data URI
|
|
117
|
+
icons, app-local asset imports, or direct third-party icon imports in promoted
|
|
118
|
+
components or storyboard examples.
|
|
119
|
+
|
|
120
|
+
Copy and classify dependent subcomponents during the same migration. If a
|
|
121
|
+
nested helper is pure display, move it with the business component and convert
|
|
122
|
+
host data to props. If it wraps a third-party UI behavior that is reusable
|
|
123
|
+
outside the business domain, promote or reuse it as a `base` primitive first and
|
|
124
|
+
compose it from the business component. If it owns host state, i18n lookup,
|
|
125
|
+
daemon calls, router/filesystem access, persistence, or workflow orchestration,
|
|
126
|
+
leave that behavior in the caller and replace the nested region with data,
|
|
127
|
+
labels, callbacks, or slots. Do not rewrite a new nested component from memory
|
|
128
|
+
while the original source behavior still exists to copy.
|
|
129
|
+
|
|
89
130
|
Implement the promoted component directly from three inputs:
|
|
90
131
|
|
|
91
132
|
- the code-evidence state matrix
|
|
92
133
|
- the proposed public props and callback boundary
|
|
93
134
|
- the existing candidate source UI or visual surface being extracted
|
|
94
135
|
|
|
95
|
-
The promoted component should
|
|
96
|
-
with host-owned behavior removed. Preserve the real visual structure,
|
|
97
|
-
composition, class names, spacing, icons, and state-specific branches
|
|
98
|
-
they depend on host-owned behavior. Replace host-owned behavior with
|
|
99
|
-
props, callbacks, caller-owned slots, or explicit variants. Add
|
|
100
|
-
examples for every accepted public state in the same change so the
|
|
101
|
-
inspect the finished implementation instead of a preflight draft.
|
|
136
|
+
The promoted component should start as a props-driven version of the candidate
|
|
137
|
+
source with host-owned behavior removed. Preserve the real visual structure,
|
|
138
|
+
component composition, class names, spacing, icons, and state-specific branches
|
|
139
|
+
unless they depend on host-owned behavior. Replace host-owned behavior with
|
|
140
|
+
public props, callbacks, caller-owned slots, or explicit variants. Add
|
|
141
|
+
storyboard examples for every accepted public state in the same change so the
|
|
142
|
+
review can inspect the finished implementation instead of a preflight draft.
|
|
143
|
+
Do not add states, controls, copy, icons, animation, or visual wrappers that the
|
|
144
|
+
source component did not have unless the user explicitly asks for that design
|
|
145
|
+
change.
|
|
146
|
+
|
|
147
|
+
Generalize in this order:
|
|
148
|
+
|
|
149
|
+
1. Copy the existing component structure and nearby presentational helpers.
|
|
150
|
+
2. Trace dependent subcomponents and third-party wrappers; move pure display
|
|
151
|
+
helpers with the component, promote reusable third-party wrappers to `base`
|
|
152
|
+
primitives, and mark host-coupled children as caller-owned slots or data.
|
|
153
|
+
3. Replace host imports, data derivation, i18n lookup, store reads, side effects,
|
|
154
|
+
and daemon/router/filesystem calls with props, labels, callbacks, or slots.
|
|
155
|
+
4. Recreate the original visual states in storyboard before simplifying the API.
|
|
156
|
+
5. Run independent review against the source UI and close material drift before
|
|
157
|
+
simplifying the API.
|
|
158
|
+
6. Standardize the API names and types around data, labels, actions, variants,
|
|
159
|
+
and slots while preserving visual and behavioral parity.
|
|
160
|
+
7. Replace app-local styling with UI-system tokens and base primitives only when
|
|
161
|
+
the replacement does not change the observed UI or interaction path.
|
|
162
|
+
8. Reject or remove any invented UI added during promotion unless it is backed
|
|
163
|
+
by source evidence or an explicit user-approved visual change.
|
|
164
|
+
|
|
165
|
+
Do not skip directly to a polished abstraction. If the first promoted version
|
|
166
|
+
cannot be compared against the source screenshot or source state, the promotion
|
|
167
|
+
is incomplete.
|
|
102
168
|
|
|
103
169
|
If the draft still needs app state, navigation, fetching, persistence, i18n key
|
|
104
170
|
lookup, or host adapters to render, stop and revise the component boundary
|
|
@@ -161,14 +227,22 @@ Expected chain:
|
|
|
161
227
|
named slot or composed child over a broad render prop.
|
|
162
228
|
- Host-owned behavior: i18n lookup, daemon calls, install queue,
|
|
163
229
|
confirmation dialogs, persistence, routing, and state derivation.
|
|
164
|
-
4. **Implement the promoted component**
|
|
165
|
-
-
|
|
166
|
-
`packages/ui/system/src/components/<component-
|
|
230
|
+
4. **Implement the promoted component with copy-first parity**
|
|
231
|
+
- Copy the current candidate source into the final
|
|
232
|
+
`packages/ui/system/src/components/<component-dir>/index.tsx` component.
|
|
233
|
+
- Copy dependent presentational helpers and classify any third-party
|
|
234
|
+
wrappers before changing behavior. Reuse or promote base primitives for
|
|
235
|
+
reusable library wrappers instead of rebuilding them in the business file.
|
|
236
|
+
- Route icons through `@nextop-os/ui-system/icons`: reuse existing exports or
|
|
237
|
+
promote source-derived icons into the package icon layer with metadata
|
|
238
|
+
before using them in the component or storyboard.
|
|
167
239
|
- Keep the real table layout, status cells, action affordances, icon
|
|
168
|
-
placement, empty state, and disabled/error branches.
|
|
169
|
-
- Replace host behavior with props
|
|
170
|
-
|
|
171
|
-
install orchestration stay outside the component.
|
|
240
|
+
placement, empty state, nested display helpers, and disabled/error branches.
|
|
241
|
+
- Replace host behavior with props, labels, callbacks, and caller-owned
|
|
242
|
+
slots: i18n lookup, queue state, confirmation dialog decisions, daemon
|
|
243
|
+
calls, and install orchestration stay outside the component.
|
|
244
|
+
- Only after storyboard parity is visible, simplify the copied API toward
|
|
245
|
+
durable `items`, `labels`, `actions`, explicit variants, and slots.
|
|
172
246
|
- Make only package integration edits: final exported prop types, imports,
|
|
173
247
|
class cleanup, and package-local helpers.
|
|
174
248
|
- Export it from stable barrels.
|
|
@@ -196,18 +270,22 @@ Expected chain:
|
|
|
196
270
|
|
|
197
271
|
## Implementation
|
|
198
272
|
|
|
199
|
-
1.
|
|
200
|
-
|
|
201
|
-
|
|
273
|
+
1. Copy the existing business component structure into `packages/ui/system`
|
|
274
|
+
before abstracting it.
|
|
275
|
+
2. Keep all host-owned behavior in the caller by replacing it with props,
|
|
276
|
+
labels, callbacks, or caller-owned slots.
|
|
277
|
+
3. Preserve the source visual and interaction shape until storyboard parity is
|
|
278
|
+
visible.
|
|
279
|
+
4. Standardize the API incrementally. Do not add new mode booleans or
|
|
202
280
|
host-owned state while moving the candidate UI into the shared package.
|
|
203
|
-
|
|
204
|
-
|
|
281
|
+
5. Add stable exports and metadata with `layer: "business"`.
|
|
282
|
+
6. Add storyboard examples for normal, empty, disabled, loading, and error-like
|
|
205
283
|
states when those states exist in the public contract.
|
|
206
|
-
|
|
207
|
-
|
|
284
|
+
7. Migrate callers by replacing only the visual surface.
|
|
285
|
+
8. Run the promotion review gate from
|
|
208
286
|
`ui-system.md` against the promoted component
|
|
209
287
|
and migrated consumer.
|
|
210
|
-
|
|
288
|
+
9. Start the design-foundation review subagent and resolve any reported drift.
|
|
211
289
|
|
|
212
290
|
## Validation
|
|
213
291
|
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
FailedFilledIcon,
|
|
10
10
|
LoadingIcon,
|
|
11
11
|
SuccessFilledIcon
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TYJPBTBR.js";
|
|
13
13
|
import {
|
|
14
14
|
cn
|
|
15
15
|
} from "./chunk-DGPY4WP3.js";
|
|
16
16
|
|
|
17
|
-
// src/components/badge.tsx
|
|
17
|
+
// src/components/badge/badge.tsx
|
|
18
18
|
import { cva } from "class-variance-authority";
|
|
19
19
|
import { Slot } from "radix-ui";
|
|
20
20
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -54,7 +54,7 @@ function Badge({
|
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
// src/components/button.tsx
|
|
57
|
+
// src/components/button/button.tsx
|
|
58
58
|
import { cva as cva2 } from "class-variance-authority";
|
|
59
59
|
import { Slot as Slot2 } from "radix-ui";
|
|
60
60
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
@@ -116,7 +116,7 @@ function Button({
|
|
|
116
116
|
);
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
// src/components/card.tsx
|
|
119
|
+
// src/components/card/card.tsx
|
|
120
120
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
121
121
|
function Card({
|
|
122
122
|
className,
|
|
@@ -209,7 +209,7 @@ function CardFooter({ className, ...props }) {
|
|
|
209
209
|
);
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
// src/components/checkbox.tsx
|
|
212
|
+
// src/components/checkbox/checkbox.tsx
|
|
213
213
|
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
214
214
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
215
215
|
function Checkbox({
|
|
@@ -237,7 +237,7 @@ function Checkbox({
|
|
|
237
237
|
);
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
// src/components/dialog.tsx
|
|
240
|
+
// src/components/dialog/dialog.tsx
|
|
241
241
|
import * as React from "react";
|
|
242
242
|
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
243
243
|
import { Fragment, jsx as jsx5, jsxs } from "react/jsx-runtime";
|
|
@@ -435,7 +435,7 @@ function DialogDescription({
|
|
|
435
435
|
);
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
-
// src/components/confirmation-dialog.tsx
|
|
438
|
+
// src/components/confirmation-dialog/confirmation-dialog.tsx
|
|
439
439
|
import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
440
440
|
function confirmToneClassName(tone) {
|
|
441
441
|
if (tone === "destructive") {
|
|
@@ -525,7 +525,7 @@ function ConfirmationDialog({
|
|
|
525
525
|
) });
|
|
526
526
|
}
|
|
527
527
|
|
|
528
|
-
// src/components/date-picker.tsx
|
|
528
|
+
// src/components/date-picker/date-picker.tsx
|
|
529
529
|
import * as React2 from "react";
|
|
530
530
|
import { createPortal } from "react-dom";
|
|
531
531
|
import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
@@ -881,10 +881,10 @@ var DatePicker = React2.forwardRef(
|
|
|
881
881
|
);
|
|
882
882
|
DatePicker.displayName = "DatePicker";
|
|
883
883
|
|
|
884
|
-
// src/components/dropdown-menu.tsx
|
|
884
|
+
// src/components/dropdown-menu/dropdown-menu.tsx
|
|
885
885
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
886
886
|
|
|
887
|
-
// src/components/menu-surface.tsx
|
|
887
|
+
// src/components/menu-surface/menu-surface.tsx
|
|
888
888
|
import * as React3 from "react";
|
|
889
889
|
import { Slot as Slot3 } from "radix-ui";
|
|
890
890
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
@@ -914,7 +914,7 @@ var MenuSurface = React3.forwardRef(
|
|
|
914
914
|
);
|
|
915
915
|
MenuSurface.displayName = "MenuSurface";
|
|
916
916
|
|
|
917
|
-
// src/components/dropdown-menu.tsx
|
|
917
|
+
// src/components/dropdown-menu/dropdown-menu.tsx
|
|
918
918
|
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
919
919
|
function DropdownMenu({
|
|
920
920
|
...props
|
|
@@ -1180,7 +1180,7 @@ function DropdownMenuSubContent({
|
|
|
1180
1180
|
);
|
|
1181
1181
|
}
|
|
1182
1182
|
|
|
1183
|
-
// src/components/input.tsx
|
|
1183
|
+
// src/components/input/input.tsx
|
|
1184
1184
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1185
1185
|
function Input({ className, size = "default", type, ...props }) {
|
|
1186
1186
|
return /* @__PURE__ */ jsx10(
|
|
@@ -1199,7 +1199,7 @@ function Input({ className, size = "default", type, ...props }) {
|
|
|
1199
1199
|
);
|
|
1200
1200
|
}
|
|
1201
1201
|
|
|
1202
|
-
// src/components/popover.tsx
|
|
1202
|
+
// src/components/popover/popover.tsx
|
|
1203
1203
|
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
1204
1204
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1205
1205
|
function Popover({
|
|
@@ -1249,7 +1249,7 @@ function PopoverAnchor({
|
|
|
1249
1249
|
return /* @__PURE__ */ jsx11(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
1250
1250
|
}
|
|
1251
1251
|
|
|
1252
|
-
// src/components/resizable.tsx
|
|
1252
|
+
// src/components/resizable/resizable.tsx
|
|
1253
1253
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
1254
1254
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1255
1255
|
function ResizablePanelGroup({
|
|
@@ -1293,7 +1293,7 @@ function ResizableHandle({
|
|
|
1293
1293
|
);
|
|
1294
1294
|
}
|
|
1295
1295
|
|
|
1296
|
-
// src/components/scroll-area.tsx
|
|
1296
|
+
// src/components/scroll-area/scroll-area.tsx
|
|
1297
1297
|
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
1298
1298
|
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1299
1299
|
function ScrollArea({
|
|
@@ -1349,7 +1349,7 @@ function ScrollBar({
|
|
|
1349
1349
|
);
|
|
1350
1350
|
}
|
|
1351
1351
|
|
|
1352
|
-
// src/components/select.tsx
|
|
1352
|
+
// src/components/select/select.tsx
|
|
1353
1353
|
import { Select as SelectPrimitive } from "radix-ui";
|
|
1354
1354
|
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1355
1355
|
function Select({
|
|
@@ -1607,7 +1607,7 @@ function SelectScrollDownButton({
|
|
|
1607
1607
|
);
|
|
1608
1608
|
}
|
|
1609
1609
|
|
|
1610
|
-
// src/components/separator.tsx
|
|
1610
|
+
// src/components/separator/separator.tsx
|
|
1611
1611
|
import { Separator as SeparatorPrimitive } from "radix-ui";
|
|
1612
1612
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1613
1613
|
function Separator2({
|
|
@@ -1631,7 +1631,7 @@ function Separator2({
|
|
|
1631
1631
|
);
|
|
1632
1632
|
}
|
|
1633
1633
|
|
|
1634
|
-
// src/components/spinner.tsx
|
|
1634
|
+
// src/components/spinner/spinner.tsx
|
|
1635
1635
|
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1636
1636
|
function Spinner({
|
|
1637
1637
|
className,
|
|
@@ -1659,7 +1659,7 @@ function Spinner({
|
|
|
1659
1659
|
);
|
|
1660
1660
|
}
|
|
1661
1661
|
|
|
1662
|
-
// src/components/status-dot.tsx
|
|
1662
|
+
// src/components/status-dot/status-dot.tsx
|
|
1663
1663
|
import { cva as cva3 } from "class-variance-authority";
|
|
1664
1664
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1665
1665
|
var statusDotVariants = cva3("inline-flex shrink-0 rounded-full", {
|
|
@@ -1711,7 +1711,7 @@ function StatusDot({
|
|
|
1711
1711
|
);
|
|
1712
1712
|
}
|
|
1713
1713
|
|
|
1714
|
-
// src/components/switch.tsx
|
|
1714
|
+
// src/components/switch/switch.tsx
|
|
1715
1715
|
import { Switch as SwitchPrimitive } from "radix-ui";
|
|
1716
1716
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1717
1717
|
function Switch({
|
|
@@ -1740,7 +1740,7 @@ function Switch({
|
|
|
1740
1740
|
);
|
|
1741
1741
|
}
|
|
1742
1742
|
|
|
1743
|
-
// src/components/textarea.tsx
|
|
1743
|
+
// src/components/textarea/textarea.tsx
|
|
1744
1744
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1745
1745
|
function Textarea({ className, ...props }) {
|
|
1746
1746
|
return /* @__PURE__ */ jsx19(
|
|
@@ -1756,7 +1756,7 @@ function Textarea({ className, ...props }) {
|
|
|
1756
1756
|
);
|
|
1757
1757
|
}
|
|
1758
1758
|
|
|
1759
|
-
// src/components/toast.tsx
|
|
1759
|
+
// src/components/toast/toast.tsx
|
|
1760
1760
|
import * as React4 from "react";
|
|
1761
1761
|
import { Toast as ToastPrimitive } from "radix-ui";
|
|
1762
1762
|
import { cva as cva4 } from "class-variance-authority";
|
|
@@ -1922,7 +1922,7 @@ function ToastViewport({
|
|
|
1922
1922
|
);
|
|
1923
1923
|
}
|
|
1924
1924
|
|
|
1925
|
-
// src/components/tooltip.tsx
|
|
1925
|
+
// src/components/tooltip/tooltip.tsx
|
|
1926
1926
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
1927
1927
|
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1928
1928
|
function TooltipProvider({
|
|
@@ -1975,7 +1975,7 @@ function TooltipContent({
|
|
|
1975
1975
|
) });
|
|
1976
1976
|
}
|
|
1977
1977
|
|
|
1978
|
-
// src/components/underline-tabs.tsx
|
|
1978
|
+
// src/components/underline-tabs/underline-tabs.tsx
|
|
1979
1979
|
import { useEffect as useEffect3, useLayoutEffect as useLayoutEffect2, useRef as useRef2, useState as useState3 } from "react";
|
|
1980
1980
|
import { jsx as jsx22, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1981
1981
|
function UnderlineTabs({
|
|
@@ -2174,7 +2174,7 @@ function UnderlineTabs({
|
|
|
2174
2174
|
);
|
|
2175
2175
|
}
|
|
2176
2176
|
|
|
2177
|
-
// src/components/viewport-menu-surface.tsx
|
|
2177
|
+
// src/components/viewport-menu-surface/viewport-menu-surface.tsx
|
|
2178
2178
|
import * as React5 from "react";
|
|
2179
2179
|
import { createPortal as createPortal2 } from "react-dom";
|
|
2180
2180
|
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
@@ -2550,4 +2550,4 @@ export {
|
|
|
2550
2550
|
UnderlineTabs,
|
|
2551
2551
|
ViewportMenuSurface
|
|
2552
2552
|
};
|
|
2553
|
-
//# sourceMappingURL=chunk-
|
|
2553
|
+
//# sourceMappingURL=chunk-AJCTWBHN.js.map
|