it-data-nexus-ui-library 2.10.12 → 2.10.13

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.
@@ -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","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
+ 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=/[^\x20-\x7e]/,a=["schemaVersion","chartType","title","description","config","data"],o=["valueFormat","xAxis","yAxis"],m=["chartType","version","description","dataItem","configKeys","limits","example","component","toProps","lazy"],u=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),p=(e,t)=>Object.keys(e).filter(e=>!t.includes(e)),c=(e,t)=>r.test(t)?[`${e} must contain only printable ASCII`]:[],l=(e,t)=>"string"==typeof t?c(e,t):Array.isArray(t)?t.flatMap((t,s)=>l(`${e}[${s}]`,t)):u(t)?Object.entries(t).flatMap(([t,n])=>[...c(`${e} key`,t),...l(`${e}.${s.test(t)?t:"?"}`,n)]):[],h=(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},d=(e,t)=>{if(!u(t))return{valid:!1,errors:["item must be an object"]};const{properties:s,required:n}=e.dataItem,i=p(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(...h(e,n,t[e]));return{valid:0===i.length,errors:i}},f=(e,t)=>{if(!u(t))return[`${e} must be an object`];if("number"===t.type){const s=p(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=p(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)?i?.forEach((t,n)=>s.push(...c(`${e}.enum[${n}]`,t))):s.push(`${e}.enum must be a non-empty string array`),"string"==typeof r&&s.push(...c(`${e}.pattern`,r)),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},y=(e,t,n=[])=>{if(!u(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(...f(`${e}.${a}`,t[a]));return r},b=s=>{if(!u(s))return{valid:!1,errors:["definition must be an object"]};const r=p(s,m).map(e=>`${e} is not allowed`),{chartType:f,version:b,description:g,dataItem:$,configKeys:x,limits:v,example:j,toProps:w,lazy:A}=s;"string"==typeof f&&t.test(f)||r.push(`chartType must match ${t}`),"string"==typeof b&&n.test(b)||r.push("version must be semver x.y.z"),"string"!=typeof g||""===g.trim()?r.push("description must be a non-blank string"):(g.length>300&&r.push("description must be at most 300 characters"),i.test(g)&&r.push("description must not contain URLs"),(g.includes("`")||g.includes("~~~"))&&r.push("description must not contain backticks or code fences"),r.push(...c("description",g)));let k=!1;if(u($)){const e=r.length;r.push(...p($,["properties","required"]).map(e=>`dataItem.${e} is not allowed`)),r.push(...y("dataItem.properties",$.properties));const{required:t,properties:s}=$;Array.isArray(t)&&t.every(e=>u(s)&&Object.hasOwn(s,e))?new Set(t).size!==t.length&&r.push("dataItem.required must not repeat a field"):r.push("dataItem.required must list declared properties"),k=r.length===e}else r.push("dataItem must be an object");void 0!==x&&r.push(...y("configKeys",x,o));let I=e;if(void 0!==v&&(!u(v)||p(v,["maxPoints"]).length>0?r.push("limits may only contain maxPoints"):void 0!==v.maxPoints&&(!Number.isInteger(v.maxPoints)||v.maxPoints<1||v.maxPoints>e?r.push("limits.maxPoints must be an integer from 1 to 1000"):I=v.maxPoints)),void 0!==w&&"function"!=typeof w&&r.push("toProps must be a function"),void 0!==A&&"function"!=typeof A&&r.push("lazy must be a function"),u(j)){r.push(...p(j,a).map(e=>`example.${e} is not allowed`)),r.push(...l("example",j)),"1.0"!==j.schemaVersion&&r.push('example.schemaVersion must be "1.0"'),j.chartType!==f&&r.push("example.chartType must equal chartType"),"string"==typeof j.title&&""!==j.title.trim()||r.push("example.title is required");const e=j.config;if(u(e)&&["number","currency","percentage"].includes(e.valueFormat))if(u(x))for(const[t,s]of Object.entries(e)){if(o.includes(t))continue;const e=x[t];void 0===e?r.push(`example.config.${t} is not a declared config key`):r.push(...h(`example.config.${t}`,e,s))}else p(e,o).length>0&&r.push("example.config has undeclared config keys");else r.push("example.config.valueFormat must be number, currency or percentage");const t=j.data;!Array.isArray(t)||0===t.length||t.length>I?r.push(`example.data must hold 1 to ${I} items`):k&&t.forEach((e,t)=>{const n=d(s,e);r.push(...n.errors.map(e=>`example.data[${t}]: ${e}`))})}else r.push("example must be a nexus-chart envelope object");return{valid:0===r.length,errors:r}};export{e as MAX_CHART_POINTS,b as validateChartDefinition,d as validateChartItem};
@@ -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,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
+ 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{Body2 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?"3px":void 0,textUnderlineOffset:"4px",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
- const o="2.10.12";export{o as SAGE_NEXUS_UI_VERSION};
1
+ const o="2.10.13";export{o as SAGE_NEXUS_UI_VERSION};
package/dist/index.d.ts CHANGED
@@ -2164,7 +2164,7 @@ interface ChartDefinition {
2164
2164
  chartType: string;
2165
2165
  /** Per-type semver, e.g. "1.0.0". A breaking data-shape change is a new chartType instead. */
2166
2166
  version: string;
2167
- /** Model-facing: at most 300 chars, no URLs, no code fences, no backticks. */
2167
+ /** Model-facing: at most 300 chars of printable ASCII, no URLs, no code fences, no backticks. */
2168
2168
  description: string;
2169
2169
  /** Flat data item. At most 8 fields; names `/^[a-zA-Z][a-zA-Z0-9]{0,31}$/`. Unknown fields are rejected. */
2170
2170
  dataItem: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "it-data-nexus-ui-library",
3
- "version": "2.10.12",
3
+ "version": "2.10.13",
4
4
  "description": "Nexus core components",
5
5
  "license": "ISC",
6
6
  "author": "emsmart-sage",