@bysages/react 0.4.3 → 0.4.4
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/dist/components/avatar/index.d.mts +12 -2
- package/dist/components/avatar/index.mjs +18 -3
- package/dist/components/banner/index.d.mts +16 -2
- package/dist/components/banner/index.mjs +18 -2
- package/dist/components/breadcrumb/index.d.mts +15 -1
- package/dist/components/breadcrumb/index.mjs +20 -2
- package/dist/components/color-picker/index.d.mts +2 -0
- package/dist/components/color-picker/index.mjs +35 -21
- package/dist/components/file-upload/index.mjs +1 -5
- package/dist/components/float-button/index.d.mts +22 -1
- package/dist/components/float-button/index.mjs +28 -2
- package/dist/components/floating-panel/index.mjs +5 -0
- package/dist/components/toast/index.mjs +15 -2
- package/dist/generative/index.mjs +124 -59
- package/dist/index.d.mts +5 -5
- package/package.json +2 -2
|
@@ -9,7 +9,7 @@ import { Avatar as Avatar$1 } from "@ark-ui/react/avatar";
|
|
|
9
9
|
export type AvatarSize = "sm" | "md" | "lg";
|
|
10
10
|
export interface AvatarProps extends ComponentProps<typeof Avatar$1.Root> {
|
|
11
11
|
/** Seal diameter: the small, medium, or large control rung. The
|
|
12
|
-
* default (
|
|
12
|
+
* default (medium) stands as tall as the biggest control so an avatar
|
|
13
13
|
* rides a row without stretching it. */
|
|
14
14
|
size?: AvatarSize;
|
|
15
15
|
/** The corner: round by default; square cuts it sharp, a stamp
|
|
@@ -17,7 +17,17 @@ export interface AvatarProps extends ComponentProps<typeof Avatar$1.Root> {
|
|
|
17
17
|
shape?: "circle" | "square";
|
|
18
18
|
}
|
|
19
19
|
declare function AvatarRoot(props: AvatarProps): import("react").JSX.Element;
|
|
20
|
-
export
|
|
20
|
+
export interface AvatarFacadeProps extends AvatarProps {
|
|
21
|
+
/** The person's name; its first two initials wait beneath an image. */
|
|
22
|
+
name?: string;
|
|
23
|
+
/** The portrait to load over the name's initials. */
|
|
24
|
+
src?: string;
|
|
25
|
+
}
|
|
26
|
+
declare function AvatarFacade({ name, src, size, shape, children, ...rest }: AvatarFacadeProps): import("react").JSX.Element;
|
|
27
|
+
declare namespace AvatarFacade {
|
|
28
|
+
var displayName: string;
|
|
29
|
+
}
|
|
30
|
+
export declare const Avatar: typeof AvatarFacade & typeof Avatar$1 & {
|
|
21
31
|
Root: typeof AvatarRoot;
|
|
22
32
|
};
|
|
23
33
|
//#endregion
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { t as useElementId } from "../../id-C37UYLwJ.mjs";
|
|
2
2
|
import { injectComponentStyle } from "@bysages/core/styling";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Avatar as Avatar$1 } from "@ark-ui/react/avatar";
|
|
5
5
|
//#region src/components/avatar/index.tsx
|
|
6
|
+
function initials(name) {
|
|
7
|
+
return name?.trim().split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join("") ?? "";
|
|
8
|
+
}
|
|
6
9
|
function AvatarRoot(props) {
|
|
7
10
|
const id = useElementId("avatar", props);
|
|
8
|
-
const { size, shape = "circle", ...rest } = props;
|
|
11
|
+
const { size = "md", shape = "circle", ...rest } = props;
|
|
9
12
|
return /* @__PURE__ */ jsx(Avatar$1.Root, {
|
|
10
13
|
...rest,
|
|
11
14
|
id,
|
|
@@ -13,7 +16,19 @@ function AvatarRoot(props) {
|
|
|
13
16
|
"data-shape": shape
|
|
14
17
|
});
|
|
15
18
|
}
|
|
16
|
-
|
|
19
|
+
function AvatarFacade({ name, src, size = "md", shape, children, ...rest }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(AvatarRoot, {
|
|
21
|
+
size,
|
|
22
|
+
shape,
|
|
23
|
+
...rest,
|
|
24
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [src ? /* @__PURE__ */ jsx(Avatar$1.Image, {
|
|
25
|
+
src,
|
|
26
|
+
alt: name
|
|
27
|
+
}) : null, name ? /* @__PURE__ */ jsx(Avatar$1.Fallback, { children: initials(name) }) : null] })
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
AvatarFacade.displayName = "SAvatar";
|
|
31
|
+
const Avatar = Object.assign(AvatarFacade, {
|
|
17
32
|
...Avatar$1,
|
|
18
33
|
Root: AvatarRoot
|
|
19
34
|
});
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import { ButtonHTMLAttributes, HTMLAttributes } from "react";
|
|
1
|
+
import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from "react";
|
|
2
2
|
//#region src/components/banner/index.d.ts
|
|
3
3
|
export type BannerStatus = "ink" | "info" | "success" | "warning" | "danger";
|
|
4
4
|
export interface BannerRootProps extends HTMLAttributes<HTMLElement> {
|
|
5
5
|
status?: BannerStatus;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export interface BannerFacadeProps extends Omit<BannerRootProps, "title"> {
|
|
8
|
+
/** The glance line, set in the serif. */
|
|
9
|
+
title?: string;
|
|
10
|
+
/** The supporting line beneath the title. */
|
|
11
|
+
message?: string;
|
|
12
|
+
/** Adds the close control and lets the facade own dismissal. */
|
|
13
|
+
dismissible?: boolean;
|
|
14
|
+
/** The reader's answers, laid beside the notice's prose. */
|
|
15
|
+
actions?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
declare function BannerFacade({ status, title, message, dismissible, actions, children, ...rest }: BannerFacadeProps): import("react").JSX.Element | null;
|
|
18
|
+
declare namespace BannerFacade {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const Banner: typeof BannerFacade & {
|
|
8
22
|
Root: ({ status, children, ...rest }: BannerRootProps) => import("react").JSX.Element;
|
|
9
23
|
Icon: {
|
|
10
24
|
({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { r as iconNode } from "../../icon-Cri0-7-x.mjs";
|
|
2
2
|
import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
|
|
3
3
|
import { injectComponentStyle } from "@bysages/core/styling";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useState } from "react";
|
|
5
6
|
//#region src/components/banner/index.tsx
|
|
6
7
|
/** A page-level notice, spoken across the full measure: a wash of the
|
|
7
8
|
* status pigment, one heavier hairline on the leading edge, and room
|
|
@@ -44,7 +45,22 @@ const Close = (rest) => {
|
|
|
44
45
|
children: iconNode("x")
|
|
45
46
|
});
|
|
46
47
|
};
|
|
47
|
-
|
|
48
|
+
function BannerFacade({ status = "ink", title, message, dismissible = false, actions, children, ...rest }) {
|
|
49
|
+
const [open, setOpen] = useState(true);
|
|
50
|
+
if (!open) return null;
|
|
51
|
+
return /* @__PURE__ */ jsxs(Root, {
|
|
52
|
+
status,
|
|
53
|
+
...rest,
|
|
54
|
+
children: [/* @__PURE__ */ jsxs(Body, { children: [
|
|
55
|
+
title ? /* @__PURE__ */ jsx(Title, { children: title }) : null,
|
|
56
|
+
message ? /* @__PURE__ */ jsx(Description, { children: message }) : null,
|
|
57
|
+
children,
|
|
58
|
+
actions ? /* @__PURE__ */ jsx(Actions, { children: actions }) : null
|
|
59
|
+
] }), dismissible ? /* @__PURE__ */ jsx(Close, { onClick: () => setOpen(false) }) : null]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
BannerFacade.displayName = "SBanner";
|
|
63
|
+
const Banner = Object.assign(BannerFacade, {
|
|
48
64
|
Root,
|
|
49
65
|
Icon,
|
|
50
66
|
Body,
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import { AnchorHTMLAttributes, HTMLAttributes } from "react";
|
|
2
2
|
//#region src/components/breadcrumb/index.d.ts
|
|
3
3
|
declare function Root({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
4
|
-
export
|
|
4
|
+
export type BreadcrumbItem = string | {
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
};
|
|
8
|
+
export interface BreadcrumbFacadeProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
|
|
9
|
+
/** The trail, ordered from its origin to the current page. */
|
|
10
|
+
items: BreadcrumbItem[];
|
|
11
|
+
/** Replaces the shared accessible name for the trail. */
|
|
12
|
+
label?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function BreadcrumbFacade({ items, label, className, ...rest }: BreadcrumbFacadeProps): import("react").JSX.Element;
|
|
15
|
+
declare namespace BreadcrumbFacade {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const Breadcrumb: typeof BreadcrumbFacade & {
|
|
5
19
|
Root: typeof Root;
|
|
6
20
|
List: {
|
|
7
21
|
({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
|
|
2
2
|
import { injectComponentStyle } from "@bysages/core/styling";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Fragment as Fragment$1 } from "react";
|
|
4
5
|
//#region src/components/breadcrumb/index.tsx
|
|
5
6
|
/** A trail of waymarks: Root wraps the nav, List the ordered trail, and
|
|
6
7
|
* each Item carries a Link — or the Current page — parted by a quiet
|
|
@@ -32,7 +33,24 @@ const Item = part("Item", "li");
|
|
|
32
33
|
const Link = part("Link", "a");
|
|
33
34
|
const Current = part("Current", "span", { "aria-current": "page" });
|
|
34
35
|
const Separator = part("Separator", "span", { "aria-hidden": "true" }, "/");
|
|
35
|
-
|
|
36
|
+
function BreadcrumbFacade({ items, label, className, ...rest }) {
|
|
37
|
+
const last = items.length - 1;
|
|
38
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
39
|
+
className,
|
|
40
|
+
...rest,
|
|
41
|
+
"aria-label": rest["aria-label"] ?? label,
|
|
42
|
+
children: /* @__PURE__ */ jsx(List, { children: items.map((item, index) => {
|
|
43
|
+
const text = typeof item === "string" ? item : item.label;
|
|
44
|
+
const href = typeof item === "string" ? void 0 : item.href;
|
|
45
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Item, { children: index === last ? /* @__PURE__ */ jsx(Current, { children: text }) : /* @__PURE__ */ jsx(Link, {
|
|
46
|
+
href,
|
|
47
|
+
children: text
|
|
48
|
+
}) }), index < last ? /* @__PURE__ */ jsx(Separator, {}) : null] }, `${text}-${index}`);
|
|
49
|
+
}) })
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
BreadcrumbFacade.displayName = "SBreadcrumb";
|
|
53
|
+
const Breadcrumb = Object.assign(BreadcrumbFacade, {
|
|
36
54
|
Root,
|
|
37
55
|
List,
|
|
38
56
|
Item,
|
|
@@ -4,6 +4,10 @@ import { injectComponentStyle } from "@bysages/core/styling";
|
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { ColorPicker as ColorPicker$1, parseColor } from "@ark-ui/react/color-picker";
|
|
6
6
|
//#region src/components/color-picker/index.tsx
|
|
7
|
+
const checkIcon = iconNode("check", {
|
|
8
|
+
width: 12,
|
|
9
|
+
height: 12
|
|
10
|
+
});
|
|
7
11
|
function ColorPickerRoot(props) {
|
|
8
12
|
injectComponentStyle("color-picker");
|
|
9
13
|
const id = useElementId("color-picker", props);
|
|
@@ -18,7 +22,7 @@ function ColorPickerRoot(props) {
|
|
|
18
22
|
* swatch trigger, while the popup carries the area and hue/alpha tracks.
|
|
19
23
|
* Saved swatches and format switches remain anatomy work. */
|
|
20
24
|
function ColorPickerFacade(props) {
|
|
21
|
-
const { value, defaultValue, disabled, invalid, required, label, size = "md", className, style, onValueChange } = props;
|
|
25
|
+
const { value, defaultValue, disabled, invalid, required, label, swatches = [], size = "md", className, style, onValueChange } = props;
|
|
22
26
|
const toColor = (color) => typeof color === "string" ? parseColor(color) : color;
|
|
23
27
|
return /* @__PURE__ */ jsxs(ColorPickerRoot, {
|
|
24
28
|
size,
|
|
@@ -33,28 +37,38 @@ function ColorPickerFacade(props) {
|
|
|
33
37
|
children: [
|
|
34
38
|
label ? /* @__PURE__ */ jsx(ColorPicker$1.Label, { children: label }) : null,
|
|
35
39
|
/* @__PURE__ */ jsxs(ColorPicker$1.Control, { children: [/* @__PURE__ */ jsx(ColorPicker$1.ChannelInput, { channel: "hex" }), /* @__PURE__ */ jsxs(ColorPicker$1.Trigger, { children: [/* @__PURE__ */ jsx(ColorPicker$1.TransparencyGrid, {}), /* @__PURE__ */ jsx(ColorPicker$1.ValueSwatch, {})] })] }),
|
|
36
|
-
/* @__PURE__ */ jsx(ColorPicker$1.Positioner, { children: /* @__PURE__ */ jsxs(ColorPicker$1.Content, { children: [
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
children: [/* @__PURE__ */ jsx(ColorPicker$1.EyeDropperTrigger, { children: iconNode("pipette", {
|
|
40
|
-
width: 14,
|
|
41
|
-
height: 14
|
|
42
|
-
}) }), /* @__PURE__ */ jsxs("div", {
|
|
40
|
+
/* @__PURE__ */ jsx(ColorPicker$1.Positioner, { children: /* @__PURE__ */ jsxs(ColorPicker$1.Content, { children: [
|
|
41
|
+
/* @__PURE__ */ jsxs(ColorPicker$1.Area, { children: [/* @__PURE__ */ jsx(ColorPicker$1.AreaBackground, {}), /* @__PURE__ */ jsx(ColorPicker$1.AreaThumb, {})] }),
|
|
42
|
+
/* @__PURE__ */ jsxs("div", {
|
|
43
43
|
"data-scope": "color-picker",
|
|
44
|
-
"data-part": "channel-
|
|
45
|
-
children: [/* @__PURE__ */
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}), /* @__PURE__ */ jsxs(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/* @__PURE__ */ jsx(ColorPicker$1.ChannelSliderThumb, {})
|
|
54
|
-
|
|
44
|
+
"data-part": "channel-controls",
|
|
45
|
+
children: [/* @__PURE__ */ jsx(ColorPicker$1.EyeDropperTrigger, { children: iconNode("pipette", {
|
|
46
|
+
width: 14,
|
|
47
|
+
height: 14
|
|
48
|
+
}) }), /* @__PURE__ */ jsxs("div", {
|
|
49
|
+
"data-scope": "color-picker",
|
|
50
|
+
"data-part": "channel-sliders",
|
|
51
|
+
children: [/* @__PURE__ */ jsxs(ColorPicker$1.ChannelSlider, {
|
|
52
|
+
channel: "hue",
|
|
53
|
+
children: [/* @__PURE__ */ jsx(ColorPicker$1.ChannelSliderTrack, {}), /* @__PURE__ */ jsx(ColorPicker$1.ChannelSliderThumb, {})]
|
|
54
|
+
}), /* @__PURE__ */ jsxs(ColorPicker$1.ChannelSlider, {
|
|
55
|
+
channel: "alpha",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(ColorPicker$1.TransparencyGrid, {}),
|
|
58
|
+
/* @__PURE__ */ jsx(ColorPicker$1.ChannelSliderTrack, {}),
|
|
59
|
+
/* @__PURE__ */ jsx(ColorPicker$1.ChannelSliderThumb, {})
|
|
60
|
+
]
|
|
61
|
+
})]
|
|
55
62
|
})]
|
|
56
|
-
})
|
|
57
|
-
|
|
63
|
+
}),
|
|
64
|
+
swatches.length > 0 ? /* @__PURE__ */ jsx(ColorPicker$1.SwatchGroup, { children: swatches.map((color) => /* @__PURE__ */ jsx(ColorPicker$1.SwatchTrigger, {
|
|
65
|
+
value: color,
|
|
66
|
+
children: /* @__PURE__ */ jsx(ColorPicker$1.Swatch, {
|
|
67
|
+
value: color,
|
|
68
|
+
children: /* @__PURE__ */ jsx(ColorPicker$1.SwatchIndicator, { children: checkIcon })
|
|
69
|
+
})
|
|
70
|
+
}, color)) }) : null
|
|
71
|
+
] }) }),
|
|
58
72
|
/* @__PURE__ */ jsx(ColorPicker$1.HiddenInput, {})
|
|
59
73
|
]
|
|
60
74
|
});
|
|
@@ -35,10 +35,6 @@ const fileIcon = iconNode("file", {
|
|
|
35
35
|
width: 16,
|
|
36
36
|
height: 16
|
|
37
37
|
});
|
|
38
|
-
const uploadIcon = iconNode("upload", {
|
|
39
|
-
width: 28,
|
|
40
|
-
height: 28
|
|
41
|
-
});
|
|
42
38
|
const closeIcon = iconNode("x", {
|
|
43
39
|
width: 14,
|
|
44
40
|
height: 14
|
|
@@ -54,7 +50,7 @@ function FileUploadFacade({ label, placeholder, disabled = false, invalid = fals
|
|
|
54
50
|
maxFiles,
|
|
55
51
|
children: [
|
|
56
52
|
label ? /* @__PURE__ */ jsx(FileUpload$1.Label, { children: label }) : null,
|
|
57
|
-
/* @__PURE__ */ jsx(FileUpload$1.Dropzone, { children: /* @__PURE__ */
|
|
53
|
+
/* @__PURE__ */ jsx(FileUpload$1.Dropzone, { children: /* @__PURE__ */ jsx(FileUploadTrigger, { children: placeholder ?? "Choose files" }) }),
|
|
58
54
|
/* @__PURE__ */ jsx(FileUpload$1.ItemGroup, { children: /* @__PURE__ */ jsx(FileUpload$1.Context, { children: (api) => api.acceptedFiles.map((file) => /* @__PURE__ */ jsxs(FileUpload$1.Item, {
|
|
59
55
|
file,
|
|
60
56
|
children: [
|
|
@@ -51,7 +51,28 @@ interface FloatButtonItemProps {
|
|
|
51
51
|
children?: ReactNode;
|
|
52
52
|
}
|
|
53
53
|
declare function Item({ label, disabled, onClick, children }: FloatButtonItemProps): import("react").JSX.Element;
|
|
54
|
-
export
|
|
54
|
+
export interface FloatButtonAction {
|
|
55
|
+
/** The action's accessible name and its surfaced annotation. */
|
|
56
|
+
label: string;
|
|
57
|
+
/** A curated core icon; pencil is the fallback mark. */
|
|
58
|
+
icon?: string;
|
|
59
|
+
disabled?: boolean;
|
|
60
|
+
/** The action fires before the fan folds. */
|
|
61
|
+
onClick?: () => void;
|
|
62
|
+
}
|
|
63
|
+
export interface FloatButtonFacadeProps extends FloatButtonRootProps {
|
|
64
|
+
/** The trigger's accessible name. */
|
|
65
|
+
label?: string;
|
|
66
|
+
/** The fanned actions behind the trigger. */
|
|
67
|
+
actions?: FloatButtonAction[];
|
|
68
|
+
/** Starts the speed dial open before the reader touches it. */
|
|
69
|
+
defaultOpen?: boolean;
|
|
70
|
+
}
|
|
71
|
+
declare function FloatButtonFacade({ label, actions, placement, size, defaultOpen, children, open: openProp, onOpenChange, ...rest }: FloatButtonFacadeProps): import("react").JSX.Element;
|
|
72
|
+
declare namespace FloatButtonFacade {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
75
|
+
export declare const FloatButton: typeof FloatButtonFacade & {
|
|
55
76
|
Root: typeof Root;
|
|
56
77
|
Trigger: typeof Trigger;
|
|
57
78
|
Item: typeof Item;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { r as iconNode } from "../../icon-Cri0-7-x.mjs";
|
|
1
2
|
import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
|
|
2
3
|
import { Button } from "../button/index.mjs";
|
|
3
4
|
import { injectComponentStyle } from "@bysages/core/styling";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { createContext, useContext, useState } from "react";
|
|
6
7
|
//#region src/components/float-button/index.tsx
|
|
7
8
|
/** Context for {@link FloatButtonContextValue}, exported so a custom
|
|
@@ -82,7 +83,32 @@ function Item({ label, disabled = false, onClick, children }) {
|
|
|
82
83
|
})]
|
|
83
84
|
});
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
function FloatButtonFacade({ label, actions = [], placement, size, defaultOpen = false, children, open: openProp, onOpenChange, ...rest }) {
|
|
87
|
+
const [innerOpen, setInnerOpen] = useState(defaultOpen);
|
|
88
|
+
const open = openProp ?? innerOpen;
|
|
89
|
+
const setOpen = (value) => {
|
|
90
|
+
setInnerOpen(value);
|
|
91
|
+
onOpenChange?.(value);
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
94
|
+
open,
|
|
95
|
+
onOpenChange: setOpen,
|
|
96
|
+
placement,
|
|
97
|
+
size,
|
|
98
|
+
...rest,
|
|
99
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Trigger, {
|
|
100
|
+
label,
|
|
101
|
+
children: iconNode("plus")
|
|
102
|
+
}), actions.map((action) => /* @__PURE__ */ jsx(Item, {
|
|
103
|
+
label: action.label,
|
|
104
|
+
disabled: action.disabled,
|
|
105
|
+
onClick: action.onClick,
|
|
106
|
+
children: iconNode(action.icon ?? "pencil")
|
|
107
|
+
}, action.label))] })
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
FloatButtonFacade.displayName = "SFloatButton";
|
|
111
|
+
const FloatButton = Object.assign(FloatButtonFacade, {
|
|
86
112
|
Root,
|
|
87
113
|
Trigger,
|
|
88
114
|
Item
|
|
@@ -42,6 +42,11 @@ function FloatingPanelFacade({ open, defaultOpen, trigger, content, label, descr
|
|
|
42
42
|
stage: "maximized",
|
|
43
43
|
children: iconNode("maximize-2")
|
|
44
44
|
}),
|
|
45
|
+
/* @__PURE__ */ jsx(FloatingPanel$1.StageTrigger, {
|
|
46
|
+
stage: "default",
|
|
47
|
+
"aria-label": "Restore",
|
|
48
|
+
children: iconNode("minimize-2")
|
|
49
|
+
}),
|
|
45
50
|
/* @__PURE__ */ jsx(FloatingPanel$1.CloseTrigger, {
|
|
46
51
|
"aria-label": "Close",
|
|
47
52
|
children: iconNode("x")
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { r as iconNode } from "../../icon-Cri0-7-x.mjs";
|
|
1
2
|
import { t as useElementId } from "../../id-C37UYLwJ.mjs";
|
|
2
3
|
import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
|
|
3
4
|
import { injectComponentStyle } from "@bysages/core/styling";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { forwardRef } from "react";
|
|
6
7
|
import { Toast as Toast$1, Toaster as Toaster$1, createToaster } from "@ark-ui/react/toast";
|
|
7
8
|
//#region src/components/toast/index.tsx
|
|
@@ -22,9 +23,21 @@ const Toast = {
|
|
|
22
23
|
Root: ToastRoot
|
|
23
24
|
};
|
|
24
25
|
const ToasterRoot = forwardRef(function ToasterRoot(props, ref) {
|
|
26
|
+
const { children, ...rest } = props;
|
|
25
27
|
return /* @__PURE__ */ jsx(Toaster$1, {
|
|
26
28
|
ref,
|
|
27
|
-
...
|
|
29
|
+
...rest,
|
|
30
|
+
children: children ?? ((toast) => /* @__PURE__ */ jsxs(Toast$1.Root, { children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Toast$1.Title, { children: toast.title }),
|
|
32
|
+
toast.description ? /* @__PURE__ */ jsx(Toast$1.Description, { children: toast.description }) : null,
|
|
33
|
+
/* @__PURE__ */ jsx(Toast$1.CloseTrigger, {
|
|
34
|
+
"aria-label": "Close",
|
|
35
|
+
children: iconNode("x", {
|
|
36
|
+
width: 14,
|
|
37
|
+
height: 14
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
] }, toast.id))
|
|
28
41
|
});
|
|
29
42
|
});
|
|
30
43
|
const Toaster = withSelfRoot(ToasterRoot);
|
|
@@ -3,10 +3,13 @@ import { Button } from "../components/button/index.mjs";
|
|
|
3
3
|
import { Alert } from "../components/alert/index.mjs";
|
|
4
4
|
import { Avatar } from "../components/avatar/index.mjs";
|
|
5
5
|
import { Badge } from "../components/badge/index.mjs";
|
|
6
|
+
import { Banner } from "../components/banner/index.mjs";
|
|
6
7
|
import { Spinner } from "../components/spinner/index.mjs";
|
|
8
|
+
import { Breadcrumb } from "../components/breadcrumb/index.mjs";
|
|
7
9
|
import { Card } from "../components/card/index.mjs";
|
|
8
10
|
import { t as Input } from "../input-BDpQ0e6G.mjs";
|
|
9
11
|
import { Checkbox } from "../components/checkbox/index.mjs";
|
|
12
|
+
import { FloatButton } from "../components/float-button/index.mjs";
|
|
10
13
|
import { Progress } from "../components/progress/index.mjs";
|
|
11
14
|
import { RadioGroup } from "../components/radio-group/index.mjs";
|
|
12
15
|
import { t as Select } from "../select-D_soVdWK.mjs";
|
|
@@ -17,9 +20,8 @@ import { Stat } from "../components/stat/index.mjs";
|
|
|
17
20
|
import { Switch } from "../components/switch/index.mjs";
|
|
18
21
|
import { Textarea } from "../components/textarea/index.mjs";
|
|
19
22
|
import { Typography } from "../components/typography/index.mjs";
|
|
20
|
-
import { jsx
|
|
23
|
+
import { jsx } from "react/jsx-runtime";
|
|
21
24
|
import { createElement } from "react";
|
|
22
|
-
import { createListCollection } from "@ark-ui/react/collection";
|
|
23
25
|
import { z } from "zod";
|
|
24
26
|
import { defineRegistry, useBoundProp } from "@json-render/react";
|
|
25
27
|
import { defineCatalog } from "@json-render/core";
|
|
@@ -52,9 +54,6 @@ const headingClass = {
|
|
|
52
54
|
"5": "text-lg",
|
|
53
55
|
"6": "text-base"
|
|
54
56
|
};
|
|
55
|
-
function initials(name) {
|
|
56
|
-
return name.split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join("");
|
|
57
|
-
}
|
|
58
57
|
function slug(value) {
|
|
59
58
|
return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "") || value;
|
|
60
59
|
}
|
|
@@ -88,6 +87,25 @@ const faces$1 = defineFace({
|
|
|
88
87
|
}),
|
|
89
88
|
description: "A person's seal: image when given, initials as the fallback."
|
|
90
89
|
},
|
|
90
|
+
Banner: {
|
|
91
|
+
props: z.object({
|
|
92
|
+
status: z.enum([
|
|
93
|
+
"ink",
|
|
94
|
+
"info",
|
|
95
|
+
"success",
|
|
96
|
+
"warning",
|
|
97
|
+
"danger"
|
|
98
|
+
]).optional(),
|
|
99
|
+
title: z.string().optional(),
|
|
100
|
+
message: z.string().optional(),
|
|
101
|
+
dismissible: z.boolean().optional()
|
|
102
|
+
}),
|
|
103
|
+
description: "A full-width notice that speaks once across the page."
|
|
104
|
+
},
|
|
105
|
+
Breadcrumb: {
|
|
106
|
+
props: z.object({ items: z.array(z.string()).optional() }),
|
|
107
|
+
description: "A trail of waymarks from home to the current page."
|
|
108
|
+
},
|
|
91
109
|
Badge: {
|
|
92
110
|
props: z.object({
|
|
93
111
|
text: z.string(),
|
|
@@ -152,6 +170,29 @@ const faces$1 = defineFace({
|
|
|
152
170
|
}),
|
|
153
171
|
description: "One independent box with its label."
|
|
154
172
|
},
|
|
173
|
+
FloatButton: {
|
|
174
|
+
props: z.object({
|
|
175
|
+
label: z.string().optional(),
|
|
176
|
+
actions: z.array(z.object({
|
|
177
|
+
label: z.string(),
|
|
178
|
+
icon: z.string().optional(),
|
|
179
|
+
disabled: z.boolean().optional()
|
|
180
|
+
})).optional(),
|
|
181
|
+
placement: z.enum([
|
|
182
|
+
"bottom-end",
|
|
183
|
+
"bottom-start",
|
|
184
|
+
"top-end",
|
|
185
|
+
"top-start"
|
|
186
|
+
]).optional(),
|
|
187
|
+
size: z.enum([
|
|
188
|
+
"sm",
|
|
189
|
+
"md",
|
|
190
|
+
"lg"
|
|
191
|
+
]).optional(),
|
|
192
|
+
defaultOpen: z.boolean().optional()
|
|
193
|
+
}),
|
|
194
|
+
description: "A floating action and its fanned alternatives; actions use curated icon names."
|
|
195
|
+
},
|
|
155
196
|
Heading: {
|
|
156
197
|
props: z.object({
|
|
157
198
|
text: z.string(),
|
|
@@ -328,44 +369,31 @@ const textVoices = {
|
|
|
328
369
|
function useBound(value, path) {
|
|
329
370
|
return useBoundProp(value, path);
|
|
330
371
|
}
|
|
331
|
-
const collectionCache = /* @__PURE__ */ new Map();
|
|
332
|
-
function collectionFor(options) {
|
|
333
|
-
const key = JSON.stringify(options);
|
|
334
|
-
let collection = collectionCache.get(key);
|
|
335
|
-
if (!collection) {
|
|
336
|
-
collection = createListCollection({ items: options });
|
|
337
|
-
collectionCache.set(key, collection);
|
|
338
|
-
}
|
|
339
|
-
return collection;
|
|
340
|
-
}
|
|
341
372
|
/** A labelled field: the label whispers above, the control answers. */
|
|
342
373
|
function labelled(label, control) {
|
|
343
374
|
return label ? createElement(Stack, { gap: "xs" }, createElement(Typography.Label, null, label), control) : control;
|
|
344
375
|
}
|
|
345
376
|
//#endregion
|
|
346
377
|
//#region src/components/alert/generative.ts
|
|
347
|
-
var generative_exports$
|
|
378
|
+
var generative_exports$20 = /* @__PURE__ */ __exportAll({ default: () => generative_default$20 });
|
|
348
379
|
/** A bordered notice; status picks the pigment. */
|
|
349
|
-
var generative_default$
|
|
380
|
+
var generative_default$20 = defineEntry({ Alert: {
|
|
350
381
|
...faces$1.Alert,
|
|
351
382
|
component: ({ props }) => createElement(Alert.Root, { status: props.status ?? "ink" }, createElement(Alert.Icon), createElement(Alert.Body, null, createElement(Alert.Title, null, props.title), props.message != null ? createElement(Alert.Description, null, props.message) : null))
|
|
352
383
|
} });
|
|
353
384
|
//#endregion
|
|
354
385
|
//#region src/components/avatar/generative.ts
|
|
355
|
-
var generative_exports$
|
|
386
|
+
var generative_exports$19 = /* @__PURE__ */ __exportAll({ default: () => generative_default$19 });
|
|
356
387
|
/** A person's seal: image when given, initials as the fallback. */
|
|
357
|
-
var generative_default$
|
|
388
|
+
var generative_default$19 = defineEntry({ Avatar: {
|
|
358
389
|
...faces$1.Avatar,
|
|
359
|
-
component: ({ props }) => createElement(Avatar
|
|
360
|
-
src: props.src,
|
|
361
|
-
alt: props.name
|
|
362
|
-
}) : null, createElement(Avatar.Fallback, null, initials(props.name))])
|
|
390
|
+
component: ({ props }) => createElement(Avatar, { ...props })
|
|
363
391
|
} });
|
|
364
392
|
//#endregion
|
|
365
393
|
//#region src/components/badge/generative.ts
|
|
366
|
-
var generative_exports$
|
|
394
|
+
var generative_exports$18 = /* @__PURE__ */ __exportAll({ default: () => generative_default$18 });
|
|
367
395
|
/** A small status seal beside content; reads at a glance. */
|
|
368
|
-
var generative_default$
|
|
396
|
+
var generative_default$18 = defineEntry({ Badge: {
|
|
369
397
|
...faces$1.Badge,
|
|
370
398
|
component: ({ props }) => createElement(Badge, {
|
|
371
399
|
tone: props.tone,
|
|
@@ -373,10 +401,40 @@ var generative_default$15 = defineEntry({ Badge: {
|
|
|
373
401
|
}, props.text)
|
|
374
402
|
} });
|
|
375
403
|
//#endregion
|
|
404
|
+
//#region src/components/banner/generative.ts
|
|
405
|
+
var generative_exports$17 = /* @__PURE__ */ __exportAll({ default: () => generative_default$17 });
|
|
406
|
+
/** A full-width notice that speaks once across the page. */
|
|
407
|
+
var generative_default$17 = defineEntry({ Banner: {
|
|
408
|
+
...faces$1.Banner,
|
|
409
|
+
component: ({ props }) => createElement(Banner, {
|
|
410
|
+
...props,
|
|
411
|
+
dismissible: true
|
|
412
|
+
})
|
|
413
|
+
} });
|
|
414
|
+
//#endregion
|
|
415
|
+
//#region src/components/breadcrumb/generative.ts
|
|
416
|
+
var generative_exports$16 = /* @__PURE__ */ __exportAll({ default: () => generative_default$16 });
|
|
417
|
+
/** A trail of waymarks from home to the current page. */
|
|
418
|
+
var generative_default$16 = defineEntry({ Breadcrumb: {
|
|
419
|
+
...faces$1.Breadcrumb,
|
|
420
|
+
component: ({ props }) => {
|
|
421
|
+
const labels = props.items ?? [
|
|
422
|
+
"Home",
|
|
423
|
+
"Guides",
|
|
424
|
+
"Ink"
|
|
425
|
+
];
|
|
426
|
+
const items = labels.map((label, index) => index === labels.length - 1 ? { label } : {
|
|
427
|
+
label,
|
|
428
|
+
href: `#${slug(label)}`
|
|
429
|
+
});
|
|
430
|
+
return createElement(Breadcrumb, { items });
|
|
431
|
+
}
|
|
432
|
+
} });
|
|
433
|
+
//#endregion
|
|
376
434
|
//#region src/components/button/generative.ts
|
|
377
|
-
var generative_exports$
|
|
435
|
+
var generative_exports$15 = /* @__PURE__ */ __exportAll({ default: () => generative_default$15 });
|
|
378
436
|
/** The primary action register: solid ink for the one main action, outline, ghost, or subtle for the rest. */
|
|
379
|
-
var generative_default$
|
|
437
|
+
var generative_default$15 = defineEntry({ Button: {
|
|
380
438
|
...faces$1.Button,
|
|
381
439
|
component: ({ props, emit }) => createElement(Button, {
|
|
382
440
|
variant: props.variant ?? "solid",
|
|
@@ -388,9 +446,9 @@ var generative_default$14 = defineEntry({ Button: {
|
|
|
388
446
|
} });
|
|
389
447
|
//#endregion
|
|
390
448
|
//#region src/components/card/generative.ts
|
|
391
|
-
var generative_exports$
|
|
449
|
+
var generative_exports$14 = /* @__PURE__ */ __exportAll({ default: () => generative_default$14 });
|
|
392
450
|
/** Grouping vessel. Give title and description instead of hand-building a header; children render in the body; footer holds actions. */
|
|
393
|
-
var generative_default$
|
|
451
|
+
var generative_default$14 = defineEntry({ Card: {
|
|
394
452
|
...faces$1.Card,
|
|
395
453
|
component: ({ props, children, slots }) => {
|
|
396
454
|
const header = slots?.header ?? null;
|
|
@@ -400,9 +458,9 @@ var generative_default$13 = defineEntry({ Card: {
|
|
|
400
458
|
} });
|
|
401
459
|
//#endregion
|
|
402
460
|
//#region src/components/checkbox/generative.ts
|
|
403
|
-
var generative_exports$
|
|
461
|
+
var generative_exports$13 = /* @__PURE__ */ __exportAll({ default: () => generative_default$13 });
|
|
404
462
|
/** One independent box with its label. */
|
|
405
|
-
var generative_default$
|
|
463
|
+
var generative_default$13 = defineEntry({ Checkbox: {
|
|
406
464
|
...faces$1.Checkbox,
|
|
407
465
|
component: ({ props }) => {
|
|
408
466
|
const mark = iconNode("check");
|
|
@@ -417,6 +475,24 @@ var generative_default$12 = defineEntry({ Checkbox: {
|
|
|
417
475
|
}
|
|
418
476
|
} });
|
|
419
477
|
//#endregion
|
|
478
|
+
//#region src/components/float-button/generative.ts
|
|
479
|
+
var generative_exports$12 = /* @__PURE__ */ __exportAll({ default: () => generative_default$12 });
|
|
480
|
+
/** A floating action cluster; named actions fan out from one corner. */
|
|
481
|
+
var generative_default$12 = defineEntry({ FloatButton: {
|
|
482
|
+
...faces$1.FloatButton,
|
|
483
|
+
component: ({ props }) => {
|
|
484
|
+
const actions = Array.isArray(props.actions) ? props.actions : [{ label: "Edit" }];
|
|
485
|
+
return createElement(FloatButton, {
|
|
486
|
+
...props,
|
|
487
|
+
actions: actions.map((action) => ({
|
|
488
|
+
...action,
|
|
489
|
+
icon: action.icon ?? "pencil"
|
|
490
|
+
})),
|
|
491
|
+
defaultOpen: true
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
} });
|
|
495
|
+
//#endregion
|
|
420
496
|
//#region src/components/input/generative.ts
|
|
421
497
|
var generative_exports$11 = /* @__PURE__ */ __exportAll({ default: () => generative_default$11 });
|
|
422
498
|
/** A single-line field; rely on border, surface and the focus halo. */
|
|
@@ -470,29 +546,15 @@ var generative_default$8 = defineEntry({ Select: {
|
|
|
470
546
|
...faces$1.Select,
|
|
471
547
|
component: ({ props, bindings }) => {
|
|
472
548
|
const [value, setValue] = useBound(props.value, bindings?.value);
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
value: selectedValue,
|
|
478
|
-
disabled: props.disabled,
|
|
549
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
550
|
+
label: props.label,
|
|
551
|
+
placeholder: props.placeholder,
|
|
552
|
+
options: props.options,
|
|
479
553
|
multiple: props.multiple,
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
height: 14
|
|
485
|
-
}) })] }),
|
|
486
|
-
/* @__PURE__ */ jsx(Select.Positioner, { children: /* @__PURE__ */ jsx(Select.Content, { children: /* @__PURE__ */ jsx(Select.ItemGroup, { children: props.options.map((option) => /* @__PURE__ */ jsxs(Select.Item, {
|
|
487
|
-
item: option,
|
|
488
|
-
children: [/* @__PURE__ */ jsx(Select.ItemText, { children: option.label }), /* @__PURE__ */ jsx(Select.ItemIndicator, { children: iconNode("check", {
|
|
489
|
-
width: 14,
|
|
490
|
-
height: 14
|
|
491
|
-
}) })]
|
|
492
|
-
}, option.value)) }) }) }),
|
|
493
|
-
/* @__PURE__ */ jsx(Select.HiddenSelect, {})
|
|
494
|
-
]
|
|
495
|
-
}));
|
|
554
|
+
disabled: props.disabled,
|
|
555
|
+
value: props.multiple ? Array.isArray(value) ? value : value ? [value] : void 0 : Array.isArray(value) ? value.at(0) ?? "" : value,
|
|
556
|
+
onValueChange: setValue
|
|
557
|
+
});
|
|
496
558
|
}
|
|
497
559
|
} });
|
|
498
560
|
//#endregion
|
|
@@ -619,12 +681,15 @@ var generative_default = defineEntry({
|
|
|
619
681
|
* meet: one glob picks the faces up, so a family that lands in the
|
|
620
682
|
* package is in the vocabulary without anyone editing this file. */
|
|
621
683
|
const modules = /* #__PURE__ */ Object.assign({
|
|
622
|
-
"../components/alert/generative.ts": generative_exports$
|
|
623
|
-
"../components/avatar/generative.ts": generative_exports$
|
|
624
|
-
"../components/badge/generative.ts": generative_exports$
|
|
625
|
-
"../components/
|
|
626
|
-
"../components/
|
|
627
|
-
"../components/
|
|
684
|
+
"../components/alert/generative.ts": generative_exports$20,
|
|
685
|
+
"../components/avatar/generative.ts": generative_exports$19,
|
|
686
|
+
"../components/badge/generative.ts": generative_exports$18,
|
|
687
|
+
"../components/banner/generative.ts": generative_exports$17,
|
|
688
|
+
"../components/breadcrumb/generative.ts": generative_exports$16,
|
|
689
|
+
"../components/button/generative.ts": generative_exports$15,
|
|
690
|
+
"../components/card/generative.ts": generative_exports$14,
|
|
691
|
+
"../components/checkbox/generative.ts": generative_exports$13,
|
|
692
|
+
"../components/float-button/generative.ts": generative_exports$12,
|
|
628
693
|
"../components/input/generative.ts": generative_exports$11,
|
|
629
694
|
"../components/progress/generative.ts": generative_exports$10,
|
|
630
695
|
"../components/radio-group/generative.ts": generative_exports$9,
|
package/dist/index.d.mts
CHANGED
|
@@ -18,13 +18,13 @@ import { AspectRatio, AspectRatioProps } from "./components/aspect-ratio/index.m
|
|
|
18
18
|
import { Combobox } from "./components/combobox/index.mjs";
|
|
19
19
|
import { AutoComplete, AutoCompleteProps } from "./components/autocomplete/index.mjs";
|
|
20
20
|
import { AvatarGroup, AvatarGroupProps } from "./components/avatar-group/index.mjs";
|
|
21
|
-
import { Avatar, AvatarProps, AvatarSize } from "./components/avatar/index.mjs";
|
|
21
|
+
import { Avatar, AvatarFacadeProps, AvatarProps, AvatarSize } from "./components/avatar/index.mjs";
|
|
22
22
|
import { BackTop, BackTopProps } from "./components/back-top/index.mjs";
|
|
23
23
|
import { Badge, BadgeProps } from "./components/badge/index.mjs";
|
|
24
|
-
import { Banner, BannerRootProps, BannerStatus } from "./components/banner/index.mjs";
|
|
24
|
+
import { Banner, BannerFacadeProps, BannerRootProps, BannerStatus } from "./components/banner/index.mjs";
|
|
25
25
|
import { Bento, BentoCell, BentoCellProps, BentoProps, BentoRoot } from "./components/bento/index.mjs";
|
|
26
26
|
import { BlockUI, BlockUIProps } from "./components/block-ui/index.mjs";
|
|
27
|
-
import { Breadcrumb } from "./components/breadcrumb/index.mjs";
|
|
27
|
+
import { Breadcrumb, BreadcrumbFacadeProps, BreadcrumbItem } from "./components/breadcrumb/index.mjs";
|
|
28
28
|
import { Browser, BrowserBody, BrowserDots, BrowserPartProps, BrowserRoot, BrowserTitleBar, BrowserUrlBar } from "./components/browser/index.mjs";
|
|
29
29
|
import { ButtonGroup, ButtonGroupProps } from "./components/button-group/index.mjs";
|
|
30
30
|
import { Button, ButtonProps } from "./components/button/index.mjs";
|
|
@@ -60,7 +60,7 @@ import { Empty } from "./components/empty/index.mjs";
|
|
|
60
60
|
import { Field } from "./components/field/index.mjs";
|
|
61
61
|
import { Fieldset } from "./components/fieldset/index.mjs";
|
|
62
62
|
import { FileUpload } from "./components/file-upload/index.mjs";
|
|
63
|
-
import { FLOAT_BUTTON_CONTEXT, FloatButton, FloatButtonContextValue, FloatButtonPlacement, FloatButtonRootProps, FloatButtonSize } from "./components/float-button/index.mjs";
|
|
63
|
+
import { FLOAT_BUTTON_CONTEXT, FloatButton, FloatButtonAction, FloatButtonContextValue, FloatButtonFacadeProps, FloatButtonPlacement, FloatButtonRootProps, FloatButtonSize } from "./components/float-button/index.mjs";
|
|
64
64
|
import { FloatingPanel, FloatingPanelFacadeProps } from "./components/floating-panel/index.mjs";
|
|
65
65
|
import { FocusTrap, FocusTrapBaseProps, FocusTrapProps } from "./components/focus-trap/index.mjs";
|
|
66
66
|
import { FieldApi, Form, FormApi, FormField, FormFieldProps, FormProps, useField, useForm } from "./components/form/index.mjs";
|
|
@@ -141,4 +141,4 @@ import { User, UserProps } from "./components/user/index.mjs";
|
|
|
141
141
|
import { VirtualList, VirtualListProps } from "./components/virtual-list/index.mjs";
|
|
142
142
|
import { Watermark, WatermarkProps } from "./components/watermark/index.mjs";
|
|
143
143
|
export * from "@bysages/core";
|
|
144
|
-
export { Accordion, AccordionFacadeProps, AccordionItem, Action, Action as AiAction, ActionProps, Affix, AffixProps, Ai, AiActions, Attachment as AiAttachment, Attachment, Attachments as AiAttachments, Attachments, AiContent, Message as AiMessage, Message, PromptInput as AiPromptInput, PromptInput, Reasoning as AiReasoning, Reasoning, Response as AiResponse, Response, Source as AiSource, Source, Sources as AiSources, Sources, Suggestion as AiSuggestion, Suggestion, Tool as AiTool, Tool, Alert, AlertProps, AlertStatus, AngleSlider, AngleSliderFacadeProps, AspectRatio, AspectRatioProps, AttachmentProps, Audio, AutoComplete, AutoCompleteProps, Avatar, AvatarGroup, AvatarGroupProps, AvatarProps, AvatarSize, BackTop, BackTopProps, Badge, BadgeProps, Banner, BannerRootProps, BannerStatus, Bento, BentoCell, BentoCellProps, BentoProps, BentoRoot, BlockUI, BlockUIProps, Breadcrumb, Browser, BrowserBody, BrowserDots, BrowserPartProps, BrowserRoot, BrowserTitleBar, BrowserUrlBar, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarProps, Card, Carousel, CascadeSelect, CascadeSelectNode, CascadeSelectProps, Checkbox, CheckboxFacadeProps, CheckboxGroup, CheckboxGroupProps, CheckboxOption, Chip, ChipProps, ClientOnly, type ClientOnlyProps, Clipboard, Collapsible, CollapsibleFacadeProps, type CollectionItem, type CollectionOptions, ColorPicker, type ColumnDef, Combobox, Command, CommandEntry, CommandProps, Comment, CommentProps, ConfigContext, ConfigDensity, ConfigProvider, ConfigProviderProps, ConfigScene, Container, ContainerProps, type CreateToasterReturn, DataTable, DataTableProps, type DataUIPart, DataView, DataViewProps, DateInput, type DateInputFocusChangeDetails, type DateInputValueChangeDetails, DatePicker, type DatePickerFocusChangeDetails, type DatePickerOpenChangeDetails, type DatePickerValueChangeDetails, type DatePickerViewChangeDetails, type DatePickerVisibleRangeChangeDetails, DeferredContent, DeferredContentProps, Descriptions, DescriptionsItemData, DescriptionsRoot, DescriptionsRootProps, Dialog, DialogFacadeProps, type DialogOpenChangeDetails, Dock, DockItem, DockItemProps, DockProps, DockRoot, DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps, type DownloadableData, Drawer, DrawerFacadeProps, DynamicInput, DynamicInputProps, Editable, Ellipsis, EllipsisProps, Empty, FLOAT_BUTTON_CONTEXT, Field, type FieldApi, Fieldset, type FilePathTreeNode, type FileUIPart, FileUpload, type FlatTreeNode, FlexRender, FloatButton, FloatButtonContextValue, FloatButtonPlacement, FloatButtonRootProps, FloatButtonSize, FloatingPanel, FloatingPanelFacadeProps, FocusTrap, type FocusTrapBaseProps, type FocusTrapProps, Form, type FormApi, FormField, FormFieldProps, FormProps, Format, Frame, Grid, type GridCollection, type GridCollectionOptions, GridProps, Highlight, HoverCard, HoverCardFacadeProps, Icon, IconProps, Image, ImageCropper, ImageCropperFacadeProps, ImageProps, ImageViewer, ImageViewerProps, Input, InputGroup, InputGroupPartProps, InputProps, JsonTreeView, Kbd, KbdProps, Layout, LayoutContextValue, LayoutResizeHandlers, LayoutRootProps, LayoutSiderProps, LayoutSiderState, Link, LinkProps, List, type ListCollection, ListContentProps, ListRootProps, Listbox, Marquee, Masonry, MasonryProps, type MediaPlayerProps, type MediaSourceOption, type MediaTextTrackOption, MentionEntry, Mentions, MentionsProps, MentionsVessel, MentionsVesselProps, Menu, MenuFacadeProps, MenuItemOption, Menubar, MenubarEntry, MenubarGroup, MenubarProps, MessageProps, Meter, MeterRootProps, NativeSelect, type NativeSelectOption, type NativeSelectProps, NavigationMenu, NavigationMenuFacadeProps, NavigationMenuLinkOption, NumberInput, OrderList, OrderListProps, OrderOption, PageHeader, Pagination, PasswordInput, PinInput, Popconfirm, PopconfirmProps, Popover, PopoverFacadeProps, Presence, type PresenceBaseProps, type PresenceProps, PresenceProvider, Progress, ProgressGroup, ProgressGroupProps, ProgressSegment, PromptInputProps, QrCode, RadioGroup, RadioGroupFacadeProps, RadioGroupItem, RatingGroup, RatingGroupFacadeProps, ReasoningProps, type ReasoningUIPart, ResponseProps, Result, ResultIcon, ResultRoot, ResultRootProps, ScrollArea, SegmentGroup, SegmentGroupFacadeProps, SegmentGroupItem, Select, SelectFacadeProps, Separator, SeparatorProps, SignaturePad, Skeleton, SkeletonProps, Slider, SliderFacadeProps, type SortingState, type SourceDocumentUIPart, SourceProps, type SourceUrlUIPart, SourcesProps, Spinner, SpinnerProps, SplitButton, SplitButtonEntry, SplitButtonProps, Splitter, SplitterFacadeProps, SplitterItem, Spotlight, SpotlightProps, Stack, StackProps, Stat, StatDeltaProps, type StepStartUIPart, Steps, StepsFacadeProps, StepsItem, SuggestionProps, Swap, Switch, SwitchFacadeProps, Tabs, TabsFacadeProps, TabsItem, Tag, TagProps, TagsInput, Terminal, TerminalProps, type TextUIPart, Textarea, TextareaProps, Timeline, Timer, Toast, Toaster, Toc, TocFacadeProps, Toggle, ToggleFacadeProps, ToggleGroup, ToggleGroupFacadeProps, ToggleGroupItem, ToolProps, ToolStatus, type ToolUIPart, Toolbar, ToolbarProps, Tooltip, TooltipFacadeProps, Tour, TourFacadeProps, type TourInteractOutsideEvent, type TourPointerDownOutsideEvent, type TourStepDetails, Transfer, TransferItem, TransferProps, type TreeCollection, type TreeCollectionOptions, type TreeNode, TreeSelect, TreeSelectNode, TreeSelectProps, TreeView, Typography, type UIMessage, type UIMessagePart, type UseAsyncListProps, type UseAsyncListReturn, type UseDownloadProps, type UseDownloadReturn, type UseListCollectionProps, type UseListCollectionReturn, type UseListSelectionProps, type UseListSelectionReturn, type UseMentionsHandlers, type UseMentionsOptions, type UsePresenceContext, type UsePresenceProps, type UsePresenceReturn, User, UserProps, Video, VirtualList, VirtualListProps, Watermark, WatermarkProps, createColumnHelper, createFileTreeCollection, createGridCollection, createToaster, createTreeCollection, formatMediaTime, useAsyncList, useConfig, useDownload, useField, useForm, useListCollection, useListSelection, useMentions, usePresence, usePresenceContext, useTour };
|
|
144
|
+
export { Accordion, AccordionFacadeProps, AccordionItem, Action, Action as AiAction, ActionProps, Affix, AffixProps, Ai, AiActions, Attachment as AiAttachment, Attachment, Attachments as AiAttachments, Attachments, AiContent, Message as AiMessage, Message, PromptInput as AiPromptInput, PromptInput, Reasoning as AiReasoning, Reasoning, Response as AiResponse, Response, Source as AiSource, Source, Sources as AiSources, Sources, Suggestion as AiSuggestion, Suggestion, Tool as AiTool, Tool, Alert, AlertProps, AlertStatus, AngleSlider, AngleSliderFacadeProps, AspectRatio, AspectRatioProps, AttachmentProps, Audio, AutoComplete, AutoCompleteProps, Avatar, AvatarFacadeProps, AvatarGroup, AvatarGroupProps, AvatarProps, AvatarSize, BackTop, BackTopProps, Badge, BadgeProps, Banner, BannerFacadeProps, BannerRootProps, BannerStatus, Bento, BentoCell, BentoCellProps, BentoProps, BentoRoot, BlockUI, BlockUIProps, Breadcrumb, BreadcrumbFacadeProps, BreadcrumbItem, Browser, BrowserBody, BrowserDots, BrowserPartProps, BrowserRoot, BrowserTitleBar, BrowserUrlBar, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarProps, Card, Carousel, CascadeSelect, CascadeSelectNode, CascadeSelectProps, Checkbox, CheckboxFacadeProps, CheckboxGroup, CheckboxGroupProps, CheckboxOption, Chip, ChipProps, ClientOnly, type ClientOnlyProps, Clipboard, Collapsible, CollapsibleFacadeProps, type CollectionItem, type CollectionOptions, ColorPicker, type ColumnDef, Combobox, Command, CommandEntry, CommandProps, Comment, CommentProps, ConfigContext, ConfigDensity, ConfigProvider, ConfigProviderProps, ConfigScene, Container, ContainerProps, type CreateToasterReturn, DataTable, DataTableProps, type DataUIPart, DataView, DataViewProps, DateInput, type DateInputFocusChangeDetails, type DateInputValueChangeDetails, DatePicker, type DatePickerFocusChangeDetails, type DatePickerOpenChangeDetails, type DatePickerValueChangeDetails, type DatePickerViewChangeDetails, type DatePickerVisibleRangeChangeDetails, DeferredContent, DeferredContentProps, Descriptions, DescriptionsItemData, DescriptionsRoot, DescriptionsRootProps, Dialog, DialogFacadeProps, type DialogOpenChangeDetails, Dock, DockItem, DockItemProps, DockProps, DockRoot, DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps, type DownloadableData, Drawer, DrawerFacadeProps, DynamicInput, DynamicInputProps, Editable, Ellipsis, EllipsisProps, Empty, FLOAT_BUTTON_CONTEXT, Field, type FieldApi, Fieldset, type FilePathTreeNode, type FileUIPart, FileUpload, type FlatTreeNode, FlexRender, FloatButton, FloatButtonAction, FloatButtonContextValue, FloatButtonFacadeProps, FloatButtonPlacement, FloatButtonRootProps, FloatButtonSize, FloatingPanel, FloatingPanelFacadeProps, FocusTrap, type FocusTrapBaseProps, type FocusTrapProps, Form, type FormApi, FormField, FormFieldProps, FormProps, Format, Frame, Grid, type GridCollection, type GridCollectionOptions, GridProps, Highlight, HoverCard, HoverCardFacadeProps, Icon, IconProps, Image, ImageCropper, ImageCropperFacadeProps, ImageProps, ImageViewer, ImageViewerProps, Input, InputGroup, InputGroupPartProps, InputProps, JsonTreeView, Kbd, KbdProps, Layout, LayoutContextValue, LayoutResizeHandlers, LayoutRootProps, LayoutSiderProps, LayoutSiderState, Link, LinkProps, List, type ListCollection, ListContentProps, ListRootProps, Listbox, Marquee, Masonry, MasonryProps, type MediaPlayerProps, type MediaSourceOption, type MediaTextTrackOption, MentionEntry, Mentions, MentionsProps, MentionsVessel, MentionsVesselProps, Menu, MenuFacadeProps, MenuItemOption, Menubar, MenubarEntry, MenubarGroup, MenubarProps, MessageProps, Meter, MeterRootProps, NativeSelect, type NativeSelectOption, type NativeSelectProps, NavigationMenu, NavigationMenuFacadeProps, NavigationMenuLinkOption, NumberInput, OrderList, OrderListProps, OrderOption, PageHeader, Pagination, PasswordInput, PinInput, Popconfirm, PopconfirmProps, Popover, PopoverFacadeProps, Presence, type PresenceBaseProps, type PresenceProps, PresenceProvider, Progress, ProgressGroup, ProgressGroupProps, ProgressSegment, PromptInputProps, QrCode, RadioGroup, RadioGroupFacadeProps, RadioGroupItem, RatingGroup, RatingGroupFacadeProps, ReasoningProps, type ReasoningUIPart, ResponseProps, Result, ResultIcon, ResultRoot, ResultRootProps, ScrollArea, SegmentGroup, SegmentGroupFacadeProps, SegmentGroupItem, Select, SelectFacadeProps, Separator, SeparatorProps, SignaturePad, Skeleton, SkeletonProps, Slider, SliderFacadeProps, type SortingState, type SourceDocumentUIPart, SourceProps, type SourceUrlUIPart, SourcesProps, Spinner, SpinnerProps, SplitButton, SplitButtonEntry, SplitButtonProps, Splitter, SplitterFacadeProps, SplitterItem, Spotlight, SpotlightProps, Stack, StackProps, Stat, StatDeltaProps, type StepStartUIPart, Steps, StepsFacadeProps, StepsItem, SuggestionProps, Swap, Switch, SwitchFacadeProps, Tabs, TabsFacadeProps, TabsItem, Tag, TagProps, TagsInput, Terminal, TerminalProps, type TextUIPart, Textarea, TextareaProps, Timeline, Timer, Toast, Toaster, Toc, TocFacadeProps, Toggle, ToggleFacadeProps, ToggleGroup, ToggleGroupFacadeProps, ToggleGroupItem, ToolProps, ToolStatus, type ToolUIPart, Toolbar, ToolbarProps, Tooltip, TooltipFacadeProps, Tour, TourFacadeProps, type TourInteractOutsideEvent, type TourPointerDownOutsideEvent, type TourStepDetails, Transfer, TransferItem, TransferProps, type TreeCollection, type TreeCollectionOptions, type TreeNode, TreeSelect, TreeSelectNode, TreeSelectProps, TreeView, Typography, type UIMessage, type UIMessagePart, type UseAsyncListProps, type UseAsyncListReturn, type UseDownloadProps, type UseDownloadReturn, type UseListCollectionProps, type UseListCollectionReturn, type UseListSelectionProps, type UseListSelectionReturn, type UseMentionsHandlers, type UseMentionsOptions, type UsePresenceContext, type UsePresenceProps, type UsePresenceReturn, User, UserProps, Video, VirtualList, VirtualListProps, Watermark, WatermarkProps, createColumnHelper, createFileTreeCollection, createGridCollection, createToaster, createTreeCollection, formatMediaTime, useAsyncList, useConfig, useDownload, useField, useForm, useListCollection, useListSelection, useMentions, usePresence, usePresenceContext, useTour };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bysages/react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "By Sages Elements components for React — styled by the paper-and-ink design tokens",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accessible",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@tanstack/react-virtual": "3.14.14",
|
|
54
54
|
"@zag-js/cascade-select": "1.45.0",
|
|
55
55
|
"@zag-js/react": "1.45.0",
|
|
56
|
-
"@bysages/core": "0.4.
|
|
56
|
+
"@bysages/core": "0.4.4"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@json-render/core": "0.21.0",
|