@ark-ui/solid
Version:
A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.
163 lines (147 loc) • 5.12 kB
JSX
import {
createSplitProps
} from "./6WEDGJKQ.jsx";
import {
ark
} from "./UFYZ7HLU.jsx";
import {
useEnvironmentContext
} from "./E2L62MKC.jsx";
import {
createContext
} from "./TVCIHLER.jsx";
import {
runIfFn
} from "./KGOB2IMX.jsx";
import {
__export
} from "./7IUG3E2V.jsx";
// src/components/clipboard/use-clipboard-context.ts
var [ClipboardProvider, useClipboardContext] = createContext({
hookName: "useClipboardContext",
providerName: "<ClipboardProvider />"
});
// src/components/clipboard/clipboard-context.tsx
var ClipboardContext = (props) => props.children(useClipboardContext());
// src/components/clipboard/clipboard-control.tsx
import { mergeProps } from "@zag-js/solid";
var ClipboardControl = (props) => {
const api = useClipboardContext();
const mergedProps = mergeProps(() => api().getControlProps(), props);
return <ark.div {...mergedProps} />;
};
// src/components/clipboard/clipboard-indicator.tsx
import { mergeProps as mergeProps2 } from "@zag-js/solid";
import { Show, children } from "solid-js";
var ClipboardIndicator = (props) => {
const [indicatorProps, localProps] = createSplitProps()(props, ["copied"]);
const api = useClipboardContext();
const mergedProps = mergeProps2(api().getIndicatorProps({ copied: api().copied }), localProps);
const getChildren = children(() => localProps.children);
return <ark.div {...mergedProps}>
<Show when={api().copied} fallback={getChildren()}>
{indicatorProps.copied}
</Show>
</ark.div>;
};
// src/components/clipboard/clipboard-input.tsx
import { mergeProps as mergeProps3 } from "@zag-js/solid";
var ClipboardInput = (props) => {
const api = useClipboardContext();
const mergedProps = mergeProps3(() => api().getInputProps(), props);
return <ark.input {...mergedProps} />;
};
// src/components/clipboard/clipboard-label.tsx
import { mergeProps as mergeProps4 } from "@zag-js/solid";
var ClipboardLabel = (props) => {
const api = useClipboardContext();
const mergedProps = mergeProps4(() => api().getLabelProps(), props);
return <ark.label {...mergedProps} />;
};
// src/components/clipboard/clipboard-root.tsx
import { mergeProps as mergeProps5 } from "@zag-js/solid";
// src/components/clipboard/use-clipboard.ts
import * as clipboard from "@zag-js/clipboard";
import { normalizeProps, useMachine } from "@zag-js/solid";
import { createMemo, createUniqueId } from "solid-js";
var useClipboard = (props) => {
const id = createUniqueId();
const environment = useEnvironmentContext();
const machineProps = createMemo(() => ({
id,
getRootNode: environment().getRootNode,
...runIfFn(props)
}));
const service = useMachine(clipboard.machine, machineProps);
return createMemo(() => clipboard.connect(service, normalizeProps));
};
// src/components/clipboard/clipboard-root.tsx
var ClipboardRoot = (props) => {
const [useClipboardProps, localProps] = createSplitProps()(props, [
"defaultValue",
"id",
"ids",
"onStatusChange",
"onValueChange",
"timeout",
"value"
]);
const api = useClipboard(useClipboardProps);
const mergedProps = mergeProps5(() => api().getRootProps(), localProps);
return <ClipboardProvider value={api}>
<ark.div {...mergedProps} />
</ClipboardProvider>;
};
// src/components/clipboard/clipboard-root-provider.tsx
import { mergeProps as mergeProps6 } from "@zag-js/solid";
var ClipboardRootProvider = (props) => {
const [{ value: clipboard2 }, localProps] = createSplitProps()(props, ["value"]);
const mergedProps = mergeProps6(() => clipboard2().getRootProps(), localProps);
return <ClipboardProvider value={clipboard2}>
<ark.div {...mergedProps} />
</ClipboardProvider>;
};
// src/components/clipboard/clipboard-trigger.tsx
import { mergeProps as mergeProps7 } from "@zag-js/solid";
var ClipboardTrigger = (props) => {
const api = useClipboardContext();
const mergedProps = mergeProps7(() => api().getTriggerProps(), props);
return <ark.button {...mergedProps} />;
};
// src/components/clipboard/clipboard-value-text.tsx
import { mergeProps as mergeProps8 } from "@zag-js/solid";
var ClipboardValueText = (props) => {
const api = useClipboardContext();
const mergedProps = mergeProps8(props);
return <ark.span {...mergedProps}>{props.children || api().value}</ark.span>;
};
// src/components/clipboard/clipboard.anatomy.ts
import { anatomy } from "@zag-js/clipboard";
// src/components/clipboard/clipboard.ts
var clipboard_exports = {};
__export(clipboard_exports, {
Context: () => ClipboardContext,
Control: () => ClipboardControl,
Indicator: () => ClipboardIndicator,
Input: () => ClipboardInput,
Label: () => ClipboardLabel,
Root: () => ClipboardRoot,
RootProvider: () => ClipboardRootProvider,
Trigger: () => ClipboardTrigger,
ValueText: () => ClipboardValueText
});
export {
useClipboardContext,
ClipboardContext,
ClipboardControl,
ClipboardIndicator,
ClipboardInput,
ClipboardLabel,
useClipboard,
ClipboardRoot,
ClipboardRootProvider,
ClipboardTrigger,
ClipboardValueText,
anatomy,
clipboard_exports
};