@docubook/ui-react 0.1.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 +126 -0
- package/dist/breadcrumbs.cjs +13 -0
- package/dist/breadcrumbs.d.cts +19 -0
- package/dist/breadcrumbs.d.ts +19 -0
- package/dist/breadcrumbs.js +14 -0
- package/dist/chunk-42YUT467.cjs +41 -0
- package/dist/chunk-4DCBYM74.js +42 -0
- package/dist/chunk-54N6HTQV.cjs +49 -0
- package/dist/chunk-7HHY2WDF.cjs +43 -0
- package/dist/chunk-ACEM5N2Y.cjs +123 -0
- package/dist/chunk-BCJ3FW3Y.cjs +66 -0
- package/dist/chunk-EJCGJCVK.cjs +89 -0
- package/dist/chunk-EN2X23AN.cjs +330 -0
- package/dist/chunk-FGJ6EYLA.js +90 -0
- package/dist/chunk-HTNZRBKW.js +67 -0
- package/dist/chunk-I4CZWV3M.js +124 -0
- package/dist/chunk-IBKH77YN.js +50 -0
- package/dist/chunk-KHU72DOY.cjs +25 -0
- package/dist/chunk-LJV3UIMK.cjs +53 -0
- package/dist/chunk-LUO4YXRQ.js +38 -0
- package/dist/chunk-NJKWNMJF.js +44 -0
- package/dist/chunk-OB6B2KN5.js +54 -0
- package/dist/chunk-OKMEBWPL.cjs +133 -0
- package/dist/chunk-PB4SHWMJ.cjs +101 -0
- package/dist/chunk-Q55KNNKE.js +26 -0
- package/dist/chunk-QZH7EIFW.js +134 -0
- package/dist/chunk-VRODU4ZV.cjs +37 -0
- package/dist/chunk-W5G2ZBYA.js +102 -0
- package/dist/chunk-ZMIZV66S.js +331 -0
- package/dist/cn.cjs +6 -0
- package/dist/cn.d.cts +4 -0
- package/dist/cn.d.ts +4 -0
- package/dist/cn.js +7 -0
- package/dist/collapse.cjs +12 -0
- package/dist/collapse.d.cts +31 -0
- package/dist/collapse.d.ts +31 -0
- package/dist/collapse.js +13 -0
- package/dist/drawer.cjs +16 -0
- package/dist/drawer.d.cts +44 -0
- package/dist/drawer.d.ts +44 -0
- package/dist/drawer.js +17 -0
- package/dist/dropdown.cjs +12 -0
- package/dist/dropdown.d.cts +20 -0
- package/dist/dropdown.d.ts +20 -0
- package/dist/dropdown.js +13 -0
- package/dist/index.cjs +96 -0
- package/dist/index.d.cts +15 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +97 -0
- package/dist/input.cjs +9 -0
- package/dist/input.d.cts +17 -0
- package/dist/input.d.ts +17 -0
- package/dist/input.js +10 -0
- package/dist/kbd.cjs +9 -0
- package/dist/kbd.d.cts +27 -0
- package/dist/kbd.d.ts +27 -0
- package/dist/kbd.js +10 -0
- package/dist/modal.cjs +10 -0
- package/dist/modal.d.cts +17 -0
- package/dist/modal.d.ts +17 -0
- package/dist/modal.js +11 -0
- package/dist/navbar.cjs +13 -0
- package/dist/navbar.d.cts +36 -0
- package/dist/navbar.d.ts +36 -0
- package/dist/navbar.js +14 -0
- package/dist/pagination.cjs +20 -0
- package/dist/pagination.d.cts +88 -0
- package/dist/pagination.d.ts +88 -0
- package/dist/pagination.js +21 -0
- package/dist/theme-controller.cjs +8 -0
- package/dist/theme-controller.d.cts +21 -0
- package/dist/theme-controller.d.ts +21 -0
- package/dist/theme-controller.js +9 -0
- package/dist/toggle.cjs +10 -0
- package/dist/toggle.d.cts +36 -0
- package/dist/toggle.d.ts +36 -0
- package/dist/toggle.js +11 -0
- package/dist/types-BZI5Cv8-.d.cts +6 -0
- package/dist/types-BZI5Cv8-.d.ts +6 -0
- package/package.json +200 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk7HHY2WDFcjs = require('./chunk-7HHY2WDF.cjs');
|
|
4
|
+
|
|
5
|
+
// src/base/navbar.tsx
|
|
6
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
7
|
+
function Navbar({ id, children, className, style }) {
|
|
8
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { id, className: _chunk7HHY2WDFcjs.cn.call(void 0, "navbar", className), style, children });
|
|
9
|
+
}
|
|
10
|
+
function Logo({ src, alt, text, href = "/", className }) {
|
|
11
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, className: _chunk7HHY2WDFcjs.cn.call(void 0, "flex items-center gap-2", className), children: [
|
|
12
|
+
src ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src, alt: alt || text || "Logo", className: "h-8 w-8" }) : null,
|
|
13
|
+
text && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xl font-bold", children: text })
|
|
14
|
+
] });
|
|
15
|
+
}
|
|
16
|
+
function NavMenu({ items, activePath, className }) {
|
|
17
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "menu menu-horizontal gap-1", className), children: items.map((item) => {
|
|
18
|
+
const isActive = activePath ? item.href === "/" ? activePath === "/" : activePath.startsWith(item.href) : false;
|
|
19
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20
|
+
"a",
|
|
21
|
+
{
|
|
22
|
+
href: item.href,
|
|
23
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0, isActive && "active"),
|
|
24
|
+
target: item.isExternal ? "_blank" : void 0,
|
|
25
|
+
rel: item.isExternal ? "noopener noreferrer" : void 0,
|
|
26
|
+
children: item.title
|
|
27
|
+
}
|
|
28
|
+
) }, item.href);
|
|
29
|
+
}) });
|
|
30
|
+
}
|
|
31
|
+
function NavMenuLink({
|
|
32
|
+
item,
|
|
33
|
+
isActive,
|
|
34
|
+
className
|
|
35
|
+
}) {
|
|
36
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37
|
+
"a",
|
|
38
|
+
{
|
|
39
|
+
href: item.href,
|
|
40
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0, isActive && "active", className),
|
|
41
|
+
target: item.isExternal ? "_blank" : void 0,
|
|
42
|
+
rel: item.isExternal ? "noopener noreferrer" : void 0,
|
|
43
|
+
children: item.title
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
exports.Navbar = Navbar; exports.Logo = Logo; exports.NavMenu = NavMenu; exports.NavMenuLink = NavMenuLink;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
__objRest,
|
|
4
|
+
__spreadProps,
|
|
5
|
+
__spreadValues,
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-NJKWNMJF.js";
|
|
8
|
+
|
|
9
|
+
// src/base/kbd.tsx
|
|
10
|
+
import { forwardRef } from "react";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
var Kbd = forwardRef(
|
|
13
|
+
(_a, ref) => {
|
|
14
|
+
var _b = _a, { children, className, size } = _b, props = __objRest(_b, ["children", "className", "size"]);
|
|
15
|
+
return /* @__PURE__ */ jsx("kbd", __spreadProps(__spreadValues({ ref, className: cn("kbd", size && `kbd-${size}`, className) }, props), { children }));
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
Kbd.displayName = "Kbd";
|
|
19
|
+
var iconSize = 12;
|
|
20
|
+
var FnKey = {
|
|
21
|
+
Cmd: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2318" }),
|
|
22
|
+
Option: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2325" }),
|
|
23
|
+
Ctrl: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2303" }),
|
|
24
|
+
Shift: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u21E7" }),
|
|
25
|
+
Esc: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u238B" }),
|
|
26
|
+
Space: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2423" }),
|
|
27
|
+
Delete: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u232B" }),
|
|
28
|
+
Tab: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u21E5" }),
|
|
29
|
+
Up: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2191" }),
|
|
30
|
+
Down: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2193" }),
|
|
31
|
+
Left: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2190" }),
|
|
32
|
+
Right: () => /* @__PURE__ */ jsx("span", { style: { fontSize: iconSize }, children: "\u2192" })
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
Kbd,
|
|
37
|
+
FnKey
|
|
38
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a, b) => {
|
|
10
|
+
for (var prop in b || (b = {}))
|
|
11
|
+
if (__hasOwnProp.call(b, prop))
|
|
12
|
+
__defNormalProp(a, prop, b[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
15
|
+
if (__propIsEnum.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
+
var __objRest = (source, exclude) => {
|
|
22
|
+
var target = {};
|
|
23
|
+
for (var prop in source)
|
|
24
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
if (source != null && __getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// src/utils/cn.ts
|
|
35
|
+
function cn(...inputs) {
|
|
36
|
+
return inputs.filter(Boolean).join(" ");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export {
|
|
40
|
+
__spreadValues,
|
|
41
|
+
__spreadProps,
|
|
42
|
+
__objRest,
|
|
43
|
+
cn
|
|
44
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-NJKWNMJF.js";
|
|
5
|
+
|
|
6
|
+
// src/base/navbar.tsx
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
function Navbar({ id, children, className, style }) {
|
|
9
|
+
return /* @__PURE__ */ jsx("nav", { id, className: cn("navbar", className), style, children });
|
|
10
|
+
}
|
|
11
|
+
function Logo({ src, alt, text, href = "/", className }) {
|
|
12
|
+
return /* @__PURE__ */ jsxs("a", { href, className: cn("flex items-center gap-2", className), children: [
|
|
13
|
+
src ? /* @__PURE__ */ jsx("img", { src, alt: alt || text || "Logo", className: "h-8 w-8" }) : null,
|
|
14
|
+
text && /* @__PURE__ */ jsx("span", { className: "text-xl font-bold", children: text })
|
|
15
|
+
] });
|
|
16
|
+
}
|
|
17
|
+
function NavMenu({ items, activePath, className }) {
|
|
18
|
+
return /* @__PURE__ */ jsx("ul", { className: cn("menu menu-horizontal gap-1", className), children: items.map((item) => {
|
|
19
|
+
const isActive = activePath ? item.href === "/" ? activePath === "/" : activePath.startsWith(item.href) : false;
|
|
20
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
21
|
+
"a",
|
|
22
|
+
{
|
|
23
|
+
href: item.href,
|
|
24
|
+
className: cn(isActive && "active"),
|
|
25
|
+
target: item.isExternal ? "_blank" : void 0,
|
|
26
|
+
rel: item.isExternal ? "noopener noreferrer" : void 0,
|
|
27
|
+
children: item.title
|
|
28
|
+
}
|
|
29
|
+
) }, item.href);
|
|
30
|
+
}) });
|
|
31
|
+
}
|
|
32
|
+
function NavMenuLink({
|
|
33
|
+
item,
|
|
34
|
+
isActive,
|
|
35
|
+
className
|
|
36
|
+
}) {
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
"a",
|
|
39
|
+
{
|
|
40
|
+
href: item.href,
|
|
41
|
+
className: cn(isActive && "active", className),
|
|
42
|
+
target: item.isExternal ? "_blank" : void 0,
|
|
43
|
+
rel: item.isExternal ? "noopener noreferrer" : void 0,
|
|
44
|
+
children: item.title
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
Navbar,
|
|
51
|
+
Logo,
|
|
52
|
+
NavMenu,
|
|
53
|
+
NavMenuLink
|
|
54
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk7HHY2WDFcjs = require('./chunk-7HHY2WDF.cjs');
|
|
4
|
+
|
|
5
|
+
// src/base/collapse.tsx
|
|
6
|
+
var _react = require('react');
|
|
7
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
8
|
+
function Collapse({
|
|
9
|
+
title,
|
|
10
|
+
children,
|
|
11
|
+
defaultOpen = false,
|
|
12
|
+
onOpenChange,
|
|
13
|
+
variant = "arrow",
|
|
14
|
+
className,
|
|
15
|
+
titleClassName,
|
|
16
|
+
contentClassName,
|
|
17
|
+
disabled = false
|
|
18
|
+
}) {
|
|
19
|
+
const [isOpen, setIsOpen] = _react.useState.call(void 0, defaultOpen);
|
|
20
|
+
const handleToggle = () => {
|
|
21
|
+
if (disabled) return;
|
|
22
|
+
const next = !isOpen;
|
|
23
|
+
setIsOpen(next);
|
|
24
|
+
onOpenChange == null ? void 0 : onOpenChange(next);
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
27
|
+
"div",
|
|
28
|
+
{
|
|
29
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0,
|
|
30
|
+
"bg-base-100 border-base-200 collapse rounded-lg border",
|
|
31
|
+
isOpen && "collapse-open",
|
|
32
|
+
!isOpen && "collapse-close",
|
|
33
|
+
variant === "arrow" ? "collapse-arrow" : "collapse-plus",
|
|
34
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
35
|
+
className
|
|
36
|
+
),
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
39
|
+
"input",
|
|
40
|
+
{
|
|
41
|
+
type: "checkbox",
|
|
42
|
+
checked: isOpen,
|
|
43
|
+
onChange: handleToggle,
|
|
44
|
+
disabled,
|
|
45
|
+
"aria-expanded": isOpen
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0,
|
|
52
|
+
"collapse-title text-base-content cursor-pointer font-medium",
|
|
53
|
+
titleClassName
|
|
54
|
+
),
|
|
55
|
+
onClick: handleToggle,
|
|
56
|
+
role: "button",
|
|
57
|
+
tabIndex: disabled ? -1 : 0,
|
|
58
|
+
onKeyDown: (e) => {
|
|
59
|
+
if (!disabled && (e.key === "Enter" || e.key === " ")) {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
handleToggle();
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
children: title
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "collapse-content text-base-content/80", contentClassName), children })
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
function Accordion({
|
|
73
|
+
items,
|
|
74
|
+
defaultOpen,
|
|
75
|
+
variant = "arrow",
|
|
76
|
+
className,
|
|
77
|
+
allowMultiple = false
|
|
78
|
+
}) {
|
|
79
|
+
const [openIds, setOpenIds] = _react.useState.call(void 0,
|
|
80
|
+
defaultOpen ? /* @__PURE__ */ new Set([defaultOpen]) : /* @__PURE__ */ new Set()
|
|
81
|
+
);
|
|
82
|
+
const toggle = (id) => {
|
|
83
|
+
setOpenIds((prev) => {
|
|
84
|
+
const next = new Set(prev);
|
|
85
|
+
if (next.has(id)) {
|
|
86
|
+
next.delete(id);
|
|
87
|
+
} else {
|
|
88
|
+
if (!allowMultiple) next.clear();
|
|
89
|
+
next.add(id);
|
|
90
|
+
}
|
|
91
|
+
return next;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "flex flex-col gap-3", className), children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
95
|
+
"div",
|
|
96
|
+
{
|
|
97
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0,
|
|
98
|
+
"bg-base-100 border-base-200 collapse rounded-lg border",
|
|
99
|
+
openIds.has(item.id) && "collapse-open",
|
|
100
|
+
!openIds.has(item.id) && "collapse-close",
|
|
101
|
+
variant === "arrow" ? "collapse-arrow" : "collapse-plus"
|
|
102
|
+
),
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "checkbox", checked: openIds.has(item.id), onChange: () => toggle(item.id) }),
|
|
105
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
106
|
+
"div",
|
|
107
|
+
{
|
|
108
|
+
className: "collapse-title text-base-content cursor-pointer font-medium",
|
|
109
|
+
onClick: () => toggle(item.id),
|
|
110
|
+
role: "button",
|
|
111
|
+
tabIndex: 0,
|
|
112
|
+
onKeyDown: (e) => {
|
|
113
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
toggle(item.id);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
children: item.title
|
|
119
|
+
}
|
|
120
|
+
),
|
|
121
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "collapse-content text-base-content/80", children: item.content })
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
item.id
|
|
125
|
+
)) });
|
|
126
|
+
}
|
|
127
|
+
var collapse_default = Collapse;
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
exports.Collapse = Collapse; exports.Accordion = Accordion; exports.collapse_default = collapse_default;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk7HHY2WDFcjs = require('./chunk-7HHY2WDF.cjs');
|
|
4
|
+
|
|
5
|
+
// src/base/drawer.tsx
|
|
6
|
+
var _react = require('react');
|
|
7
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
8
|
+
function Drawer({
|
|
9
|
+
id,
|
|
10
|
+
children,
|
|
11
|
+
defaultOpen = false,
|
|
12
|
+
side = "left",
|
|
13
|
+
breakpoint = "lg",
|
|
14
|
+
withOverlay = true,
|
|
15
|
+
overlayClassName,
|
|
16
|
+
sideClassName,
|
|
17
|
+
contentClassName,
|
|
18
|
+
className
|
|
19
|
+
}) {
|
|
20
|
+
const [isOpen, setIsOpen] = _react.useState.call(void 0, defaultOpen);
|
|
21
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0,
|
|
25
|
+
"drawer",
|
|
26
|
+
breakpoint && `${breakpoint}:drawer-open`,
|
|
27
|
+
side === "right" && "drawer-end",
|
|
28
|
+
className
|
|
29
|
+
),
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32
|
+
"input",
|
|
33
|
+
{
|
|
34
|
+
id,
|
|
35
|
+
type: "checkbox",
|
|
36
|
+
className: "drawer-toggle",
|
|
37
|
+
checked: isOpen,
|
|
38
|
+
onChange: () => setIsOpen(!isOpen),
|
|
39
|
+
"aria-label": "Toggle drawer"
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-content flex flex-col", contentClassName), children }),
|
|
43
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-side", sideClassName), children: withOverlay && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
44
|
+
"label",
|
|
45
|
+
{
|
|
46
|
+
htmlFor: id,
|
|
47
|
+
"aria-label": "Close sidebar",
|
|
48
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-overlay", overlayClassName),
|
|
49
|
+
onClick: () => setIsOpen(false)
|
|
50
|
+
}
|
|
51
|
+
) })
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function useDrawerState(initialState = false) {
|
|
57
|
+
const [isOpen, setIsOpen] = _react.useState.call(void 0, initialState);
|
|
58
|
+
return {
|
|
59
|
+
isOpen,
|
|
60
|
+
open: () => setIsOpen(true),
|
|
61
|
+
close: () => setIsOpen(false),
|
|
62
|
+
toggle: () => setIsOpen((prev) => !prev)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function DrawerTrigger({ drawerId, children, className }) {
|
|
66
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { htmlFor: drawerId, className: _chunk7HHY2WDFcjs.cn.call(void 0, "label cursor-pointer", className), children });
|
|
67
|
+
}
|
|
68
|
+
function DrawerSidePanel({
|
|
69
|
+
id,
|
|
70
|
+
children,
|
|
71
|
+
side = "left",
|
|
72
|
+
withOverlay = true,
|
|
73
|
+
overlayClassName,
|
|
74
|
+
className
|
|
75
|
+
}) {
|
|
76
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-side", side === "right" && "drawer-end", className), children: [
|
|
77
|
+
withOverlay && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
78
|
+
"label",
|
|
79
|
+
{
|
|
80
|
+
htmlFor: id,
|
|
81
|
+
"aria-label": "Close sidebar",
|
|
82
|
+
className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-overlay", overlayClassName)
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
children
|
|
86
|
+
] });
|
|
87
|
+
}
|
|
88
|
+
function DrawerContent({
|
|
89
|
+
children,
|
|
90
|
+
className
|
|
91
|
+
}) {
|
|
92
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk7HHY2WDFcjs.cn.call(void 0, "drawer-content", className), children });
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
exports.Drawer = Drawer; exports.useDrawerState = useDrawerState; exports.DrawerTrigger = DrawerTrigger; exports.DrawerSidePanel = DrawerSidePanel; exports.DrawerContent = DrawerContent;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-NJKWNMJF.js";
|
|
5
|
+
|
|
6
|
+
// src/base/breadcrumbs.tsx
|
|
7
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
8
|
+
function Breadcrumb({ children, className }) {
|
|
9
|
+
return /* @__PURE__ */ jsx("div", { className: cn("breadcrumbs text-sm", className), children: /* @__PURE__ */ jsx("ul", { children }) });
|
|
10
|
+
}
|
|
11
|
+
function BreadcrumbItem({ children, className }) {
|
|
12
|
+
return /* @__PURE__ */ jsx("li", { className: cn(className), children });
|
|
13
|
+
}
|
|
14
|
+
function BreadcrumbPage({ children, className }) {
|
|
15
|
+
return /* @__PURE__ */ jsx("span", { className: cn(className), children });
|
|
16
|
+
}
|
|
17
|
+
function BreadcrumbList({ children }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
Breadcrumb,
|
|
23
|
+
BreadcrumbItem,
|
|
24
|
+
BreadcrumbPage,
|
|
25
|
+
BreadcrumbList
|
|
26
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-NJKWNMJF.js";
|
|
5
|
+
|
|
6
|
+
// src/base/collapse.tsx
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
function Collapse({
|
|
10
|
+
title,
|
|
11
|
+
children,
|
|
12
|
+
defaultOpen = false,
|
|
13
|
+
onOpenChange,
|
|
14
|
+
variant = "arrow",
|
|
15
|
+
className,
|
|
16
|
+
titleClassName,
|
|
17
|
+
contentClassName,
|
|
18
|
+
disabled = false
|
|
19
|
+
}) {
|
|
20
|
+
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
21
|
+
const handleToggle = () => {
|
|
22
|
+
if (disabled) return;
|
|
23
|
+
const next = !isOpen;
|
|
24
|
+
setIsOpen(next);
|
|
25
|
+
onOpenChange == null ? void 0 : onOpenChange(next);
|
|
26
|
+
};
|
|
27
|
+
return /* @__PURE__ */ jsxs(
|
|
28
|
+
"div",
|
|
29
|
+
{
|
|
30
|
+
className: cn(
|
|
31
|
+
"bg-base-100 border-base-200 collapse rounded-lg border",
|
|
32
|
+
isOpen && "collapse-open",
|
|
33
|
+
!isOpen && "collapse-close",
|
|
34
|
+
variant === "arrow" ? "collapse-arrow" : "collapse-plus",
|
|
35
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
36
|
+
className
|
|
37
|
+
),
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
"input",
|
|
41
|
+
{
|
|
42
|
+
type: "checkbox",
|
|
43
|
+
checked: isOpen,
|
|
44
|
+
onChange: handleToggle,
|
|
45
|
+
disabled,
|
|
46
|
+
"aria-expanded": isOpen
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
className: cn(
|
|
53
|
+
"collapse-title text-base-content cursor-pointer font-medium",
|
|
54
|
+
titleClassName
|
|
55
|
+
),
|
|
56
|
+
onClick: handleToggle,
|
|
57
|
+
role: "button",
|
|
58
|
+
tabIndex: disabled ? -1 : 0,
|
|
59
|
+
onKeyDown: (e) => {
|
|
60
|
+
if (!disabled && (e.key === "Enter" || e.key === " ")) {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
handleToggle();
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
children: title
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
/* @__PURE__ */ jsx("div", { className: cn("collapse-content text-base-content/80", contentClassName), children })
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function Accordion({
|
|
74
|
+
items,
|
|
75
|
+
defaultOpen,
|
|
76
|
+
variant = "arrow",
|
|
77
|
+
className,
|
|
78
|
+
allowMultiple = false
|
|
79
|
+
}) {
|
|
80
|
+
const [openIds, setOpenIds] = useState(
|
|
81
|
+
defaultOpen ? /* @__PURE__ */ new Set([defaultOpen]) : /* @__PURE__ */ new Set()
|
|
82
|
+
);
|
|
83
|
+
const toggle = (id) => {
|
|
84
|
+
setOpenIds((prev) => {
|
|
85
|
+
const next = new Set(prev);
|
|
86
|
+
if (next.has(id)) {
|
|
87
|
+
next.delete(id);
|
|
88
|
+
} else {
|
|
89
|
+
if (!allowMultiple) next.clear();
|
|
90
|
+
next.add(id);
|
|
91
|
+
}
|
|
92
|
+
return next;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", className), children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
96
|
+
"div",
|
|
97
|
+
{
|
|
98
|
+
className: cn(
|
|
99
|
+
"bg-base-100 border-base-200 collapse rounded-lg border",
|
|
100
|
+
openIds.has(item.id) && "collapse-open",
|
|
101
|
+
!openIds.has(item.id) && "collapse-close",
|
|
102
|
+
variant === "arrow" ? "collapse-arrow" : "collapse-plus"
|
|
103
|
+
),
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ jsx("input", { type: "checkbox", checked: openIds.has(item.id), onChange: () => toggle(item.id) }),
|
|
106
|
+
/* @__PURE__ */ jsx(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
className: "collapse-title text-base-content cursor-pointer font-medium",
|
|
110
|
+
onClick: () => toggle(item.id),
|
|
111
|
+
role: "button",
|
|
112
|
+
tabIndex: 0,
|
|
113
|
+
onKeyDown: (e) => {
|
|
114
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
toggle(item.id);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
children: item.title
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
/* @__PURE__ */ jsx("div", { className: "collapse-content text-base-content/80", children: item.content })
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
item.id
|
|
126
|
+
)) });
|
|
127
|
+
}
|
|
128
|
+
var collapse_default = Collapse;
|
|
129
|
+
|
|
130
|
+
export {
|
|
131
|
+
Collapse,
|
|
132
|
+
Accordion,
|
|
133
|
+
collapse_default
|
|
134
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunk7HHY2WDFcjs = require('./chunk-7HHY2WDF.cjs');
|
|
7
|
+
|
|
8
|
+
// src/base/kbd.tsx
|
|
9
|
+
var _react = require('react');
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
11
|
+
var Kbd = _react.forwardRef.call(void 0,
|
|
12
|
+
(_a, ref) => {
|
|
13
|
+
var _b = _a, { children, className, size } = _b, props = _chunk7HHY2WDFcjs.__objRest.call(void 0, _b, ["children", "className", "size"]);
|
|
14
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "kbd", _chunk7HHY2WDFcjs.__spreadProps.call(void 0, _chunk7HHY2WDFcjs.__spreadValues.call(void 0, { ref, className: _chunk7HHY2WDFcjs.cn.call(void 0, "kbd", size && `kbd-${size}`, className) }, props), { children }));
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
Kbd.displayName = "Kbd";
|
|
18
|
+
var iconSize = 12;
|
|
19
|
+
var FnKey = {
|
|
20
|
+
Cmd: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2318" }),
|
|
21
|
+
Option: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2325" }),
|
|
22
|
+
Ctrl: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2303" }),
|
|
23
|
+
Shift: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u21E7" }),
|
|
24
|
+
Esc: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u238B" }),
|
|
25
|
+
Space: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2423" }),
|
|
26
|
+
Delete: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u232B" }),
|
|
27
|
+
Tab: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u21E5" }),
|
|
28
|
+
Up: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2191" }),
|
|
29
|
+
Down: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2193" }),
|
|
30
|
+
Left: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2190" }),
|
|
31
|
+
Right: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { fontSize: iconSize }, children: "\u2192" })
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.Kbd = Kbd; exports.FnKey = FnKey;
|