it-data-nexus-ui-library 2.10.9 → 2.10.11
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/charts/chartCatalogue.mjs +1 -1
- package/dist/charts/chartDefinitions.mjs +1 -1
- package/dist/components/SectionNav.mjs +1 -1
- package/dist/components/Theme/sageTheme.mjs +1 -1
- package/dist/components/Typography.mjs +1 -1
- package/dist/components/_Primitives/Dialog.mjs +1 -1
- package/dist/generated/version.mjs +1 -1
- package/dist/index.d.ts +45 -9
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=1e3,t=/^[a-z][a-z0-9-]{1,31}$/,s=/^[a-zA-Z][a-zA-Z0-9]{0,31}$/,n=/^\d+\.\d+\.\d+$/,i=/[a-z][a-z0-9+.-]*:\/\/|www\.|\b(?:mailto|data|javascript|vbscript|file|tel|sms):/i,r=["schemaVersion","chartType","title","description","config","data"],a=["valueFormat","xAxis","yAxis"],o=["chartType","version","description","dataItem","configKeys","limits","example","component","lazy"],m=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),u=(e,t)=>Object.keys(e).filter(e=>!t.includes(e)),p=(e,t,s)=>{if("number"===t.type)return"number"==typeof s&&Number.isFinite(s)?void 0!==t.minimum&&s<t.minimum?[`${e} must be >= ${t.minimum}`]:[]:[`${e} must be a finite number`];if("string"!=typeof s||""===s.trim())return[`${e} must be a non-blank string`];const n=[];return void 0!==t.maxLength&&s.length>t.maxLength&&n.push(`${e} must be at most ${t.maxLength} characters`),t.enum&&!t.enum.includes(s)&&n.push(`${e} must be one of ${t.enum.join(", ")}`),void 0===t.pattern||new RegExp(t.pattern).test(s)||n.push(`${e} must match ${t.pattern}`),"iso-date"===t.format&&Number.isNaN(new Date(s.trim()).getTime())&&n.push(`${e} must be a parseable date`),n},c=(e,t)=>{if(!m(t))return{valid:!1,errors:["item must be an object"]};const{properties:s,required:n}=e.dataItem,i=u(t,Object.keys(s)).map(e=>`unknown field ${e}`);for(const e of n)Object.hasOwn(t,e)||i.push(`missing required field ${e}`);for(const[e,n]of Object.entries(s))Object.hasOwn(t,e)&&i.push(...p(e,n,t[e]));return{valid:0===i.length,errors:i}},l=(e,t)=>{if(!m(t))return[`${e} must be an object`];if("number"===t.type){const s=u(t,["type","minimum"]).map(t=>`${e}.${t} is not allowed`);return void 0===t.minimum||Number.isFinite(t.minimum)||s.push(`${e}.minimum must be finite`),s}if("string"!==t.type)return[`${e}.type must be string or number`];const s=u(t,["type","maxLength","enum","pattern","format"]).map(t=>`${e}.${t} is not allowed`),{maxLength:n,enum:i,pattern:r,format:a}=t;if(void 0===n||Number.isInteger(n)&&n>0||s.push(`${e}.maxLength must be a positive integer`),void 0===i||Array.isArray(i)&&i.length>0&&i.every(e=>"string"==typeof e)||s.push(`${e}.enum must be a non-empty string array`),void 0!==r)try{if("string"!=typeof r)throw new TypeError;new RegExp(r)}catch{s.push(`${e}.pattern must be a valid regular expression`)}return void 0!==a&&"iso-date"!==a&&s.push(`${e}.format must be iso-date`),s},h=(e,t,n=[])=>{if(!m(t))return[`${e} must be an object`];const i=Object.keys(t),r=i.length>8?[`${e} has more than 8 fields`]:[];for(const a of i)s.test(a)||r.push(`${e}.${a} has an invalid name`),n.includes(a)&&r.push(`${e}.${a} is a shared envelope config key`),r.push(...l(`${e}.${a}`,t[a]));return r},d=s=>{if(!m(s))return{valid:!1,errors:["definition must be an object"]};const l=u(s,o).map(e=>`${e} is not allowed`),{chartType:d,version:f,description:b,dataItem:y,configKeys:g,limits:$,example:x,lazy:
|
|
1
|
+
const e=1e3,t=/^[a-z][a-z0-9-]{1,31}$/,s=/^[a-zA-Z][a-zA-Z0-9]{0,31}$/,n=/^\d+\.\d+\.\d+$/,i=/[a-z][a-z0-9+.-]*:\/\/|www\.|\b(?:mailto|data|javascript|vbscript|file|tel|sms):/i,r=["schemaVersion","chartType","title","description","config","data"],a=["valueFormat","xAxis","yAxis"],o=["chartType","version","description","dataItem","configKeys","limits","example","component","toProps","lazy"],m=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),u=(e,t)=>Object.keys(e).filter(e=>!t.includes(e)),p=(e,t,s)=>{if("number"===t.type)return"number"==typeof s&&Number.isFinite(s)?void 0!==t.minimum&&s<t.minimum?[`${e} must be >= ${t.minimum}`]:[]:[`${e} must be a finite number`];if("string"!=typeof s||""===s.trim())return[`${e} must be a non-blank string`];const n=[];return void 0!==t.maxLength&&s.length>t.maxLength&&n.push(`${e} must be at most ${t.maxLength} characters`),t.enum&&!t.enum.includes(s)&&n.push(`${e} must be one of ${t.enum.join(", ")}`),void 0===t.pattern||new RegExp(t.pattern).test(s)||n.push(`${e} must match ${t.pattern}`),"iso-date"===t.format&&Number.isNaN(new Date(s.trim()).getTime())&&n.push(`${e} must be a parseable date`),n},c=(e,t)=>{if(!m(t))return{valid:!1,errors:["item must be an object"]};const{properties:s,required:n}=e.dataItem,i=u(t,Object.keys(s)).map(e=>`unknown field ${e}`);for(const e of n)Object.hasOwn(t,e)||i.push(`missing required field ${e}`);for(const[e,n]of Object.entries(s))Object.hasOwn(t,e)&&i.push(...p(e,n,t[e]));return{valid:0===i.length,errors:i}},l=(e,t)=>{if(!m(t))return[`${e} must be an object`];if("number"===t.type){const s=u(t,["type","minimum"]).map(t=>`${e}.${t} is not allowed`);return void 0===t.minimum||Number.isFinite(t.minimum)||s.push(`${e}.minimum must be finite`),s}if("string"!==t.type)return[`${e}.type must be string or number`];const s=u(t,["type","maxLength","enum","pattern","format"]).map(t=>`${e}.${t} is not allowed`),{maxLength:n,enum:i,pattern:r,format:a}=t;if(void 0===n||Number.isInteger(n)&&n>0||s.push(`${e}.maxLength must be a positive integer`),void 0===i||Array.isArray(i)&&i.length>0&&i.every(e=>"string"==typeof e)||s.push(`${e}.enum must be a non-empty string array`),void 0!==r)try{if("string"!=typeof r)throw new TypeError;new RegExp(r)}catch{s.push(`${e}.pattern must be a valid regular expression`)}return void 0!==a&&"iso-date"!==a&&s.push(`${e}.format must be iso-date`),s},h=(e,t,n=[])=>{if(!m(t))return[`${e} must be an object`];const i=Object.keys(t),r=i.length>8?[`${e} has more than 8 fields`]:[];for(const a of i)s.test(a)||r.push(`${e}.${a} has an invalid name`),n.includes(a)&&r.push(`${e}.${a} is a shared envelope config key`),r.push(...l(`${e}.${a}`,t[a]));return r},d=s=>{if(!m(s))return{valid:!1,errors:["definition must be an object"]};const l=u(s,o).map(e=>`${e} is not allowed`),{chartType:d,version:f,description:b,dataItem:y,configKeys:g,limits:$,example:x,toProps:v,lazy:w}=s;"string"==typeof d&&t.test(d)||l.push(`chartType must match ${t}`),"string"==typeof f&&n.test(f)||l.push("version must be semver x.y.z"),"string"!=typeof b||""===b.trim()?l.push("description must be a non-blank string"):(b.length>300&&l.push("description must be at most 300 characters"),i.test(b)&&l.push("description must not contain URLs"),(b.includes("`")||b.includes("~~~"))&&l.push("description must not contain backticks or code fences"));let j=!1;if(m(y)){const e=l.length;l.push(...u(y,["properties","required"]).map(e=>`dataItem.${e} is not allowed`)),l.push(...h("dataItem.properties",y.properties));const{required:t,properties:s}=y;Array.isArray(t)&&t.every(e=>m(s)&&Object.hasOwn(s,e))?new Set(t).size!==t.length&&l.push("dataItem.required must not repeat a field"):l.push("dataItem.required must list declared properties"),j=l.length===e}else l.push("dataItem must be an object");void 0!==g&&l.push(...h("configKeys",g,a));let A=e;if(void 0!==$&&(!m($)||u($,["maxPoints"]).length>0?l.push("limits may only contain maxPoints"):void 0!==$.maxPoints&&(!Number.isInteger($.maxPoints)||$.maxPoints<1||$.maxPoints>e?l.push("limits.maxPoints must be an integer from 1 to 1000"):A=$.maxPoints)),void 0!==v&&"function"!=typeof v&&l.push("toProps must be a function"),void 0!==w&&"function"!=typeof w&&l.push("lazy must be a function"),m(x)){l.push(...u(x,r).map(e=>`example.${e} is not allowed`)),"1.0"!==x.schemaVersion&&l.push('example.schemaVersion must be "1.0"'),x.chartType!==d&&l.push("example.chartType must equal chartType"),"string"==typeof x.title&&""!==x.title.trim()||l.push("example.title is required");const e=x.config;if(m(e)&&["number","currency","percentage"].includes(e.valueFormat))if(m(g))for(const[t,s]of Object.entries(e)){if(a.includes(t))continue;const e=g[t];void 0===e?l.push(`example.config.${t} is not a declared config key`):l.push(...p(`example.config.${t}`,e,s))}else u(e,a).length>0&&l.push("example.config has undeclared config keys");else l.push("example.config.valueFormat must be number, currency or percentage");const t=x.data;!Array.isArray(t)||0===t.length||t.length>A?l.push(`example.data must hold 1 to ${A} items`):j&&t.forEach((e,t)=>{const n=c(s,e);l.push(...n.errors.map(e=>`example.data[${t}]: ${e}`))})}else l.push("example must be a nexus-chart envelope object");return{valid:0===l.length,errors:l}};export{e as MAX_CHART_POINTS,d as validateChartDefinition,c as validateChartItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{NexusBarChart as e}from"../components/Charts/NexusBarChart.mjs";import{NexusFunnelChart as
|
|
1
|
+
import{NexusBarChart as e}from"../components/Charts/NexusBarChart.mjs";import{NexusFunnelChart as a}from"../components/Charts/NexusFunnelChart.mjs";import{NexusLineChart as t}from"../components/Charts/NexusLineChart.mjs";import{NexusPieChart as r}from"../components/Charts/NexusPieChart.mjs";const o=e=>e?.label?{label:e.label}:{},i=e=>e?.yAxis?.label?[{label:e.yAxis.label}]:void 0,s=[{chartType:"pie",version:"1.0.0",description:"Show how a whole splits into parts, such as share by segment. Use for a few non-negative values that together make up a meaningful total. Prefer bar when there are many categories or the values do not form a whole.",dataItem:{properties:{label:{type:"string",maxLength:200},value:{type:"number",minimum:0}},required:["label","value"]},limits:{maxPoints:1e3},example:{schemaVersion:"1.0",chartType:"pie",title:"Share by segment",description:"Current distribution",config:{valueFormat:"percentage"},data:[{label:"Enterprise",value:62}]},component:r,toProps:({data:e},a)=>({series:[{data:e.map((e,a)=>({id:a,value:e.value,label:e.label})),innerRadius:"40%",valueFormatter:({value:e})=>a(e)}]})},{chartType:"bar",version:"1.0.0",description:"Compare one value across named categories, such as pipeline by stage or revenue by region. Values may be negative.",dataItem:{properties:{category:{type:"string",maxLength:200},value:{type:"number"}},required:["category","value"]},limits:{maxPoints:1e3},example:{schemaVersion:"1.0",chartType:"bar",title:"Pipeline by stage",description:"Open opportunity value",config:{valueFormat:"currency"},data:[{category:"Qualify",value:125e3}]},component:e,toProps:({data:e,config:a},t)=>({xAxis:[{data:e.map(e=>e.category),scaleType:"band",...o(a?.xAxis)}],yAxis:i(a),series:[{data:e.map(e=>e.value),valueFormatter:t}]})},{chartType:"line",version:"1.0.0",description:"Show how one value changes over time, such as a monthly trend. Give each point a date, preferably YYYY-MM-DD, and order the points by date.",dataItem:{properties:{date:{type:"string",maxLength:64,format:"iso-date"},value:{type:"number"}},required:["date","value"]},limits:{maxPoints:1e3},example:{schemaVersion:"1.0",chartType:"line",title:"Monthly trend",description:"Revenue over time",config:{valueFormat:"currency"},data:[{date:"2026-08-01",value:42}]},component:t,toProps:({data:e,config:a,series:t},r)=>({xAxis:[{data:e.map(e=>e.date),...o(a?.xAxis)}],yAxis:i(a),series:t?t.map(a=>({data:e.map(e=>e[a]??null),label:a,area:!0,valueFormatter:r})):[{data:e.map(e=>e.value),area:!0,valueFormatter:r}]})},{chartType:"funnel",version:"1.0.0",description:"Show drop-off through ordered pipeline stages, such as MQL to SQL to SQO to won. List the stages in order, widest first, with the count that reached each stage. Each stage's conversion rate from the one before is shown. Prefer bar for categories that are not sequential stages.",dataItem:{properties:{label:{type:"string",maxLength:200},value:{type:"number",minimum:0}},required:["label","value"]},limits:{maxPoints:1e3},example:{schemaVersion:"1.0",chartType:"funnel",title:"Pipeline conversion",description:"Leads by stage this quarter",config:{valueFormat:"number"},data:[{label:"MQL",value:1200},{label:"SQL",value:480},{label:"SQO",value:190},{label:"Won",value:60}]},component:a,toProps:({data:e},a)=>({stages:e.map(e=>({label:e.label,value:e.value})),valueFormatter:a})}];export{s as chartDefinitions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{useState as n,useRef as r,useEffect as i,useCallback as l}from"react";import s from"@mui/material/Box";import{Caption as c}from"./Typography.mjs";const a="#main-content",d="h1, h2, h3, h4, h5, h6",p=e=>null===e?null:"string"==typeof e?document.querySelector(e):e??document.querySelector(a),u=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth",y=({items:y,"aria-label":m,scrollRoot:f=a,sticky:x=!0,stickyOffset:h=0,sx:
|
|
1
|
+
import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{useState as n,useRef as r,useEffect as i,useCallback as l}from"react";import s from"@mui/material/Box";import{Caption as c}from"./Typography.mjs";const a="#main-content",d="h1, h2, h3, h4, h5, h6",p=e=>null===e?null:"string"==typeof e?document.querySelector(e):e??document.querySelector(a),u=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth",y=({items:y,"aria-label":m,scrollRoot:f=a,sticky:x=!0,stickyOffset:h=0,justifyContent:b="center",sx:v})=>{const[w,g]=n(y[0]?.id),S=r(null),k=r(null),$=r(!1),E=r(void 0),I=y.map(e=>e.id).join("\n");i(()=>{const e=I?I.split("\n"):[],t=p(f),o=new Set,n=new IntersectionObserver(t=>{for(const e of t)e.isIntersecting?o.add(e.target.id):o.delete(e.target.id);const n=e.find(e=>o.has(e));n&&g(n)},{root:t,rootMargin:"-35% 0px -60% 0px"});for(const t of e){const e=document.getElementById(t);e&&n.observe(e)}return()=>n.disconnect()},[I,f]),i(()=>{if(!x)return;const e=S.current,t=k.current,o=p(f);if(!e||!t)return;let n=!1,r=o?o.scrollTop:window.scrollY;const i=()=>{const e=(o??document.documentElement).getBoundingClientRect();return{top:e.top+h,left:e.left,width:o?o.clientWidth:window.innerWidth}},l=()=>{t.style.display="none",e.style.position="",e.style.top="",e.style.left="",e.style.width="",e.style.boxSizing=""},s=()=>{e.style.opacity="",e.style.visibility="",e.style.pointerEvents=""},c=()=>{const c=o?o.scrollTop:window.scrollY,a=c-r;if(r=c,c>h&&!n)(()=>{const{top:o,left:n,width:r}=i();t.style.height=`${e.offsetHeight}px`,t.style.display="block",e.style.position="fixed",e.style.top=`${o}px`,e.style.left=`${n}px`,e.style.width=`${r}px`,e.style.boxSizing="border-box"})(),n=!0;else if(c<=h&&n)l(),n=!1;else if(n){const{top:t,left:o,width:n}=i();e.style.top=`${t}px`,e.style.left=`${o}px`,e.style.width=`${n}px`}$.current||(c<=h||a<-5?s():c>100&&a>8&&(e.style.opacity="0",e.style.visibility="hidden",e.style.pointerEvents="none"))},a=o??window;a.addEventListener("scroll",c,{passive:!0});const d=new ResizeObserver(()=>{if(n){const{top:t,left:o,width:n}=i();e.style.top=`${t}px`,e.style.left=`${o}px`,e.style.width=`${n}px`}});return d.observe(o??document.documentElement),()=>{a.removeEventListener("scroll",c),d.disconnect(),l(),s(),clearTimeout(E.current)}},[x,f,h]),i(()=>{const e=S.current,t=e?.querySelector('[aria-current="location"]');!e||!t||e.scrollWidth<=e.clientWidth||e.scrollTo({left:t.offsetLeft-(e.clientWidth-t.offsetWidth)/2,behavior:u()})},[w]);const T=l((e,t)=>{if(e.defaultPrevented||0!==e.button)return;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const o=document.getElementById(t);if(!o)return;e.preventDefault();const n=o.matches(d)?o:o.querySelector(d)??o;n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1");const r=S.current;r&&(r.style.opacity="",r.style.visibility="",r.style.pointerEvents=""),$.current=!0,clearTimeout(E.current),E.current=setTimeout(()=>{$.current=!1},1e3),o.scrollIntoView({block:"start",behavior:u()}),n.focus({preventScroll:!0}),g(t)},[]);return e(t,{children:[o("div",{ref:k,"aria-hidden":"true",style:{display:"none",flexShrink:0}}),o(s,{ref:S,component:"nav","aria-label":m,sx:[e=>({width:"100%",boxSizing:"border-box",overflowX:{xs:"auto",sm:"visible"},overscrollBehaviorX:"contain",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"},px:{xs:"16px",sm:x?"16px":0},maskImage:{xs:"linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 16px), transparent)",sm:"none"},zIndex:x?e.zIndex.appBar:void 0,backgroundColor:x?"background.default":void 0,...x&&{transition:"opacity 0.2s ease, visibility 0.2s ease","@media (prefers-reduced-motion: reduce)":{transition:"none"}}}),...Array.isArray(v)?v:v?[v]:[]],children:o(s,{component:"ul",role:"list",sx:{listStyle:"none",m:0,p:0,display:"flex",flexWrap:{xs:"nowrap",sm:"wrap"},justifyContent:b,columnGap:{xs:2.5,sm:3}},children:y.map(({id:e,label:t})=>{const n=e===w;return o(s,{component:"li",sx:{flex:"none"},children:o(s,{component:"a",href:`#${e}`,"aria-current":n?"location":void 0,onClick:t=>T(t,e),sx:{display:"block",py:1.25,whiteSpace:"nowrap",color:n?"text.primary":"text.secondary",textDecoration:n?"underline":"none",textDecorationColor:e=>e.palette.primary.main,textDecorationThickness:n?"2px":void 0,textUnderlineOffset:"7px",borderRadius:.5,"&:hover":{color:"text.primary",textDecoration:"underline",textDecorationColor:e=>e.palette.primary.main},"&:focus-visible":{outline:e=>`2px solid ${e.palette.primary.main}`,outlineOffset:2}},children:o(c,{component:"span",sx:{color:"inherit",letterSpacing:"0.015em"},children:t})})},e)})})})]})};export{y as SectionNav};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createTheme as r,alpha as o}from"@mui/material/styles";import{getModeTokens as e,fontSageUI as t,fontSageText as a,fontSageHeadline as i,colours as d}from"./tokens.mjs";const n=(n="light")=>{const s=e(n),l=((r,o)=>({h1:r.text.primary,h2:r.text.primary,h3:r.text.primary,h4:r.text.primary,body1:r.text.primary,body2:r.text.secondary,caption:r.text.secondary,actionBarTitle:"dark"===o?d.brilliantGreen:d.jadeDark}))(s,n);return r({palette:{mode:n,primary:{main:"dark"===n?d.jadeLight:d.jadeDark,dark:d.primaryGreenActive,contrastText:"dark"===n?d.black:d.white},secondary:{main:d.teal,contrastText:d.white},success:{main:"dark"===n?d.jadeLight:d.jadeDark,contrastText:"dark"===n?d.black:d.white},warning:{main:d.amber,contrastText:d.white},error:{main:d.cherry,contrastText:d.white},info:{main:d.navy,contrastText:d.white},background:{default:s.background.default,paper:s.background.paper},text:s.text,divider:s.border},shape:{borderRadius:8},typography:{fontFamily:a,h1:{fontFamily:i,fontSize:"clamp(2rem, 3vw, 2.75rem)",lineHeight:1.08,letterSpacing:"-0.01em",fontWeight:700},h2:{fontFamily:i,fontSize:"1.5rem",lineHeight:1.2,fontWeight:600},h3:{fontSize:"0.9rem",lineHeight:1.25,fontWeight:700},h4:{fontSize:"0.8rem",lineHeight:1.2,fontWeight:500},actionBarTitle:{fontFamily:i,fontSize:"1.6rem",fontWeight:700,lineHeight:1.2,textTransform:"none"},body1:{fontSize:"0.8rem",lineHeight:1.4},chatWindowBody:{fontSize:"1rem",lineHeight:1.6},body2:{fontSize:"0.8rem",lineHeight:1.4},caption:{fontSize:"0.7rem",lineHeight:1.4},button:{fontFamily:t,fontSize:"0.95rem",fontWeight:600,textTransform:"none"}},shadows:["none","0 1px 2px rgba(0,0,0,0.08)","0 4px 12px rgba(0,0,0,0.10)","0 8px 24px rgba(0,0,0,0.12)","0 16px 48px rgba(0,0,0,0.18)",...Array(20).fill("none")],components:{MuiCssBaseline:{styleOverrides:{html:{backgroundColor:s.background.default},body:{backgroundColor:s.background.default,fontFamily:a,color:s.text.primary,transition:"background-color 200ms ease, color 200ms ease"},"#root":{minHeight:"100vh"},"::selection":{backgroundColor:o(s.background.jades,.28),color:s.text.primary},a:{color:s.text.greens,"&:hover":{color:s.text.secondary}},aside:{marginRight:"10px",borderLeft:"2px solid",borderColor:s.text.secondary,padding:"0 8px"}}},MuiTypography:{styleOverrides:{root:({ownerState:r})=>({color:l[r.variant]??"inherit"})}},MuiPaper:{defaultProps:{elevation:1},styleOverrides:{root:({theme:r})=>({position:"relative",zIndex:1,backgroundImage:"none",backgroundColor:s.background.paper,border:`1px solid ${s.border}`,borderRadius:r.shape.borderRadius,padding:r.spacing(1)})}},MuiCard:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,boxShadow:s.shadow,border:`1px solid ${s.border}`,position:"relative",zIndex:1})}},MuiButton:{defaultProps:{disableElevation:!0}},MuiChip:{styleOverrides:{root:{borderRadius:999,fontFamily:t},label:{fontWeight:400}}},MuiDivider:{styleOverrides:{root:{borderColor:s.border}}},MuiDataGrid:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,border:`1px solid ${s.border}`,backgroundColor:s.background.paper,color:s.text.primary,"--DataGrid-rowBorderColor":s.border,"--DataGrid-containerBackground":s.background.paper,"--DataGrid-pinnedBackground":s.background.paper,"& .MuiDataGrid-toolbarContainer":{padding:"12px 16px 0",gap:8},"& .MuiDataGrid-toolbarContainer .MuiButton-root":{minHeight:36,paddingInline:12,color:s.text.secondary},"& .MuiDataGrid-toolbarContainer .MuiInputBase-root":{borderRadius:999,backgroundColor:o(s.background.jades,"dark"===n?.08:.05)},"& .MuiDataGrid-toolbarContainer .MuiInputBase-input":{paddingBlock:8},"& .MuiDataGrid-overlay":{backgroundColor:"transparent"}}),columnHeaders:{backgroundColor:o(s.background.jades,"dark"===n?.12:.08),borderBottom:`1px solid ${s.border}`},columnHeader:{"&:focus, &:focus-within":{outline:"none"}},columnHeaderTitle:{fontWeight:600},cell:{alignItems:"center",borderTop:`1px solid ${s.border}`,"&:focus, &:focus-within":{outline:"none"}},row:{"&:hover":{backgroundColor:o(s.background.jades,"dark"===n?.08:.04)}},footerContainer:{borderTop:`1px solid ${s.border}`,backgroundColor:o(s.background.jades,"dark"===n?.05:.03)},sortIcon:{color:s.background.jades},menuIconButton:{color:s.text.secondary},withBorderColor:{borderColor:s.border}}},MuiListItemButton:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,border:`1px solid ${s.border}`,backgroundColor:s.background.paper,color:s.text.primary})}},MuiAppBar:{defaultProps:{elevation:1},styleOverrides:{root:{backgroundColor:s.background.paper,backgroundImage:"none",borderBottom:`1px solid ${s.border}`,borderRadius:0,color:s.text.primary}}},MuiAccordion:{defaultProps:{disableGutters:!0,elevation:0},styleOverrides:{root:{backgroundColor:"transparent",border:`1px solid ${s.border}`,borderRadius:"8px !important","&:before":{display:"none"},"&.Mui-expanded":{borderColor:o(s.background.jades,"dark"===n?.4:.3)}}}},MuiAccordionSummary:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,minHeight:24,"&.Mui-expanded":{minHeight:24},"&:focus-visible":{outline:`2px solid ${s.outlinedPrimary}`,outlineOffset:2},padding:0}),content:{margin:"0","&.Mui-expanded":{margin:"0"}},expandIconWrapper:{color:s.text.secondary}}},MuiAccordionDetails:{styleOverrides:{root:{padding:0,borderTop:`1px solid ${s.border}`}}},MuiTabs:{styleOverrides:{root:{minHeight:40,borderBottom:`1px solid ${s.border}`},indicator:{backgroundColor:s.background.jades,height:2}}},MuiTab:{styleOverrides:{root:{minHeight:40,fontFamily:t,fontWeight:600,fontSize:"0.85rem",letterSpacing:"0.01em",textTransform:"none",color:s.text.secondary,"&.Mui-selected":{color:s.text.primary},"&:focus-visible":{outline:`2px solid ${s.outlinedPrimary}`,outlineOffset:2}}}},MuiDialog:{styleOverrides:{paper:({theme:r})=>({backgroundColor:s.background.paper,backgroundImage:"none",border:`1px solid ${s.border}`,borderRadius:r.shape.borderRadius,boxShadow:s.shadow})}},MuiDialogTitle:{styleOverrides:{root:{paddingBottom:8}}},MuiDialogContent:{styleOverrides:{root:{paddingTop:"8px !important"}}}}})};export{n as createSageTheme};
|
|
1
|
+
import{createTheme as r,alpha as o}from"@mui/material/styles";import{getModeTokens as e,fontSageUI as t,fontSageText as a,fontSageHeadline as i,colours as d}from"./tokens.mjs";const n=(n="light")=>{const s=e(n),l=((r,o)=>({h1:r.text.primary,h2:r.text.primary,h3:r.text.primary,h4:r.text.primary,body1:r.text.primary,body2:r.text.secondary,caption:r.text.secondary,actionBarTitle:"dark"===o?d.brilliantGreen:d.jadeDark}))(s,n);return r({palette:{mode:n,primary:{main:"dark"===n?d.jadeLight:d.jadeDark,dark:d.primaryGreenActive,contrastText:"dark"===n?d.black:d.white},secondary:{main:d.teal,contrastText:d.white},success:{main:"dark"===n?d.jadeLight:d.jadeDark,contrastText:"dark"===n?d.black:d.white},warning:{main:d.amber,contrastText:d.white},error:{main:d.cherry,contrastText:d.white},info:{main:d.navy,contrastText:d.white},background:{default:s.background.default,paper:s.background.paper},text:s.text,divider:s.border},shape:{borderRadius:8},typography:{fontFamily:a,h1:{fontFamily:i,fontSize:"clamp(2rem, 3vw, 2.75rem)",lineHeight:1.08,letterSpacing:"-0.01em",fontWeight:700},h2:{fontFamily:i,fontSize:"1.5rem",lineHeight:1.2,fontWeight:600},h3:{fontSize:"0.9rem",lineHeight:1.25,fontWeight:700},h4:{fontSize:"0.8rem",lineHeight:1.2,fontWeight:500},actionBarTitle:{fontFamily:i,fontSize:"1.6rem",fontWeight:700,lineHeight:1.2,textTransform:"none"},body1:{fontSize:"0.8rem",lineHeight:1.4},chatWindowBody:{fontSize:"1rem",lineHeight:1.6},body2:{fontSize:"0.8rem",lineHeight:1.4},caption:{fontSize:"0.7rem",lineHeight:1.4},button:{fontFamily:t,fontSize:"0.95rem",fontWeight:600,textTransform:"none"}},shadows:["none","0 1px 2px rgba(0,0,0,0.08)","0 4px 12px rgba(0,0,0,0.10)","0 8px 24px rgba(0,0,0,0.12)","0 16px 48px rgba(0,0,0,0.18)",...Array(20).fill("none")],components:{MuiCssBaseline:{styleOverrides:{html:{backgroundColor:s.background.default},body:{backgroundColor:s.background.default,fontFamily:a,color:s.text.primary,transition:"background-color 200ms ease, color 200ms ease"},"#root":{minHeight:"100vh"},"::selection":{backgroundColor:o(s.background.jades,.28),color:s.text.primary},a:{color:s.text.greens,"&:hover":{color:s.text.secondary}},aside:{marginRight:"10px",borderLeft:"2px solid",borderColor:s.text.secondary,padding:"0 8px"}}},MuiTypography:{styleOverrides:{root:({ownerState:r})=>({color:l[r.variant]??"inherit"})}},MuiPaper:{defaultProps:{elevation:1},styleOverrides:{root:({theme:r})=>({position:"relative",zIndex:1,backgroundImage:"none",backgroundColor:s.background.paper,border:`1px solid ${s.border}`,borderRadius:r.shape.borderRadius,padding:r.spacing(1)})}},MuiCard:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,boxShadow:s.shadow,border:`1px solid ${s.border}`,position:"relative",zIndex:1})}},MuiButton:{defaultProps:{disableElevation:!0}},MuiChip:{styleOverrides:{root:{borderRadius:999,fontFamily:t},label:{fontWeight:400}}},MuiDivider:{styleOverrides:{root:{borderColor:s.border}}},MuiDataGrid:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,border:`1px solid ${s.border}`,backgroundColor:s.background.paper,color:s.text.primary,"--DataGrid-rowBorderColor":s.border,"--DataGrid-containerBackground":s.background.paper,"--DataGrid-pinnedBackground":s.background.paper,"& .MuiDataGrid-toolbarContainer":{padding:"12px 16px 0",gap:8},"& .MuiDataGrid-toolbarContainer .MuiButton-root":{minHeight:36,paddingInline:12,color:s.text.secondary},"& .MuiDataGrid-toolbarContainer .MuiInputBase-root":{borderRadius:999,backgroundColor:o(s.background.jades,"dark"===n?.08:.05)},"& .MuiDataGrid-toolbarContainer .MuiInputBase-input":{paddingBlock:8},"& .MuiDataGrid-overlay":{backgroundColor:"transparent"}}),columnHeaders:{backgroundColor:o(s.background.jades,"dark"===n?.12:.08),borderBottom:`1px solid ${s.border}`},columnHeader:{"&:focus, &:focus-within":{outline:"none"}},columnHeaderTitle:{fontWeight:600},cell:{alignItems:"center",borderTop:`1px solid ${s.border}`,"&:focus, &:focus-within":{outline:"none"}},row:{"&:hover":{backgroundColor:o(s.background.jades,"dark"===n?.08:.04)}},footerContainer:{borderTop:`1px solid ${s.border}`,backgroundColor:o(s.background.jades,"dark"===n?.05:.03)},sortIcon:{color:s.background.jades},menuIconButton:{color:s.text.secondary},withBorderColor:{borderColor:s.border}}},MuiListItemButton:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,border:`1px solid ${s.border}`,backgroundColor:s.background.paper,color:s.text.primary})}},MuiAppBar:{defaultProps:{elevation:1},styleOverrides:{root:{backgroundColor:s.background.paper,backgroundImage:"none",borderBottom:`1px solid ${s.border}`,borderRadius:0,color:s.text.primary}}},MuiAccordion:{defaultProps:{disableGutters:!0,elevation:0},styleOverrides:{root:{backgroundColor:"transparent",border:`1px solid ${s.border}`,borderRadius:"8px !important","&:before":{display:"none"},"&.Mui-expanded":{borderColor:o(s.background.jades,"dark"===n?.4:.3)}}}},MuiAccordionSummary:{styleOverrides:{root:({theme:r})=>({borderRadius:r.shape.borderRadius,minHeight:24,"&.Mui-expanded":{minHeight:24},"&:focus-visible":{outline:`2px solid ${s.outlinedPrimary}`,outlineOffset:2},padding:0}),content:{margin:"0","&.Mui-expanded":{margin:"0"}},expandIconWrapper:{color:s.text.secondary}}},MuiAccordionDetails:{styleOverrides:{root:{padding:0,borderTop:`1px solid ${s.border}`}}},MuiTabs:{styleOverrides:{root:{minHeight:40,borderBottom:`1px solid ${s.border}`},indicator:{backgroundColor:s.background.jades,height:2}}},MuiTab:{styleOverrides:{root:{minHeight:40,fontFamily:t,fontWeight:600,fontSize:"0.85rem",letterSpacing:"0.01em",textTransform:"none",color:s.text.secondary,"&.Mui-selected":{color:s.text.primary},"&:focus-visible":{outline:`2px solid ${s.outlinedPrimary}`,outlineOffset:2}}}},MuiDialog:{styleOverrides:{paper:({theme:r})=>({backgroundColor:s.background.paper,backgroundImage:"none",border:`1px solid ${s.border}`,borderRadius:r.shape.borderRadius,boxShadow:s.shadow,[r.breakpoints.only("xs")]:{margin:12,width:"calc(100% - 24px)",maxWidth:"calc(100% - 24px)"}})}},MuiDialogTitle:{styleOverrides:{root:{paddingBottom:8}}},MuiDialogContent:{styleOverrides:{root:{paddingTop:"8px !important"}}}}})};export{n as createSageTheme};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{Typography as a}from"@mui/material";import{forwardRef as e}from"react";const t={fontSize:"clamp(44px,5vw,72px)",lineHeight:1.05,letterSpacing:"-0.02em"},n={fontSize:"clamp(30px,3.2vw,44px)",lineHeight:1.12,letterSpacing:"-0.01em"},r={fontSize:"20px",lineHeight:1.25},s={fontSize:"17px",lineHeight:1.55},o={fontSize:"15px",lineHeight:1.5},p={fontSize:"13px",lineHeight:1.45};function m(i,a){return[...Array.isArray(i)?i:i?[i]:[],a]}const l=e(({display:e,sx:n,...r},s)=>i(a,{ref:s,variant:"h1",sx:e?m(n,t):n,...r}));l.displayName="H1";const c=e(({display:e,sx:t,...r},s)=>i(a,{ref:s,variant:"h2",sx:e?m(t,n):t,...r}));c.displayName="H2";const y=e(({display:e,sx:t,...n},s)=>i(a,{ref:s,variant:"h3",sx:e?m(t,r):t,...n}));y.displayName="H3";const d=e((e,t)=>i(a,{ref:t,variant:"h4",...e}));d.displayName="H4";const x=e((e,t)=>i(a,{ref:t,variant:"actionBarTitle",component:"h1",...e}));x.displayName="ActionBarTitle";const f=e(({display:e,sx:t,...n},r)=>i(a,{ref:r,variant:"body1",sx:e?m(t,s):t,...n}));f.displayName="Body1";const h=e((e,t)=>i(a,{ref:t,variant:"chatWindowBody",...e}));h.displayName="ChatWindowBody";const g=e(({display:e,sx:t,...n},r)=>i(a,{ref:r,variant:"body2",sx:e?m(t,o):t,...n}));g.displayName="Body2";const v=e(({display:e,sx:t,...n},r)=>i(a,{ref:r,variant:"caption",sx:e?m(t,p):t,...n}));v.displayName="Caption";const H=e((e,t)=>i(a,{ref:t,variant:"inherit",component:"span",...e}));H.displayName="Span";const N={xs:"1.1rem",sm:"1.5rem",md:"2rem",lg:"2.5rem"},S=e(({size:e="md",sx:t,...n},r)=>i(a,{ref:r,component:"p",sx:[{fontSize:N[e],fontWeight:700,lineHeight:1.1,letterSpacing:"-0.02em",color:"text.primary",margin:0},...Array.isArray(t)?t:t?[t]:[]],...n}));S.displayName="MetricValue";export{x as ActionBarTitle,f as Body1,g as Body2,v as Caption,h as ChatWindowBody,l as H1,c as H2,y as H3,d as H4,S as MetricValue,H as Span};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{useRef as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{useRef as r,useCallback as n}from"react";import{Dialog as e,DialogActions as o,DialogContent as i,DialogContentText as s,DialogTitle as a}from"@mui/material";const l="scale(0.92)",c=()=>"undefined"!=typeof window&&Boolean(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches),u=(t,r)=>{t.style.transition=[t.style.transition,r].filter(Boolean).join(", ")},m={borderRadius:{xs:2,sm:4}},f=({origin:o,display:i,slotProps:s,...a})=>{const f=r(null),p=n(t=>{if(!o||c())return void(f.current=null);const r=o.getBoundingClientRect();f.current={x:r.left+r.width/2,y:r.top+r.height/2},t.style.transformOrigin=`${f.current.x}px ${f.current.y}px`,t.style.transform=l},[o]),d=n(t=>{f.current&&(c()||(t.offsetHeight,u(t,"transform 225ms cubic-bezier(.2,.9,.3,1)")),t.style.transform="none")},[]),y=n(t=>{f.current&&!c()&&(u(t,"transform 195ms cubic-bezier(.7,0,.8,.1)"),t.style.transform=l)},[]),g=n(t=>{f.current&&(t.style.transform="",t.style.transformOrigin="",f.current=null)},[]),x=s?.transition,E=n(t=>{const r="function"==typeof x?x(t):x;return{...r,onEnter:(t,n)=>{p(t),r?.onEnter?.(t,n)},onEntering:(t,n)=>{d(t),r?.onEntering?.(t,n)},onExit:t=>{y(t),r?.onExit?.(t)},onExited:t=>{g(t),r?.onExited?.(t)}}},[p,d,y,g,x]),h=s?.paper,b=i?(()=>{const t=h?.sx;return{...h,sx:[m,...Array.isArray(t)?t:t?[t]:[]]}})():h;return t(e,{...a,slotProps:{...s,transition:E,paper:b}})},p=r=>t(a,{...r}),d=r=>t(i,{...r}),y=r=>t(o,{...r}),g=r=>t(s,{...r});export{f as Dialog,y as DialogActions,d as DialogContent,g as DialogContentText,p as DialogTitle};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const o="2.10.
|
|
1
|
+
const o="2.10.11";export{o as SAGE_NEXUS_UI_VERSION};
|
package/dist/index.d.ts
CHANGED
|
@@ -671,15 +671,22 @@ declare const NotificationListItem: ({ title, timestamp, body, read, onClick, }:
|
|
|
671
671
|
* All other TypographyProps (sx, component, className, children, …) are forwarded.
|
|
672
672
|
*/
|
|
673
673
|
type Props = Omit<TypographyProps, "variant">;
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
674
|
+
/**
|
|
675
|
+
* Display-scale sizes for marketing / website compositions where the app's
|
|
676
|
+
* dense UI scale is too small. Pass `display` to opt a component into these sizes.
|
|
677
|
+
*/
|
|
678
|
+
type DisplayProps = Props & {
|
|
679
|
+
display?: boolean;
|
|
680
|
+
};
|
|
681
|
+
declare const H1: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
682
|
+
declare const H2: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
683
|
+
declare const H3: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
677
684
|
declare const H4: react.ForwardRefExoticComponent<Omit<Props, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
678
685
|
declare const ActionBarTitle: react.ForwardRefExoticComponent<Omit<Props, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
679
|
-
declare const Body1: react.ForwardRefExoticComponent<Omit<
|
|
686
|
+
declare const Body1: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
680
687
|
declare const ChatWindowBody: react.ForwardRefExoticComponent<Omit<Props, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
681
|
-
declare const Body2: react.ForwardRefExoticComponent<Omit<
|
|
682
|
-
declare const Caption: react.ForwardRefExoticComponent<Omit<
|
|
688
|
+
declare const Body2: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
689
|
+
declare const Caption: react.ForwardRefExoticComponent<Omit<DisplayProps, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
683
690
|
declare const Span: react.ForwardRefExoticComponent<Omit<Props, "ref"> & react.RefAttributes<HTMLElement>>;
|
|
684
691
|
type MetricValueSize = "xs" | "sm" | "md" | "lg";
|
|
685
692
|
type MetricValueProps = Omit<TypographyProps, "variant"> & {
|
|
@@ -987,9 +994,11 @@ declare const CheckboxGroup: React.FC<CheckboxGroupProps>;
|
|
|
987
994
|
interface DialogProps extends DialogProps$1 {
|
|
988
995
|
/** Element whose centre should be the origin of the dialog's scale transition. */
|
|
989
996
|
origin?: Element | null;
|
|
997
|
+
/** Applies the display-scale border radius (16px mobile / 32px desktop) for marketing and website contexts. */
|
|
998
|
+
display?: boolean;
|
|
990
999
|
}
|
|
991
1000
|
|
|
992
|
-
declare const Dialog: ({ origin, slotProps, ...props }: DialogProps) => react.JSX.Element;
|
|
1001
|
+
declare const Dialog: ({ origin, display, slotProps, ...props }: DialogProps) => react.JSX.Element;
|
|
993
1002
|
declare const DialogTitle: (props: DialogTitleProps) => react.JSX.Element;
|
|
994
1003
|
declare const DialogContent: (props: DialogContentProps) => react.JSX.Element;
|
|
995
1004
|
declare const DialogActions: (props: DialogActionsProps) => react.JSX.Element;
|
|
@@ -1670,6 +1679,12 @@ interface SectionNavProps {
|
|
|
1670
1679
|
sticky?: boolean;
|
|
1671
1680
|
/** Distance in px from the top of the scroll root when `sticky`. Defaults to 0. */
|
|
1672
1681
|
stickyOffset?: number;
|
|
1682
|
+
/**
|
|
1683
|
+
* How items are distributed along the nav's horizontal axis. Defaults to `"center"`.
|
|
1684
|
+
* For `"flex-start"` or `"flex-end"`, add a matching `pl` or `pr` via `sx` to inset
|
|
1685
|
+
* items from the page edge by the page gutter.
|
|
1686
|
+
*/
|
|
1687
|
+
justifyContent?: "center" | "flex-start" | "flex-end";
|
|
1673
1688
|
sx?: SxProps<Theme>;
|
|
1674
1689
|
}
|
|
1675
1690
|
/**
|
|
@@ -1694,7 +1709,7 @@ interface SectionNavProps {
|
|
|
1694
1709
|
* />
|
|
1695
1710
|
* ```
|
|
1696
1711
|
*/
|
|
1697
|
-
declare const SectionNav: ({ items, "aria-label": ariaLabel, scrollRoot, sticky, stickyOffset, sx, }: SectionNavProps) => react.JSX.Element;
|
|
1712
|
+
declare const SectionNav: ({ items, "aria-label": ariaLabel, scrollRoot, sticky, stickyOffset, justifyContent, sx, }: SectionNavProps) => react.JSX.Element;
|
|
1698
1713
|
|
|
1699
1714
|
type CarouselBreakpoint = "xs" | "sm" | "md" | "lg";
|
|
1700
1715
|
/** Cards visible at once per breakpoint. Fractions leave the next card peeking, e.g. `1.15`. */
|
|
@@ -2123,6 +2138,25 @@ type ChartFieldSchema = {
|
|
|
2123
2138
|
type: "number";
|
|
2124
2139
|
minimum?: number;
|
|
2125
2140
|
};
|
|
2141
|
+
/** A validated `nexus-chart` envelope, as passed to `ChartDefinition.toProps`. */
|
|
2142
|
+
interface ChartEnvelope {
|
|
2143
|
+
data: Record<string, unknown>[];
|
|
2144
|
+
config?: {
|
|
2145
|
+
valueFormat?: string;
|
|
2146
|
+
xAxis?: {
|
|
2147
|
+
label?: string;
|
|
2148
|
+
};
|
|
2149
|
+
yAxis?: {
|
|
2150
|
+
label?: string;
|
|
2151
|
+
};
|
|
2152
|
+
[key: string]: unknown;
|
|
2153
|
+
};
|
|
2154
|
+
/** Legacy EA multi-series line shape: the named value keys on each data point. */
|
|
2155
|
+
series?: string[];
|
|
2156
|
+
}
|
|
2157
|
+
type ChartValueFormatter = (value: number | null) => string;
|
|
2158
|
+
/** Maps an envelope and the renderer's value formatter to the props of `component`. */
|
|
2159
|
+
type ChartToProps = (envelope: ChartEnvelope, valueFormatter: ChartValueFormatter) => Record<string, unknown>;
|
|
2126
2160
|
interface ChartDefinition {
|
|
2127
2161
|
/** `/^[a-z][a-z0-9-]{1,31}$/`, unique, append-only. */
|
|
2128
2162
|
chartType: string;
|
|
@@ -2148,6 +2182,8 @@ interface ChartDefinition {
|
|
|
2148
2182
|
example: Record<string, unknown>;
|
|
2149
2183
|
/** Runtime-only renderer; never serialised into a served catalogue. */
|
|
2150
2184
|
component: unknown;
|
|
2185
|
+
/** Runtime-only envelope -> `component` props adapter; never serialised into a served catalogue. */
|
|
2186
|
+
toProps?: ChartToProps;
|
|
2151
2187
|
/** Frontend-local definitions only (e.g. us-map). */
|
|
2152
2188
|
lazy?: () => Promise<unknown>;
|
|
2153
2189
|
}
|
|
@@ -2232,4 +2268,4 @@ declare const leftPipe: SxProps<Theme>;
|
|
|
2232
2268
|
declare const expandableText: (isExpanded: boolean) => SxProps<Theme>;
|
|
2233
2269
|
|
|
2234
2270
|
export { AccordionGroup, AccordionGroupItem, AccordionSingle, ActionBar, ActionBarTitle, ActivityFeed, AgentChatDialog, AgentChatWidget, AgentChatWindow, AgentChatWindowHeader, AiButton, AiButtonTile, AiCard, AiChip, AiGlassCard, AiGlassPaper, AiPaper, Alert, ArtifactViewer, Avatar, Body1, Body2, Breadcrumbs, BudgetMeter, ButtonBase, ButtonTile, Caption, Card, Carousel, ChatAvatar, ChatContentFallback, ChatDatapoints, ChatHistory, ChatHistoryAgentItem, ChatHistoryButtonBase, ChatHistoryHeader, ChatInput, ChatResponseMarkdown, ChatWindowBody, Checkbox, CheckboxGroup, Chip, CircularProgress, Code, Collapse, Container, CopyButton, CopyableTableContainer, DateRangeFilter, DateRangePicker, DeltaChip, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, DiffView, Divider, Duration, EmptyState, FABButton, FaviconLinks, FlowDiagram, FormControlLabel, FormDialog, FormGroup, GhostButton, GlassCard, GlassPaper, GlassPaperAsync, GreenWaveBackground, Grid, H1, H2, H3, H4, IconButton, JsonViewer, KeyValueList, Link, LoadingSpinnerNexus, LocationMultiSelect, LogoOptions, MAX_CHART_POINTS, MarkdownContent, MessageBubble, MessageFeedbackBar, MessageList, MetricCard, MetricStat, MetricValue, MuiAppThemeProvider, NEXUS_THEME_STORAGE_KEY, NexusAreaChart, NexusBarChart, NexusDataGrid, NexusEmptyState, NexusFunnelChart, NexusHeatmap, NexusHome, NexusLineChart, NexusLogo, NexusNodeIcon, NexusOrbit, NexusPieChart, NexusScatterChart, NexusStackedAreaChart, NexusStackedBarChart, NexusiFrame, NotificationBell, NotificationListItem, Paper, PaperAsync, PrimaryButton, PrimaryButtonLink, ProcessSteps, RagChip, RagDot, RelativeTime, SageLogoSvg, SchemaFieldView, SearchInput, SecondaryButton, SecondaryButtonLink, SectionNav, SegmentedControl, Select, SelectableList, SideBlade, SideBladeNavList, SideBladeNavListItem, Skeleton, SkillChip, SkipLink, Slider, SourceCitations, Span, Stack, StageProgress, StatusBadge, StatusChip, StreamingBubble, SuggestedPrompts, Switch, Tab, Table, TableBody, TableCell, TableHead, TableRow, Tabs, TextField, ThemeModeContext, ThemeModeProvider, ThemeToggle, Toast, Tooltip, TypingIndicator, chartDefinitions, chatHistoryMatchesQuery, chatWindowMarkdownComponents, colours, columnsForItemCount, createSageTheme, deltaColorForPolarity, expandableText, filterChatHistoryConversations, fontSageHeadline, fontSageText, fontSageUI, formatDatapointDelta, formatDatapointValue, formatDate, formatDurationMs, formatSurnameFirstname, getFaviconUrls, getFiscalPeriod, getGradientBorderStyles, getModeTokens, gradients, isAllowedImageSrc, latestTraceLabel, leftPipe, ragColorForDelta, resolveArtifact, safeChatMarkdownComponents, safeMarkdownUrl, sanitizeRawHtmlTable, splitRawHtmlTables, toSandboxedSrcDoc, useThemeMode, useTokens, validateChartDefinition, validateChartItem };
|
|
2235
|
-
export type { AccordionGroupItemProps, AccordionGroupProps, AccordionSingleProps, ActivityFeedEntry, ActivityFeedProps, ActivitySummary, AgentChatDialogProps, AgentChatWidgetProps, AgentChatWindowHeaderProps, AgentChatWindowProps, AiButtonProps, AiButtonTileProps, AiCardProps, AiChipProps, AiGlassCardProps, AiGlassPaperProps, AiPaperProps, ArtifactContent, ArtifactKind, ArtifactViewerProps, AvatarProps, AvatarSize, AvatarVariant, BreadcrumbItem, BreadcrumbsProps, BudgetMeterProps, ButtonTileProps, CardProps, CardTrend, CarouselBreakpoint, CarouselItemsPerView, CarouselProps, ChartAsyncProps, ChartDefinition, ChartFieldSchema, ChartValidationResult, ChatAvatarProps, ChatContentFallbackProps, ChatDatapointDelta, ChatDatapointItem, ChatDatapointPolarity, ChatDatapointValueFormat, ChatDatapointsData, ChatDatapointsProps, ChatHistoryAgent, ChatHistoryAgentItemProps, ChatHistoryButtonBaseProps, ChatHistoryConversation, ChatHistoryHeaderProps, ChatHistoryProps, ChatInputProps, ChatMessage, ChatResponseMarkdownProps, ChatTableCell, ChatTableData, ChatTablePart, CodeBlock, CopyButtonProps, CopyableTableContainerProps, DateRangeFilterProps, DateRangePickerProps, DateRangePreset, DateRangeValue, DeltaChipProps, DeltaChipTone, DialogProps, DiffViewProps, DurationProps, EmptyStateProps, FABButtonProps, FileArtifact, FlowDiagramColumn, FlowDiagramHub, FlowDiagramItem, FlowDiagramLogo, FlowDiagramProps, FormDialogProps, GhostButtonProps, GlassCardProps, GlassPaperAsyncProps, GlassPaperProps, GradientBorderOptions, GreenWaveBackgroundProps, IconButtonProps, IconButtonVariant, JsonSchema, JsonViewerProps, KeyValueItem, KeyValueListProps, LatencyMetrics, LinkProps, LoadingSpinnerNexusProps, MarkdownContentProps, MessageBubbleProps, MessageFeedbackBarProps, MessageListProps, MetricCardProps, MetricStatProps, MetricValueSize, ModeTokens, NexusAreaChartProps, NexusBarChartProps, NexusEmptyStateProps, NexusFunnelChartProps, NexusFunnelStage, NexusHeatmapAxisItem, NexusHeatmapCell, NexusHeatmapProps, NexusHeatmapStatus, NexusLineChartProps, NexusNodeIconProps, NexusNodeIconSize, NexusNodeIconTone, NexusOrbitProps, NexusPieChartProps, NexusScatterChartProps, NexusStackedAreaChartProps, NexusStackedBarChartProps, NexusiFrameProps, NotificationBellProps, NotificationListItemProps, PaperAsyncProps, ParsedActivity, PrimaryButtonLinkProps, PrimaryButtonProps, ProcessStep, ProcessStepsProps, RelativeTimeProps, ResolvedArtifact, SchemaFieldViewProps, SecondaryButtonLinkProps, SecondaryButtonProps, SectionNavItem, SectionNavProps, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectProps, SelectableListItem, SelectableListProps, SideBladeNavItem, SideBladeNavListItemProps, SideBladeNavListProps, SideBladeProps, SkeletonProps, SkipLinkProps, SliderMarkOption, SliderProps, SourceCitationsProps, StackedBarItem, StageProgressProps, StageProgressStep, StageState, StatusBadgeProps, StatusBadgeVariant, StreamingBubbleProps, SuggestedPromptsProps, ThemeMode, ThemeModeContextValue, ThemeModeProviderProps, ToastProps, TooltipProps, TraceEvent, TypingIndicatorProps };
|
|
2271
|
+
export type { AccordionGroupItemProps, AccordionGroupProps, AccordionSingleProps, ActivityFeedEntry, ActivityFeedProps, ActivitySummary, AgentChatDialogProps, AgentChatWidgetProps, AgentChatWindowHeaderProps, AgentChatWindowProps, AiButtonProps, AiButtonTileProps, AiCardProps, AiChipProps, AiGlassCardProps, AiGlassPaperProps, AiPaperProps, ArtifactContent, ArtifactKind, ArtifactViewerProps, AvatarProps, AvatarSize, AvatarVariant, BreadcrumbItem, BreadcrumbsProps, BudgetMeterProps, ButtonTileProps, CardProps, CardTrend, CarouselBreakpoint, CarouselItemsPerView, CarouselProps, ChartAsyncProps, ChartDefinition, ChartEnvelope, ChartFieldSchema, ChartToProps, ChartValidationResult, ChartValueFormatter, ChatAvatarProps, ChatContentFallbackProps, ChatDatapointDelta, ChatDatapointItem, ChatDatapointPolarity, ChatDatapointValueFormat, ChatDatapointsData, ChatDatapointsProps, ChatHistoryAgent, ChatHistoryAgentItemProps, ChatHistoryButtonBaseProps, ChatHistoryConversation, ChatHistoryHeaderProps, ChatHistoryProps, ChatInputProps, ChatMessage, ChatResponseMarkdownProps, ChatTableCell, ChatTableData, ChatTablePart, CodeBlock, CopyButtonProps, CopyableTableContainerProps, DateRangeFilterProps, DateRangePickerProps, DateRangePreset, DateRangeValue, DeltaChipProps, DeltaChipTone, DialogProps, DiffViewProps, DurationProps, EmptyStateProps, FABButtonProps, FileArtifact, FlowDiagramColumn, FlowDiagramHub, FlowDiagramItem, FlowDiagramLogo, FlowDiagramProps, FormDialogProps, GhostButtonProps, GlassCardProps, GlassPaperAsyncProps, GlassPaperProps, GradientBorderOptions, GreenWaveBackgroundProps, IconButtonProps, IconButtonVariant, JsonSchema, JsonViewerProps, KeyValueItem, KeyValueListProps, LatencyMetrics, LinkProps, LoadingSpinnerNexusProps, MarkdownContentProps, MessageBubbleProps, MessageFeedbackBarProps, MessageListProps, MetricCardProps, MetricStatProps, MetricValueSize, ModeTokens, NexusAreaChartProps, NexusBarChartProps, NexusEmptyStateProps, NexusFunnelChartProps, NexusFunnelStage, NexusHeatmapAxisItem, NexusHeatmapCell, NexusHeatmapProps, NexusHeatmapStatus, NexusLineChartProps, NexusNodeIconProps, NexusNodeIconSize, NexusNodeIconTone, NexusOrbitProps, NexusPieChartProps, NexusScatterChartProps, NexusStackedAreaChartProps, NexusStackedBarChartProps, NexusiFrameProps, NotificationBellProps, NotificationListItemProps, PaperAsyncProps, ParsedActivity, PrimaryButtonLinkProps, PrimaryButtonProps, ProcessStep, ProcessStepsProps, RelativeTimeProps, ResolvedArtifact, SchemaFieldViewProps, SecondaryButtonLinkProps, SecondaryButtonProps, SectionNavItem, SectionNavProps, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectProps, SelectableListItem, SelectableListProps, SideBladeNavItem, SideBladeNavListItemProps, SideBladeNavListProps, SideBladeProps, SkeletonProps, SkipLinkProps, SliderMarkOption, SliderProps, SourceCitationsProps, StackedBarItem, StageProgressProps, StageProgressStep, StageState, StatusBadgeProps, StatusBadgeVariant, StreamingBubbleProps, SuggestedPromptsProps, ThemeMode, ThemeModeContextValue, ThemeModeProviderProps, ToastProps, TooltipProps, TraceEvent, TypingIndicatorProps };
|