@chitrank2050/monoline-ui 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -230,7 +230,9 @@ Monoline supports three levels of client-router control:
230
230
  ```tsx
231
231
  import Link from "next/link"
232
232
 
233
- ;<Footer linkComponent={Link} columns={myColumns} />
233
+ export default function MyFooter() {
234
+ return <Footer linkComponent={Link} columns={myColumns} />
235
+ }
234
236
  ```
235
237
 
236
238
  **B. Per-link** - override individual links in the config array:
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-AACTIVV7.js';import {Slot}from'@radix-ui/react-slot';import {jsx,jsxs}from'react/jsx-runtime';function w({asChild:o,className:a$1,ref:n,...s}){return jsx(o?Slot:"a",{ref:n,className:a("group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)",a$1),...s})}function p({description:o="One essay a month. No tracking, no nonsense.",placeholder:a$1="you@studio.com",inputName:n="email",submitLabel:s="Subscribe",action:l="#",method:f="post",className:c,ref:d,...b}){return jsxs("form",{ref:d,action:l,method:f,className:a("flex min-w-0 flex-col gap-ml-3",c),...b,children:[jsx("p",{className:"max-w-(--ml-footer-subscribe-copy-max) text-base leading-relaxed text-body",children:o}),jsxs("div",{suppressHydrationWarning:true,className:"flex h-(--ml-footer-subscribe-control-height) w-full max-w-(--ml-footer-subscribe-control-max) overflow-hidden rounded-md border border-border-strong bg-card p-ml-1 transition-[border-color,box-shadow] duration-(--duration-micro) ease-out focus-within:border-accent focus-within:shadow-(--focus-ring)",children:[jsx("input",{type:"email",name:n,required:true,autoComplete:"email",placeholder:a$1,"aria-label":"Email address",suppressHydrationWarning:true,className:"placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent px-ml-3 text-sm text-primary outline-none transition-colors duration-(--duration-micro) ease-out focus:placeholder:text-muted-foreground/70"}),jsx("button",{type:"submit","aria-label":s,className:"group/submit inline-flex aspect-square h-full items-center justify-center rounded-sm bg-accent text-accent-foreground transition-[background-color,box-shadow,opacity] duration-(--duration-micro) ease-out active:opacity-90 focus-visible:outline-none focus-visible:shadow-(--focus-ring)",children:jsx("span",{"aria-hidden":"true",className:"transition-opacity duration-(--duration-micro) ease-out group-hover/submit:opacity-80",children:"\u2192"})})]})]})}function z(o){return o.external??/^(https?:|mailto:|tel:)/.test(o.href)}function k({size:o="md",brand:a$1,description:n,status:s,localTime:l,columns:f,links:c,subscribe:d,credit:b,meta:_,attribution:h,linkComponent:L,className:R,ref:P,...C}){let E=`\xA9 ${new Date().getFullYear()}`,v=f??(c?.length?[{title:"Links",links:c}]:[]),x=d===void 0?jsx(p,{}):d,F=_??b??E,g=v.length+(x?1:0);return jsx("footer",{ref:P,"data-slot":"footer","data-size":o,className:a("ml-footer border-border bg-background w-full border-t text-body",R),...C,children:jsxs("div",{className:"ml-footer__container mx-auto w-full",children:[jsxs("div",{className:"ml-footer__layout grid",children:[jsxs("div",{className:"ml-footer__intro flex flex-col",children:[a$1?jsx("div",{className:"ml-footer__brand font-script leading-none font-bold text-primary",children:a$1}):null,n?jsx("p",{className:"ml-footer__description text-body",children:n}):null,s||l?jsxs("div",{className:"flex flex-wrap items-center gap-x-ml-5 gap-y-ml-3",children:[s,l?jsx("span",{className:"text-muted-foreground font-mono text-xs tracking-(--ml-footer-local-time-tracking)",children:l}):null]}):null]}),jsxs("div",{className:a("ml-footer__columns grid min-w-0",g<=1&&"grid-cols-1",g===2&&"grid-cols-2",g>=3&&"grid-cols-2 md:grid-cols-3"),children:[v.map((m,$)=>jsxs("nav",{"aria-label":typeof m.title=="string"?m.title:void 0,className:"flex min-w-0 flex-col gap-ml-3",children:[jsx("span",{className:"ml-eyebrow block",children:m.title}),m.links.map((i,H)=>{let y=z(i),O=i.as??L??"a";return jsxs(O,{href:i.href,target:i.target??(y?"_blank":void 0),rel:i.rel??(y?"noopener noreferrer":void 0),className:"ml-footer__link group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)",children:[jsx("span",{children:i.label}),y?jsx("span",{className:"text-muted-foreground ml-ml-1 transition-[color,opacity] duration-(--duration-micro) ease-out group-hover/link:text-primary","aria-hidden":"true",children:"\u2197"}):null]},`${i.href}-${H}`)})]},`${String(m.title)}-${$}`)),x?jsxs("div",{className:"col-span-2 hidden min-w-0 flex-col gap-ml-3 md:col-span-1 md:flex",children:[jsx("span",{className:"ml-eyebrow block",children:"Subscribe"}),x]}):null]})]}),jsxs("div",{className:"ml-footer__meta text-muted-foreground border-border flex flex-col gap-ml-3 border-t font-mono leading-relaxed md:flex-row md:items-start md:justify-between",children:[F?jsx("p",{className:"max-w-(--ml-footer-meta-copy-max)",children:F}):null,h?jsx("p",{children:h}):null]})]})})}function S({children:o="Open to work",className:a$1,ref:n,...s}){return jsxs("span",{ref:n,className:a("inline-flex items-center gap-ml-2 rounded-full border border-accent bg-accent-soft px-ml-3 py-ml-1 font-mono text-(length:--ml-footer-status-text) font-semibold tracking-(--ml-footer-status-tracking) text-accent uppercase transition-[background-color,border-color] duration-(--duration-micro) ease-out sm:text-(length:--ml-footer-status-text-tablet)",a$1),...s,children:[jsx("span",{className:"size-ml-1-5 shrink-0 rounded-full bg-accent"}),o]})}var ne=Object.assign(k,{displayName:"Footer",Status:S,Subscribe:p,Link:w});export{ne as a};//# sourceMappingURL=chunk-WXVMLI2K.js.map
2
+ //# sourceMappingURL=chunk-WXVMLI2K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/footer/link.tsx","../src/components/footer/subscribe.tsx","../src/components/footer/root.tsx","../src/components/footer/status.tsx","../src/components/footer/index.ts"],"names":["FooterLink","asChild","className","ref","props","jsx","Slot","cn","FooterSubscribeForm","description","placeholder","inputName","submitLabel","action","method","jsxs","isExternalHref","link","FooterRoot","size","brand","status","localTime","columns","links","subscribe","credit","meta","attribution","linkComponent","defaultMeta","resolvedColumns","subscribeNode","resolvedMeta","columnCount","column","index","linkIndex","external","LinkComp","FooterStatus","children","Footer"],"mappings":"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","file":"chunk-WXVMLI2K.js","sourcesContent":["import type * as React from \"react\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"../../lib/utils\"\nimport type { FooterLinkProps } from \"./types\"\n\nexport function FooterLink({\n\tasChild,\n\tclassName,\n\tref,\n\t...props\n}: FooterLinkProps): React.ReactElement {\n\tconst Comp = asChild ? Slot : \"a\"\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport type { FooterSubscribeFormProps } from \"./types\"\n\nexport function FooterSubscribeForm({\n\tdescription = \"One essay a month. No tracking, no nonsense.\",\n\tplaceholder = \"you@studio.com\",\n\tinputName = \"email\",\n\tsubmitLabel = \"Subscribe\",\n\taction = \"#\",\n\tmethod = \"post\",\n\tclassName,\n\tref,\n\t...props\n}: FooterSubscribeFormProps): React.ReactElement {\n\treturn (\n\t\t<form\n\t\t\tref={ref}\n\t\t\taction={action}\n\t\t\tmethod={method}\n\t\t\tclassName={cn(\"flex min-w-0 flex-col gap-ml-3\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<p className=\"max-w-(--ml-footer-subscribe-copy-max) text-base leading-relaxed text-body\">\n\t\t\t\t{description}\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tsuppressHydrationWarning\n\t\t\t\tclassName=\"flex h-(--ml-footer-subscribe-control-height) w-full max-w-(--ml-footer-subscribe-control-max) overflow-hidden rounded-md border border-border-strong bg-card p-ml-1 transition-[border-color,box-shadow] duration-(--duration-micro) ease-out focus-within:border-accent focus-within:shadow-(--focus-ring)\"\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\tname={inputName}\n\t\t\t\t\trequired\n\t\t\t\t\tautoComplete=\"email\"\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\taria-label=\"Email address\"\n\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\tclassName=\"placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent px-ml-3 text-sm text-primary outline-none transition-colors duration-(--duration-micro) ease-out focus:placeholder:text-muted-foreground/70\"\n\t\t\t\t/>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\taria-label={submitLabel}\n\t\t\t\t\tclassName=\"group/submit inline-flex aspect-square h-full items-center justify-center rounded-sm bg-accent text-accent-foreground transition-[background-color,box-shadow,opacity] duration-(--duration-micro) ease-out active:opacity-90 focus-visible:outline-none focus-visible:shadow-(--focus-ring)\"\n\t\t\t\t>\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"transition-opacity duration-(--duration-micro) ease-out group-hover/submit:opacity-80\"\n\t\t\t\t\t>\n\t\t\t\t\t\t→\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport { FooterSubscribeForm } from \"./subscribe\"\nimport type { FooterLink, FooterProps } from \"./types\"\n\nfunction isExternalHref(link: FooterLink) {\n\treturn link.external ?? /^(https?:|mailto:|tel:)/.test(link.href)\n}\n\nexport function FooterRoot({\n\tsize = \"md\",\n\tbrand,\n\tdescription,\n\tstatus,\n\tlocalTime,\n\tcolumns,\n\tlinks,\n\tsubscribe,\n\tcredit,\n\tmeta,\n\tattribution,\n\tlinkComponent,\n\tclassName,\n\tref,\n\t...props\n}: FooterProps): React.ReactElement {\n\tconst currentYear = new Date().getFullYear()\n\tconst defaultMeta = `© ${currentYear}`\n\tconst resolvedColumns =\n\t\tcolumns ??\n\t\t(links?.length\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: \"Links\",\n\t\t\t\t\t\tlinks,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: [])\n\tconst subscribeNode =\n\t\tsubscribe === undefined ? <FooterSubscribeForm /> : subscribe\n\tconst resolvedMeta = meta ?? credit ?? defaultMeta\n\tconst columnCount = resolvedColumns.length + (subscribeNode ? 1 : 0)\n\n\treturn (\n\t\t<footer\n\t\t\tref={ref}\n\t\t\tdata-slot=\"footer\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"ml-footer border-border bg-background w-full border-t text-body\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"ml-footer__container mx-auto w-full\">\n\t\t\t\t<div className=\"ml-footer__layout grid\">\n\t\t\t\t\t<div className=\"ml-footer__intro flex flex-col\">\n\t\t\t\t\t\t{brand ? (\n\t\t\t\t\t\t\t<div className=\"ml-footer__brand font-script leading-none font-bold text-primary\">\n\t\t\t\t\t\t\t\t{brand}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{description ? (\n\t\t\t\t\t\t\t<p className=\"ml-footer__description text-body\">{description}</p>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{status || localTime ? (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-x-ml-5 gap-y-ml-3\">\n\t\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t\t\t{localTime ? (\n\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground font-mono text-xs tracking-(--ml-footer-local-time-tracking)\">\n\t\t\t\t\t\t\t\t\t\t{localTime}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"ml-footer__columns grid min-w-0\",\n\t\t\t\t\t\t\tcolumnCount <= 1 && \"grid-cols-1\",\n\t\t\t\t\t\t\tcolumnCount === 2 && \"grid-cols-2\",\n\t\t\t\t\t\t\tcolumnCount >= 3 && \"grid-cols-2 md:grid-cols-3\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedColumns.map((column, index) => (\n\t\t\t\t\t\t\t<nav\n\t\t\t\t\t\t\t\tkey={`${String(column.title)}-${index}`}\n\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\ttypeof column.title === \"string\" ? column.title : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"flex min-w-0 flex-col gap-ml-3\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"ml-eyebrow block\">{column.title}</span>\n\t\t\t\t\t\t\t\t{column.links.map((link, linkIndex) => {\n\t\t\t\t\t\t\t\t\tconst external = isExternalHref(link)\n\t\t\t\t\t\t\t\t\tconst LinkComp = link.as ?? linkComponent ?? \"a\"\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<LinkComp\n\t\t\t\t\t\t\t\t\t\t\tkey={`${link.href}-${linkIndex}`}\n\t\t\t\t\t\t\t\t\t\t\thref={link.href}\n\t\t\t\t\t\t\t\t\t\t\ttarget={link.target ?? (external ? \"_blank\" : undefined)}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tlink.rel ??\n\t\t\t\t\t\t\t\t\t\t\t\t(external ? \"noopener noreferrer\" : undefined)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-footer__link group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span>{link.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t{external ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground ml-ml-1 transition-[color,opacity] duration-(--duration-micro) ease-out group-hover/link:text-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t↗\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t</LinkComp>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{subscribeNode ? (\n\t\t\t\t\t\t\t<div className=\"col-span-2 hidden min-w-0 flex-col gap-ml-3 md:col-span-1 md:flex\">\n\t\t\t\t\t\t\t\t<span className=\"ml-eyebrow block\">Subscribe</span>\n\t\t\t\t\t\t\t\t{subscribeNode}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"ml-footer__meta text-muted-foreground border-border flex flex-col gap-ml-3 border-t font-mono leading-relaxed md:flex-row md:items-start md:justify-between\">\n\t\t\t\t\t{resolvedMeta ? (\n\t\t\t\t\t\t<p className=\"max-w-(--ml-footer-meta-copy-max)\">{resolvedMeta}</p>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{attribution ? <p>{attribution}</p> : null}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</footer>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport type { FooterStatusProps } from \"./types\"\n\nexport function FooterStatus({\n\tchildren = \"Open to work\",\n\tclassName,\n\tref,\n\t...props\n}: FooterStatusProps): React.ReactElement {\n\treturn (\n\t\t<span\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"inline-flex items-center gap-ml-2 rounded-full border border-accent bg-accent-soft px-ml-3 py-ml-1 font-mono text-(length:--ml-footer-status-text) font-semibold tracking-(--ml-footer-status-tracking) text-accent uppercase transition-[background-color,border-color] duration-(--duration-micro) ease-out sm:text-(length:--ml-footer-status-text-tablet)\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"size-ml-1-5 shrink-0 rounded-full bg-accent\" />\n\t\t\t{children}\n\t\t</span>\n\t)\n}\n","/**\n * @module Footer\n * Description for Footer component.\n */\nimport { FooterLink } from \"./link\"\nimport { FooterRoot } from \"./root\"\nimport { FooterStatus } from \"./status\"\nimport { FooterSubscribeForm } from \"./subscribe\"\n\nexport * from \"./types\"\n\nexport const Footer: typeof FooterRoot & {\n\tdisplayName: string\n\tStatus: typeof FooterStatus\n\tSubscribe: typeof FooterSubscribeForm\n\tLink: typeof FooterLink\n} = Object.assign(FooterRoot, {\n\tdisplayName: \"Footer\",\n\tStatus: FooterStatus,\n\tSubscribe: FooterSubscribeForm,\n\tLink: FooterLink,\n})\n"]}
@@ -1,2 +1,2 @@
1
- export{a as Footer}from'../../chunk-COFALEVG.js';import'../../chunk-AACTIVV7.js';//# sourceMappingURL=index.js.map
1
+ export{a as Footer}from'../../chunk-WXVMLI2K.js';import'../../chunk-AACTIVV7.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{a as ThemeSwitcher}from'./chunk-FLUGXF5D.js';export{a as Toast}from'./chunk-7ANXAXP5.js';export{a as Toc}from'./chunk-ZU3HIOBU.js';export{a as Toggle}from'./chunk-QUG36ONS.js';export{b as ResourcesPanel,a as ResourcesPanelRoot}from'./chunk-2T2JZW4Z.js';export{a as SectionHead}from'./chunk-H2CRII7X.js';export{a as SegmentedControl}from'./chunk-ZOPV3BXO.js';export{a as Select}from'./chunk-IVTAW6SX.js';export{a as useBreakpoint}from'./chunk-KGLH6WI6.js';export{a as monolineBreakpoints}from'./chunk-XEB7C557.js';export{a as Skeleton}from'./chunk-7WJF6B6G.js';export{a as Status}from'./chunk-DJT3EVR4.js';export{a as Tag}from'./chunk-B5P3RAN2.js';export{a as Testimonial}from'./chunk-6AEWSPAE.js';export{a as TestimonialGrid}from'./chunk-R2YSVBHS.js';export{c as LinkList,a as LinkListItem,b as LinkListRoot}from'./chunk-5TIKYN5B.js';export{d as MediaFrame,a as MediaFrameCaption,b as MediaFrameMeta,c as MediaFrameRoot}from'./chunk-NDTTLW56.js';export{a as MetaRow}from'./chunk-D3E4G2RE.js';export{a as Metric}from'./chunk-Z7SIB4X6.js';export{a as Navbar}from'./chunk-O43OQHFN.js';export{a as Progress}from'./chunk-3F6Z4CFV.js';export{a as PullQuote}from'./chunk-37JB3ZNS.js';export{a as Rail}from'./chunk-K665XZ3N.js';export{a as CodeBlock}from'./chunk-A2LXX23X.js';export{a as CommandSearch}from'./chunk-V6PUPMAY.js';export{a as Container}from'./chunk-NDHOUIOX.js';export{a as DataList}from'./chunk-GSWZL5C2.js';export{a as EditorialLine}from'./chunk-7SDVYBBO.js';export{a as Eyebrow}from'./chunk-VSATIFOR.js';export{a as Footer}from'./chunk-COFALEVG.js';export{a as Input}from'./chunk-K72EORST.js';export{a as ActionRail}from'./chunk-EWKGYQOX.js';export{a as Avatar}from'./chunk-N37GMCSK.js';export{a as BackLink}from'./chunk-LVMQ3ZM3.js';export{a as Badge}from'./chunk-QGG3J7OW.js';export{a as Button}from'./chunk-JBOP2AJB.js';export{a as Callout}from'./chunk-TSOHITZ7.js';export{l as Card,a as CardAction,b as CardBody,c as CardDescription,d as CardEyebrow,e as CardFooter,f as CardHeader,g as CardImage,h as CardImageCaption,i as CardMeta,j as CardTagList,k as CardTitle}from'./chunk-JCKPCV2H.js';export{a as cn,b as composeRefs}from'./chunk-AACTIVV7.js';//# sourceMappingURL=index.js.map
1
+ export{a as ThemeSwitcher}from'./chunk-FLUGXF5D.js';export{a as Toast}from'./chunk-7ANXAXP5.js';export{a as Toc}from'./chunk-ZU3HIOBU.js';export{a as Toggle}from'./chunk-QUG36ONS.js';export{b as ResourcesPanel,a as ResourcesPanelRoot}from'./chunk-2T2JZW4Z.js';export{a as SectionHead}from'./chunk-H2CRII7X.js';export{a as SegmentedControl}from'./chunk-ZOPV3BXO.js';export{a as Select}from'./chunk-IVTAW6SX.js';export{a as useBreakpoint}from'./chunk-KGLH6WI6.js';export{a as monolineBreakpoints}from'./chunk-XEB7C557.js';export{a as Skeleton}from'./chunk-7WJF6B6G.js';export{a as Status}from'./chunk-DJT3EVR4.js';export{a as Tag}from'./chunk-B5P3RAN2.js';export{a as Testimonial}from'./chunk-6AEWSPAE.js';export{a as TestimonialGrid}from'./chunk-R2YSVBHS.js';export{c as LinkList,a as LinkListItem,b as LinkListRoot}from'./chunk-5TIKYN5B.js';export{d as MediaFrame,a as MediaFrameCaption,b as MediaFrameMeta,c as MediaFrameRoot}from'./chunk-NDTTLW56.js';export{a as MetaRow}from'./chunk-D3E4G2RE.js';export{a as Metric}from'./chunk-Z7SIB4X6.js';export{a as Navbar}from'./chunk-O43OQHFN.js';export{a as Progress}from'./chunk-3F6Z4CFV.js';export{a as PullQuote}from'./chunk-37JB3ZNS.js';export{a as Rail}from'./chunk-K665XZ3N.js';export{a as CodeBlock}from'./chunk-A2LXX23X.js';export{a as CommandSearch}from'./chunk-V6PUPMAY.js';export{a as Container}from'./chunk-NDHOUIOX.js';export{a as DataList}from'./chunk-GSWZL5C2.js';export{a as EditorialLine}from'./chunk-7SDVYBBO.js';export{a as Eyebrow}from'./chunk-VSATIFOR.js';export{a as Footer}from'./chunk-WXVMLI2K.js';export{a as Input}from'./chunk-K72EORST.js';export{a as ActionRail}from'./chunk-EWKGYQOX.js';export{a as Avatar}from'./chunk-N37GMCSK.js';export{a as BackLink}from'./chunk-LVMQ3ZM3.js';export{a as Badge}from'./chunk-QGG3J7OW.js';export{a as Button}from'./chunk-JBOP2AJB.js';export{a as Callout}from'./chunk-TSOHITZ7.js';export{l as Card,a as CardAction,b as CardBody,c as CardDescription,d as CardEyebrow,e as CardFooter,f as CardHeader,g as CardImage,h as CardImageCaption,i as CardMeta,j as CardTagList,k as CardTitle}from'./chunk-JCKPCV2H.js';export{a as cn,b as composeRefs}from'./chunk-AACTIVV7.js';//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/metadata.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "size": "2.7kb"
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chitrank2050/monoline-ui",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "A token-first, responsive React component library and Tailwind CSS v4 design system built from my portfolio's visual language.",
5
5
  "type": "module",
