@lo-ink/ui 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.
@@ -0,0 +1,10 @@
1
+ import type { HTMLAttributes, ImgHTMLAttributes, ReactNode } from "react";
2
+ export interface AppIconProps extends HTMLAttributes<HTMLSpanElement> {
3
+ src?: string;
4
+ alt?: string;
5
+ size?: "small" | "medium" | "large";
6
+ children?: ReactNode;
7
+ imageProps?: Omit<ImgHTMLAttributes<HTMLImageElement>, "src" | "alt">;
8
+ }
9
+ export declare function AppIcon({ src, alt, size, children, imageProps, className, ...props }: AppIconProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=AppIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppIcon.d.ts","sourceRoot":"","sources":["../src/AppIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1E,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,eAAe,CAAC;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;CACvE;AAED,wBAAgB,OAAO,CAAC,EACtB,GAAG,EACH,GAAQ,EACR,IAAe,EACf,QAAQ,EACR,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BAad"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classes } from "./utils.js";
3
+ export function AppIcon({ src, alt = "", size = "medium", children, imageProps, className, ...props }) {
4
+ return (_jsx("span", { ...props, className: classes("lo-ui-app-icon", `lo-ui-app-icon--${size}`, className), children: src ? _jsx("img", { ...imageProps, src: src, alt: alt }) : children }));
5
+ }
@@ -0,0 +1,12 @@
1
+ import { type ButtonHTMLAttributes, type ReactNode } from "react";
2
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ variant?: "primary" | "secondary" | "danger" | "quiet";
4
+ size?: "small" | "medium";
5
+ loading?: boolean;
6
+ loadingLabel?: string;
7
+ fullWidth?: boolean;
8
+ leading?: ReactNode;
9
+ trailing?: ReactNode;
10
+ }
11
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
12
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9E,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,2GAgDlB,CAAC"}
package/dist/Button.js ADDED
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { classes } from "./utils.js";
4
+ export const Button = forwardRef(function Button({ variant = "primary", size = "medium", loading = false, loadingLabel = "Loading", fullWidth = false, leading, trailing, className, disabled, children, type = "button", ...props }, ref) {
5
+ return (_jsx("button", { ...props, ref: ref, type: type, disabled: disabled || loading, "aria-busy": loading || undefined, className: classes("lo-ui-button", `lo-ui-button--${variant}`, `lo-ui-button--${size}`, fullWidth && "lo-ui-button--full", className), children: loading ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "lo-ui-spinner", "aria-hidden": "true" }), _jsx("span", { children: loadingLabel })] })) : (_jsxs(_Fragment, { children: [leading && _jsx("span", { className: "lo-ui-button__icon", children: leading }), _jsx("span", { children: children }), trailing && _jsx("span", { className: "lo-ui-button__icon", children: trailing })] })) }));
6
+ });
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
3
+ title: ReactNode;
4
+ description?: ReactNode;
5
+ icon?: ReactNode;
6
+ action?: ReactNode;
7
+ }
8
+ export declare function EmptyState({ title, description, icon, action, className, ...props }: EmptyStateProps): import("react").JSX.Element;
9
+ //# 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,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,cAAc,CAAC,cAAc,CAAC,EAC9B,OAAO,CACR;IACC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,+BAejB"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classes } from "./utils.js";
3
+ export function EmptyState({ title, description, icon, action, className, ...props }) {
4
+ return (_jsxs("div", { ...props, className: classes("lo-ui-empty-state", className), children: [icon && (_jsx("div", { className: "lo-ui-empty-state__icon", "aria-hidden": "true", children: icon })), _jsx("h2", { className: "lo-ui-empty-state__title", children: title }), description && (_jsx("p", { className: "lo-ui-empty-state__description", children: description })), action && _jsx("div", { className: "lo-ui-empty-state__action", children: action })] }));
5
+ }
package/dist/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 LO contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes } from "react";
2
+ type Gap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10;
3
+ type LayoutProps = HTMLAttributes<HTMLDivElement> & {
4
+ gap?: Gap;
5
+ };
6
+ export declare function Stack({ gap, className, style, ...props }: LayoutProps): import("react").JSX.Element;
7
+ export declare function Inline({ gap, className, style, ...props }: LayoutProps): import("react").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=Layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../src/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAG3D,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC9C,KAAK,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AASlE,wBAAgB,KAAK,CAAC,EAAE,GAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAQzE;AAED,wBAAgB,MAAM,CAAC,EAAE,GAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAQ1E"}
package/dist/Layout.js ADDED
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classes } from "./utils.js";
3
+ function layoutStyle(gap, style) {
4
+ return {
5
+ "--lo-layout-gap": `var(--lo-space-${gap})`,
6
+ ...style,
7
+ };
8
+ }
9
+ export function Stack({ gap = 4, className, style, ...props }) {
10
+ return (_jsx("div", { ...props, className: classes("lo-ui-stack", className), style: layoutStyle(gap, style) }));
11
+ }
12
+ export function Inline({ gap = 2, className, style, ...props }) {
13
+ return (_jsx("div", { ...props, className: classes("lo-ui-inline", className), style: layoutStyle(gap, style) }));
14
+ }
package/dist/List.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { type HTMLAttributes, type ReactNode } from "react";
2
+ export interface ListProps extends HTMLAttributes<HTMLUListElement> {
3
+ label?: ReactNode;
4
+ }
5
+ export declare function List({ label, children, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: ListProps): import("react").JSX.Element;
6
+ export interface CellProps extends Omit<HTMLAttributes<HTMLLIElement>, "title"> {
7
+ title: ReactNode;
8
+ subtitle?: ReactNode;
9
+ leading?: ReactNode;
10
+ /** Noninteractive metadata included in the row action and its accessible name. */
11
+ trailing?: ReactNode;
12
+ /** An independently operable control rendered beside the row action. */
13
+ trailingAction?: ReactNode;
14
+ onPress?: () => void;
15
+ disabled?: boolean;
16
+ }
17
+ export declare const Cell: import("react").ForwardRefExoticComponent<CellProps & import("react").RefAttributes<HTMLLIElement>>;
18
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../src/List.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/E,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IACjE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,GAAG,KAAK,EACT,EAAE,SAAS,+BAsBX;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,cAAc,CAAC,aAAa,CAAC,EAC7B,OAAO,CACR;IACC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wEAAwE;IACxE,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,qGA6Df,CAAC"}
package/dist/List.js ADDED
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { forwardRef, useId } from "react";
3
+ import { classes } from "./utils.js";
4
+ export function List({ label, children, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }) {
5
+ const generatedId = useId();
6
+ const labelId = label ? `${generatedId}-label` : undefined;
7
+ const effectiveLabelledBy = ariaLabelledBy ?? (ariaLabel === undefined ? labelId : undefined);
8
+ return (_jsxs("section", { className: "lo-ui-list-section", children: [label && (_jsx("h2", { className: "lo-ui-list-label", id: labelId, children: label })), _jsx("ul", { ...props, "aria-label": ariaLabel, "aria-labelledby": effectiveLabelledBy, className: classes("lo-ui-list", className), children: children })] }));
9
+ }
10
+ export const Cell = forwardRef(function Cell({ title, subtitle, leading, trailing, trailingAction, onPress, disabled = false, className, ...props }, ref) {
11
+ const content = (_jsxs(_Fragment, { children: [leading && _jsx("span", { className: "lo-ui-cell__leading", children: leading }), _jsxs("span", { className: "lo-ui-cell__body", children: [_jsx("span", { className: "lo-ui-cell__title", children: title }), subtitle && _jsx("span", { className: "lo-ui-cell__subtitle", children: subtitle })] }), trailing && _jsx("span", { className: "lo-ui-cell__trailing", children: trailing }), onPress && !trailing && !trailingAction && (_jsx("svg", { className: "lo-ui-cell__chevron", viewBox: "0 0 20 20", "aria-hidden": "true", children: _jsx("path", { d: "m7.5 4 6 6-6 6" }) }))] }));
12
+ return (_jsx("li", { ...props, ref: ref, className: classes("lo-ui-cell", className), children: onPress || trailingAction ? (_jsxs("div", { className: "lo-ui-cell__actions", children: [onPress ? (_jsx("button", { className: "lo-ui-cell__control", type: "button", onClick: onPress, disabled: disabled, children: content })) : (_jsx("div", { className: "lo-ui-cell__content", children: content })), trailingAction && (_jsx("span", { className: "lo-ui-cell__trailing-action", children: trailingAction }))] })) : (_jsx("div", { className: "lo-ui-cell__content", children: content })) }));
13
+ });
@@ -0,0 +1,17 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from "react";
2
+ export type SelectionControlProps = Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
3
+ label: ReactNode;
4
+ description?: ReactNode;
5
+ labelHidden?: boolean;
6
+ };
7
+ export declare const Switch: import("react").ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
8
+ label: ReactNode;
9
+ description?: ReactNode;
10
+ labelHidden?: boolean;
11
+ } & import("react").RefAttributes<HTMLInputElement>>;
12
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
13
+ label: ReactNode;
14
+ description?: ReactNode;
15
+ labelHidden?: boolean;
16
+ } & import("react").RefAttributes<HTMLInputElement>>;
17
+ //# sourceMappingURL=SelectionControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionControl.d.ts","sourceRoot":"","sources":["../src/SelectionControl.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,CACP,GAAG;IACF,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAyCF,eAAO,MAAM,MAAM;WA5CV,SAAS;kBACF,SAAS;kBACT,OAAO;oDA6EtB,CAAC;AAEF,eAAO,MAAM,QAAQ;WAjFZ,SAAS;kBACF,SAAS;kBACT,OAAO;oDAiHtB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useId, } from "react";
3
+ import { classes } from "./utils.js";
4
+ function SelectionControl({ control, label, description, labelHidden = false, id, }) {
5
+ return (_jsxs("label", { className: classes("lo-ui-selection", labelHidden && "lo-ui-selection--control-only"), htmlFor: id, children: [_jsxs("span", { className: "lo-ui-selection__copy", children: [_jsx("span", { className: "lo-ui-selection__label", id: `${id}-label`, children: label }), description && (_jsx("span", { className: "lo-ui-selection__description", id: `${id}-description`, children: description }))] }), control] }));
6
+ }
7
+ export const Switch = forwardRef(function Switch({ label, description, labelHidden, id: providedId, className, ...props }, ref) {
8
+ const generatedId = useId();
9
+ const id = providedId ?? generatedId;
10
+ return (_jsx(SelectionControl, { id: id, label: label, description: description, labelHidden: labelHidden, control: _jsx("input", { ...props, ref: ref, id: id, type: "checkbox", role: "switch", "aria-labelledby": props["aria-labelledby"] ??
11
+ (props["aria-label"] ? undefined : `${id}-label`), "aria-describedby": [props["aria-describedby"], description && `${id}-description`]
12
+ .filter(Boolean)
13
+ .join(" ") || undefined, className: classes("lo-ui-switch", className) }) }));
14
+ });
15
+ export const Checkbox = forwardRef(function Checkbox({ label, description, labelHidden, id: providedId, className, ...props }, ref) {
16
+ const generatedId = useId();
17
+ const id = providedId ?? generatedId;
18
+ return (_jsx(SelectionControl, { id: id, label: label, description: description, labelHidden: labelHidden, control: _jsx("input", { ...props, ref: ref, id: id, type: "checkbox", "aria-labelledby": props["aria-labelledby"] ??
19
+ (props["aria-label"] ? undefined : `${id}-label`), "aria-describedby": [props["aria-describedby"], description && `${id}-description`]
20
+ .filter(Boolean)
21
+ .join(" ") || undefined, className: classes("lo-ui-checkbox", className) }) }));
22
+ });
@@ -0,0 +1,9 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from "react";
2
+ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
3
+ label: ReactNode;
4
+ description?: ReactNode;
5
+ error?: ReactNode;
6
+ inputClassName?: string;
7
+ }
8
+ export declare const TextField: import("react").ForwardRefExoticComponent<TextFieldProps & import("react").RefAttributes<HTMLInputElement>>;
9
+ //# sourceMappingURL=TextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../src/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,CACP;IACC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,6GAgDrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useId, } from "react";
3
+ import { classes } from "./utils.js";
4
+ export const TextField = forwardRef(function TextField({ label, description, error, id: providedId, className, inputClassName, "aria-describedby": ariaDescribedBy, ...props }, ref) {
5
+ const generatedId = useId();
6
+ const id = providedId ?? generatedId;
7
+ const descriptionId = description ? `${id}-description` : undefined;
8
+ const errorId = error ? `${id}-error` : undefined;
9
+ const describedBy = [ariaDescribedBy, descriptionId, errorId]
10
+ .filter(Boolean)
11
+ .join(" ");
12
+ return (_jsxs("div", { className: classes("lo-ui-field", className), children: [_jsx("label", { className: "lo-ui-field__label", htmlFor: id, children: label }), _jsx("input", { ...props, ref: ref, id: id, "aria-invalid": error ? true : props["aria-invalid"], "aria-describedby": describedBy || undefined, className: classes("lo-ui-field__input", inputClassName) }), description && (_jsx("div", { className: "lo-ui-field__description", id: descriptionId, children: description })), error && (_jsx("div", { className: "lo-ui-field__error", id: errorId, children: error }))] }));
13
+ });
@@ -0,0 +1,8 @@
1
+ import type { HTMLAttributes } from "react";
2
+ export interface TextProps extends HTMLAttributes<HTMLParagraphElement> {
3
+ tone?: "primary" | "secondary" | "danger";
4
+ size?: "caption" | "label" | "body";
5
+ }
6
+ export declare function Text({ tone, size, className, ...props }: TextProps): import("react").JSX.Element;
7
+ export declare function Heading({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): import("react").JSX.Element;
8
+ //# sourceMappingURL=Typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../src/Typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IACrE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;CACrC;AAED,wBAAgB,IAAI,CAAC,EACnB,IAAgB,EAChB,IAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,SAAS,+BAYX;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,kBAAkB,CAAC,+BAEpC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classes } from "./utils.js";
3
+ export function Text({ tone = "primary", size = "body", className, ...props }) {
4
+ return (_jsx("p", { ...props, className: classes("lo-ui-text", `lo-ui-text--${tone}`, `lo-ui-text--${size}`, className) }));
5
+ }
6
+ export function Heading({ className, ...props }) {
7
+ return _jsx("h1", { ...props, className: classes("lo-ui-heading", className) });
8
+ }
@@ -0,0 +1,9 @@
1
+ export { AppIcon, type AppIconProps } from "./AppIcon.js";
2
+ export { Button, type ButtonProps } from "./Button.js";
3
+ export { EmptyState, type EmptyStateProps } from "./EmptyState.js";
4
+ export { Inline, Stack } from "./Layout.js";
5
+ export { Cell, List, type CellProps, type ListProps } from "./List.js";
6
+ export { Checkbox, Switch, type SelectionControlProps, } from "./SelectionControl.js";
7
+ export { TextField, type TextFieldProps } from "./TextField.js";
8
+ export { Heading, Text, type TextProps } from "./Typography.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,QAAQ,EACR,MAAM,EACN,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { AppIcon } from "./AppIcon.js";
2
+ export { Button } from "./Button.js";
3
+ export { EmptyState } from "./EmptyState.js";
4
+ export { Inline, Stack } from "./Layout.js";
5
+ export { Cell, List } from "./List.js";
6
+ export { Checkbox, Switch, } from "./SelectionControl.js";
7
+ export { TextField } from "./TextField.js";
8
+ export { Heading, Text } from "./Typography.js";