@construct-space/ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -0
- package/dist/construct-ui.js +36 -32
- package/dist/layouts/SidebarLayout.vue.d.ts +4 -3
- package/dist/style.css +1 -1
- package/package.json +5 -5
package/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# @construct-space/ui
|
|
2
|
+
|
|
3
|
+
Vue 3 component library for Construct services. 43 production components, shared layouts, composables, and design tokens.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @construct-space/ui
|
|
9
|
+
# or
|
|
10
|
+
bun add @construct-space/ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Peer Dependencies
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install vue reka-ui @iconify/vue
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
// Import components individually
|
|
23
|
+
import { CButton, CInput, CModal, CToast } from '@construct-space/ui'
|
|
24
|
+
|
|
25
|
+
// Import shared styles (tokens + utility classes)
|
|
26
|
+
import '@construct-space/ui/style.css'
|
|
27
|
+
|
|
28
|
+
// Or register all components globally
|
|
29
|
+
import { createApp } from 'vue'
|
|
30
|
+
import ConstructUI from '@construct-space/ui'
|
|
31
|
+
|
|
32
|
+
const app = createApp(App)
|
|
33
|
+
app.use(ConstructUI)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Components
|
|
37
|
+
|
|
38
|
+
| Category | Components |
|
|
39
|
+
|----------|-----------|
|
|
40
|
+
| **Form** | `CButton`, `CInput`, `CTextarea`, `CSelect`, `CSelectMenu`, `CCheckbox`, `CRadioGroup`, `CSwitch`, `CSlider`, `CColorPicker`, `CFormField` |
|
|
41
|
+
| **Layout** | `CCard`, `CModal`, `CDrawer`, `CSlideover`, `CPopover`, `CDashboardPanel`, `CPanelSection`, `CPropRow`, `CSeparator`, `CScrollArea` |
|
|
42
|
+
| **Data** | `CTable`, `CCalendar`, `CTree`, `CTimeline`, `CPagination` |
|
|
43
|
+
| **Feedback** | `CAlert`, `CBadge`, `CChip`, `CProgress`, `CSkeleton`, `CEmpty`, `CToast` |
|
|
44
|
+
| **Menu** | `CDropdown`, `CDropdownMenu`, `CDropdownMenuItem`, `CContextMenu` |
|
|
45
|
+
| **Display** | `CIcon`, `CAvatar`, `CAccordion`, `CTabs`, `CTooltip`, `CKbd` |
|
|
46
|
+
|
|
47
|
+
## Layouts
|
|
48
|
+
|
|
49
|
+
```vue
|
|
50
|
+
<!-- 60px icon sidebar (billing, delivery pattern) -->
|
|
51
|
+
<SidebarLayout
|
|
52
|
+
:nav-items="[{ icon: 'home', label: 'Dashboard', to: '/', active: true }]"
|
|
53
|
+
user-name="John"
|
|
54
|
+
@navigate="router.push($event)"
|
|
55
|
+
@logout="auth.logout()"
|
|
56
|
+
>
|
|
57
|
+
<router-view />
|
|
58
|
+
</SidebarLayout>
|
|
59
|
+
|
|
60
|
+
<!-- Top header bar -->
|
|
61
|
+
<HeaderLayout
|
|
62
|
+
service-name="domains"
|
|
63
|
+
:nav-items="[{ label: 'Dashboard', to: '/' }]"
|
|
64
|
+
>
|
|
65
|
+
<router-view />
|
|
66
|
+
</HeaderLayout>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Composables
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import { useToast, useAuth } from '@construct-space/ui'
|
|
73
|
+
|
|
74
|
+
// Toast notifications
|
|
75
|
+
const { add, remove, clear } = useToast()
|
|
76
|
+
add({ title: 'Saved', color: 'success' })
|
|
77
|
+
|
|
78
|
+
// Auth session management
|
|
79
|
+
const { user, login, logout, checkSession } = useAuth({
|
|
80
|
+
mePath: '/api/auth/me',
|
|
81
|
+
loginPath: '/api/auth/login',
|
|
82
|
+
})
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Theming
|
|
86
|
+
|
|
87
|
+
Override CSS variables to customize colors per service:
|
|
88
|
+
|
|
89
|
+
```css
|
|
90
|
+
:root {
|
|
91
|
+
--app-accent: #d4a843; /* billing: gold */
|
|
92
|
+
--app-accent: #ec4899; /* domains: pink */
|
|
93
|
+
--app-accent: #FF2D55; /* delivery: red */
|
|
94
|
+
--app-background: #18181b;
|
|
95
|
+
--app-foreground: #fafafa;
|
|
96
|
+
--app-border: #27272a;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
|
|
102
|
+
MIT
|
package/dist/construct-ui.js
CHANGED
|
@@ -12764,7 +12764,7 @@ var Qu = /* @__PURE__ */ _({
|
|
|
12764
12764
|
M(() => {
|
|
12765
12765
|
document.addEventListener("keydown", c);
|
|
12766
12766
|
}), N(() => {
|
|
12767
|
-
document.removeEventListener("keydown", c);
|
|
12767
|
+
document.removeEventListener("keydown", c), document.body.style.overflow = "";
|
|
12768
12768
|
}), U(() => n.open, (e) => {
|
|
12769
12769
|
document.body.style.overflow = e ? "hidden" : "";
|
|
12770
12770
|
});
|
|
@@ -15097,16 +15097,16 @@ var eg = { class: "fixed top-4 right-4 z-[100] flex flex-col gap-2 w-80" }, tg =
|
|
|
15097
15097
|
"drop-position"
|
|
15098
15098
|
]))), 128))], 544));
|
|
15099
15099
|
}
|
|
15100
|
-
}), yg = /* @__PURE__ */ q({ default: () => bg }), bg = /* @__PURE__ */ bm(vg, [["__scopeId", "data-v-9be5dd89"]]), xg = { class: "cui-sidebar-layout" }, Sg = { class: "cui-sidebar" }, Cg = { class: "cui-sidebar-logo" }, wg =
|
|
15100
|
+
}), yg = /* @__PURE__ */ q({ default: () => bg }), bg = /* @__PURE__ */ bm(vg, [["__scopeId", "data-v-9be5dd89"]]), xg = { class: "cui-sidebar-layout" }, Sg = { class: "cui-sidebar" }, Cg = { class: "cui-sidebar-logo" }, wg = { key: 0 }, Tg = {
|
|
15101
15101
|
key: 1,
|
|
15102
15102
|
class: "cui-sidebar-logo-text"
|
|
15103
|
-
}, Eg = { class: "cui-sidebar-nav" }, Dg = ["onClick", "onMouseenter"], Og =
|
|
15103
|
+
}, Eg = { class: "cui-sidebar-nav" }, Dg = ["onClick", "onMouseenter"], Og = {
|
|
15104
15104
|
key: 0,
|
|
15105
15105
|
class: "cui-sidebar-tooltip"
|
|
15106
|
-
},
|
|
15106
|
+
}, kg = { class: "cui-sidebar-user" }, Ag = ["src", "alt"], jg = { key: 1 }, Mg = {
|
|
15107
15107
|
key: 0,
|
|
15108
15108
|
class: "cui-sidebar-user-menu"
|
|
15109
|
-
},
|
|
15109
|
+
}, Ng = { class: "cui-sidebar-main" }, Pg = /* @__PURE__ */ _({
|
|
15110
15110
|
__name: "SidebarLayout",
|
|
15111
15111
|
props: {
|
|
15112
15112
|
navItems: { default: () => [] },
|
|
@@ -15118,37 +15118,41 @@ var eg = { class: "fixed top-4 right-4 z-[100] flex flex-col gap-2 w-80" }, tg =
|
|
|
15118
15118
|
},
|
|
15119
15119
|
emits: ["navigate", "logout"],
|
|
15120
15120
|
setup(e, { emit: t }) {
|
|
15121
|
-
|
|
15122
|
-
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
|
|
15126
|
-
},
|
|
15121
|
+
function r(e) {
|
|
15122
|
+
return e.includes(":") ? e : e.startsWith("lucide-") ? e.replace("-", ":") : `lucide:${e}`;
|
|
15123
|
+
}
|
|
15124
|
+
let i = e, a = t, o = I(!1), s = I(null), l = c(() => i.userName ? i.userName.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2) : "?");
|
|
15125
|
+
return (t, i) => (P(), d("div", xg, [f("aside", Sg, [
|
|
15126
|
+
f("div", Cg, [R(t.$slots, "logo", {}, () => [e.serviceIcon ? (P(), d("span", wg, z(e.serviceIcon), 1)) : (P(), d("span", Tg, "C"))])]),
|
|
15127
15127
|
f("nav", Eg, [(P(!0), d(n, null, L(e.navItems, (e) => (P(), d("div", {
|
|
15128
15128
|
key: e.to,
|
|
15129
15129
|
class: k(["cui-sidebar-nav-item", { active: e.active }]),
|
|
15130
|
-
onClick: (t) =>
|
|
15131
|
-
onMouseenter: (t) =>
|
|
15132
|
-
onMouseleave:
|
|
15133
|
-
}, [
|
|
15134
|
-
|
|
15130
|
+
onClick: (t) => a("navigate", e.to),
|
|
15131
|
+
onMouseenter: (t) => s.value = e.to,
|
|
15132
|
+
onMouseleave: i[0] ||= (e) => s.value = null
|
|
15133
|
+
}, [h(H(J), {
|
|
15134
|
+
icon: r(e.icon),
|
|
15135
|
+
width: "20",
|
|
15136
|
+
height: "20"
|
|
15137
|
+
}, null, 8, ["icon"]), s.value === e.to ? (P(), d("div", Og, z(e.label), 1)) : u("", !0)], 42, Dg))), 128))]),
|
|
15138
|
+
f("div", kg, [f("div", {
|
|
15135
15139
|
class: "cui-sidebar-avatar",
|
|
15136
15140
|
style: j({ background: e.accentColor }),
|
|
15137
|
-
onClick:
|
|
15141
|
+
onClick: i[1] ||= (e) => o.value = !o.value
|
|
15138
15142
|
}, [e.userAvatar ? (P(), d("img", {
|
|
15139
15143
|
key: 0,
|
|
15140
15144
|
src: e.userAvatar,
|
|
15141
15145
|
alt: e.userName
|
|
15142
|
-
}, null, 8,
|
|
15146
|
+
}, null, 8, Ag)) : (P(), d("span", jg, z(l.value), 1))], 4), o.value ? (P(), d("div", Mg, [R(t.$slots, "user-menu", {}, () => [f("div", {
|
|
15143
15147
|
class: "cui-sidebar-user-menu-item",
|
|
15144
|
-
onClick:
|
|
15148
|
+
onClick: i[2] ||= (e) => a("logout")
|
|
15145
15149
|
}, " Sign out ")])])) : u("", !0)])
|
|
15146
|
-
]), f("main",
|
|
15150
|
+
]), f("main", Ng, [R(t.$slots, "default")])]));
|
|
15147
15151
|
}
|
|
15148
|
-
}),
|
|
15152
|
+
}), Fg = { class: "cui-header-layout" }, Ig = { class: "cui-header" }, Lg = { class: "cui-header-container" }, Rg = { class: "cui-header-left" }, zg = { class: "cui-header-logo-sub" }, Bg = {
|
|
15149
15153
|
key: 0,
|
|
15150
15154
|
class: "cui-header-nav"
|
|
15151
|
-
},
|
|
15155
|
+
}, Vg = ["onClick"], Hg = { class: "cui-header-right" }, Ug = ["src", "alt"], Wg = { key: 1 }, Gg = { class: "cui-header-main" }, Kg = /* @__PURE__ */ _({
|
|
15152
15156
|
__name: "HeaderLayout",
|
|
15153
15157
|
props: {
|
|
15154
15158
|
serviceName: { default: "" },
|
|
@@ -15168,14 +15172,14 @@ var eg = { class: "fixed top-4 right-4 z-[100] flex flex-col gap-2 w-80" }, tg =
|
|
|
15168
15172
|
],
|
|
15169
15173
|
setup(e, { emit: t }) {
|
|
15170
15174
|
let r = e, i = t, a = c(() => r.userName ? r.userName.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2) : "?");
|
|
15171
|
-
return (t, r) => (P(), d("div",
|
|
15175
|
+
return (t, r) => (P(), d("div", Fg, [f("header", Ig, [f("div", Lg, [f("div", Rg, [R(t.$slots, "logo", {}, () => [f("span", {
|
|
15172
15176
|
class: "cui-header-logo",
|
|
15173
15177
|
onClick: r[0] ||= (e) => i("navigate", "/")
|
|
15174
|
-
}, [r[3] ||= m(" construct ", -1), f("span",
|
|
15178
|
+
}, [r[3] ||= m(" construct ", -1), f("span", zg, "/ " + z(e.serviceName), 1)])]), e.navItems.length ? (P(), d("nav", Bg, [(P(!0), d(n, null, L(e.navItems, (e) => (P(), d("a", {
|
|
15175
15179
|
key: e.to,
|
|
15176
15180
|
class: k({ active: e.active }),
|
|
15177
15181
|
onClick: K((t) => i("navigate", e.to), ["prevent"])
|
|
15178
|
-
}, z(e.label), 11,
|
|
15182
|
+
}, z(e.label), 11, Vg))), 128))])) : u("", !0)]), f("div", Hg, [R(t.$slots, "actions"), e.showAuth && e.userName ? (P(), d("div", {
|
|
15179
15183
|
key: 0,
|
|
15180
15184
|
class: "cui-header-avatar",
|
|
15181
15185
|
style: j({ background: e.accentColor }),
|
|
@@ -15184,22 +15188,22 @@ var eg = { class: "fixed top-4 right-4 z-[100] flex flex-col gap-2 w-80" }, tg =
|
|
|
15184
15188
|
key: 0,
|
|
15185
15189
|
src: e.userAvatar,
|
|
15186
15190
|
alt: e.userName
|
|
15187
|
-
}, null, 8,
|
|
15191
|
+
}, null, 8, Ug)) : (P(), d("span", Wg, z(a.value), 1))], 4)) : e.showAuth ? (P(), d("button", {
|
|
15188
15192
|
key: 1,
|
|
15189
15193
|
class: "cui-header-signin",
|
|
15190
15194
|
onClick: r[2] ||= (e) => i("login")
|
|
15191
|
-
}, " Sign in ")) : u("", !0)])])]), f("main",
|
|
15195
|
+
}, " Sign in ")) : u("", !0)])])]), f("main", Gg, [R(t.$slots, "default")])]));
|
|
15192
15196
|
}
|
|
15193
|
-
}),
|
|
15197
|
+
}), qg = {
|
|
15194
15198
|
apiBase: "",
|
|
15195
15199
|
mePath: "/api/auth/me",
|
|
15196
15200
|
loginPath: "/api/auth/login",
|
|
15197
15201
|
logoutPath: "/api/auth/logout",
|
|
15198
15202
|
autoCheck: !0
|
|
15199
15203
|
};
|
|
15200
|
-
function
|
|
15204
|
+
function Jg(e = {}) {
|
|
15201
15205
|
let t = {
|
|
15202
|
-
...
|
|
15206
|
+
...qg,
|
|
15203
15207
|
...e
|
|
15204
15208
|
}, n = I(null), r = I(!0), i = I(null);
|
|
15205
15209
|
async function a() {
|
|
@@ -15234,7 +15238,7 @@ function Yg(e = {}) {
|
|
|
15234
15238
|
}
|
|
15235
15239
|
//#endregion
|
|
15236
15240
|
//#region src/index.ts
|
|
15237
|
-
var
|
|
15241
|
+
var Yg = { install(e) {
|
|
15238
15242
|
let t = /* @__PURE__ */ Object.assign({
|
|
15239
15243
|
"./components/Accordion.vue": vd,
|
|
15240
15244
|
"./components/Alert.vue": wd,
|
|
@@ -15286,4 +15290,4 @@ var Xg = { install(e) {
|
|
|
15286
15290
|
}
|
|
15287
15291
|
} };
|
|
15288
15292
|
//#endregion
|
|
15289
|
-
export { yd as CAccordion, Td as CAlert, Od as CAvatar, jd as CBadge, Fd as CButton, _f as CCalendar, Tf as CCard, kf as CCheckbox, Mf as CChip, Hf as CColorPicker, Gf as CContextMenu, Jf as CDashboardPanel, ep as CDrawer, rp as CDropdown, cp as CDropdownMenu, dp as CDropdownMenuItem, _p as CEmpty, jp as CFormField, Pp as CIcon, Rp as CInput, Hp as CKbd, Yp as CModal, rm as CPagination, um as CPanelSection, pm as CPopover, Sm as CProgress, Dm as CPropRow, Mm as CRadioGroup, Fm as CScrollArea, Vm as CSelect, Km as CSelectMenu, th as CSeparator, ih as CSkeleton, uh as CSlideover, ph as CSlider, vh as CSwitch, Nh as CTable, Ih as CTabs, Bh as CTextarea, qh as CTimeline, pg as CToast, gg as CTooltip, bg as CTree,
|
|
15293
|
+
export { yd as CAccordion, Td as CAlert, Od as CAvatar, jd as CBadge, Fd as CButton, _f as CCalendar, Tf as CCard, kf as CCheckbox, Mf as CChip, Hf as CColorPicker, Gf as CContextMenu, Jf as CDashboardPanel, ep as CDrawer, rp as CDropdown, cp as CDropdownMenu, dp as CDropdownMenuItem, _p as CEmpty, jp as CFormField, Pp as CIcon, Rp as CInput, Hp as CKbd, Yp as CModal, rm as CPagination, um as CPanelSection, pm as CPopover, Sm as CProgress, Dm as CPropRow, Mm as CRadioGroup, Fm as CScrollArea, Vm as CSelect, Km as CSelectMenu, th as CSeparator, ih as CSkeleton, uh as CSlideover, ph as CSlider, vh as CSwitch, Nh as CTable, Ih as CTabs, Bh as CTextarea, qh as CTimeline, pg as CToast, gg as CTooltip, bg as CTree, Yg as ConstructUI, Yg as default, Kg as HeaderLayout, Pg as SidebarLayout, Jg as useAuth, $h as useToast };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export interface NavItem {
|
|
2
|
+
/** Iconify icon name, e.g. "lucide:home" or shorthand "home" */
|
|
2
3
|
icon: string;
|
|
3
4
|
label: string;
|
|
4
5
|
to: string;
|
|
@@ -12,13 +13,13 @@ type __VLS_Props = {
|
|
|
12
13
|
userAvatar?: string;
|
|
13
14
|
accentColor?: string;
|
|
14
15
|
};
|
|
15
|
-
declare var __VLS_1: {},
|
|
16
|
+
declare var __VLS_1: {}, __VLS_7: {}, __VLS_9: {};
|
|
16
17
|
type __VLS_Slots = {} & {
|
|
17
18
|
logo?: (props: typeof __VLS_1) => any;
|
|
18
19
|
} & {
|
|
19
|
-
'user-menu'?: (props: typeof
|
|
20
|
+
'user-menu'?: (props: typeof __VLS_7) => any;
|
|
20
21
|
} & {
|
|
21
|
-
default?: (props: typeof
|
|
22
|
+
default?: (props: typeof __VLS_9) => any;
|
|
22
23
|
};
|
|
23
24
|
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
24
25
|
navigate: (to: string) => any;
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@import "https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap";@keyframes progress-indeterminate-f944cf9d{0%{transform:translate(-100%)}to{transform:translate(350%)}}.animate-progress-indeterminate[data-v-f944cf9d]{animation:1.5s ease-in-out infinite progress-indeterminate-f944cf9d}.toast-enter-active[data-v-98416c66]{transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-leave-active[data-v-98416c66]{transition:all .2s cubic-bezier(.4,0,1,1)}.toast-enter-from[data-v-98416c66],.toast-leave-to[data-v-98416c66]{opacity:0;transform:translate(100%)}.toast-move[data-v-98416c66]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.tree-root[data-v-9be5dd89]:focus-visible{outline:none}.cui-sidebar-layout{min-height:100vh;display:flex}.cui-sidebar{background:var(--app-background,#18181b);border-right:1px solid var(--app-border,#27272a);z-index:100;flex-direction:column;align-items:center;width:60px;padding:16px 0;display:flex;position:fixed;top:0;bottom:0;left:0}.cui-sidebar-logo{color:var(--app-foreground,#fafafa);margin-bottom:24px;font-size:20px;font-weight:700}.cui-sidebar-logo-text{justify-content:center;align-items:center;width:32px;height:32px;display:flex}.cui-sidebar-nav{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.cui-sidebar-nav-item{cursor:pointer;width:40px;height:40px;color:var(--app-muted,#71717a);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.cui-sidebar-nav-item:hover{color:var(--app-foreground,#fafafa);background:#ffffff0f}.cui-sidebar-nav-item.active{color:var(--app-accent,#ff2d55);background:#ffffff0f}.cui-sidebar-tooltip{background:var(--app-foreground,#fafafa);color:var(--app-background,#18181b);white-space:nowrap;pointer-events:none;z-index:200;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:500;position:absolute;top:50%;left:52px;transform:translateY(-50%)}.cui-sidebar-user{position:relative}.cui-sidebar-avatar{color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.cui-sidebar-avatar img{object-fit:cover;width:100%;height:100%}.cui-sidebar-user-menu{background:var(--app-background,#18181b);border:1px solid var(--app-border,#27272a);z-index:200;border-radius:8px;min-width:160px;padding:4px;position:absolute;bottom:0;left:52px}.cui-sidebar-user-menu-item{color:var(--app-foreground,#fafafa);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:13px;transition:background .15s}.cui-sidebar-user-menu-item:hover{background:#ffffff0f}.cui-sidebar-main{flex:1;min-height:100vh;margin-left:60px}.cui-header-layout{flex-direction:column;min-height:100vh;display:flex}.cui-header{border-bottom:1px solid var(--app-border,#27272a);z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#12121eeb;padding:14px 0;position:sticky;top:0}.cui-header-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 24px;display:flex}.cui-header-left{align-items:center;gap:24px;display:flex}.cui-header-logo{color:var(--app-foreground,#fafafa);cursor:pointer;letter-spacing:.02em;font-size:16px;font-weight:700}.cui-header-logo-sub{color:var(--app-muted,#71717a);font-weight:400}.cui-header-nav{align-items:center;gap:16px;display:flex}.cui-header-nav a{color:var(--app-muted,#71717a);cursor:pointer;font-size:13px;text-decoration:none;transition:color .15s}.cui-header-nav a:hover,.cui-header-nav a.active{color:var(--app-foreground,#fafafa)}.cui-header-right{align-items:center;gap:12px;display:flex}.cui-header-avatar{color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.cui-header-avatar img{object-fit:cover;width:100%;height:100%}.cui-header-signin{background:var(--app-accent,#ff2d55);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:opacity .15s}.cui-header-signin:hover{opacity:.9}.cui-header-main{flex:1}:root{--app-background:#fff;--app-foreground:#1e293b;--app-muted:#94a3b8;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#e2e8f0;--app-canvas-bg:#f1f5f9;--app-status-bg:#f8fafc;--app-card-bg:#fff;--app-card-hover:#f8fafc;--app-input-bg:#fff;--green:#22c55e;--green-bg:#22c55e1a;--red:#ef4444;--red-bg:#ef44441a;--yellow:#eab308;--radius:8px;--radius-lg:12px;--radius-xl:16px;--font-sans:"Rubik", ui-sans-serif, system-ui, sans-serif}.dark,:root.dark,[data-theme=dark]{--app-background:#18181b;--app-foreground:#fafafa;--app-muted:#71717a;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#27272a;--app-canvas-bg:#09090b;--app-status-bg:#18181b;--app-card-bg:#1e1e22;--app-card-hover:#27272b;--app-input-bg:#18181b}@media (prefers-color-scheme:dark){:root:not(.light):not([data-theme=light]){--app-background:#18181b;--app-foreground:#fafafa;--app-muted:#71717a;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#27272a;--app-canvas-bg:#09090b;--app-status-bg:#18181b;--app-card-bg:#1e1e22;--app-card-hover:#27272b;--app-input-bg:#18181b}}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-state=checked].bg-primary,[data-state=checked].bg-neutral,button[role=switch][data-state=checked]{background-color:var(--app-accent)!important}button[role=checkbox][data-state=checked],[role=checkbox][data-state=checked]{background-color:var(--app-accent)!important;border-color:var(--app-accent)!important}[data-radix-slider-range],[role=slider] [data-orientation]>span:first-child{background-color:var(--app-accent)!important}[data-radix-slider-thumb],[role=slider] span[role=slider]{border-color:var(--app-accent)!important}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--app-accent)!important;outline:none!important}label{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select{color:var(--app-foreground)!important;caret-color:var(--app-foreground)!important}input::placeholder,textarea::placeholder{color:var(--app-muted)!important;opacity:1!important}.btn{border:1px solid var(--app-border);border-radius:var(--radius);background:var(--app-input-bg);color:var(--app-foreground);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--app-card-hover);border-color:var(--app-muted)}.btn-primary{background:var(--app-accent);border-color:var(--app-accent);color:#fff}.btn-primary:hover{background:var(--app-accent-hover);border-color:var(--app-accent-hover)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{border-radius:var(--radius-lg);padding:12px 28px;font-size:15px;font-weight:600}.btn-ghost{color:var(--app-muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--app-foreground);background:var(--app-card-bg)}.btn-icon{color:var(--app-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:6px;font-size:14px}.btn-icon:hover{background:var(--app-card-hover);color:var(--app-foreground)}.btn-danger{color:var(--red)}.btn-danger:hover{background:var(--red-bg);color:var(--red)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page{padding:32px 0}.page-title{letter-spacing:-.02em;margin-bottom:4px;font-size:22px;font-weight:600}.page-subtitle{color:var(--app-muted);margin-bottom:28px;font-size:14px}.card{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius-lg);overflow:hidden}.card-header{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-title{font-size:14px;font-weight:600}.card-body{padding:20px}.form-group{margin-bottom:16px}.form-label{color:var(--app-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.form-input{background:var(--app-input-bg);border:1px solid var(--app-border);border-radius:var(--radius);width:100%;color:var(--app-foreground);outline:none;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.form-input:focus{border-color:var(--app-accent)}.form-input::placeholder{color:var(--app-muted)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.spinner{border:2px solid var(--app-border);border-top-color:var(--app-accent);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite cui-spin;display:inline-block}@keyframes cui-spin{to{transform:rotate(360deg)}}.loading-state{color:var(--app-muted);justify-content:center;align-items:center;gap:10px;padding:60px 0;font-size:14px;display:flex}.empty-state{text-align:center;color:var(--app-muted);padding:60px 20px}.empty-state p{margin-bottom:16px;font-size:14px}.cui-toast{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius);z-index:2000;padding:12px 20px;font-size:13px;animation:.2s cui-slideUp;position:fixed;bottom:24px;right:24px}.cui-toast.error{border-color:var(--red);color:var(--red)}.cui-toast.success{border-color:var(--green);color:var(--green)}@keyframes cui-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tabs{border-bottom:1px solid var(--app-border);margin-bottom:24px;display:flex}.tab{color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 20px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.tab:hover{color:var(--app-foreground)}.tab.active{color:var(--app-foreground);border-bottom-color:var(--app-accent)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius-lg);width:480px;max-width:90vw;max-height:85vh;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{font-size:16px;font-weight:600}.modal-body{padding:0 24px 24px}.modal-footer{border-top:1px solid var(--app-border);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.info-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.info-item{background:var(--app-input-bg);border-radius:var(--radius);padding:16px}.info-label{text-transform:uppercase;letter-spacing:.05em;color:var(--app-muted);margin-bottom:6px;font-size:11px;font-weight:600}.info-value{font-size:14px;font-weight:500}.toggle{background:var(--app-border);cursor:pointer;border:none;border-radius:11px;width:40px;height:22px;transition:background .2s;position:relative}.toggle.active{background:var(--app-accent)}.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle.active:after{transform:translate(18px)}.badge-a{color:#60a5fa;background:#60a5fa1f}.badge-aaaa{color:#a78bfa;background:#a78bfa1f}.badge-cname{color:#34d399;background:#34d3991f}.badge-mx{color:#fbbf24;background:#fbbf241f}.badge-txt{color:#f87171;background:#f871711f}.badge-ns{color:#38bdf8;background:#38bdf81f}.badge-srv{color:#fb923c;background:#fb923c1f}.badge-default{color:var(--app-muted);background:#8888a01f}.dns-table{border-collapse:collapse;width:100%}.dns-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--app-muted);border-bottom:1px solid var(--app-border);padding:10px 16px;font-size:11px;font-weight:600}.dns-table td{border-bottom:1px solid var(--app-border);vertical-align:middle;padding:12px 16px;font-size:13px}.dns-table tr:last-child td{border-bottom:none}.dns-table tr:hover td{background:var(--app-card-hover)}.back-link{color:var(--app-muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;text-decoration:none;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--app-foreground)}@media (width<=768px){.form-row,.info-grid{grid-template-columns:1fr}}
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap";@keyframes progress-indeterminate-f944cf9d{0%{transform:translate(-100%)}to{transform:translate(350%)}}.animate-progress-indeterminate[data-v-f944cf9d]{animation:1.5s ease-in-out infinite progress-indeterminate-f944cf9d}.toast-enter-active[data-v-98416c66]{transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-leave-active[data-v-98416c66]{transition:all .2s cubic-bezier(.4,0,1,1)}.toast-enter-from[data-v-98416c66],.toast-leave-to[data-v-98416c66]{opacity:0;transform:translate(100%)}.toast-move[data-v-98416c66]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.tree-root[data-v-9be5dd89]:focus-visible{outline:none}.cui-sidebar-layout{min-height:100vh;display:flex}.cui-sidebar{background:var(--app-background,#18181b);border-right:1px solid var(--app-border,#27272a);z-index:100;flex-direction:column;align-items:center;width:60px;padding:16px 0;display:flex;position:fixed;top:0;bottom:0;left:0}.cui-sidebar-logo{color:var(--app-foreground,#fafafa);margin-bottom:24px;font-size:20px;font-weight:700}.cui-sidebar-logo-text{justify-content:center;align-items:center;width:32px;height:32px;display:flex}.cui-sidebar-nav{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.cui-sidebar-nav-item{cursor:pointer;width:40px;height:40px;color:var(--app-muted,#71717a);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.cui-sidebar-nav-item:hover{color:var(--app-foreground,#fafafa);background:#ffffff0f}.cui-sidebar-nav-item.active{color:var(--app-accent,#ff2d55);background:#ffffff0f}.cui-sidebar-tooltip{background:var(--app-foreground,#fafafa);color:var(--app-background,#18181b);white-space:nowrap;pointer-events:none;z-index:200;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:500;position:absolute;top:50%;left:52px;transform:translateY(-50%)}.cui-sidebar-user{position:relative}.cui-sidebar-avatar{color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.cui-sidebar-avatar img{object-fit:cover;width:100%;height:100%}.cui-sidebar-user-menu{background:var(--app-background,#18181b);border:1px solid var(--app-border,#27272a);z-index:200;border-radius:8px;min-width:160px;padding:4px;position:absolute;bottom:0;left:52px}.cui-sidebar-user-menu-item{color:var(--app-foreground,#fafafa);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:13px;transition:background .15s}.cui-sidebar-user-menu-item:hover{background:#ffffff0f}.cui-sidebar-main{flex:1;min-height:100vh;margin-left:60px}.cui-header-layout{flex-direction:column;min-height:100vh;display:flex}.cui-header{border-bottom:1px solid var(--app-border,#27272a);z-index:100;background:color-mix(in srgb, var(--app-background) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:14px 0;position:sticky;top:0}.cui-header-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 24px;display:flex}.cui-header-left{align-items:center;gap:24px;display:flex}.cui-header-logo{color:var(--app-foreground,#fafafa);cursor:pointer;letter-spacing:.02em;font-size:16px;font-weight:700}.cui-header-logo-sub{color:var(--app-muted,#71717a);font-weight:400}.cui-header-nav{align-items:center;gap:16px;display:flex}.cui-header-nav a{color:var(--app-muted,#71717a);cursor:pointer;font-size:13px;text-decoration:none;transition:color .15s}.cui-header-nav a:hover,.cui-header-nav a.active{color:var(--app-foreground,#fafafa)}.cui-header-right{align-items:center;gap:12px;display:flex}.cui-header-avatar{color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.cui-header-avatar img{object-fit:cover;width:100%;height:100%}.cui-header-signin{background:var(--app-accent,#ff2d55);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:opacity .15s}.cui-header-signin:hover{opacity:.9}.cui-header-main{flex:1}:root{--app-background:#fff;--app-foreground:#1e293b;--app-muted:#94a3b8;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#e2e8f0;--app-canvas-bg:#f1f5f9;--app-status-bg:#f8fafc;--app-card-bg:#fff;--app-card-hover:#f8fafc;--app-input-bg:#fff;--green:#22c55e;--green-bg:#22c55e1a;--red:#ef4444;--red-bg:#ef44441a;--yellow:#eab308;--radius:8px;--radius-lg:12px;--radius-xl:16px;--font-sans:"Rubik", ui-sans-serif, system-ui, sans-serif}.dark,:root.dark,[data-theme=dark]{--app-background:#18181b;--app-foreground:#fafafa;--app-muted:#71717a;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#27272a;--app-canvas-bg:#09090b;--app-status-bg:#18181b;--app-card-bg:#1e1e22;--app-card-hover:#27272b;--app-input-bg:#18181b}@media (prefers-color-scheme:dark){:root:not(.light):not([data-theme=light]){--app-background:#18181b;--app-foreground:#fafafa;--app-muted:#71717a;--app-accent:#ff2d55;--app-accent-hover:#ff1744;--app-accent-foreground:#fff;--app-border:#27272a;--app-canvas-bg:#09090b;--app-status-bg:#18181b;--app-card-bg:#1e1e22;--app-card-hover:#27272b;--app-input-bg:#18181b}}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-state=checked].bg-primary,[data-state=checked].bg-neutral,button[role=switch][data-state=checked]{background-color:var(--app-accent)!important}button[role=checkbox][data-state=checked],[role=checkbox][data-state=checked]{background-color:var(--app-accent)!important;border-color:var(--app-accent)!important}[data-radix-slider-range],[role=slider] [data-orientation]>span:first-child{background-color:var(--app-accent)!important}[data-radix-slider-thumb],[role=slider] span[role=slider]{border-color:var(--app-accent)!important}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--app-accent)!important;outline:none!important}.cui-label{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select{color:var(--app-foreground)!important;caret-color:var(--app-foreground)!important}input::placeholder,textarea::placeholder{color:var(--app-muted)!important;opacity:1!important}.btn{border:1px solid var(--app-border);border-radius:var(--radius);background:var(--app-input-bg);color:var(--app-foreground);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--app-card-hover);border-color:var(--app-muted)}.btn-primary{background:var(--app-accent);border-color:var(--app-accent);color:#fff}.btn-primary:hover{background:var(--app-accent-hover);border-color:var(--app-accent-hover)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{border-radius:var(--radius-lg);padding:12px 28px;font-size:15px;font-weight:600}.btn-ghost{color:var(--app-muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--app-foreground);background:var(--app-card-bg)}.btn-icon{color:var(--app-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:6px;font-size:14px}.btn-icon:hover{background:var(--app-card-hover);color:var(--app-foreground)}.btn-danger{color:var(--red)}.btn-danger:hover{background:var(--red-bg);color:var(--red)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page{padding:32px 0}.page-title{letter-spacing:-.02em;margin-bottom:4px;font-size:22px;font-weight:600}.page-subtitle{color:var(--app-muted);margin-bottom:28px;font-size:14px}.card{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius-lg);overflow:hidden}.card-header{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-title{font-size:14px;font-weight:600}.card-body{padding:20px}.form-group{margin-bottom:16px}.form-label{color:var(--app-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.form-input{background:var(--app-input-bg);border:1px solid var(--app-border);border-radius:var(--radius);width:100%;color:var(--app-foreground);outline:none;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.form-input:focus{border-color:var(--app-accent)}.form-input::placeholder{color:var(--app-muted)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.spinner{border:2px solid var(--app-border);border-top-color:var(--app-accent);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite cui-spin;display:inline-block}@keyframes cui-spin{to{transform:rotate(360deg)}}.loading-state{color:var(--app-muted);justify-content:center;align-items:center;gap:10px;padding:60px 0;font-size:14px;display:flex}.empty-state{text-align:center;color:var(--app-muted);padding:60px 20px}.empty-state p{margin-bottom:16px;font-size:14px}.cui-toast{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius);z-index:2000;padding:12px 20px;font-size:13px;animation:.2s cui-slideUp;position:fixed;bottom:24px;right:24px}.cui-toast.error{border-color:var(--red);color:var(--red)}.cui-toast.success{border-color:var(--green);color:var(--green)}@keyframes cui-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tabs{border-bottom:1px solid var(--app-border);margin-bottom:24px;display:flex}.tab{color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 20px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s}.tab:hover{color:var(--app-foreground)}.tab.active{color:var(--app-foreground);border-bottom-color:var(--app-accent)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--app-card-bg);border:1px solid var(--app-border);border-radius:var(--radius-lg);width:480px;max-width:90vw;max-height:85vh;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{font-size:16px;font-weight:600}.modal-body{padding:0 24px 24px}.modal-footer{border-top:1px solid var(--app-border);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.info-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.info-item{background:var(--app-input-bg);border-radius:var(--radius);padding:16px}.info-label{text-transform:uppercase;letter-spacing:.05em;color:var(--app-muted);margin-bottom:6px;font-size:11px;font-weight:600}.info-value{font-size:14px;font-weight:500}.toggle{background:var(--app-border);cursor:pointer;border:none;border-radius:11px;width:40px;height:22px;transition:background .2s;position:relative}.toggle.active{background:var(--app-accent)}.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle.active:after{transform:translate(18px)}.badge-a{color:#60a5fa;background:#60a5fa1f}.badge-aaaa{color:#a78bfa;background:#a78bfa1f}.badge-cname{color:#34d399;background:#34d3991f}.badge-mx{color:#fbbf24;background:#fbbf241f}.badge-txt{color:#f87171;background:#f871711f}.badge-ns{color:#38bdf8;background:#38bdf81f}.badge-srv{color:#fb923c;background:#fb923c1f}.badge-default{color:var(--app-muted);background:#8888a01f}.dns-table{border-collapse:collapse;width:100%}.dns-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--app-muted);border-bottom:1px solid var(--app-border);padding:10px 16px;font-size:11px;font-weight:600}.dns-table td{border-bottom:1px solid var(--app-border);vertical-align:middle;padding:12px 16px;font-size:13px}.dns-table tr:last-child td{border-bottom:none}.dns-table tr:hover td{background:var(--app-card-hover)}.back-link{color:var(--app-muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;text-decoration:none;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--app-foreground)}@media (width<=768px){.form-row,.info-grid{grid-template-columns:1fr}}
|
|
2
2
|
/*$vite$:1*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@construct-space/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Construct UI — Vue 3 component library for Construct services",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/construct-ui.js",
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"import": "./dist/construct-ui.js",
|
|
12
12
|
"types": "./dist/index.d.ts"
|
|
13
13
|
},
|
|
14
|
-
"./tokens": "./dist/tokens.css",
|
|
15
14
|
"./style.css": "./dist/style.css"
|
|
16
15
|
},
|
|
17
16
|
"files": [
|
|
@@ -44,14 +43,15 @@
|
|
|
44
43
|
"release": "bun run build && npm publish"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|
|
47
|
-
"vue": "^3.5.0"
|
|
48
|
-
},
|
|
49
|
-
"dependencies": {
|
|
46
|
+
"vue": "^3.5.0",
|
|
50
47
|
"reka-ui": "^2.0.0",
|
|
51
48
|
"@iconify/vue": "^4.0.0"
|
|
52
49
|
},
|
|
50
|
+
"dependencies": {},
|
|
53
51
|
"devDependencies": {
|
|
54
52
|
"vue": "^3.5.28",
|
|
53
|
+
"reka-ui": "^2.0.0",
|
|
54
|
+
"@iconify/vue": "^4.0.0",
|
|
55
55
|
"typescript": "^5.9.3",
|
|
56
56
|
"vite": "^8.0.0",
|
|
57
57
|
"@vitejs/plugin-vue": "^6.0.5",
|