it-data-nexus-ui-library 1.0.1 → 1.0.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/dist/components/NexusBarChart.mjs +1 -1
- package/dist/components/NexusLineChart.mjs +1 -1
- package/dist/components/NexusPieChart.mjs +1 -1
- package/dist/generated/version.mjs +1 -1
- package/package.json +115 -115
- package/readme.md +111 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useId as r}from"react";import{useTheme as s,alpha as e}from"@mui/material/styles";import{getChartColours as i}from"../theme/chartColours.mjs";import{BarChart as p}from"../node_modules/@mui/x-charts/BarChart/BarChart.mjs";function l({slotProps:l,slots:a,...m}){const c=s(),d=i(c.palette.mode),
|
|
1
|
+
import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useId as r}from"react";import{useTheme as s,alpha as e}from"@mui/material/styles";import{getChartColours as i}from"../theme/chartColours.mjs";import{BarChart as p}from"../node_modules/@mui/x-charts/BarChart/BarChart.mjs";function l({slotProps:l,slots:a,...m}){const c=s(),d=i(c.palette.mode),n=r().replace(/:/g,""),f="horizontal"===m.layout,h=d.map((o,t)=>({id:`${n}bg${t}`,color:o}));return o(p,{colors:h.map(({id:o})=>`url(#${o})`),...m,grid:{vertical:!0,horizontal:!0},slots:a,slotProps:{...l,tooltip:{popperOptions:{strategy:"fixed"},sx:{zIndex:1300},container:()=>document.body,...l?.tooltip}},children:o("defs",{children:h.map(({id:r,color:s})=>t("linearGradient",f?{id:r,x1:"0",y1:"0",x2:"1",y2:"0",children:[o("stop",{offset:"0%",stopColor:e(s,.15)}),o("stop",{offset:"100%",stopColor:s,stopOpacity:1})]}:{id:r,x1:"0",y1:"0",x2:"0",y2:"1",children:[o("stop",{offset:"0%",stopColor:s,stopOpacity:1}),o("stop",{offset:"100%",stopColor:e(s,.15)})]},r))})})}export{l as NexusBarChart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useId as r,useRef as o,useMemo as s}from"react";import{useTheme as i}from"@mui/material/styles";import{getChartColours as a}from"../theme/chartColours.mjs";import{AnimatedArea as n}from"../node_modules/@mui/x-charts/LineChart/AnimatedArea.mjs";import{LineChart as p}from"../node_modules/@mui/x-charts/LineChart/LineChart.mjs";function m({sx:m,xAxis:l,grid:d,series:c=[],slots:f,slotProps:x,children:h,...u}){const g=i(),y=a(g.palette.mode),C=r().replace(/:/g,""),w=l?.map(t=>({scaleType:"point",...t})),A=c.map((t,e)=>t.area&&!t.id?{...t,id:`${C}s${e}`}:t),j=new Map(A.map((t,e)=>({s:t,i:e})).filter(({s:t})=>t.area).map(({s:t,i:e})=>[t.id,`${C}g${e}`])),S=o(j);S.current=j;const $=s(()=>function(e){const r=e.ownerState?.seriesId,o=r?S.current.get(r):void 0;return t(n,{...e,ownerState:o?{...e.ownerState,gradientId:o}:e.ownerState})},[C]);return e(p,{colors:y,xAxis:w,grid:d??{horizontal:!0,vertical:!0},series:A,slots:{area:$,...f},slotProps:{...x,tooltip:{popperOptions:{strategy:"fixed"},sx:{zIndex:1300},...x?.tooltip}},sx:m,...u,children:[j.size>0&&t("defs",{children:Array.from(j.entries()).map(([,r],o)=>e("linearGradient",{id:r,x1:"0",y1:"0",x2:"0",y2:"1",children:[t("stop",{offset:"0%",stopColor:y[o%y.length],stopOpacity:.4}),t("stop",{offset:"100%",stopColor:y[o%y.length],stopOpacity:0})]},r))}),h]})}export{m as NexusLineChart};
|
|
1
|
+
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useId as r,useRef as o,useMemo as s}from"react";import{useTheme as i}from"@mui/material/styles";import{getChartColours as a}from"../theme/chartColours.mjs";import{AnimatedArea as n}from"../node_modules/@mui/x-charts/LineChart/AnimatedArea.mjs";import{LineChart as p}from"../node_modules/@mui/x-charts/LineChart/LineChart.mjs";function m({sx:m,xAxis:l,grid:d,series:c=[],slots:f,slotProps:x,children:h,...u}){const g=i(),y=a(g.palette.mode),C=r().replace(/:/g,""),w=l?.map(t=>({scaleType:"point",...t})),A=c.map((t,e)=>t.area&&!t.id?{...t,id:`${C}s${e}`}:t),j=new Map(A.map((t,e)=>({s:t,i:e})).filter(({s:t})=>t.area).map(({s:t,i:e})=>[t.id,`${C}g${e}`])),S=o(j);S.current=j;const $=s(()=>function(e){const r=e.ownerState?.seriesId,o=r?S.current.get(r):void 0;return t(n,{...e,ownerState:o?{...e.ownerState,gradientId:o}:e.ownerState})},[C]);return e(p,{colors:y,xAxis:w,grid:d??{horizontal:!0,vertical:!0},series:A,slots:{area:$,...f},slotProps:{...x,tooltip:{popperOptions:{strategy:"fixed"},sx:{zIndex:1300},container:()=>document.body,...x?.tooltip}},sx:m,...u,children:[j.size>0&&t("defs",{children:Array.from(j.entries()).map(([,r],o)=>e("linearGradient",{id:r,x1:"0",y1:"0",x2:"0",y2:"1",children:[t("stop",{offset:"0%",stopColor:y[o%y.length],stopOpacity:.4}),t("stop",{offset:"100%",stopColor:y[o%y.length],stopOpacity:0})]},r))}),h]})}export{m as NexusLineChart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as r}from"react/jsx-runtime";import{useId as t,useRef as e}from"react";import{useTheme as
|
|
1
|
+
import{jsx as o,jsxs as r}from"react/jsx-runtime";import{useId as t,useRef as e}from"react";import{useTheme as i,alpha as s}from"@mui/material/styles";import{getChartColours as c}from"../theme/chartColours.mjs";import{PieArc as p}from"../node_modules/@mui/x-charts/PieChart/PieArc.mjs";import{PieChart as l}from"../node_modules/@mui/x-charts/PieChart/PieChart.mjs";function m({slotProps:m,slots:n,...a}){const d=i(),u=c(d.palette.mode),f=t().replace(/:/g,""),h=u.map((o,r)=>({id:`${f}pg${r}`,color:o})),x=new Map(h.map(({id:o,color:r})=>[r,o])),y=e(x);y.current=x;const C=e(function(r){const t=r.color?y.current.get(r.color):void 0;return o(p,{...r,color:t?`url(#${t})`:r.color})}).current;return o(l,{colors:u,...a,slots:{pieArc:C,...n},slotProps:{...m,tooltip:{popperOptions:{strategy:"fixed"},sx:{zIndex:1300},container:()=>document.body,...m?.tooltip}},children:o("defs",{children:h.map(({id:t,color:e})=>r("linearGradient",{id:t,x1:"0",y1:"0",x2:"0",y2:"1",children:[o("stop",{offset:"0%",stopColor:s(e,.15)}),o("stop",{offset:"100%",stopColor:e,stopOpacity:1})]},t))})})}export{m as NexusPieChart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const o="1.0.
|
|
1
|
+
const o="1.0.2";export{o as SAGE_NEXUS_UI_VERSION};
|
package/package.json
CHANGED
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "it-data-nexus-ui-library",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Nexus core components",
|
|
5
|
-
"license": "ISC",
|
|
6
|
-
"author": "emsmart-sage",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"main": "dist/index.mjs",
|
|
9
|
-
"module": "dist/index.mjs",
|
|
10
|
-
"types": "dist/index.d.ts",
|
|
11
|
-
"exports": {
|
|
12
|
-
".": {
|
|
13
|
-
"import": "./dist/index.mjs",
|
|
14
|
-
"types": "./dist/index.d.ts"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"engines": {
|
|
18
|
-
"node": ">=18.18.0",
|
|
19
|
-
"npm": ">=9"
|
|
20
|
-
},
|
|
21
|
-
"files": [
|
|
22
|
-
"dist"
|
|
23
|
-
],
|
|
24
|
-
"sideEffects": false,
|
|
25
|
-
"scripts": {
|
|
26
|
-
"prebuild": "node scripts/write-version.mjs",
|
|
27
|
-
"build": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\" && rollup -c",
|
|
28
|
-
"build-storybook": "storybook build",
|
|
29
|
-
"generate-favicon": "node scripts/generate-favicon.mjs",
|
|
30
|
-
"lint": "eslint \"src/**/*.{ts,tsx,js,jsx}\"",
|
|
31
|
-
"prepublishOnly": "npm run lint && npm run build",
|
|
32
|
-
"storybook": "storybook dev -p 6006",
|
|
33
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
34
|
-
},
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"@mui/x-charts": "^9.4.0",
|
|
37
|
-
"@radix-ui/react-popover": "^1.1.15",
|
|
38
|
-
"react-day-picker": "^9.13.2",
|
|
39
|
-
"react-markdown": "^10.1.0",
|
|
40
|
-
"remark-gfm": "^4.0.1"
|
|
41
|
-
},
|
|
42
|
-
"peerDependencies": {
|
|
43
|
-
"@emotion/react": "^11.14.0",
|
|
44
|
-
"@emotion/styled": "^11.14.1",
|
|
45
|
-
"@mui/icons-material": "^7 || ^8 || ^9",
|
|
46
|
-
"@mui/material": "^7 || ^8 || ^9",
|
|
47
|
-
"@mui/x-data-grid": "^7 || ^8 || ^9",
|
|
48
|
-
"@mui/x-date-pickers": "^7 || ^8 || ^9",
|
|
49
|
-
"date-fns": "^3 || ^4",
|
|
50
|
-
"react": "^18 || ^19",
|
|
51
|
-
"react-dom": "^18 || ^19"
|
|
52
|
-
},
|
|
53
|
-
"peerDependenciesMeta": {
|
|
54
|
-
"@radix-ui/react-popover": {
|
|
55
|
-
"optional": false
|
|
56
|
-
},
|
|
57
|
-
"@mui/x-data-grid": {
|
|
58
|
-
"optional": true
|
|
59
|
-
},
|
|
60
|
-
"@mui/x-date-pickers": {
|
|
61
|
-
"optional": true
|
|
62
|
-
},
|
|
63
|
-
"react-day-picker": {
|
|
64
|
-
"optional": false
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"devDependencies": {
|
|
68
|
-
"@chromatic-com/storybook": "^5.1.1",
|
|
69
|
-
"@emotion/react": "^11.14.0",
|
|
70
|
-
"@emotion/styled": "^11.14.1",
|
|
71
|
-
"@eslint/js": "9.39.4",
|
|
72
|
-
"@mui/icons-material": "^9.0.1",
|
|
73
|
-
"@mui/material": "^9.0.1",
|
|
74
|
-
"@mui/x-data-grid": "^9.0.0",
|
|
75
|
-
"@mui/x-date-pickers": "^9.3.0",
|
|
76
|
-
"@radix-ui/react-popover": "^1.1.15",
|
|
77
|
-
"@rollup/plugin-alias": "^6.0.0",
|
|
78
|
-
"@rollup/plugin-commonjs": "^29.0.2",
|
|
79
|
-
"@rollup/plugin-json": "^6.0.0",
|
|
80
|
-
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
81
|
-
"@rollup/plugin-terser": "^1.0.0",
|
|
82
|
-
"@rollup/plugin-typescript": "^12.3.0",
|
|
83
|
-
"@rollup/plugin-url": "^8.0.2",
|
|
84
|
-
"@storybook/addon-a11y": "^10.3.5",
|
|
85
|
-
"@storybook/addon-docs": "^10.3.5",
|
|
86
|
-
"@storybook/addon-vitest": "^10.3.5",
|
|
87
|
-
"@storybook/react-vite": "^10.3.5",
|
|
88
|
-
"@types/node": "^25.6.0",
|
|
89
|
-
"@types/react": "^19.2.14",
|
|
90
|
-
"@types/rollup-plugin-peer-deps-external": "^2.2.6",
|
|
91
|
-
"@vitejs/plugin-react": "^6.0.1",
|
|
92
|
-
"@vitest/browser-playwright": "^4.1.4",
|
|
93
|
-
"@vitest/coverage-v8": "^4.1.4",
|
|
94
|
-
"date-fns": "^4.1.0",
|
|
95
|
-
"eslint": "9.39.4",
|
|
96
|
-
"eslint-plugin-import": "^2.32.0",
|
|
97
|
-
"eslint-plugin-react": "^7.37.5",
|
|
98
|
-
"globals": "^17.5.0",
|
|
99
|
-
"playwright": "^1.59.1",
|
|
100
|
-
"png-to-ico": "^2.1.8",
|
|
101
|
-
"react": "^19.2.5",
|
|
102
|
-
"react-day-picker": "^9.13.2",
|
|
103
|
-
"react-dom": "^19.2.5",
|
|
104
|
-
"rollup": "^4.60.1",
|
|
105
|
-
"rollup-plugin-dts": "^6.4.1",
|
|
106
|
-
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
107
|
-
"rollup-plugin-postcss": "^4.0.2",
|
|
108
|
-
"sharp": "^0.34.5",
|
|
109
|
-
"storybook": "^10.3.5",
|
|
110
|
-
"tslib": "^2.8.1",
|
|
111
|
-
"typescript": "^6.0.2",
|
|
112
|
-
"typescript-eslint": "8.58.2",
|
|
113
|
-
"vitest": "^4.1.4"
|
|
114
|
-
}
|
|
115
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "it-data-nexus-ui-library",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "Nexus core components",
|
|
5
|
+
"license": "ISC",
|
|
6
|
+
"author": "emsmart-sage",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.mjs",
|
|
9
|
+
"module": "dist/index.mjs",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.mjs",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=18.18.0",
|
|
19
|
+
"npm": ">=9"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"scripts": {
|
|
26
|
+
"prebuild": "node scripts/write-version.mjs",
|
|
27
|
+
"build": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\" && rollup -c",
|
|
28
|
+
"build-storybook": "storybook build",
|
|
29
|
+
"generate-favicon": "node scripts/generate-favicon.mjs",
|
|
30
|
+
"lint": "eslint \"src/**/*.{ts,tsx,js,jsx}\"",
|
|
31
|
+
"prepublishOnly": "npm run lint && npm run build",
|
|
32
|
+
"storybook": "storybook dev -p 6006",
|
|
33
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@mui/x-charts": "^9.4.0",
|
|
37
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
38
|
+
"react-day-picker": "^9.13.2",
|
|
39
|
+
"react-markdown": "^10.1.0",
|
|
40
|
+
"remark-gfm": "^4.0.1"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@emotion/react": "^11.14.0",
|
|
44
|
+
"@emotion/styled": "^11.14.1",
|
|
45
|
+
"@mui/icons-material": "^7 || ^8 || ^9",
|
|
46
|
+
"@mui/material": "^7 || ^8 || ^9",
|
|
47
|
+
"@mui/x-data-grid": "^7 || ^8 || ^9",
|
|
48
|
+
"@mui/x-date-pickers": "^7 || ^8 || ^9",
|
|
49
|
+
"date-fns": "^3 || ^4",
|
|
50
|
+
"react": "^18 || ^19",
|
|
51
|
+
"react-dom": "^18 || ^19"
|
|
52
|
+
},
|
|
53
|
+
"peerDependenciesMeta": {
|
|
54
|
+
"@radix-ui/react-popover": {
|
|
55
|
+
"optional": false
|
|
56
|
+
},
|
|
57
|
+
"@mui/x-data-grid": {
|
|
58
|
+
"optional": true
|
|
59
|
+
},
|
|
60
|
+
"@mui/x-date-pickers": {
|
|
61
|
+
"optional": true
|
|
62
|
+
},
|
|
63
|
+
"react-day-picker": {
|
|
64
|
+
"optional": false
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@chromatic-com/storybook": "^5.1.1",
|
|
69
|
+
"@emotion/react": "^11.14.0",
|
|
70
|
+
"@emotion/styled": "^11.14.1",
|
|
71
|
+
"@eslint/js": "9.39.4",
|
|
72
|
+
"@mui/icons-material": "^9.0.1",
|
|
73
|
+
"@mui/material": "^9.0.1",
|
|
74
|
+
"@mui/x-data-grid": "^9.0.0",
|
|
75
|
+
"@mui/x-date-pickers": "^9.3.0",
|
|
76
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
77
|
+
"@rollup/plugin-alias": "^6.0.0",
|
|
78
|
+
"@rollup/plugin-commonjs": "^29.0.2",
|
|
79
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
80
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
81
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
82
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
83
|
+
"@rollup/plugin-url": "^8.0.2",
|
|
84
|
+
"@storybook/addon-a11y": "^10.3.5",
|
|
85
|
+
"@storybook/addon-docs": "^10.3.5",
|
|
86
|
+
"@storybook/addon-vitest": "^10.3.5",
|
|
87
|
+
"@storybook/react-vite": "^10.3.5",
|
|
88
|
+
"@types/node": "^25.6.0",
|
|
89
|
+
"@types/react": "^19.2.14",
|
|
90
|
+
"@types/rollup-plugin-peer-deps-external": "^2.2.6",
|
|
91
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
92
|
+
"@vitest/browser-playwright": "^4.1.4",
|
|
93
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
94
|
+
"date-fns": "^4.1.0",
|
|
95
|
+
"eslint": "9.39.4",
|
|
96
|
+
"eslint-plugin-import": "^2.32.0",
|
|
97
|
+
"eslint-plugin-react": "^7.37.5",
|
|
98
|
+
"globals": "^17.5.0",
|
|
99
|
+
"playwright": "^1.59.1",
|
|
100
|
+
"png-to-ico": "^2.1.8",
|
|
101
|
+
"react": "^19.2.5",
|
|
102
|
+
"react-day-picker": "^9.13.2",
|
|
103
|
+
"react-dom": "^19.2.5",
|
|
104
|
+
"rollup": "^4.60.1",
|
|
105
|
+
"rollup-plugin-dts": "^6.4.1",
|
|
106
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
107
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
108
|
+
"sharp": "^0.34.5",
|
|
109
|
+
"storybook": "^10.3.5",
|
|
110
|
+
"tslib": "^2.8.1",
|
|
111
|
+
"typescript": "^6.0.2",
|
|
112
|
+
"typescript-eslint": "8.58.2",
|
|
113
|
+
"vitest": "^4.1.4"
|
|
114
|
+
}
|
|
115
|
+
}
|
package/readme.md
CHANGED
|
@@ -1,109 +1,111 @@
|
|
|
1
|
-
Small component library for personal use.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
children
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
1
|
+
Small component library for personal use.
|
|
2
|
+
|
|
3
|
+
<!-- test change -->
|
|
4
|
+
|
|
5
|
+
## Favicon usage
|
|
6
|
+
|
|
7
|
+
This package exports the favicon assets and a small helper to make adding
|
|
8
|
+
favicon links in consuming apps trivial.
|
|
9
|
+
|
|
10
|
+
Files available in package:
|
|
11
|
+
|
|
12
|
+
- `nexus-logo-favicon.svg` — modern SVG favicon
|
|
13
|
+
- `favicon.ico` — multi-size ICO (legacy support)
|
|
14
|
+
|
|
15
|
+
Quick copy approach (recommended):
|
|
16
|
+
|
|
17
|
+
1. Add and then run these asset copy scripts in the consuming project's package.json:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
"scripts": {
|
|
21
|
+
"copy-sage-assets": "cpx \"node_modules/it-data-nexus-ui-library/dist/assets/images/*\" public/assets/it-data-nexus-ui-library/",
|
|
22
|
+
"postinstall": "npm run copy-sage-assets"
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. Add links in your HTML head:
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<link
|
|
30
|
+
rel="icon"
|
|
31
|
+
type="image/svg+xml"
|
|
32
|
+
href="/assets/it-data-nexus-ui-library/nexus-logo-favicon.svg"
|
|
33
|
+
/>
|
|
34
|
+
<link rel="icon" href="/assets/it-data-nexus-ui-library/favicon.ico" />
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Or, use the React helper exported by this package:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { FaviconLinks } from "it-data-nexus-ui-library";
|
|
41
|
+
|
|
42
|
+
function AppHead() {
|
|
43
|
+
return <FaviconLinks />; // adds versioned SVG and ICO links
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Next.js example
|
|
48
|
+
|
|
49
|
+
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.
|
|
50
|
+
|
|
51
|
+
1. Copy assets during install/build (example `package.json` scripts in the consuming app):
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
"scripts": {
|
|
55
|
+
"copy-sage-assets": "cpx \"node_modules/it-data-nexus-ui-library/dist/assets/images/*\" public/assets/it-data-nexus-ui-library/",
|
|
56
|
+
"postinstall": "npm run copy-sage-assets"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
2. Pages router (`pages/_document.tsx`) example — server-side rendered so the links are available immediately:
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// pages/_document.tsx
|
|
64
|
+
import Document, { Html, Head, Main, NextScript } from "next/document";
|
|
65
|
+
import { FaviconLinks } from "it-data-nexus-ui-library";
|
|
66
|
+
|
|
67
|
+
class MyDocument extends Document {
|
|
68
|
+
render() {
|
|
69
|
+
return (
|
|
70
|
+
<Html>
|
|
71
|
+
<Head>
|
|
72
|
+
<FaviconLinks />
|
|
73
|
+
</Head>
|
|
74
|
+
<body>
|
|
75
|
+
<Main />
|
|
76
|
+
<NextScript />
|
|
77
|
+
</body>
|
|
78
|
+
</Html>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export default MyDocument;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
3. App router (`app/layout.tsx`) example:
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
// app/layout.tsx
|
|
90
|
+
import { FaviconLinks } from "it-data-nexus-ui-library";
|
|
91
|
+
|
|
92
|
+
export default function RootLayout({
|
|
93
|
+
children,
|
|
94
|
+
}: {
|
|
95
|
+
children: React.ReactNode;
|
|
96
|
+
}) {
|
|
97
|
+
return (
|
|
98
|
+
<html>
|
|
99
|
+
<head>
|
|
100
|
+
<FaviconLinks />
|
|
101
|
+
</head>
|
|
102
|
+
<body>{children}</body>
|
|
103
|
+
</html>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Notes:
|
|
109
|
+
|
|
110
|
+
- Copying assets into `public/` ensures the files are served as static assets (no runtime JS required) and avoids a flash-of-default-favicon.
|
|
111
|
+
- The `FaviconLinks` helper uses versioned URLs by default to help cache-busting when you publish a new library version.
|