6
6
  "author": {
@@ -8,6 +8,7 @@
8
8
  "email": "chitrank2050@gmail.com",
9
9
  "url": "https://www.chitrankagnihotri.com"
10
10
  },
11
+ "homepage": "https://monolineui.chitrankagnihotri.com/",
11
12
  "repository": {
12
13
  "type": "git",
13
14
  "url": "https://github.com/chitranklabs/monoline-ui"
@@ -28,7 +29,19 @@
28
29
  "button",
29
30
  "toggle",
30
31
  "tag",
31
- "footer"
32
+ "footer",
33
+ "avatar",
34
+ "badge",
35
+ "callout",
36
+ "card",
37
+ "code-block",
38
+ "command-search",
39
+ "input",
40
+ "navbar",
41
+ "select",
42
+ "skeleton",
43
+ "toast",
44
+ "segmented-control"
32
45
  ],
33
46
  "license": "MIT",
34
47
  "publishConfig": {
package/styles/theme.css CHANGED
@@ -66,3 +66,5 @@
66
66
  @import "../components/toast/toast.css";
67
67
  @import "../components/toggle/toggle.css";
68
68
  /* @components-end */
69
+
70
+ @source "..";
package/chunk-COFALEVG.js DELETED
@@ -1,2 +0,0 @@
1
- import {a}from'./chunk-AACTIVV7.js';import {Slot}from'@radix-ui/react-slot';import {jsx,jsxs}from'react/jsx-runtime';function w({asChild:o,className:a$1,ref:n,...s}){return jsx(o?Slot:"a",{ref:n,className:a("group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)",a$1),...s})}function p({description:o="One essay a month. No tracking, no nonsense.",placeholder:a$1="you@studio.com",inputName:n="email",submitLabel:s="Subscribe",action:l="#",method:f="post",className:c,ref:d,...b}){return jsxs("form",{ref:d,action:l,method:f,className:a("flex min-w-0 flex-col gap-ml-3",c),...b,children:[jsx("p",{className:"max-w-(--ml-footer-subscribe-copy-max) text-base leading-relaxed text-body",children:o}),jsxs("div",{className:"flex h-(--ml-footer-subscribe-control-height) w-full max-w-(--ml-footer-subscribe-control-max) overflow-hidden rounded-md border border-border-strong bg-card p-ml-1 transition-[border-color,box-shadow] duration-(--duration-micro) ease-out focus-within:border-accent focus-within:shadow-(--focus-ring)",children:[jsx("input",{type:"email",name:n,required:true,autoComplete:"email",placeholder:a$1,"aria-label":"Email address",className:"placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent px-ml-3 text-sm text-primary outline-none transition-colors duration-(--duration-micro) ease-out focus:placeholder:text-muted-foreground/70"}),jsx("button",{type:"submit","aria-label":s,className:"group/submit inline-flex aspect-square h-full items-center justify-center rounded-sm bg-accent text-accent-foreground transition-[background-color,box-shadow,opacity] duration-(--duration-micro) ease-out active:opacity-90 focus-visible:outline-none focus-visible:shadow-(--focus-ring)",children:jsx("span",{"aria-hidden":"true",className:"transition-opacity duration-(--duration-micro) ease-out group-hover/submit:opacity-80",children:"\u2192"})})]})]})}function M(o){return o.external??/^(https?:|mailto:|tel:)/.test(o.href)}function k({size:o="md",brand:a$1,description:n,status:s,localTime:l,columns:f,links:c,subscribe:d,credit:b,meta:_,attribution:h,linkComponent:L,className:R,ref:P,...C}){let E=`\xA9 ${new Date().getFullYear()}`,v=f??(c?.length?[{title:"Links",links:c}]:[]),x=d===void 0?jsx(p,{}):d,F=_??b??E,g=v.length+(x?1:0);return jsx("footer",{ref:P,"data-slot":"footer","data-size":o,className:a("ml-footer border-border bg-background w-full border-t text-body",R),...C,children:jsxs("div",{className:"ml-footer__container mx-auto w-full",children:[jsxs("div",{className:"ml-footer__layout grid",children:[jsxs("div",{className:"ml-footer__intro flex flex-col",children:[a$1?jsx("div",{className:"ml-footer__brand font-script leading-none font-bold text-primary",children:a$1}):null,n?jsx("p",{className:"ml-footer__description text-body",children:n}):null,s||l?jsxs("div",{className:"flex flex-wrap items-center gap-x-ml-5 gap-y-ml-3",children:[s,l?jsx("span",{className:"text-muted-foreground font-mono text-xs tracking-(--ml-footer-local-time-tracking)",children:l}):null]}):null]}),jsxs("div",{className:a("ml-footer__columns grid min-w-0",g<=1&&"grid-cols-1",g===2&&"grid-cols-2",g>=3&&"grid-cols-2 md:grid-cols-3"),children:[v.map((m,$)=>jsxs("nav",{"aria-label":typeof m.title=="string"?m.title:void 0,className:"flex min-w-0 flex-col gap-ml-3",children:[jsx("span",{className:"ml-eyebrow block",children:m.title}),m.links.map((i,O)=>{let y=M(i),Y=i.as??L??"a";return jsxs(Y,{href:i.href,target:i.target??(y?"_blank":void 0),rel:i.rel??(y?"noopener noreferrer":void 0),className:"ml-footer__link group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)",children:[jsx("span",{children:i.label}),y?jsx("span",{className:"text-muted-foreground ml-ml-1 transition-[color,opacity] duration-(--duration-micro) ease-out group-hover/link:text-primary","aria-hidden":"true",children:"\u2197"}):null]},`${i.href}-${O}`)})]},`${String(m.title)}-${$}`)),x?jsxs("div",{className:"col-span-2 hidden min-w-0 flex-col gap-ml-3 md:col-span-1 md:flex",children:[jsx("span",{className:"ml-eyebrow block",children:"Subscribe"}),x]}):null]})]}),jsxs("div",{className:"ml-footer__meta text-muted-foreground border-border flex flex-col gap-ml-3 border-t font-mono leading-relaxed md:flex-row md:items-start md:justify-between",children:[F?jsx("p",{className:"max-w-(--ml-footer-meta-copy-max)",children:F}):null,h?jsx("p",{children:h}):null]})]})})}function S({children:o="Open to work",className:a$1,ref:n,...s}){return jsxs("span",{ref:n,className:a("inline-flex items-center gap-ml-2 rounded-full border border-accent bg-accent-soft px-ml-3 py-ml-1 font-mono text-(length:--ml-footer-status-text) font-semibold tracking-(--ml-footer-status-tracking) text-accent uppercase transition-[background-color,border-color] duration-(--duration-micro) ease-out sm:text-(length:--ml-footer-status-text-tablet)",a$1),...s,children:[jsx("span",{className:"size-ml-1-5 shrink-0 rounded-full bg-accent"}),o]})}var ne=Object.assign(k,{displayName:"Footer",Status:S,Subscribe:p,Link:w});export{ne as a};//# sourceMappingURL=chunk-COFALEVG.js.map
2
- //# sourceMappingURL=chunk-COFALEVG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/footer/link.tsx","../src/components/footer/subscribe.tsx","../src/components/footer/root.tsx","../src/components/footer/status.tsx","../src/components/footer/index.ts"],"names":["FooterLink","asChild","className","ref","props","jsx","Slot","cn","FooterSubscribeForm","description","placeholder","inputName","submitLabel","action","method","jsxs","isExternalHref","link","FooterRoot","size","brand","status","localTime","columns","links","subscribe","credit","meta","attribution","linkComponent","defaultMeta","resolvedColumns","subscribeNode","resolvedMeta","columnCount","column","index","linkIndex","external","LinkComp","FooterStatus","children","Footer"],"mappings":"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","file":"chunk-COFALEVG.js","sourcesContent":["import type * as React from \"react\"\n\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"../../lib/utils\"\nimport type { FooterLinkProps } from \"./types\"\n\nexport function FooterLink({\n\tasChild,\n\tclassName,\n\tref,\n\t...props\n}: FooterLinkProps): React.ReactElement {\n\tconst Comp = asChild ? Slot : \"a\"\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport type { FooterSubscribeFormProps } from \"./types\"\n\nexport function FooterSubscribeForm({\n\tdescription = \"One essay a month. No tracking, no nonsense.\",\n\tplaceholder = \"you@studio.com\",\n\tinputName = \"email\",\n\tsubmitLabel = \"Subscribe\",\n\taction = \"#\",\n\tmethod = \"post\",\n\tclassName,\n\tref,\n\t...props\n}: FooterSubscribeFormProps): React.ReactElement {\n\treturn (\n\t\t<form\n\t\t\tref={ref}\n\t\t\taction={action}\n\t\t\tmethod={method}\n\t\t\tclassName={cn(\"flex min-w-0 flex-col gap-ml-3\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<p className=\"max-w-(--ml-footer-subscribe-copy-max) text-base leading-relaxed text-body\">\n\t\t\t\t{description}\n\t\t\t</p>\n\t\t\t<div className=\"flex h-(--ml-footer-subscribe-control-height) w-full max-w-(--ml-footer-subscribe-control-max) overflow-hidden rounded-md border border-border-strong bg-card p-ml-1 transition-[border-color,box-shadow] duration-(--duration-micro) ease-out focus-within:border-accent focus-within:shadow-(--focus-ring)\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\tname={inputName}\n\t\t\t\t\trequired\n\t\t\t\t\tautoComplete=\"email\"\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\taria-label=\"Email address\"\n\t\t\t\t\tclassName=\"placeholder:text-muted-foreground min-w-0 flex-1 bg-transparent px-ml-3 text-sm text-primary outline-none transition-colors duration-(--duration-micro) ease-out focus:placeholder:text-muted-foreground/70\"\n\t\t\t\t/>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\taria-label={submitLabel}\n\t\t\t\t\tclassName=\"group/submit inline-flex aspect-square h-full items-center justify-center rounded-sm bg-accent text-accent-foreground transition-[background-color,box-shadow,opacity] duration-(--duration-micro) ease-out active:opacity-90 focus-visible:outline-none focus-visible:shadow-(--focus-ring)\"\n\t\t\t\t>\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName=\"transition-opacity duration-(--duration-micro) ease-out group-hover/submit:opacity-80\"\n\t\t\t\t\t>\n\t\t\t\t\t\t→\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</form>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport { FooterSubscribeForm } from \"./subscribe\"\nimport type { FooterLink, FooterProps } from \"./types\"\n\nfunction isExternalHref(link: FooterLink) {\n\treturn link.external ?? /^(https?:|mailto:|tel:)/.test(link.href)\n}\n\nexport function FooterRoot({\n\tsize = \"md\",\n\tbrand,\n\tdescription,\n\tstatus,\n\tlocalTime,\n\tcolumns,\n\tlinks,\n\tsubscribe,\n\tcredit,\n\tmeta,\n\tattribution,\n\tlinkComponent,\n\tclassName,\n\tref,\n\t...props\n}: FooterProps): React.ReactElement {\n\tconst currentYear = new Date().getFullYear()\n\tconst defaultMeta = `© ${currentYear}`\n\tconst resolvedColumns =\n\t\tcolumns ??\n\t\t(links?.length\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: \"Links\",\n\t\t\t\t\t\tlinks,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: [])\n\tconst subscribeNode =\n\t\tsubscribe === undefined ? <FooterSubscribeForm /> : subscribe\n\tconst resolvedMeta = meta ?? credit ?? defaultMeta\n\tconst columnCount = resolvedColumns.length + (subscribeNode ? 1 : 0)\n\n\treturn (\n\t\t<footer\n\t\t\tref={ref}\n\t\t\tdata-slot=\"footer\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"ml-footer border-border bg-background w-full border-t text-body\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"ml-footer__container mx-auto w-full\">\n\t\t\t\t<div className=\"ml-footer__layout grid\">\n\t\t\t\t\t<div className=\"ml-footer__intro flex flex-col\">\n\t\t\t\t\t\t{brand ? (\n\t\t\t\t\t\t\t<div className=\"ml-footer__brand font-script leading-none font-bold text-primary\">\n\t\t\t\t\t\t\t\t{brand}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{description ? (\n\t\t\t\t\t\t\t<p className=\"ml-footer__description text-body\">{description}</p>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{status || localTime ? (\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center gap-x-ml-5 gap-y-ml-3\">\n\t\t\t\t\t\t\t\t{status}\n\t\t\t\t\t\t\t\t{localTime ? (\n\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground font-mono text-xs tracking-(--ml-footer-local-time-tracking)\">\n\t\t\t\t\t\t\t\t\t\t{localTime}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"ml-footer__columns grid min-w-0\",\n\t\t\t\t\t\t\tcolumnCount <= 1 && \"grid-cols-1\",\n\t\t\t\t\t\t\tcolumnCount === 2 && \"grid-cols-2\",\n\t\t\t\t\t\t\tcolumnCount >= 3 && \"grid-cols-2 md:grid-cols-3\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{resolvedColumns.map((column, index) => (\n\t\t\t\t\t\t\t<nav\n\t\t\t\t\t\t\t\tkey={`${String(column.title)}-${index}`}\n\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\ttypeof column.title === \"string\" ? column.title : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"flex min-w-0 flex-col gap-ml-3\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"ml-eyebrow block\">{column.title}</span>\n\t\t\t\t\t\t\t\t{column.links.map((link, linkIndex) => {\n\t\t\t\t\t\t\t\t\tconst external = isExternalHref(link)\n\t\t\t\t\t\t\t\t\tconst LinkComp = link.as ?? linkComponent ?? \"a\"\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<LinkComp\n\t\t\t\t\t\t\t\t\t\t\tkey={`${link.href}-${linkIndex}`}\n\t\t\t\t\t\t\t\t\t\t\thref={link.href}\n\t\t\t\t\t\t\t\t\t\t\ttarget={link.target ?? (external ? \"_blank\" : undefined)}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tlink.rel ??\n\t\t\t\t\t\t\t\t\t\t\t\t(external ? \"noopener noreferrer\" : undefined)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-footer__link group/link inline-flex w-fit items-center leading-none text-body no-underline transition-[color,box-shadow] duration-(--duration-micro) ease-out hover:text-primary focus-visible:outline-none focus-visible:shadow-(--focus-ring)\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span>{link.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t{external ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground ml-ml-1 transition-[color,opacity] duration-(--duration-micro) ease-out group-hover/link:text-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t↗\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t</LinkComp>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{subscribeNode ? (\n\t\t\t\t\t\t\t<div className=\"col-span-2 hidden min-w-0 flex-col gap-ml-3 md:col-span-1 md:flex\">\n\t\t\t\t\t\t\t\t<span className=\"ml-eyebrow block\">Subscribe</span>\n\t\t\t\t\t\t\t\t{subscribeNode}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"ml-footer__meta text-muted-foreground border-border flex flex-col gap-ml-3 border-t font-mono leading-relaxed md:flex-row md:items-start md:justify-between\">\n\t\t\t\t\t{resolvedMeta ? (\n\t\t\t\t\t\t<p className=\"max-w-(--ml-footer-meta-copy-max)\">{resolvedMeta}</p>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{attribution ? <p>{attribution}</p> : null}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</footer>\n\t)\n}\n","import { cn } from \"../../lib/utils\"\nimport type { FooterStatusProps } from \"./types\"\n\nexport function FooterStatus({\n\tchildren = \"Open to work\",\n\tclassName,\n\tref,\n\t...props\n}: FooterStatusProps): React.ReactElement {\n\treturn (\n\t\t<span\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"inline-flex items-center gap-ml-2 rounded-full border border-accent bg-accent-soft px-ml-3 py-ml-1 font-mono text-(length:--ml-footer-status-text) font-semibold tracking-(--ml-footer-status-tracking) text-accent uppercase transition-[background-color,border-color] duration-(--duration-micro) ease-out sm:text-(length:--ml-footer-status-text-tablet)\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"size-ml-1-5 shrink-0 rounded-full bg-accent\" />\n\t\t\t{children}\n\t\t</span>\n\t)\n}\n","/**\n * @module Footer\n * Description for Footer component.\n */\nimport { FooterLink } from \"./link\"\nimport { FooterRoot } from \"./root\"\nimport { FooterStatus } from \"./status\"\nimport { FooterSubscribeForm } from \"./subscribe\"\n\nexport * from \"./types\"\n\nexport const Footer: typeof FooterRoot & {\n\tdisplayName: string\n\tStatus: typeof FooterStatus\n\tSubscribe: typeof FooterSubscribeForm\n\tLink: typeof FooterLink\n} = Object.assign(FooterRoot, {\n\tdisplayName: \"Footer\",\n\tStatus: FooterStatus,\n\tSubscribe: FooterSubscribeForm,\n\tLink: FooterLink,\n})\n"]}