Small component library for personal use.

<!-- test change -->

## Favicon usage

This package exports the favicon assets and a small helper to make adding
favicon links in consuming apps trivial.

Files available in package:

- `nexus-logo-favicon.svg` — modern SVG favicon
- `favicon.ico` — multi-size ICO (legacy support)

Quick copy approach (recommended):

1. Add and then run these asset copy scripts in the consuming project's package.json:

```json
"scripts": {
	"copy-sage-assets": "cpx \"node_modules/it-data-nexus-ui-library/dist/assets/images/*\" public/assets/it-data-nexus-ui-library/",
	"postinstall": "npm run copy-sage-assets"
}
```

2. Add links in your HTML head:

```html
<link
  rel="icon"
  type="image/svg+xml"
  href="/assets/it-data-nexus-ui-library/nexus-logo-favicon.svg"
/>
<link rel="icon" href="/assets/it-data-nexus-ui-library/favicon.ico" />
```

Or, use the React helper exported by this package:

```tsx
import { FaviconLinks } from "it-data-nexus-ui-library";

function AppHead() {
  return <FaviconLinks />; // adds versioned SVG and ICO links
}
```

### Next.js example

If you use Next.js (Pages or App router), you can copy the built assets into your `public/` folder and render the helper component from the app head so the favicon is present on first render.

1. Copy assets during install/build (example `package.json` scripts in the consuming app):

```json
"scripts": {
  "copy-sage-assets": "cpx \"node_modules/it-data-nexus-ui-library/dist/assets/images/*\" public/assets/it-data-nexus-ui-library/",
  "postinstall": "npm run copy-sage-assets"
}
```

2. Pages router (`pages/_document.tsx`) example — server-side rendered so the links are available immediately:

```tsx
// pages/_document.tsx
import Document, { Html, Head, Main, NextScript } from "next/document";
import { FaviconLinks } from "it-data-nexus-ui-library";

class MyDocument extends Document {
  render() {
    return (
      <Html>
        <Head>
          <FaviconLinks />
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}

export default MyDocument;
```

3. App router (`app/layout.tsx`) example:

```tsx
// app/layout.tsx
import { FaviconLinks } from "it-data-nexus-ui-library";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html>
      <head>
        <FaviconLinks />
      </head>
      <body>{children}</body>
    </html>
  );
}
```

Notes:

- Copying assets into `public/` ensures the files are served as static assets (no runtime JS required) and avoids a flash-of-default-favicon.
- The `FaviconLinks` helper uses versioned URLs by default to help cache-busting when you publish a new library version.
