UNPKG

@nordcom/nordstar-view

Version:

Display a dedicated view; (aka page) somewhere in your app.

30 lines (29 loc) 3.92 kB
import { cn, forwardRef } from "@nordcom/nordstar-system"; import { jsx } from "react/jsx-runtime"; //#region src/view.tsx /** * `<View/>`, a component to render the main content of a page. * * @param {object} props - `<View/>` props. * @param {As} [props.as] - The element to render the component as. * @param {As} [props.outerAs] - The element to render the outer part of the component as. * @param {boolean} [props.withoutWrapper] - Don't include the wrapper/outer part of the component. * @param {string | undefined} [props.outerClassName] - The class name for the outer part of the component. * @returns {ReactNode} The `<View/>` component. */ var View = forwardRef(({ as: Tag = "article", outerAs: Wrapper = "main", withoutWrapper, className, outerClassName, ...props }, ref) => { const inner = /* @__PURE__ */ jsx(Tag, { ref, ...props, className: cn("mx-auto my-3 flex w-full max-w-[var(--nordstar-layout-page-width)] flex-col gap-3 overflow-hidden", className) }); if (withoutWrapper) return inner; return /* @__PURE__ */ jsx(Wrapper, { className: cn("flex flex-col items-center justify-start", outerClassName), children: inner }); }); View.displayName = "Nordstar.Layout.View"; //#endregion export { View as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvdmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcyB9IGZyb20gJ0Bub3JkY29tL25vcmRzdGFyLXN5c3RlbSc7XG5pbXBvcnQgeyBjbiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bub3JkY29tL25vcmRzdGFyLXN5c3RlbSc7XG5cbmV4cG9ydCB0eXBlIFZpZXdQcm9wcyA9IHtcbiAgICBhcz86IEFzO1xuICAgIG91dGVyQXM/OiBBcztcbiAgICB3aXRob3V0V3JhcHBlcj86IGJvb2xlYW47XG4gICAgb3V0ZXJDbGFzc05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIGA8Vmlldy8+YCwgYSBjb21wb25lbnQgdG8gcmVuZGVyIHRoZSBtYWluIGNvbnRlbnQgb2YgYSBwYWdlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyAtIGA8Vmlldy8+YCBwcm9wcy5cbiAqIEBwYXJhbSB7QXN9IFtwcm9wcy5hc10gLSBUaGUgZWxlbWVudCB0byByZW5kZXIgdGhlIGNvbXBvbmVudCBhcy5cbiAqIEBwYXJhbSB7QXN9IFtwcm9wcy5vdXRlckFzXSAtIFRoZSBlbGVtZW50IHRvIHJlbmRlciB0aGUgb3V0ZXIgcGFydCBvZiB0aGUgY29tcG9uZW50IGFzLlxuICogQHBhcmFtIHtib29sZWFufSBbcHJvcHMud2l0aG91dFdyYXBwZXJdIC0gRG9uJ3QgaW5jbHVkZSB0aGUgd3JhcHBlci9vdXRlciBwYXJ0IG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gW3Byb3BzLm91dGVyQ2xhc3NOYW1lXSAtIFRoZSBjbGFzcyBuYW1lIGZvciB0aGUgb3V0ZXIgcGFydCBvZiB0aGUgY29tcG9uZW50LlxuICogQHJldHVybnMge1JlYWN0Tm9kZX0gVGhlIGA8Vmlldy8+YCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFZpZXcgPSBmb3J3YXJkUmVmPCdtYWluJywgVmlld1Byb3BzPihcbiAgICAoeyBhczogVGFnID0gJ2FydGljbGUnLCBvdXRlckFzOiBXcmFwcGVyID0gJ21haW4nLCB3aXRob3V0V3JhcHBlciwgY2xhc3NOYW1lLCBvdXRlckNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgICAgIGNvbnN0IGlubmVyID0gKFxuICAgICAgICAgICAgPFRhZ1xuICAgICAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAnbXgtYXV0byBteS0zIGZsZXggdy1mdWxsIG1heC13LVt2YXIoLS1ub3Jkc3Rhci1sYXlvdXQtcGFnZS13aWR0aCldIGZsZXgtY29sIGdhcC0zIG92ZXJmbG93LWhpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHdpdGhvdXRXcmFwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5uZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gPFdyYXBwZXIgY2xhc3NOYW1lPXtjbignZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCcsIG91dGVyQ2xhc3NOYW1lKX0+e2lubmVyfTwvV3JhcHBlcj47XG4gICAgfSxcbik7XG5cblZpZXcuZGlzcGxheU5hbWUgPSAnTm9yZHN0YXIuTGF5b3V0LlZpZXcnO1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBLElBQU0sT0FBTyxZQUNSLEVBQUUsSUFBSSxNQUFNLFdBQVcsU0FBUyxVQUFVLFFBQVEsZ0JBQWdCLFdBQVcsZ0JBQWdCLEdBQUcsU0FBUyxRQUFRO0NBQzlHLE1BQU0sUUFDRixvQkFBQyxLQUFEO0VBQ1M7RUFDTCxHQUFJO0VBQ0osV0FBVyxHQUNQLHFHQUNBLFVBQ0g7RUFDSCxDQUFBO0NBRU4sSUFBSSxnQkFDQSxPQUFPO0NBR1gsT0FBTyxvQkFBQyxTQUFEO0VBQVMsV0FBVyxHQUFHLDRDQUE0QyxlQUFlO1lBQUc7RUFBZ0IsQ0FBQTtFQUVuSDtBQUVELEtBQUssY0FBYyJ9