@recordair/ui-core 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/LICENSE +29 -0
- package/README.md +12 -0
- package/dist/Accordion.d.ts +17 -0
- package/dist/Accordion.d.ts.map +1 -0
- package/dist/Accordion.js +25 -0
- package/dist/Accordion.js.map +1 -0
- package/dist/Alert.d.ts +11 -0
- package/dist/Alert.d.ts.map +1 -0
- package/dist/Alert.js +18 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Avatar.d.ts +12 -0
- package/dist/Avatar.d.ts.map +1 -0
- package/dist/Avatar.js +19 -0
- package/dist/Avatar.js.map +1 -0
- package/dist/Badge.d.ts +14 -0
- package/dist/Badge.d.ts.map +1 -0
- package/dist/Badge.js +25 -0
- package/dist/Badge.js.map +1 -0
- package/dist/Button.d.ts +26 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +8 -0
- package/dist/Button.js.map +1 -0
- package/dist/ButtonGroup.d.ts +8 -0
- package/dist/ButtonGroup.d.ts.map +1 -0
- package/dist/ButtonGroup.js +11 -0
- package/dist/ButtonGroup.js.map +1 -0
- package/dist/Card.d.ts +13 -0
- package/dist/Card.d.ts.map +1 -0
- package/dist/Card.js +20 -0
- package/dist/Card.js.map +1 -0
- package/dist/CardContent.d.ts +8 -0
- package/dist/CardContent.d.ts.map +1 -0
- package/dist/CardContent.js +11 -0
- package/dist/CardContent.js.map +1 -0
- package/dist/CardDescription.d.ts +6 -0
- package/dist/CardDescription.d.ts.map +1 -0
- package/dist/CardDescription.js +5 -0
- package/dist/CardDescription.js.map +1 -0
- package/dist/CardFooter.d.ts +8 -0
- package/dist/CardFooter.d.ts.map +1 -0
- package/dist/CardFooter.js +5 -0
- package/dist/CardFooter.js.map +1 -0
- package/dist/CardHeader.d.ts +9 -0
- package/dist/CardHeader.d.ts.map +1 -0
- package/dist/CardHeader.js +5 -0
- package/dist/CardHeader.js.map +1 -0
- package/dist/CardMedia.d.ts +9 -0
- package/dist/CardMedia.d.ts.map +1 -0
- package/dist/CardMedia.js +10 -0
- package/dist/CardMedia.js.map +1 -0
- package/dist/CardTitle.d.ts +8 -0
- package/dist/CardTitle.d.ts.map +1 -0
- package/dist/CardTitle.js +8 -0
- package/dist/CardTitle.js.map +1 -0
- package/dist/Checkbox.d.ts +10 -0
- package/dist/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox.js +8 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/ChoiceChip.d.ts +9 -0
- package/dist/ChoiceChip.d.ts.map +1 -0
- package/dist/ChoiceChip.js +5 -0
- package/dist/ChoiceChip.js.map +1 -0
- package/dist/ContentBlock.d.ts +19 -0
- package/dist/ContentBlock.d.ts.map +1 -0
- package/dist/ContentBlock.js +18 -0
- package/dist/ContentBlock.js.map +1 -0
- package/dist/Divider.d.ts +7 -0
- package/dist/Divider.d.ts.map +1 -0
- package/dist/Divider.js +9 -0
- package/dist/Divider.js.map +1 -0
- package/dist/EmptyState.d.ts +11 -0
- package/dist/EmptyState.d.ts.map +1 -0
- package/dist/EmptyState.js +5 -0
- package/dist/EmptyState.js.map +1 -0
- package/dist/Field.d.ts +13 -0
- package/dist/Field.d.ts.map +1 -0
- package/dist/Field.js +7 -0
- package/dist/Field.js.map +1 -0
- package/dist/IconBox.d.ts +13 -0
- package/dist/IconBox.d.ts.map +1 -0
- package/dist/IconBox.js +18 -0
- package/dist/IconBox.js.map +1 -0
- package/dist/IconButton.d.ts +12 -0
- package/dist/IconButton.d.ts.map +1 -0
- package/dist/IconButton.js +10 -0
- package/dist/IconButton.js.map +1 -0
- package/dist/Input.d.ts +14 -0
- package/dist/Input.d.ts.map +1 -0
- package/dist/Input.js +14 -0
- package/dist/Input.js.map +1 -0
- package/dist/KeyValue.d.ts +9 -0
- package/dist/KeyValue.d.ts.map +1 -0
- package/dist/KeyValue.js +5 -0
- package/dist/KeyValue.js.map +1 -0
- package/dist/LinkButton.d.ts +14 -0
- package/dist/LinkButton.d.ts.map +1 -0
- package/dist/LinkButton.js +5 -0
- package/dist/LinkButton.js.map +1 -0
- package/dist/LinkTabs.d.ts +17 -0
- package/dist/LinkTabs.d.ts.map +1 -0
- package/dist/LinkTabs.js +10 -0
- package/dist/LinkTabs.js.map +1 -0
- package/dist/MenuSelect.d.ts +16 -0
- package/dist/MenuSelect.d.ts.map +1 -0
- package/dist/MenuSelect.js +41 -0
- package/dist/MenuSelect.js.map +1 -0
- package/dist/Modal.d.ts +14 -0
- package/dist/Modal.d.ts.map +1 -0
- package/dist/Modal.js +59 -0
- package/dist/Modal.js.map +1 -0
- package/dist/NativeSelect.d.ts +8 -0
- package/dist/NativeSelect.d.ts.map +1 -0
- package/dist/NativeSelect.js +8 -0
- package/dist/NativeSelect.js.map +1 -0
- package/dist/NavigationList.d.ts +20 -0
- package/dist/NavigationList.d.ts.map +1 -0
- package/dist/NavigationList.js +23 -0
- package/dist/NavigationList.js.map +1 -0
- package/dist/Progress.d.ts +9 -0
- package/dist/Progress.d.ts.map +1 -0
- package/dist/Progress.js +8 -0
- package/dist/Progress.js.map +1 -0
- package/dist/Radio.d.ts +12 -0
- package/dist/Radio.d.ts.map +1 -0
- package/dist/Radio.js +8 -0
- package/dist/Radio.js.map +1 -0
- package/dist/RatingStars.d.ts +12 -0
- package/dist/RatingStars.d.ts.map +1 -0
- package/dist/RatingStars.js +13 -0
- package/dist/RatingStars.js.map +1 -0
- package/dist/ScrollAnchor.d.ts +8 -0
- package/dist/ScrollAnchor.d.ts.map +1 -0
- package/dist/ScrollAnchor.js +12 -0
- package/dist/ScrollAnchor.js.map +1 -0
- package/dist/SearchInput.d.ts +10 -0
- package/dist/SearchInput.d.ts.map +1 -0
- package/dist/SearchInput.js +9 -0
- package/dist/SearchInput.js.map +1 -0
- package/dist/Select.d.ts +12 -0
- package/dist/Select.d.ts.map +1 -0
- package/dist/Select.js +12 -0
- package/dist/Select.js.map +1 -0
- package/dist/Skeleton.d.ts +8 -0
- package/dist/Skeleton.d.ts.map +1 -0
- package/dist/Skeleton.js +5 -0
- package/dist/Skeleton.js.map +1 -0
- package/dist/Spinner.d.ts +10 -0
- package/dist/Spinner.d.ts.map +1 -0
- package/dist/Spinner.js +10 -0
- package/dist/Spinner.js.map +1 -0
- package/dist/SubmitButton.d.ts +10 -0
- package/dist/SubmitButton.d.ts.map +1 -0
- package/dist/SubmitButton.js +10 -0
- package/dist/SubmitButton.js.map +1 -0
- package/dist/Tabs.d.ts +17 -0
- package/dist/Tabs.d.ts.map +1 -0
- package/dist/Tabs.js +8 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Textarea.d.ts +10 -0
- package/dist/Textarea.d.ts.map +1 -0
- package/dist/Textarea.js +8 -0
- package/dist/Textarea.js.map +1 -0
- package/dist/Toast.d.ts +13 -0
- package/dist/Toast.d.ts.map +1 -0
- package/dist/Toast.js +26 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toggle.d.ts +13 -0
- package/dist/Toggle.d.ts.map +1 -0
- package/dist/Toggle.js +21 -0
- package/dist/Toggle.js.map +1 -0
- package/dist/buttonStyles.d.ts +14 -0
- package/dist/buttonStyles.d.ts.map +1 -0
- package/dist/buttonStyles.js +16 -0
- package/dist/buttonStyles.js.map +1 -0
- package/dist/classNames.d.ts +4 -0
- package/dist/classNames.d.ts.map +1 -0
- package/dist/classNames.js +3 -0
- package/dist/classNames.js.map +1 -0
- package/dist/icons/GoogleIcon.d.ts +6 -0
- package/dist/icons/GoogleIcon.d.ts.map +1 -0
- package/dist/icons/GoogleIcon.js +4 -0
- package/dist/icons/GoogleIcon.js.map +1 -0
- package/dist/icons/XSocialIcon.d.ts +6 -0
- package/dist/icons/XSocialIcon.d.ts.map +1 -0
- package/dist/icons/XSocialIcon.js +4 -0
- package/dist/icons/XSocialIcon.js.map +1 -0
- package/dist/icons/index.d.ts +7 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +4 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentBlock.d.ts","sourceRoot":"","sources":["../src/ContentBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,KAAK,gBAAgB,GACjB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE7E,KAAK,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IACrD,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAQF,QAAA,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,gCAmCrE,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const calloutClasses = {
|
|
4
|
+
neutral: "border-neutral-200 bg-neutral-100 text-neutral-700",
|
|
5
|
+
info: "border-info-border bg-info-bg text-info-text",
|
|
6
|
+
warning: "border-warning-border bg-warning-bg text-warning-text",
|
|
7
|
+
};
|
|
8
|
+
const ContentBlock = ({ block, className, ...rest }) => {
|
|
9
|
+
if (block.kind === "list") {
|
|
10
|
+
return (_jsx("ul", { className: classNames("flex list-disc flex-col gap-2 pl-5 text-body-sm leading-copy text-neutral-700 marker:text-neutral-400", className), ...rest, children: block.items.map((item, index) => _jsx("li", { children: item }, `${item}-${index}`)) }));
|
|
11
|
+
}
|
|
12
|
+
if (block.kind === "callout") {
|
|
13
|
+
return (_jsx("aside", { className: classNames("rounded-lg border px-4 py-3 text-body-sm leading-copy", calloutClasses[block.tone ?? "neutral"], className), ...rest, children: block.text }));
|
|
14
|
+
}
|
|
15
|
+
return (_jsx("p", { className: classNames("text-body-sm leading-copy text-neutral-700", className), ...rest, children: block.text }));
|
|
16
|
+
};
|
|
17
|
+
export { ContentBlock };
|
|
18
|
+
//# sourceMappingURL=ContentBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentBlock.js","sourceRoot":"","sources":["../src/ContentBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,MAAM,cAAc,GAAwF;IAC1G,OAAO,EAAE,oDAAoD;IAC7D,IAAI,EAAE,8CAA8C;IACpD,OAAO,EAAE,uDAAuD;CACjE,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAqB,EAAE,EAAE;IACxE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CACL,aACE,SAAS,EAAE,UAAU,CACnB,uGAAuG,EACvG,SAAS,CACV,KACG,IAAI,YAEP,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAA8B,IAAI,IAAzB,GAAG,IAAI,IAAI,KAAK,EAAE,CAAa,CAAC,GACxE,CACN,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CACL,gBACE,SAAS,EAAE,UAAU,CACnB,uDAAuD,EACvD,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,EACvC,SAAS,CACV,KACG,IAAI,YAEP,KAAK,CAAC,IAAI,GACL,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,YAAG,SAAS,EAAE,UAAU,CAAC,4CAA4C,EAAE,SAAS,CAAC,KAAM,IAAI,YACxF,KAAK,CAAC,IAAI,GACT,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../src/Divider.tsx"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,QAAA,MAAM,OAAO,GAAI,WAAW,YAAY,gCAYvC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/Divider.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const Divider = ({ label }) => {
|
|
3
|
+
if (!label) {
|
|
4
|
+
return _jsx("hr", { className: "h-px w-full border-0 bg-neutral-200" });
|
|
5
|
+
}
|
|
6
|
+
return (_jsxs("div", { className: "flex items-center gap-3 text-neutral-400", children: [_jsx("span", { className: "h-px flex-1 bg-neutral-200" }), _jsx("span", { className: "text-xs font-medium tracking-wider", children: label }), _jsx("span", { className: "h-px flex-1 bg-neutral-200" })] }));
|
|
7
|
+
};
|
|
8
|
+
export { Divider };
|
|
9
|
+
//# sourceMappingURL=Divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.js","sourceRoot":"","sources":["../src/Divider.tsx"],"names":[],"mappings":";AAIA,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAgB,EAAE,EAAE;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,aAAI,SAAS,EAAC,qCAAqC,GAAG,CAAC;IAChE,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,0CAA0C,aACvD,eAAM,SAAS,EAAC,4BAA4B,GAAG,EAC/C,eAAM,SAAS,EAAC,oCAAoC,YAAE,KAAK,GAAQ,EACnE,eAAM,SAAS,EAAC,4BAA4B,GAAG,IAC3C,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type EmptyStateProps = HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
icon?: ReactNode;
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
declare const EmptyState: ({ icon, title, description, action, className, ...rest }: EmptyStateProps) => import("react").JSX.Element;
|
|
9
|
+
export { EmptyState };
|
|
10
|
+
export type { EmptyStateProps };
|
|
11
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,KAAK,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACtD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,0DAA0D,eAAe,gCAS5F,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const EmptyState = ({ icon, title, description, action, className, ...rest }) => (_jsxs("div", { className: classNames("flex flex-col items-center gap-3 rounded-lg border border-dashed border-neutral-300 bg-neutral-50 p-8 text-center", className), ...rest, children: [icon, _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("h3", { className: "text-heading-sm font-semibold text-neutral-900", children: title }), description ? _jsx("p", { className: "max-w-md text-sm text-neutral-500", children: description }) : null] }), action] }));
|
|
4
|
+
export { EmptyState };
|
|
5
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../src/EmptyState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAmB,EAAE,EAAE,CAAC,CAChG,eAAK,SAAS,EAAE,UAAU,CAAC,mHAAmH,EAAE,SAAS,CAAC,KAAM,IAAI,aACjK,IAAI,EACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,aAAI,SAAS,EAAC,gDAAgD,YAAE,KAAK,GAAM,EAC1E,WAAW,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,mCAAmC,YAAE,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,IACpF,EACL,MAAM,IACH,CACP,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/Field.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type FieldProps = {
|
|
3
|
+
label: string;
|
|
4
|
+
htmlFor: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
hint?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
declare const Field: ({ label, htmlFor, error, hint, required, children, }: FieldProps) => import("react").JSX.Element;
|
|
11
|
+
export { Field };
|
|
12
|
+
export type { FieldProps };
|
|
13
|
+
//# sourceMappingURL=Field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,QAAA,MAAM,KAAK,GAAI,sDAOZ,UAAU,gCAqBZ,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/Field.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const Field = ({ label, htmlFor, error, hint, required = false, children, }) => {
|
|
3
|
+
const descriptionId = error || hint ? `${htmlFor}-description` : undefined;
|
|
4
|
+
return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("label", { htmlFor: htmlFor, className: "text-label font-medium text-neutral-700", children: [label, required ? _jsx("span", { "aria-hidden": true, children: " *" }) : null] }), children, error ? (_jsx("p", { id: descriptionId, className: "text-xs text-error-text", role: "alert", children: error })) : hint ? (_jsx("p", { id: descriptionId, className: "text-xs text-neutral-500", children: hint })) : null] }));
|
|
5
|
+
};
|
|
6
|
+
export { Field };
|
|
7
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":";AAWA,MAAM,KAAK,GAAG,CAAC,EACb,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACG,EAAE,EAAE;IACf,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3E,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,iBAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,yCAAyC,aACzE,KAAK,EACL,QAAQ,CAAC,CAAC,CAAC,qDAA2B,CAAC,CAAC,CAAC,IAAI,IACxC,EACP,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,CACP,YAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAC,OAAO,YACnE,KAAK,GACJ,CACL,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACT,YAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,0BAA0B,YACvD,IAAI,GACH,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type IconBoxTone = "neutral" | "brand" | "artist" | "studio" | "pro" | "success";
|
|
3
|
+
type IconBoxSize = "sm" | "md" | "lg";
|
|
4
|
+
type IconBoxProps = HTMLAttributes<HTMLSpanElement> & {
|
|
5
|
+
tone?: IconBoxTone;
|
|
6
|
+
size?: IconBoxSize;
|
|
7
|
+
icon: ReactNode;
|
|
8
|
+
pill?: boolean;
|
|
9
|
+
};
|
|
10
|
+
declare const IconBox: ({ tone, size, icon, pill, className, ...rest }: IconBoxProps) => import("react").JSX.Element;
|
|
11
|
+
export { IconBox };
|
|
12
|
+
export type { IconBoxProps, IconBoxSize, IconBoxTone };
|
|
13
|
+
//# sourceMappingURL=IconBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconBox.d.ts","sourceRoot":"","sources":["../src/IconBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AACjF,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC,KAAK,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG;IACpD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAiBF,QAAA,MAAM,OAAO,GAAI,gDAA2E,YAAY,gCAcvG,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/IconBox.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const toneClasses = {
|
|
4
|
+
neutral: "bg-neutral-100 text-neutral-700",
|
|
5
|
+
brand: "bg-gradient-to-br from-brand-gradient-from to-brand-gradient-to text-neutral-0",
|
|
6
|
+
artist: "bg-gradient-to-br from-role-artist-from to-role-artist-to text-neutral-0",
|
|
7
|
+
studio: "bg-gradient-to-br from-role-studio-from to-role-studio-to text-neutral-0",
|
|
8
|
+
pro: "bg-gradient-to-br from-role-pro-from to-role-pro-to text-neutral-0",
|
|
9
|
+
success: "bg-success-bg text-success-text",
|
|
10
|
+
};
|
|
11
|
+
const sizeClasses = {
|
|
12
|
+
sm: "size-8 [&_svg]:size-4",
|
|
13
|
+
md: "size-10 [&_svg]:size-5",
|
|
14
|
+
lg: "size-[var(--size-role-icon-box)] [&_svg]:size-10",
|
|
15
|
+
};
|
|
16
|
+
const IconBox = ({ tone = "neutral", size = "md", icon, pill = false, className, ...rest }) => (_jsx("span", { "aria-hidden": true, className: classNames("grid shrink-0 place-items-center", pill ? "rounded-full" : "rounded-md", toneClasses[tone], sizeClasses[size], className), ...rest, children: icon }));
|
|
17
|
+
export { IconBox };
|
|
18
|
+
//# sourceMappingURL=IconBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconBox.js","sourceRoot":"","sources":["../src/IconBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C,MAAM,WAAW,GAAgC;IAC/C,OAAO,EAAE,iCAAiC;IAC1C,KAAK,EAAE,gFAAgF;IACvF,MAAM,EAAE,0EAA0E;IAClF,MAAM,EAAE,0EAA0E;IAClF,GAAG,EAAE,oEAAoE;IACzE,OAAO,EAAE,iCAAiC;CAC3C,CAAC;AAEF,MAAM,WAAW,GAAgC;IAC/C,EAAE,EAAE,uBAAuB;IAC3B,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,kDAAkD;CACvD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAgB,EAAE,EAAE,CAAC,CAC3G,oCAEE,SAAS,EAAE,UAAU,CACnB,kCAAkC,EAClC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,EACpC,WAAW,CAAC,IAAI,CAAC,EACjB,WAAW,CAAC,IAAI,CAAC,EACjB,SAAS,CACV,KACG,IAAI,YAEP,IAAI,GACA,CACR,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { ButtonSize, ButtonVariant } from "./buttonStyles";
|
|
3
|
+
type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
label: string;
|
|
6
|
+
variant?: ButtonVariant;
|
|
7
|
+
size?: ButtonSize;
|
|
8
|
+
};
|
|
9
|
+
declare const IconButton: ({ icon, label, variant, size, className, ...rest }: IconButtonProps) => import("react").JSX.Element;
|
|
10
|
+
export { IconButton };
|
|
11
|
+
export type { IconButtonProps };
|
|
12
|
+
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,KAAK,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,GAAG;IACjF,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAQF,QAAA,MAAM,UAAU,GAAI,oDAOjB,eAAe,gCAWjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "./Button";
|
|
3
|
+
const iconSizeClasses = {
|
|
4
|
+
sm: "size-[var(--size-btn-sm)] p-0",
|
|
5
|
+
md: "size-[var(--size-btn-md)] p-0",
|
|
6
|
+
lg: "size-[var(--size-btn-lg)] p-0",
|
|
7
|
+
};
|
|
8
|
+
const IconButton = ({ icon, label, variant = "ghost", size = "md", className, ...rest }) => (_jsx(Button, { "aria-label": label, variant: variant, size: size, shape: "pill", className: `${iconSizeClasses[size]} ${className ?? ""}`, ...rest, children: icon }));
|
|
9
|
+
export { IconButton };
|
|
10
|
+
//# sourceMappingURL=IconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAUlC,MAAM,eAAe,GAA+B;IAClD,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,+BAA+B;CACpC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAClB,IAAI,EACJ,KAAK,EACL,OAAO,GAAG,OAAO,EACjB,IAAI,GAAG,IAAI,EACX,SAAS,EACT,GAAG,IAAI,EACS,EAAE,EAAE,CAAC,CACrB,KAAC,MAAM,kBACO,KAAK,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAC,MAAM,EACZ,SAAS,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,KACpD,IAAI,YAEP,IAAI,GACE,CACV,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/Input.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { InputHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type InputProps = InputHTMLAttributes<HTMLInputElement> & {
|
|
3
|
+
invalid?: boolean;
|
|
4
|
+
leadingIcon?: ReactNode;
|
|
5
|
+
trailingIcon?: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
declare const Input: import("react").ForwardRefExoticComponent<InputHTMLAttributes<HTMLInputElement> & {
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
leadingIcon?: ReactNode;
|
|
10
|
+
trailingIcon?: ReactNode;
|
|
11
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
12
|
+
export { Input };
|
|
13
|
+
export type { InputProps };
|
|
14
|
+
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5D,KAAK,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,GAAG;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,KAAK;cALC,OAAO;kBACH,SAAS;mBACR,SAAS;oDA6CxB,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/Input.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { classNames } from "./classNames";
|
|
4
|
+
const Input = forwardRef(function Input({ invalid = false, leadingIcon, trailingIcon, className, ...rest }, ref) {
|
|
5
|
+
const input = (_jsx("input", { ref: ref, "aria-invalid": invalid || undefined, className: classNames("h-[var(--size-btn-md)] w-full rounded-md border-control bg-neutral-0 px-4 text-sm text-neutral-900 placeholder:text-neutral-400", "focus:outline-none focus:shadow-focus", "disabled:bg-neutral-100 disabled:text-neutral-400", Boolean(leadingIcon) && "pl-11", Boolean(trailingIcon) && "pr-11", invalid
|
|
6
|
+
? "border-error focus:border-error"
|
|
7
|
+
: "border-neutral-200 focus:border-brand-primary", className), ...rest }));
|
|
8
|
+
if (!leadingIcon && !trailingIcon) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
return (_jsxs("span", { className: "relative block w-full", children: [leadingIcon ? (_jsx("span", { className: "pointer-events-none absolute inset-y-0 left-4 grid place-items-center text-neutral-400", children: leadingIcon })) : null, input, trailingIcon ? (_jsx("span", { className: "absolute inset-y-0 right-4 grid place-items-center text-neutral-500", children: trailingIcon })) : null] }));
|
|
12
|
+
});
|
|
13
|
+
export { Input };
|
|
14
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,KAAK,GAAG,UAAU,CAA+B,SAAS,KAAK,CACnE,EAAE,OAAO,GAAG,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAClE,GAAG;IAEH,MAAM,KAAK,GAAG,CACZ,gBACE,GAAG,EAAE,GAAG,kBACM,OAAO,IAAI,SAAS,EAClC,SAAS,EAAE,UAAU,CACnB,iIAAiI,EACjI,uCAAuC,EACvC,mDAAmD,EACnD,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,EAC/B,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,EAChC,OAAO;YACL,CAAC,CAAC,iCAAiC;YACnC,CAAC,CAAC,+CAA+C,EACnD,SAAS,CACV,KACG,IAAI,GACR,CACH,CAAC;IAEF,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,gBAAM,SAAS,EAAC,uBAAuB,aACpC,WAAW,CAAC,CAAC,CAAC,CACb,eAAM,SAAS,EAAC,wFAAwF,YACrG,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,EACL,YAAY,CAAC,CAAC,CAAC,CACd,eAAM,SAAS,EAAC,qEAAqE,YAClF,YAAY,GACR,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type KeyValueProps = HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
declare const KeyValue: ({ label, value, className, ...rest }: KeyValueProps) => import("react").JSX.Element;
|
|
7
|
+
export { KeyValue };
|
|
8
|
+
export type { KeyValueProps };
|
|
9
|
+
//# sourceMappingURL=KeyValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../src/KeyValue.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,KAAK,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAI,sCAAsC,aAAa,gCAWpE,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/KeyValue.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const KeyValue = ({ label, value, className, ...rest }) => (_jsxs("div", { className: classNames("flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between sm:gap-4", className), ...rest, children: [_jsx("dt", { className: "text-sm text-neutral-500", children: label }), _jsx("dd", { className: "text-sm font-semibold text-neutral-900 sm:text-right", children: value })] }));
|
|
4
|
+
export { KeyValue };
|
|
5
|
+
//# sourceMappingURL=KeyValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValue.js","sourceRoot":"","sources":["../src/KeyValue.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAiB,EAAE,EAAE,CAAC,CACxE,eACE,SAAS,EAAE,UAAU,CACnB,4EAA4E,EAC5E,SAAS,CACV,KACG,IAAI,aAER,aAAI,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAM,EACrD,aAAI,SAAS,EAAC,sDAAsD,YAAE,KAAK,GAAM,IAC7E,CACP,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { ButtonShape, ButtonSize, ButtonVariant } from "./buttonStyles";
|
|
3
|
+
type LinkButtonProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
|
|
4
|
+
variant?: ButtonVariant;
|
|
5
|
+
size?: ButtonSize;
|
|
6
|
+
shape?: ButtonShape;
|
|
7
|
+
leadingIcon?: ReactNode;
|
|
8
|
+
trailingIcon?: ReactNode;
|
|
9
|
+
block?: boolean;
|
|
10
|
+
};
|
|
11
|
+
declare const LinkButton: ({ variant, size, shape, leadingIcon, trailingIcon, block, className, children, ...rest }: LinkButtonProps) => import("react").JSX.Element;
|
|
12
|
+
export { LinkButton };
|
|
13
|
+
export type { LinkButtonProps };
|
|
14
|
+
//# sourceMappingURL=LinkButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkButton.d.ts","sourceRoot":"","sources":["../src/LinkButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE7E,KAAK,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,0FAUjB,eAAe,gCASjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { buttonClassName } from "./buttonStyles";
|
|
3
|
+
const LinkButton = ({ variant = "primary", size = "md", shape = "default", leadingIcon, trailingIcon, block = false, className, children, ...rest }) => (_jsxs("a", { className: buttonClassName({ variant, size, shape, block, className }), ...rest, children: [leadingIcon, children, trailingIcon] }));
|
|
4
|
+
export { LinkButton };
|
|
5
|
+
//# sourceMappingURL=LinkButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkButton.js","sourceRoot":"","sources":["../src/LinkButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAYjD,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,SAAS,EACjB,WAAW,EACX,YAAY,EACZ,KAAK,GAAG,KAAK,EACb,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACS,EAAE,EAAE,CAAC,CACrB,aACE,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,KAClE,IAAI,aAEP,WAAW,EACX,QAAQ,EACR,YAAY,IACX,CACL,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type LinkTabItem = {
|
|
3
|
+
href: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
count?: number;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
};
|
|
8
|
+
type LinkTabsProps = {
|
|
9
|
+
items: readonly LinkTabItem[];
|
|
10
|
+
activeHref: string;
|
|
11
|
+
label: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
};
|
|
14
|
+
declare const LinkTabs: ({ items, activeHref, label, className }: LinkTabsProps) => import("react").JSX.Element;
|
|
15
|
+
export { LinkTabs };
|
|
16
|
+
export type { LinkTabItem, LinkTabsProps };
|
|
17
|
+
//# sourceMappingURL=LinkTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkTabs.d.ts","sourceRoot":"","sources":["../src/LinkTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAI,yCAAyC,aAAa,gCAmCvE,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/LinkTabs.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const LinkTabs = ({ items, activeHref, label, className }) => (_jsx("nav", { "aria-label": label, className: classNames("flex gap-1 border-b border-neutral-200", className), children: items.map((item) => {
|
|
4
|
+
const active = activeHref === item.href || activeHref.startsWith(`${item.href}/`);
|
|
5
|
+
return (_jsxs("a", { href: item.href, "aria-current": active ? "page" : undefined, "aria-disabled": item.disabled || undefined, onClick: item.disabled ? (event) => event.preventDefault() : undefined, className: classNames("-mb-px flex items-center gap-2 border-b-2 px-4 py-3 text-sm font-semibold transition focus-visible:outline-none focus-visible:shadow-focus", active
|
|
6
|
+
? "border-brand-primary text-neutral-900"
|
|
7
|
+
: "border-transparent text-neutral-500 hover:text-neutral-900", item.disabled && "cursor-not-allowed opacity-50"), children: [item.label, item.count !== undefined ? (_jsx("span", { className: classNames("grid min-w-[var(--size-nav-badge-min)] place-items-center rounded-full px-2 py-0.5 text-overline font-bold", active ? "bg-brand-primary text-neutral-0" : "bg-neutral-200 text-neutral-600"), children: item.count })) : null] }, item.href));
|
|
8
|
+
}) }));
|
|
9
|
+
export { LinkTabs };
|
|
10
|
+
//# sourceMappingURL=LinkTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkTabs.js","sourceRoot":"","sources":["../src/LinkTabs.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAgB1C,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAiB,EAAE,EAAE,CAAC,CAC3E,4BAAiB,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,wCAAwC,EAAE,SAAS,CAAC,YAC/F,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAElF,OAAO,CACL,aAEE,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,mBAC1B,IAAI,CAAC,QAAQ,IAAI,SAAS,EACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,EACtE,SAAS,EAAE,UAAU,CACnB,4IAA4I,EAC5I,MAAM;gBACJ,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,4DAA4D,EAChE,IAAI,CAAC,QAAQ,IAAI,+BAA+B,CACjD,aAEA,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,eACE,SAAS,EAAE,UAAU,CACnB,4GAA4G,EAC5G,MAAM,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,iCAAiC,CAC/E,YAEA,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,IAAI,KAvBH,IAAI,CAAC,IAAI,CAwBZ,CACL,CAAC;IACJ,CAAC,CAAC,GACE,CACP,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type MenuSelectOption = {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
};
|
|
6
|
+
type MenuSelectProps = {
|
|
7
|
+
label: string;
|
|
8
|
+
options: readonly MenuSelectOption[];
|
|
9
|
+
selectedId?: string;
|
|
10
|
+
onSelect: (id: string) => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const MenuSelect: ({ label, options, selectedId, onSelect, className }: MenuSelectProps) => import("react").JSX.Element;
|
|
14
|
+
export { MenuSelect };
|
|
15
|
+
export type { MenuSelectOption, MenuSelectProps };
|
|
16
|
+
//# sourceMappingURL=MenuSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSelect.d.ts","sourceRoot":"","sources":["../src/MenuSelect.tsx"],"names":[],"mappings":"AAMA,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,qDAAqD,eAAe,gCA8EvF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
4
|
+
import { ChevronDownIcon } from "./icons";
|
|
5
|
+
import { classNames } from "./classNames";
|
|
6
|
+
const MenuSelect = ({ label, options, selectedId, onSelect, className }) => {
|
|
7
|
+
const menuId = useId();
|
|
8
|
+
const rootRef = useRef(null);
|
|
9
|
+
const triggerRef = useRef(null);
|
|
10
|
+
const [open, setOpen] = useState(false);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!open) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const handlePointer = (event) => {
|
|
16
|
+
if (rootRef.current && !rootRef.current.contains(event.target)) {
|
|
17
|
+
setOpen(false);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const handleKey = (event) => {
|
|
21
|
+
if (event.key === "Escape") {
|
|
22
|
+
setOpen(false);
|
|
23
|
+
triggerRef.current?.focus();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
document.addEventListener("mousedown", handlePointer);
|
|
27
|
+
document.addEventListener("keydown", handleKey);
|
|
28
|
+
return () => {
|
|
29
|
+
document.removeEventListener("mousedown", handlePointer);
|
|
30
|
+
document.removeEventListener("keydown", handleKey);
|
|
31
|
+
};
|
|
32
|
+
}, [open]);
|
|
33
|
+
const select = (id) => {
|
|
34
|
+
onSelect(id);
|
|
35
|
+
setOpen(false);
|
|
36
|
+
triggerRef.current?.focus();
|
|
37
|
+
};
|
|
38
|
+
return (_jsxs("div", { ref: rootRef, className: classNames("relative inline-flex", className), children: [_jsxs("button", { ref: triggerRef, type: "button", "aria-controls": menuId, "aria-expanded": open, "aria-haspopup": "menu", onClick: () => setOpen((current) => !current), className: "flex h-[var(--size-btn-sm)] items-center gap-2 rounded-lg border border-neutral-200 bg-neutral-0 px-4 text-label font-medium text-neutral-700 transition hover:bg-neutral-50 focus-visible:outline-none focus-visible:shadow-focus", children: [label, _jsx(ChevronDownIcon, { "aria-hidden": true, className: classNames("size-4 text-neutral-500 transition-transform", open && "rotate-180") })] }), open ? (_jsx("div", { id: menuId, role: "menu", className: "absolute left-0 top-full z-20 mt-1 flex w-[var(--size-mobile-menu)] flex-col rounded-lg border border-neutral-200 bg-neutral-0 p-1 shadow-elevated", children: options.map((option) => (_jsx("button", { type: "button", role: "menuitemradio", "aria-checked": option.id === selectedId, disabled: option.disabled, onClick: () => select(option.id), className: classNames("rounded-md px-3 py-2 text-left text-label transition hover:bg-neutral-50 focus-visible:outline-none focus-visible:shadow-focus disabled:cursor-not-allowed disabled:opacity-50", option.id === selectedId ? "font-semibold text-neutral-900" : "text-neutral-700"), children: option.label }, option.id))) })) : null] }));
|
|
39
|
+
};
|
|
40
|
+
export { MenuSelect };
|
|
41
|
+
//# sourceMappingURL=MenuSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSelect.js","sourceRoot":"","sources":["../src/MenuSelect.tsx"],"names":[],"mappings":"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"}
|
package/dist/Modal.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type ModalProps = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
closeLabel: string;
|
|
6
|
+
labelledBy?: string;
|
|
7
|
+
describedBy?: string;
|
|
8
|
+
panelClassName?: string;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
};
|
|
11
|
+
declare const Modal: ({ open, onClose, closeLabel, labelledBy, describedBy, panelClassName, children, }: ModalProps) => import("react").ReactPortal | null;
|
|
12
|
+
export { Modal };
|
|
13
|
+
export type { ModalProps };
|
|
14
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../src/Modal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAWF,QAAA,MAAM,KAAK,GAAI,mFAQZ,UAAU,uCAiFZ,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/Modal.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import { createPortal } from "react-dom";
|
|
5
|
+
import { classNames } from "./classNames";
|
|
6
|
+
const focusableSelector = [
|
|
7
|
+
"a[href]",
|
|
8
|
+
"button:not([disabled])",
|
|
9
|
+
"input:not([disabled])",
|
|
10
|
+
"select:not([disabled])",
|
|
11
|
+
"textarea:not([disabled])",
|
|
12
|
+
"[tabindex]:not([tabindex='-1'])",
|
|
13
|
+
].join(",");
|
|
14
|
+
const Modal = ({ open, onClose, closeLabel, labelledBy, describedBy, panelClassName, children, }) => {
|
|
15
|
+
const [mounted, setMounted] = useState(false);
|
|
16
|
+
const panelRef = useRef(null);
|
|
17
|
+
useEffect(() => setMounted(true), []);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!open) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const previousOverflow = document.body.style.overflow;
|
|
23
|
+
const previousFocus = document.activeElement;
|
|
24
|
+
const panel = panelRef.current;
|
|
25
|
+
document.body.style.overflow = "hidden";
|
|
26
|
+
panel?.querySelector(focusableSelector)?.focus();
|
|
27
|
+
const handleKeyDown = (event) => {
|
|
28
|
+
if (event.key === "Escape") {
|
|
29
|
+
onClose();
|
|
30
|
+
}
|
|
31
|
+
if (event.key !== "Tab" || !panel) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const focusableElements = Array.from(panel.querySelectorAll(focusableSelector));
|
|
35
|
+
const firstElement = focusableElements[0];
|
|
36
|
+
const lastElement = focusableElements.at(-1);
|
|
37
|
+
if (event.shiftKey && document.activeElement === firstElement) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
lastElement?.focus();
|
|
40
|
+
}
|
|
41
|
+
else if (!event.shiftKey && document.activeElement === lastElement) {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
firstElement?.focus();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
47
|
+
return () => {
|
|
48
|
+
document.body.style.overflow = previousOverflow;
|
|
49
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
50
|
+
previousFocus?.focus();
|
|
51
|
+
};
|
|
52
|
+
}, [open, onClose]);
|
|
53
|
+
if (!mounted || !open) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return createPortal(_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", role: "dialog", "aria-modal": "true", "aria-labelledby": labelledBy, "aria-describedby": describedBy, children: [_jsx("button", { type: "button", "aria-label": closeLabel, onClick: onClose, className: "absolute inset-0 bg-neutral-900/50" }), _jsx("div", { ref: panelRef, className: classNames("relative z-10 flex w-full flex-col rounded-xl bg-neutral-0 shadow-xl", panelClassName ?? "max-w-lg p-8"), children: children })] }), document.body);
|
|
57
|
+
};
|
|
58
|
+
export { Modal };
|
|
59
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../src/Modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SelectHTMLAttributes } from "react";
|
|
2
|
+
type NativeSelectProps = SelectHTMLAttributes<HTMLSelectElement> & {
|
|
3
|
+
invalid?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare const NativeSelect: ({ invalid, className, children, ...rest }: NativeSelectProps) => import("react").JSX.Element;
|
|
6
|
+
export { NativeSelect };
|
|
7
|
+
export type { NativeSelectProps };
|
|
8
|
+
//# sourceMappingURL=NativeSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeSelect.d.ts","sourceRoot":"","sources":["../src/NativeSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAIlD,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,YAAY,GAAI,2CAKnB,iBAAiB,gCAsBnB,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDownIcon } from "./icons";
|
|
3
|
+
import { classNames } from "./classNames";
|
|
4
|
+
const NativeSelect = ({ invalid = false, className, children, ...rest }) => (_jsxs("span", { className: "relative block w-full", children: [_jsx("select", { "aria-invalid": invalid || undefined, className: classNames("h-[var(--size-btn-md)] w-full appearance-none rounded-md border-control bg-neutral-0 px-4 pr-10 text-sm text-neutral-900", "focus:outline-none focus:shadow-focus", "disabled:bg-neutral-100 disabled:text-neutral-400", invalid
|
|
5
|
+
? "border-error focus:border-error"
|
|
6
|
+
: "border-neutral-200 focus:border-brand-primary", className), ...rest, children: children }), _jsx(ChevronDownIcon, { "aria-hidden": true, className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-neutral-400" })] }));
|
|
7
|
+
export { NativeSelect };
|
|
8
|
+
//# sourceMappingURL=NativeSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeSelect.js","sourceRoot":"","sources":["../src/NativeSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,MAAM,YAAY,GAAG,CAAC,EACpB,OAAO,GAAG,KAAK,EACf,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACW,EAAE,EAAE,CAAC,CACvB,gBAAM,SAAS,EAAC,uBAAuB,aACrC,iCACgB,OAAO,IAAI,SAAS,EAClC,SAAS,EAAE,UAAU,CACnB,0HAA0H,EAC1H,uCAAuC,EACvC,mDAAmD,EACnD,OAAO;gBACL,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,+CAA+C,EACnD,SAAS,CACV,KACG,IAAI,YAEP,QAAQ,GACF,EACT,KAAC,eAAe,yBAEd,SAAS,EAAC,uFAAuF,GACjG,IACG,CACR,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type NavigationListTone = "brand" | "inverted";
|
|
3
|
+
type NavigationListItem = {
|
|
4
|
+
href: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
badge?: ReactNode;
|
|
7
|
+
leadingIcon?: ReactNode;
|
|
8
|
+
exact?: boolean;
|
|
9
|
+
};
|
|
10
|
+
type NavigationListProps = {
|
|
11
|
+
items: readonly NavigationListItem[];
|
|
12
|
+
activeHref?: string;
|
|
13
|
+
label: string;
|
|
14
|
+
tone?: NavigationListTone;
|
|
15
|
+
className?: string;
|
|
16
|
+
};
|
|
17
|
+
declare const NavigationList: ({ items, activeHref, label, tone, className, }: NavigationListProps) => import("react").JSX.Element;
|
|
18
|
+
export { NavigationList };
|
|
19
|
+
export type { NavigationListItem, NavigationListProps, NavigationListTone };
|
|
20
|
+
//# sourceMappingURL=NavigationList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationList.d.ts","sourceRoot":"","sources":["../src/NavigationList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,kBAAkB,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/C,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAYF,QAAA,MAAM,cAAc,GAAI,gDAMrB,mBAAmB,gCAmCrB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { classNames } from "./classNames";
|
|
3
|
+
const activeClasses = {
|
|
4
|
+
brand: "bg-role-studio-bg text-role-studio-text",
|
|
5
|
+
inverted: "bg-surface-inverted text-neutral-0",
|
|
6
|
+
};
|
|
7
|
+
const inactiveClasses = {
|
|
8
|
+
brand: "text-neutral-600 hover:bg-neutral-100 hover:text-neutral-900",
|
|
9
|
+
inverted: "text-neutral-300 hover:bg-neutral-0/10 hover:text-neutral-0",
|
|
10
|
+
};
|
|
11
|
+
const NavigationList = ({ items, activeHref, label, tone = "brand", className, }) => (_jsx("nav", { "aria-label": label, className: classNames("flex flex-col gap-1", className), children: items.map((item) => {
|
|
12
|
+
const target = item.href.split("#")[0]?.split("?")[0] || "/";
|
|
13
|
+
const active = Boolean(activeHref
|
|
14
|
+
&& !item.href.includes("#")
|
|
15
|
+
&& (item.exact || target === "/"
|
|
16
|
+
? activeHref === target
|
|
17
|
+
: activeHref === target || activeHref.startsWith(`${target}/`)));
|
|
18
|
+
return (_jsxs("a", { href: item.href, "aria-current": active ? "page" : undefined, className: classNames("flex items-center gap-3 rounded-lg px-4 py-3 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:shadow-focus", active
|
|
19
|
+
? activeClasses[tone]
|
|
20
|
+
: inactiveClasses[tone]), children: [item.leadingIcon ? _jsx("span", { "aria-hidden": true, className: "shrink-0", children: item.leadingIcon }) : null, _jsx("span", { className: "flex-1", children: item.label }), item.badge ? (_jsx("span", { className: "grid min-w-[var(--size-nav-badge-min)] place-items-center rounded-full bg-error px-2 py-0.5 text-overline font-bold text-neutral-0", children: item.badge })) : null] }, item.href));
|
|
21
|
+
}) }));
|
|
22
|
+
export { NavigationList };
|
|
23
|
+
//# sourceMappingURL=NavigationList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationList.js","sourceRoot":"","sources":["../src/NavigationList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB1C,MAAM,aAAa,GAAuC;IACxD,KAAK,EAAE,yCAAyC;IAChD,QAAQ,EAAE,oCAAoC;CAC/C,CAAC;AAEF,MAAM,eAAe,GAAuC;IAC1D,KAAK,EAAE,8DAA8D;IACrE,QAAQ,EAAE,6DAA6D;CACxE,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EACtB,KAAK,EACL,UAAU,EACV,KAAK,EACL,IAAI,GAAG,OAAO,EACd,SAAS,GACW,EAAE,EAAE,CAAC,CACzB,4BAAiB,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,YAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CACpB,UAAU;eACP,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;eACxB,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,GAAG;gBAC9B,CAAC,CAAC,UAAU,KAAK,MAAM;gBACvB,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAClE,CAAC;QAEF,OAAO,CACL,aAEE,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzC,SAAS,EAAE,UAAU,CACnB,0IAA0I,EAC1I,MAAM;gBACJ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;gBACrB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAC1B,aAEA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oCAAkB,SAAS,EAAC,UAAU,YAAE,IAAI,CAAC,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC3F,eAAM,SAAS,EAAC,QAAQ,YAAE,IAAI,CAAC,KAAK,GAAQ,EAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,eAAM,SAAS,EAAC,oIAAoI,YACjJ,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,IAAI,KAhBH,IAAI,CAAC,IAAI,CAiBZ,CACL,CAAC;IACJ,CAAC,CAAC,GACE,CACP,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
type ProgressProps = HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
declare const Progress: ({ value, label, className, ...rest }: ProgressProps) => import("react").JSX.Element;
|
|
7
|
+
export { Progress };
|
|
8
|
+
export type { ProgressProps };
|
|
9
|
+
//# sourceMappingURL=Progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../src/Progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,KAAK,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAI,sCAAsC,aAAa,gCAgBpE,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|