sage-nexus-ui 1.3.6 → 1.3.7

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 @@
1
+ var a="assets/images/favicon.ico";export{a as default};
@@ -0,0 +1 @@
1
+ import o from"./nexus-logo-favicon.svg.mjs";import m from"./favicon.ico.mjs";import{SAGE_NEXUS_UI_VERSION as r}from"../../generated/version.mjs";const i=r,s=(r=!0)=>({svg:r?`${o}?v=${i}`:o,ico:r?`${m}?v=${i}`:m});export{s as getFaviconUrls};
@@ -0,0 +1 @@
1
+ import{jsxs as r,Fragment as e,jsx as s}from"react/jsx-runtime";import o from"../assets/images/nexus-logo-favicon.svg.mjs";import i from"../assets/images/favicon.ico.mjs";import{SAGE_NEXUS_UI_VERSION as t}from"../generated/version.mjs";const m=t,n=({versioned:t=!0,svgAttrs:n,icoAttrs:c})=>{const a=t?`${i}?v=${m}`:i;return r(e,{children:[s("link",{rel:"icon",type:"image/svg+xml",href:t?`${o}?v=${m}`:o,...n}),s("link",{rel:"icon",href:a,...c})]})};export{n as FaviconLinks};
@@ -0,0 +1 @@
1
+ const o="1.3.7";export{o as SAGE_NEXUS_UI_VERSION};
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ import { SxProps as SxProps$1 } from '@mui/system';
9
9
  import { Theme as Theme$1, SxProps as SxProps$2 } from '@mui/material/styles';
10
10
  export { default as nexusLogoNode } from './assets/images/nexus-logo-node.svg';
11
11
  export { default as nexusLogoFavicon } from './assets/images/nexus-logo-favicon.svg';
12
+ export { default as nexusLogoIco } from './assets/images/favicon.ico';
12
13
 
13
14
  declare const getFiscalPeriod: (date: Date) => {
14
15
  fiscalYear: number;
@@ -378,6 +379,21 @@ interface TooltipProps extends Omit<TooltipProps$1, "title"> {
378
379
  }
379
380
  declare const Tooltip: ({ title, children, ...rest }: TooltipProps) => react_jsx_runtime.JSX.Element;
380
381
 
382
+ declare const getFaviconUrls: (versioned?: boolean) => {
383
+ svg: string;
384
+ ico: string;
385
+ };
386
+
387
+ type FaviconLinksProps = {
388
+ /** Append version query param for cache-busting (default true) */
389
+ versioned?: boolean;
390
+ /** Optional additional attributes to add to the svg link */
391
+ svgAttrs?: react__default.LinkHTMLAttributes<HTMLLinkElement>;
392
+ /** Optional additional attributes to add to the ico link */
393
+ icoAttrs?: react__default.LinkHTMLAttributes<HTMLLinkElement>;
394
+ };
395
+ declare const FaviconLinks: react__default.FC<FaviconLinksProps>;
396
+
381
397
  type ThemeMode = "light" | "dark";
382
398
  type ModeTokens = {
383
399
  background: {
@@ -483,5 +499,5 @@ declare const getGradientBorderStyles: (theme: Theme$1, options?: GradientBorder
483
499
  declare const leftPipe: SxProps$2<Theme$1>;
484
500
  declare const expandableText: (isExpanded: boolean) => SxProps$2<Theme$1>;
485
501
 
486
- export { AccordionGroup, AccordionGroupItem, AccordionSingle, ActionBar, ActionBarTitle, AiButton, AiCard, AiGlassCard, AiGlassPaper, AiPaper, Body1, Body2, Box, ButtonBase, Caption, Card, CheckboxGroup, Chip, Collapse, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, GlassCard, GlassPaper, GlassPaperAsync, GreenWaveBackground, H1, H2, H3, H4, IconButton, LoadingSpinnerNexus, LocationMultiSelect, LogoOptions, MuiAppThemeProvider, NexusDataGrid, NexusHome, NexusLogo, Paper, PrimaryButton, PrimaryButtonLink, RagChip, RagDot, SearchInput, SecondaryButton, SecondaryButtonLink, SideBlade, Skeleton, SkillChip, Stack, StatusChip, Tab, Tabs, TextField, ThemeModeProvider, ThemeToggle, Tooltip, colours, createSageTheme, expandableText, fontSageHeadline, fontSageText, fontSageUI, formatDate, getFiscalPeriod, getGradientBorderStyles, getModeTokens, gradients, leftPipe, useThemeMode, useTokens };
502
+ export { AccordionGroup, AccordionGroupItem, AccordionSingle, ActionBar, ActionBarTitle, AiButton, AiCard, AiGlassCard, AiGlassPaper, AiPaper, Body1, Body2, Box, ButtonBase, Caption, Card, CheckboxGroup, Chip, Collapse, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, FaviconLinks, GlassCard, GlassPaper, GlassPaperAsync, GreenWaveBackground, H1, H2, H3, H4, IconButton, LoadingSpinnerNexus, LocationMultiSelect, LogoOptions, MuiAppThemeProvider, NexusDataGrid, NexusHome, NexusLogo, Paper, PrimaryButton, PrimaryButtonLink, RagChip, RagDot, SearchInput, SecondaryButton, SecondaryButtonLink, SideBlade, Skeleton, SkillChip, Stack, StatusChip, Tab, Tabs, TextField, ThemeModeProvider, ThemeToggle, Tooltip, colours, createSageTheme, expandableText, fontSageHeadline, fontSageText, fontSageUI, formatDate, getFaviconUrls, getFiscalPeriod, getGradientBorderStyles, getModeTokens, gradients, leftPipe, useThemeMode, useTokens };
487
503
  export type { AccordionGroupItemProps, AccordionGroupProps, AccordionSingleProps, AiButtonProps, AiCardProps, AiGlassCardProps, AiGlassPaperProps, AiPaperProps, CardProps, CardTrend, GlassCardProps, GlassPaperAsyncProps, GlassPaperProps, GradientBorderOptions, GreenWaveBackgroundProps, IconButtonProps, LoadingSpinnerNexusProps, ModeTokens, PrimaryButtonLinkProps, PrimaryButtonProps, SecondaryButtonLinkProps, SecondaryButtonProps, SideBladeProps, SkeletonProps, ThemeMode, TooltipProps };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{formatDate,getFiscalPeriod}from"./components/DateFormats.mjs";export{ActionBarTitle,Body1,Body2,Caption,H1,H2,H3,H4}from"./components/Typography.mjs";export{ActionBar}from"./components/ActionBar.mjs";export{AccordionGroup,AccordionGroupItem}from"./components/AccordionGroup.mjs";export{AccordionSingle}from"./components/AccordionSingle.mjs";export{AiButton}from"./components/AiButton.mjs";export{AiCard}from"./components/AiCard.mjs";export{AiGlassCard}from"./components/AiGlassCard.mjs";export{AiPaper}from"./components/AiPaper.mjs";export{AiGlassPaper}from"./components/AiGlassPaper.mjs";export{Box}from"./components/Box.mjs";export{Collapse}from"./components/Collapse.mjs";export{NexusDataGrid}from"./components/NexusDataGrid.mjs";export{ButtonBase}from"./components/ButtonBase.mjs";export{Card}from"./components/Card.mjs";export{CheckboxGroup}from"./components/CheckboxGroup.mjs";export{Chip}from"./components/Chip.mjs";export{Dialog,DialogActions,DialogContent,DialogContentText,DialogTitle}from"./components/Dialog.mjs";export{Divider}from"./components/Divider.mjs";export{GlassCard}from"./components/GlassCard.mjs";export{GlassPaper}from"./components/GlassPaper.mjs";export{GlassPaperAsync}from"./components/GlassPaperAsync.mjs";export{GreenWaveBackground}from"./components/GreenWaveBackground.mjs";export{IconButton}from"./components/IconButton.mjs";export{LoadingSpinnerNexus}from"./components/LoadingSpinnerNexus.mjs";export{LocationMultiSelect}from"./components/LocationMultiSelect.mjs";export{LogoOptions}from"./components/LogoOptions/index.mjs";export{NexusHome}from"./components/NexusHome.mjs";export{default as NexusLogo}from"./components/NexusLogo.mjs";export{Paper}from"./components/Paper.mjs";export{PrimaryButton}from"./components/PrimaryButton.mjs";export{PrimaryButtonLink}from"./components/PrimaryButtonLink.mjs";export{SecondaryButton}from"./components/SecondaryButton.mjs";export{RagDot}from"./components/RagDot.mjs";export{RagChip}from"./components/RagChip.mjs";export{SecondaryButtonLink}from"./components/SecondaryButtonLink.mjs";export{SearchInput}from"./components/SearchInput.mjs";export{SideBlade}from"./components/SideBlade.mjs";export{Skeleton}from"./components/Skeleton.mjs";export{SkillChip}from"./components/SkillChip.mjs";export{Stack}from"./components/Stack.mjs";export{StatusChip}from"./components/StatusChip.mjs";export{Tab}from"./components/Tab.mjs";export{Tabs}from"./components/Tabs.mjs";export{TextField}from"./components/TextField.mjs";export{ThemeToggle}from"./components/ThemeToggle.mjs";export{Tooltip}from"./components/Tooltip.mjs";export{default as nexusLogoNode}from"./assets/images/nexus-logo-node.svg.mjs";export{default as nexusLogoFavicon}from"./assets/images/nexus-logo-favicon.svg.mjs";export{createSageTheme}from"./theme/sageTheme.mjs";export{colours,fontSageHeadline,fontSageText,fontSageUI,getModeTokens,gradients}from"./theme/tokens.mjs";export{useTokens}from"./theme/useTokens.mjs";export{default as MuiAppThemeProvider}from"./theme/MuiAppThemeProvider.mjs";export{ThemeModeProvider,useThemeMode}from"./theme/ThemeContext.mjs";export{alpha,useMediaQuery,useTheme}from"@mui/material";export{expandableText,getGradientBorderStyles,leftPipe}from"./theme/sxHelpers.mjs";
1
+ export{formatDate,getFiscalPeriod}from"./components/DateFormats.mjs";export{ActionBarTitle,Body1,Body2,Caption,H1,H2,H3,H4}from"./components/Typography.mjs";export{ActionBar}from"./components/ActionBar.mjs";export{AccordionGroup,AccordionGroupItem}from"./components/AccordionGroup.mjs";export{AccordionSingle}from"./components/AccordionSingle.mjs";export{AiButton}from"./components/AiButton.mjs";export{AiCard}from"./components/AiCard.mjs";export{AiGlassCard}from"./components/AiGlassCard.mjs";export{AiPaper}from"./components/AiPaper.mjs";export{AiGlassPaper}from"./components/AiGlassPaper.mjs";export{Box}from"./components/Box.mjs";export{Collapse}from"./components/Collapse.mjs";export{NexusDataGrid}from"./components/NexusDataGrid.mjs";export{ButtonBase}from"./components/ButtonBase.mjs";export{Card}from"./components/Card.mjs";export{CheckboxGroup}from"./components/CheckboxGroup.mjs";export{Chip}from"./components/Chip.mjs";export{Dialog,DialogActions,DialogContent,DialogContentText,DialogTitle}from"./components/Dialog.mjs";export{Divider}from"./components/Divider.mjs";export{GlassCard}from"./components/GlassCard.mjs";export{GlassPaper}from"./components/GlassPaper.mjs";export{GlassPaperAsync}from"./components/GlassPaperAsync.mjs";export{GreenWaveBackground}from"./components/GreenWaveBackground.mjs";export{IconButton}from"./components/IconButton.mjs";export{LoadingSpinnerNexus}from"./components/LoadingSpinnerNexus.mjs";export{LocationMultiSelect}from"./components/LocationMultiSelect.mjs";export{LogoOptions}from"./components/LogoOptions/index.mjs";export{NexusHome}from"./components/NexusHome.mjs";export{default as NexusLogo}from"./components/NexusLogo.mjs";export{Paper}from"./components/Paper.mjs";export{PrimaryButton}from"./components/PrimaryButton.mjs";export{PrimaryButtonLink}from"./components/PrimaryButtonLink.mjs";export{SecondaryButton}from"./components/SecondaryButton.mjs";export{RagDot}from"./components/RagDot.mjs";export{RagChip}from"./components/RagChip.mjs";export{SecondaryButtonLink}from"./components/SecondaryButtonLink.mjs";export{SearchInput}from"./components/SearchInput.mjs";export{SideBlade}from"./components/SideBlade.mjs";export{Skeleton}from"./components/Skeleton.mjs";export{SkillChip}from"./components/SkillChip.mjs";export{Stack}from"./components/Stack.mjs";export{StatusChip}from"./components/StatusChip.mjs";export{Tab}from"./components/Tab.mjs";export{Tabs}from"./components/Tabs.mjs";export{TextField}from"./components/TextField.mjs";export{ThemeToggle}from"./components/ThemeToggle.mjs";export{Tooltip}from"./components/Tooltip.mjs";export{default as nexusLogoNode}from"./assets/images/nexus-logo-node.svg.mjs";export{default as nexusLogoFavicon}from"./assets/images/nexus-logo-favicon.svg.mjs";export{default as nexusLogoIco}from"./assets/images/favicon.ico.mjs";export{getFaviconUrls}from"./assets/images/urls.mjs";export{FaviconLinks}from"./components/FaviconLinks.mjs";export{createSageTheme}from"./theme/sageTheme.mjs";export{colours,fontSageHeadline,fontSageText,fontSageUI,getModeTokens,gradients}from"./theme/tokens.mjs";export{useTokens}from"./theme/useTokens.mjs";export{default as MuiAppThemeProvider}from"./theme/MuiAppThemeProvider.mjs";export{ThemeModeProvider,useThemeMode}from"./theme/ThemeContext.mjs";export{alpha,useMediaQuery,useTheme}from"@mui/material";export{expandableText,getGradientBorderStyles,leftPipe}from"./theme/sxHelpers.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sage-nexus-ui",
3
- "version": "1.3.6",
3
+ "version": "1.3.7",
4
4
  "description": "Nexus core components",
5
5
  "license": "ISC",
6
6
  "author": "emsmart-sage",
@@ -23,6 +23,7 @@
23
23
  ],
24
24
  "sideEffects": false,
25
25
  "scripts": {
26
+ "prebuild": "node scripts/write-version.mjs",
26
27
  "build": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\" && rollup -c",
27
28
  "build-storybook": "storybook build",
28
29
  "generate-favicon": "node scripts/generate-favicon.mjs",
@@ -54,6 +55,7 @@
54
55
  "@mui/material": "^9.0.1",
55
56
  "@mui/x-data-grid": "^9.0.0",
56
57
  "@rollup/plugin-alias": "^6.0.0",
58
+ "@rollup/plugin-json": "^5.0.0",
57
59
  "@rollup/plugin-commonjs": "^29.0.2",
58
60
  "@rollup/plugin-node-resolve": "^16.0.3",
59
61
  "@rollup/plugin-terser": "^1.0.0",
package/readme.md CHANGED
@@ -1 +1,109 @@
1
1
  Small component library for personal use.
2
+
3
+ ## Favicon usage
4
+
5
+ This package exports the favicon assets and a small helper to make adding
6
+ favicon links in consuming apps trivial.
7
+
8
+ Files available in package:
9
+
10
+ - `nexus-logo-favicon.svg` — modern SVG favicon
11
+ - `favicon.ico` — multi-size ICO (legacy support)
12
+
13
+ Quick copy approach (recommended):
14
+
15
+ 1. Add and then run these asset copy scripts in the consuming project's package.json:
16
+
17
+ ```json
18
+ "scripts": {
19
+ "copy-sage-assets": "cpx \"node_modules/sage-nexus-ui/dist/assets/images/*\" public/assets/sage-nexus-ui/",
20
+ "postinstall": "npm run copy-sage-assets"
21
+ }
22
+ ```
23
+
24
+ 2. Add links in your HTML head:
25
+
26
+ ```html
27
+ <link
28
+ rel="icon"
29
+ type="image/svg+xml"
30
+ href="/assets/sage-nexus-ui/nexus-logo-favicon.svg"
31
+ />
32
+ <link rel="icon" href="/assets/sage-nexus-ui/favicon.ico" />
33
+ ```
34
+
35
+ Or, use the React helper exported by this package:
36
+
37
+ ```tsx
38
+ import { FaviconLinks } from "sage-nexus-ui";
39
+
40
+ function AppHead() {
41
+ return <FaviconLinks />; // adds versioned SVG and ICO links
42
+ }
43
+ ```
44
+
45
+ ### Next.js example
46
+
47
+ 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.
48
+
49
+ 1. Copy assets during install/build (example `package.json` scripts in the consuming app):
50
+
51
+ ```json
52
+ "scripts": {
53
+ "copy-sage-assets": "cpx \"node_modules/sage-nexus-ui/dist/assets/images/*\" public/assets/sage-nexus-ui/",
54
+ "postinstall": "npm run copy-sage-assets"
55
+ }
56
+ ```
57
+
58
+ 2. Pages router (`pages/_document.tsx`) example — server-side rendered so the links are available immediately:
59
+
60
+ ```tsx
61
+ // pages/_document.tsx
62
+ import Document, { Html, Head, Main, NextScript } from "next/document";
63
+ import { FaviconLinks } from "sage-nexus-ui";
64
+
65
+ class MyDocument extends Document {
66
+ render() {
67
+ return (
68
+ <Html>
69
+ <Head>
70
+ <FaviconLinks />
71
+ </Head>
72
+ <body>
73
+ <Main />
74
+ <NextScript />
75
+ </body>
76
+ </Html>
77
+ );
78
+ }
79
+ }
80
+
81
+ export default MyDocument;
82
+ ```
83
+
84
+ 3. App router (`app/layout.tsx`) example:
85
+
86
+ ```tsx
87
+ // app/layout.tsx
88
+ import { FaviconLinks } from "sage-nexus-ui";
89
+
90
+ export default function RootLayout({
91
+ children,
92
+ }: {
93
+ children: React.ReactNode;
94
+ }) {
95
+ return (
96
+ <html>
97
+ <head>
98
+ <FaviconLinks />
99
+ </head>
100
+ <body>{children}</body>
101
+ </html>
102
+ );
103
+ }
104
+ ```
105
+
106
+ Notes:
107
+
108
+ - Copying assets into `public/` ensures the files are served as static assets (no runtime JS required) and avoids a flash-of-default-favicon.
109
+ - The `FaviconLinks` helper uses versioned URLs by default to help cache-busting when you publish a new library version.