react-markdown-table-ts 1.4.4 → 1.4.6

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/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  | `'light'` theme | `'dark'` theme |
13
13
 
14
14
  ## Overview
15
- A React component for generating and displaying formatted Markdown tables with syntax highlighting. The core component is `MarkdownTable` which converts 2D array data into properly formatted Markdown table syntax. Columns of variable width maintain consistent spacing across all rows, ensuring vertical alignment of delimiters. For syntax highlighting and line numbering, Prism.js is used within a `<pre>` HTML element.
15
+ A React component for generating and displaying formatted Markdown tables. The core component is `MarkdownTable` which converts 2D array data into properly formatted Markdown table syntax. Columns of variable width maintain consistent spacing across all rows, ensuring vertical alignment of delimiters. The output is displayed in a styled `<pre>` element with optional line numbering and supports both light and dark themes.
16
16
 
17
17
  ## Installation
18
18
 
@@ -20,7 +20,7 @@ A React component for generating and displaying formatted Markdown tables with s
20
20
  npm install react-markdown-table-ts
21
21
  ```
22
22
 
23
- The component includes all necessary Prism.js dependencies and CSS is embedded inline, so no additional setup is required.
23
+ The component includes all necessary dependencies and CSS is embedded inline, so no additional setup is required.
24
24
 
25
25
  ## API
26
26
  ```typescript
@@ -55,7 +55,7 @@ interface MarkdownTableProps {
55
55
  | `className` | `string` | `undefined` | Class will be applied to the \<pre\> element display. |
56
56
  | `preStyle` | `React.CSSProperties` | `undefined` | Allows direct styling of the display with CSS properties. |
57
57
  | `minWidth` | `number` | `undefined` | Optional minimum width in pixels for the table container. |
58
- | `showLineNumbers` | `boolean` | `true` | Show or hide line numbers in the Prism syntax highlighting. |
58
+ | `showLineNumbers` | `boolean` | `true` | Show or hide line numbers in the code block. |
59
59
  | `onGenerate` | `(markdownTableString: string) => void` | `undefined` | Callback to receive the generated Markdown table string. |
60
60
  ## Usage Patterns
61
61
 
@@ -116,9 +116,9 @@ interface MarkdownTableProps {
116
116
  - Preserves stack traces for debugging
117
117
 
118
118
  4. **Styling**:
119
- - Uses Prism.js for syntax highlighting
120
- - Supports light/dark themes
119
+ - Includes built-in light and dark themes
121
120
  - Custom styles via `className` and `preStyle` props
121
+ - Optional line numbers for better readability
122
122
 
123
123
  ## Common Transformations
124
124
 
@@ -133,31 +133,16 @@ interface MarkdownTableProps {
133
133
 
134
134
  ## Troubleshooting
135
135
 
136
- ### Styling Issues (Missing Line Numbers or Wrong Colors)
136
+ ### Styling Issues
137
137
 
138
- If you experience styling issues when importing this component into your project (e.g., missing line numbers, incorrect header colors), this may be due to your bundler's tree-shaking configuration.
138
+ If you experience styling issues when importing this component into your project (e.g., missing line numbers, incorrect colors), this may be due to CSS conflicts with other libraries or global styles in your application.
139
139
 
140
- **Solution 1 - Module Side Effects (Recommended)**
140
+ **Common Solutions:**
141
141
 
142
- Ensure your bundler preserves module side effects from this package. If using Webpack, add to your config:
142
+ 1. **Check for CSS conflicts**: Ensure no other libraries or global styles are overriding the component's built-in CSS.
143
143
 
144
- ```javascript
145
- module.exports = {
146
- // ... other config
147
- optimization: {
148
- sideEffects: true,
149
- },
150
- };
151
- ```
152
-
153
- **Solution 2 - Force Import**
144
+ 2. **Verify theme prop**: Make sure you're using the correct `theme` prop value (`'light'` or `'dark'`) for your application.
154
145
 
155
- If issues persist, you can manually import the Prism.js plugins in your app entry file:
156
-
157
- ```javascript
158
- import 'prismjs/components/prism-markdown';
159
- import 'prismjs/plugins/line-numbers/prism-line-numbers';
160
- import 'prismjs/plugins/line-numbers/prism-line-numbers.css';
161
- ```
146
+ 3. **Custom styling**: Use the `className` and `preStyle` props to add custom styles or override defaults as needed.
162
147
 
163
- Note: You may need to install `@types/prismjs` as a dev dependency for TypeScript projects.
148
+ 4. **Line numbers**: If line numbers aren't displaying, verify that `showLineNumbers` is set to `true` (default).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-markdown-table-ts",
3
- "version": "1.4.4",
4
- "description": "A React component that converts structured data into Markdown table syntax and displays it within a `<pre>` tag.",
3
+ "version": "1.4.6",
4
+ "description": "A React component that converts structured data into formatted Markdown table syntax and displays it in a styled code block with optional line numbers.",
5
5
  "keywords": [
6
6
  "markdown",
7
7
  "md",
@@ -33,7 +33,7 @@
33
33
  "dist"
34
34
  ],
35
35
  "sideEffects": [
36
- "src/index.tsx",
36
+ "src/index.ts",
37
37
  "**/*.css"
38
38
  ],
39
39
  "repository": {
@@ -58,9 +58,6 @@
58
58
  "react": ">=18.0.0",
59
59
  "react-dom": ">=18.0.0"
60
60
  },
61
- "dependencies": {
62
- "prismjs": "^1.30.0"
63
- },
64
61
  "devDependencies": {
65
62
  "react": "^18.3.1",
66
63
  "react-dom": "^18.3.1",
@@ -69,7 +66,6 @@
69
66
  "@testing-library/react": "^16.3.0",
70
67
  "@types/jest": "^29.5.14",
71
68
  "@types/node": "^24.6.0",
72
- "@types/prismjs": "^1.26.5",
73
69
  "@types/react": "^18.3.1",
74
70
  "@types/react-dom": "^18.3.1",
75
71
  "@vitejs/plugin-react-swc": "^4.1.0",
package/dist/dark.png DELETED
Binary file
package/dist/index.cjs DELETED
@@ -1,74 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("react");var We=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function yn(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var we={exports:{}},ge={};/**
2
- * @license React
3
- * react-jsx-runtime.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var He;function wn(){if(He)return ge;He=1;var u=J,g=Symbol.for("react.element"),t=Symbol.for("react.fragment"),v=Object.prototype.hasOwnProperty,b=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,E={key:!0,ref:!0,__self:!0,__source:!0};function h(a,c,x){var p,f={},k=null,C=null;x!==void 0&&(k=""+x),c.key!==void 0&&(k=""+c.key),c.ref!==void 0&&(C=c.ref);for(p in c)v.call(c,p)&&!E.hasOwnProperty(p)&&(f[p]=c[p]);if(a&&a.defaultProps)for(p in c=a.defaultProps,c)f[p]===void 0&&(f[p]=c[p]);return{$$typeof:g,type:a,key:k,ref:C,props:f,_owner:b.current}}return ge.Fragment=t,ge.jsx=h,ge.jsxs=h,ge}var pe={};/**
10
- * @license React
11
- * react-jsx-runtime.development.js
12
- *
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var qe;function En(){return qe||(qe=1,process.env.NODE_ENV!=="production"&&(function(){var u=J,g=Symbol.for("react.element"),t=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),h=Symbol.for("react.provider"),a=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),C=Symbol.for("react.offscreen"),P=Symbol.iterator,F="@@iterator";function _(e){if(e===null||typeof e!="object")return null;var i=P&&e[P]||e[F];return typeof i=="function"?i:null}var A=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function n(e){{for(var i=arguments.length,d=new Array(i>1?i-1:0),w=1;w<i;w++)d[w-1]=arguments[w];r("error",e,d)}}function r(e,i,d){{var w=A.ReactDebugCurrentFrame,$=w.getStackAddendum();$!==""&&(i+="%s",d=d.concat([$]));var j=d.map(function(T){return String(T)});j.unshift("Warning: "+i),Function.prototype.apply.call(console[e],console,j)}}var o=!1,s=!1,l=!1,m=!1,S=!1,y;y=Symbol.for("react.module.reference");function O(e){return!!(typeof e=="string"||typeof e=="function"||e===v||e===E||S||e===b||e===x||e===p||m||e===C||o||s||l||typeof e=="object"&&e!==null&&(e.$$typeof===k||e.$$typeof===f||e.$$typeof===h||e.$$typeof===a||e.$$typeof===c||e.$$typeof===y||e.getModuleId!==void 0))}function z(e,i,d){var w=e.displayName;if(w)return w;var $=i.displayName||i.name||"";return $!==""?d+"("+$+")":d}function U(e){return e.displayName||"Context"}function Y(e){if(e==null)return null;if(typeof e.tag=="number"&&n("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case v:return"Fragment";case t:return"Portal";case E:return"Profiler";case b:return"StrictMode";case x:return"Suspense";case p:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case a:var i=e;return U(i)+".Consumer";case h:var d=e;return U(d._context)+".Provider";case c:return z(e,e.render,"ForwardRef");case f:var w=e.displayName||null;return w!==null?w:Y(e.type)||"Memo";case k:{var $=e,j=$._payload,T=$._init;try{return Y(T(j))}catch{return null}}}return null}var B=Object.assign,ee=0,he,ce,D,H,G,ne,N;function me(){}me.__reactDisabledLog=!0;function V(){{if(ee===0){he=console.log,ce=console.info,D=console.warn,H=console.error,G=console.group,ne=console.groupCollapsed,N=console.groupEnd;var e={configurable:!0,enumerable:!0,value:me,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}ee++}}function re(){{if(ee--,ee===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:B({},e,{value:he}),info:B({},e,{value:ce}),warn:B({},e,{value:D}),error:B({},e,{value:H}),group:B({},e,{value:G}),groupCollapsed:B({},e,{value:ne}),groupEnd:B({},e,{value:N})})}ee<0&&n("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var K=A.ReactCurrentDispatcher,Z;function X(e,i,d){{if(Z===void 0)try{throw Error()}catch($){var w=$.stack.trim().match(/\n( *(at )?)/);Z=w&&w[1]||""}return`
18
- `+Z+e}}var ae=!1,Q;{var ie=typeof WeakMap=="function"?WeakMap:Map;Q=new ie}function ve(e,i){if(!e||ae)return"";{var d=Q.get(e);if(d!==void 0)return d}var w;ae=!0;var $=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var j;j=K.current,K.current=null,V();try{if(i){var T=function(){throw Error()};if(Object.defineProperty(T.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(T,[])}catch(W){w=W}Reflect.construct(e,[],T)}else{try{T.call()}catch(W){w=W}e.call(T.prototype)}}else{try{throw Error()}catch(W){w=W}e()}}catch(W){if(W&&w&&typeof W.stack=="string"){for(var R=W.stack.split(`
19
- `),L=w.stack.split(`
20
- `),I=R.length-1,M=L.length-1;I>=1&&M>=0&&R[I]!==L[M];)M--;for(;I>=1&&M>=0;I--,M--)if(R[I]!==L[M]){if(I!==1||M!==1)do if(I--,M--,M<0||R[I]!==L[M]){var q=`
21
- `+R[I].replace(" at new "," at ");return e.displayName&&q.includes("<anonymous>")&&(q=q.replace("<anonymous>",e.displayName)),typeof e=="function"&&Q.set(e,q),q}while(I>=1&&M>=0);break}}}finally{ae=!1,K.current=j,re(),Error.prepareStackTrace=$}var se=e?e.displayName||e.name:"",te=se?X(se):"";return typeof e=="function"&&Q.set(e,te),te}function de(e,i,d){return ve(e,!1)}function Je(e){var i=e.prototype;return!!(i&&i.isReactComponent)}function be(e,i,d){if(e==null)return"";if(typeof e=="function")return ve(e,Je(e));if(typeof e=="string")return X(e);switch(e){case x:return X("Suspense");case p:return X("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case c:return de(e.render);case f:return be(e.type,i,d);case k:{var w=e,$=w._payload,j=w._init;try{return be(j($),i,d)}catch{}}}return""}var fe=Object.prototype.hasOwnProperty,Fe={},Re=A.ReactDebugCurrentFrame;function ye(e){if(e){var i=e._owner,d=be(e.type,e._source,i?i.type:null);Re.setExtraStackFrame(d)}else Re.setExtraStackFrame(null)}function Ke(e,i,d,w,$){{var j=Function.call.bind(fe);for(var T in e)if(j(e,T)){var R=void 0;try{if(typeof e[T]!="function"){var L=Error((w||"React class")+": "+d+" type `"+T+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[T]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw L.name="Invariant Violation",L}R=e[T](i,T,w,d,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(I){R=I}R&&!(R instanceof Error)&&(ye($),n("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",w||"React class",d,T,typeof R),ye(null)),R instanceof Error&&!(R.message in Fe)&&(Fe[R.message]=!0,ye($),n("Failed %s type: %s",d,R.message),ye(null))}}}var Ze=Array.isArray;function Ee(e){return Ze(e)}function Xe(e){{var i=typeof Symbol=="function"&&Symbol.toStringTag,d=i&&e[Symbol.toStringTag]||e.constructor.name||"Object";return d}}function Qe(e){try{return Ce(e),!1}catch{return!0}}function Ce(e){return""+e}function Te(e){if(Qe(e))return n("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Xe(e)),Ce(e)}var $e=A.ReactCurrentOwner,en={key:!0,ref:!0,__self:!0,__source:!0},je,Oe;function nn(e){if(fe.call(e,"ref")){var i=Object.getOwnPropertyDescriptor(e,"ref").get;if(i&&i.isReactWarning)return!1}return e.ref!==void 0}function rn(e){if(fe.call(e,"key")){var i=Object.getOwnPropertyDescriptor(e,"key").get;if(i&&i.isReactWarning)return!1}return e.key!==void 0}function tn(e,i){typeof e.ref=="string"&&$e.current}function an(e,i){{var d=function(){je||(je=!0,n("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",i))};d.isReactWarning=!0,Object.defineProperty(e,"key",{get:d,configurable:!0})}}function on(e,i){{var d=function(){Oe||(Oe=!0,n("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",i))};d.isReactWarning=!0,Object.defineProperty(e,"ref",{get:d,configurable:!0})}}var sn=function(e,i,d,w,$,j,T){var R={$$typeof:g,type:e,key:i,ref:d,props:T,_owner:j};return R._store={},Object.defineProperty(R._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(R,"_self",{configurable:!1,enumerable:!1,writable:!1,value:w}),Object.defineProperty(R,"_source",{configurable:!1,enumerable:!1,writable:!1,value:$}),Object.freeze&&(Object.freeze(R.props),Object.freeze(R)),R};function ln(e,i,d,w,$){{var j,T={},R=null,L=null;d!==void 0&&(Te(d),R=""+d),rn(i)&&(Te(i.key),R=""+i.key),nn(i)&&(L=i.ref,tn(i,$));for(j in i)fe.call(i,j)&&!en.hasOwnProperty(j)&&(T[j]=i[j]);if(e&&e.defaultProps){var I=e.defaultProps;for(j in I)T[j]===void 0&&(T[j]=I[j])}if(R||L){var M=typeof e=="function"?e.displayName||e.name||"Unknown":e;R&&an(T,M),L&&on(T,M)}return sn(e,R,L,$,w,$e.current,T)}}var xe=A.ReactCurrentOwner,Pe=A.ReactDebugCurrentFrame;function oe(e){if(e){var i=e._owner,d=be(e.type,e._source,i?i.type:null);Pe.setExtraStackFrame(d)}else Pe.setExtraStackFrame(null)}var ke;ke=!1;function Ae(e){return typeof e=="object"&&e!==null&&e.$$typeof===g}function Ie(){{if(xe.current){var e=Y(xe.current.type);if(e)return`
22
-
23
- Check the render method of \``+e+"`."}return""}}function un(e){return""}var Me={};function cn(e){{var i=Ie();if(!i){var d=typeof e=="string"?e:e.displayName||e.name;d&&(i=`
24
-
25
- Check the top-level render call using <`+d+">.")}return i}}function De(e,i){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var d=cn(i);if(Me[d])return;Me[d]=!0;var w="";e&&e._owner&&e._owner!==xe.current&&(w=" It was passed a child from "+Y(e._owner.type)+"."),oe(e),n('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',d,w),oe(null)}}function ze(e,i){{if(typeof e!="object")return;if(Ee(e))for(var d=0;d<e.length;d++){var w=e[d];Ae(w)&&De(w,i)}else if(Ae(e))e._store&&(e._store.validated=!0);else if(e){var $=_(e);if(typeof $=="function"&&$!==e.entries)for(var j=$.call(e),T;!(T=j.next()).done;)Ae(T.value)&&De(T.value,i)}}}function dn(e){{var i=e.type;if(i==null||typeof i=="string")return;var d;if(typeof i=="function")d=i.propTypes;else if(typeof i=="object"&&(i.$$typeof===c||i.$$typeof===f))d=i.propTypes;else return;if(d){var w=Y(i);Ke(d,e.props,"prop",w,e)}else if(i.PropTypes!==void 0&&!ke){ke=!0;var $=Y(i);n("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",$||"Unknown")}typeof i.getDefaultProps=="function"&&!i.getDefaultProps.isReactClassApproved&&n("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function fn(e){{for(var i=Object.keys(e.props),d=0;d<i.length;d++){var w=i[d];if(w!=="children"&&w!=="key"){oe(e),n("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",w),oe(null);break}}e.ref!==null&&(oe(e),n("Invalid attribute `ref` supplied to `React.Fragment`."),oe(null))}}var Le={};function Ne(e,i,d,w,$,j){{var T=O(e);if(!T){var R="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(R+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var L=un();L?R+=L:R+=Ie();var I;e===null?I="null":Ee(e)?I="array":e!==void 0&&e.$$typeof===g?(I="<"+(Y(e.type)||"Unknown")+" />",R=" Did you accidentally export a JSX literal instead of a component?"):I=typeof e,n("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",I,R)}var M=ln(e,i,d,$,j);if(M==null)return M;if(T){var q=i.children;if(q!==void 0)if(w)if(Ee(q)){for(var se=0;se<q.length;se++)ze(q[se],e);Object.freeze&&Object.freeze(q)}else n("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else ze(q,e)}if(fe.call(i,"key")){var te=Y(e),W=Object.keys(i).filter(function(bn){return bn!=="key"}),_e=W.length>0?"{key: someKey, "+W.join(": ..., ")+": ...}":"{key: someKey}";if(!Le[te+_e]){var vn=W.length>0?"{"+W.join(": ..., ")+": ...}":"{}";n(`A props object containing a "key" prop is being spread into JSX:
26
- let props = %s;
27
- <%s {...props} />
28
- React keys must be passed directly to JSX without using spread:
29
- let props = %s;
30
- <%s key={someKey} {...props} />`,_e,te,vn,te),Le[te+_e]=!0}}return e===v?fn(M):dn(M),M}}function gn(e,i,d){return Ne(e,i,d,!0)}function pn(e,i,d){return Ne(e,i,d,!1)}var hn=pn,mn=gn;pe.Fragment=v,pe.jsx=hn,pe.jsxs=mn})()),pe}var Ue;function xn(){return Ue||(Ue=1,process.env.NODE_ENV==="production"?we.exports=wn():we.exports=En()),we.exports}var le=xn(),Se={exports:{}},Ye;function kn(){return Ye||(Ye=1,(function(u){var g=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/**
31
- * Prism: Lightweight, robust, elegant syntax highlighting
32
- *
33
- * @license MIT <https://opensource.org/licenses/MIT>
34
- * @author Lea Verou <https://lea.verou.me>
35
- * @namespace
36
- * @public
37
- */var t=(function(v){var b=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,E=0,h={},a={manual:v.Prism&&v.Prism.manual,disableWorkerMessageHandler:v.Prism&&v.Prism.disableWorkerMessageHandler,util:{encode:function n(r){return r instanceof c?new c(r.type,n(r.content),r.alias):Array.isArray(r)?r.map(n):r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(n){return Object.prototype.toString.call(n).slice(8,-1)},objId:function(n){return n.__id||Object.defineProperty(n,"__id",{value:++E}),n.__id},clone:function n(r,o){o=o||{};var s,l;switch(a.util.type(r)){case"Object":if(l=a.util.objId(r),o[l])return o[l];s={},o[l]=s;for(var m in r)r.hasOwnProperty(m)&&(s[m]=n(r[m],o));return s;case"Array":return l=a.util.objId(r),o[l]?o[l]:(s=[],o[l]=s,r.forEach(function(S,y){s[y]=n(S,o)}),s);default:return r}},getLanguage:function(n){for(;n;){var r=b.exec(n.className);if(r)return r[1].toLowerCase();n=n.parentElement}return"none"},setLanguage:function(n,r){n.className=n.className.replace(RegExp(b,"gi"),""),n.classList.add("language-"+r)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var n=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(n){var r=document.getElementsByTagName("script");for(var o in r)if(r[o].src==n)return r[o]}return null}},isActive:function(n,r,o){for(var s="no-"+r;n;){var l=n.classList;if(l.contains(r))return!0;if(l.contains(s))return!1;n=n.parentElement}return!!o}},languages:{plain:h,plaintext:h,text:h,txt:h,extend:function(n,r){var o=a.util.clone(a.languages[n]);for(var s in r)o[s]=r[s];return o},insertBefore:function(n,r,o,s){s=s||a.languages;var l=s[n],m={};for(var S in l)if(l.hasOwnProperty(S)){if(S==r)for(var y in o)o.hasOwnProperty(y)&&(m[y]=o[y]);o.hasOwnProperty(S)||(m[S]=l[S])}var O=s[n];return s[n]=m,a.languages.DFS(a.languages,function(z,U){U===O&&z!=n&&(this[z]=m)}),m},DFS:function n(r,o,s,l){l=l||{};var m=a.util.objId;for(var S in r)if(r.hasOwnProperty(S)){o.call(r,S,r[S],s||S);var y=r[S],O=a.util.type(y);O==="Object"&&!l[m(y)]?(l[m(y)]=!0,n(y,o,null,l)):O==="Array"&&!l[m(y)]&&(l[m(y)]=!0,n(y,o,S,l))}}},plugins:{},highlightAll:function(n,r){a.highlightAllUnder(document,n,r)},highlightAllUnder:function(n,r,o){var s={callback:o,container:n,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,m;m=s.elements[l++];)a.highlightElement(m,r===!0,s.callback)},highlightElement:function(n,r,o){var s=a.util.getLanguage(n),l=a.languages[s];a.util.setLanguage(n,s);var m=n.parentElement;m&&m.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(m,s);var S=n.textContent,y={element:n,language:s,grammar:l,code:S};function O(U){y.highlightedCode=U,a.hooks.run("before-insert",y),y.element.innerHTML=y.highlightedCode,a.hooks.run("after-highlight",y),a.hooks.run("complete",y),o&&o.call(y.element)}if(a.hooks.run("before-sanity-check",y),m=y.element.parentElement,m&&m.nodeName.toLowerCase()==="pre"&&!m.hasAttribute("tabindex")&&m.setAttribute("tabindex","0"),!y.code){a.hooks.run("complete",y),o&&o.call(y.element);return}if(a.hooks.run("before-highlight",y),!y.grammar){O(a.util.encode(y.code));return}if(r&&v.Worker){var z=new Worker(a.filename);z.onmessage=function(U){O(U.data)},z.postMessage(JSON.stringify({language:y.language,code:y.code,immediateClose:!0}))}else O(a.highlight(y.code,y.grammar,y.language))},highlight:function(n,r,o){var s={code:n,grammar:r,language:o};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),c.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(n,r){var o=r.rest;if(o){for(var s in o)r[s]=o[s];delete r.rest}var l=new f;return k(l,l.head,n),p(n,l,r,l.head,0),P(l)},hooks:{all:{},add:function(n,r){var o=a.hooks.all;o[n]=o[n]||[],o[n].push(r)},run:function(n,r){var o=a.hooks.all[n];if(!(!o||!o.length))for(var s=0,l;l=o[s++];)l(r)}},Token:c};v.Prism=a;function c(n,r,o,s){this.type=n,this.content=r,this.alias=o,this.length=(s||"").length|0}c.stringify=function n(r,o){if(typeof r=="string")return r;if(Array.isArray(r)){var s="";return r.forEach(function(O){s+=n(O,o)}),s}var l={type:r.type,content:n(r.content,o),tag:"span",classes:["token",r.type],attributes:{},language:o},m=r.alias;m&&(Array.isArray(m)?Array.prototype.push.apply(l.classes,m):l.classes.push(m)),a.hooks.run("wrap",l);var S="";for(var y in l.attributes)S+=" "+y+'="'+(l.attributes[y]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+S+">"+l.content+"</"+l.tag+">"};function x(n,r,o,s){n.lastIndex=r;var l=n.exec(o);if(l&&s&&l[1]){var m=l[1].length;l.index+=m,l[0]=l[0].slice(m)}return l}function p(n,r,o,s,l,m){for(var S in o)if(!(!o.hasOwnProperty(S)||!o[S])){var y=o[S];y=Array.isArray(y)?y:[y];for(var O=0;O<y.length;++O){if(m&&m.cause==S+","+O)return;var z=y[O],U=z.inside,Y=!!z.lookbehind,B=!!z.greedy,ee=z.alias;if(B&&!z.pattern.global){var he=z.pattern.toString().match(/[imsuy]*$/)[0];z.pattern=RegExp(z.pattern.source,he+"g")}for(var ce=z.pattern||z,D=s.next,H=l;D!==r.tail&&!(m&&H>=m.reach);H+=D.value.length,D=D.next){var G=D.value;if(r.length>n.length)return;if(!(G instanceof c)){var ne=1,N;if(B){if(N=x(ce,H,n,Y),!N||N.index>=n.length)break;var K=N.index,me=N.index+N[0].length,V=H;for(V+=D.value.length;K>=V;)D=D.next,V+=D.value.length;if(V-=D.value.length,H=V,D.value instanceof c)continue;for(var re=D;re!==r.tail&&(V<me||typeof re.value=="string");re=re.next)ne++,V+=re.value.length;ne--,G=n.slice(H,V),N.index-=H}else if(N=x(ce,0,G,Y),!N)continue;var K=N.index,Z=N[0],X=G.slice(0,K),ae=G.slice(K+Z.length),Q=H+G.length;m&&Q>m.reach&&(m.reach=Q);var ie=D.prev;X&&(ie=k(r,ie,X),H+=X.length),C(r,ie,ne);var ve=new c(S,U?a.tokenize(Z,U):Z,ee,Z);if(D=k(r,ie,ve),ae&&k(r,D,ae),ne>1){var de={cause:S+","+O,reach:Q};p(n,r,o,D.prev,H,de),m&&de.reach>m.reach&&(m.reach=de.reach)}}}}}}function f(){var n={value:null,prev:null,next:null},r={value:null,prev:n,next:null};n.next=r,this.head=n,this.tail=r,this.length=0}function k(n,r,o){var s=r.next,l={value:o,prev:r,next:s};return r.next=l,s.prev=l,n.length++,l}function C(n,r,o){for(var s=r.next,l=0;l<o&&s!==n.tail;l++)s=s.next;r.next=s,s.prev=r,n.length-=l}function P(n){for(var r=[],o=n.head.next;o!==n.tail;)r.push(o.value),o=o.next;return r}if(!v.document)return v.addEventListener&&(a.disableWorkerMessageHandler||v.addEventListener("message",function(n){var r=JSON.parse(n.data),o=r.language,s=r.code,l=r.immediateClose;v.postMessage(a.highlight(s,a.languages[o],o)),l&&v.close()},!1)),a;var F=a.util.currentScript();F&&(a.filename=F.src,F.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var A=document.readyState;A==="loading"||A==="interactive"&&F&&F.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(g);u.exports&&(u.exports=t),typeof We<"u"&&(We.Prism=t),t.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.languages.markup.doctype.inside["internal-subset"].inside=t.languages.markup,t.hooks.add("wrap",function(v){v.type==="entity"&&(v.attributes.title=v.content.replace(/&amp;/,"&"))}),Object.defineProperty(t.languages.markup.tag,"addInlined",{value:function(b,E){var h={};h["language-"+E]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:t.languages[E]},h.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:h}};a["language-"+E]={pattern:/[\s\S]+/,inside:t.languages[E]};var c={};c[b]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return b}),"i"),lookbehind:!0,greedy:!0,inside:a},t.languages.insertBefore("markup","cdata",c)}}),Object.defineProperty(t.languages.markup.tag,"addAttribute",{value:function(v,b){t.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+v+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[b,"language-"+b],inside:t.languages[b]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup,t.languages.xml=t.languages.extend("markup",{}),t.languages.ssml=t.languages.xml,t.languages.atom=t.languages.xml,t.languages.rss=t.languages.xml,(function(v){var b=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;v.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+b.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+b.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+b.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+b.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:b,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},v.languages.css.atrule.inside.rest=v.languages.css;var E=v.languages.markup;E&&(E.tag.addInlined("style","css"),E.tag.addAttribute("style","css"))})(t),t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},t.languages.javascript=t.languages.extend("clike",{"class-name":[t.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),t.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,t.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:t.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:t.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:t.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:t.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:t.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),t.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:t.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),t.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),t.languages.markup&&(t.languages.markup.tag.addInlined("script","javascript"),t.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),t.languages.js=t.languages.javascript,(function(){if(typeof t>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var v="Loading…",b=function(F,_){return"✖ Error "+F+" while fetching file: "+_},E="✖ Error: File does not exist or is empty",h={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},a="data-src-status",c="loading",x="loaded",p="failed",f="pre[data-src]:not(["+a+'="'+x+'"]):not(['+a+'="'+c+'"])';function k(F,_,A){var n=new XMLHttpRequest;n.open("GET",F,!0),n.onreadystatechange=function(){n.readyState==4&&(n.status<400&&n.responseText?_(n.responseText):n.status>=400?A(b(n.status,n.statusText)):A(E))},n.send(null)}function C(F){var _=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(F||"");if(_){var A=Number(_[1]),n=_[2],r=_[3];return n?r?[A,Number(r)]:[A,void 0]:[A,A]}}t.hooks.add("before-highlightall",function(F){F.selector+=", "+f}),t.hooks.add("before-sanity-check",function(F){var _=F.element;if(_.matches(f)){F.code="",_.setAttribute(a,c);var A=_.appendChild(document.createElement("CODE"));A.textContent=v;var n=_.getAttribute("data-src"),r=F.language;if(r==="none"){var o=(/\.(\w+)$/.exec(n)||[,"none"])[1];r=h[o]||o}t.util.setLanguage(A,r),t.util.setLanguage(_,r);var s=t.plugins.autoloader;s&&s.loadLanguages(r),k(n,function(l){_.setAttribute(a,x);var m=C(_.getAttribute("data-range"));if(m){var S=l.split(/\r\n?|\n/g),y=m[0],O=m[1]==null?S.length:m[1];y<0&&(y+=S.length),y=Math.max(0,Math.min(y-1,S.length)),O<0&&(O+=S.length),O=Math.max(0,Math.min(O,S.length)),l=S.slice(y,O).join(`
38
- `),_.hasAttribute("data-start")||_.setAttribute("data-start",String(y+1))}A.textContent=l,t.highlightElement(A)},function(l){_.setAttribute(a,p),A.textContent=l})}}),t.plugins.fileHighlight={highlight:function(_){for(var A=(_||document).querySelectorAll(f),n=0,r;r=A[n++];)t.highlightElement(r)}};var P=!1;t.fileHighlight=function(){P||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),P=!0),t.plugins.fileHighlight.highlight.apply(this,arguments)}})()})(Se)),Se.exports}var An=kn();const _n=yn(An);(function(u){var g=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function t(p){return p=p.replace(/<inner>/g,function(){return g}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+p+")")}var v=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,b=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return v}),E=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;u.languages.markdown=u.languages.extend("markup",{}),u.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:u.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+b+E+"(?:"+b+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+b+E+")(?:"+b+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(v),inside:u.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+b+")"+E+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+b+"$"),inside:{"table-header":{pattern:RegExp(v),alias:"important",inside:u.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:t(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:t(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(p){["url","bold","italic","strike","code-snippet"].forEach(function(f){p!==f&&(u.languages.markdown[p].inside.content.inside[f]=u.languages.markdown[f])})}),u.hooks.add("after-tokenize",function(p){if(p.language!=="markdown"&&p.language!=="md")return;function f(k){if(!(!k||typeof k=="string"))for(var C=0,P=k.length;C<P;C++){var F=k[C];if(F.type!=="code"){f(F.content);continue}var _=F.content[1],A=F.content[3];if(_&&A&&_.type==="code-language"&&A.type==="code-block"&&typeof _.content=="string"){var n=_.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp");n=(/[a-z][\w-]*/i.exec(n)||[""])[0].toLowerCase();var r="language-"+n;A.alias?typeof A.alias=="string"?A.alias=[A.alias,r]:A.alias.push(r):A.alias=[r]}}}f(p.tokens)}),u.hooks.add("wrap",function(p){if(p.type==="code-block"){for(var f="",k=0,C=p.classes.length;k<C;k++){var P=p.classes[k],F=/language-(.+)/.exec(P);if(F){f=F[1];break}}var _=u.languages[f];if(_)p.content=u.highlight(x(p.content),_,f);else if(f&&f!=="none"&&u.plugins.autoloader){var A="md-"+new Date().valueOf()+"-"+Math.floor(Math.random()*1e16);p.attributes.id=A,u.plugins.autoloader.loadLanguages(f,function(){var n=document.getElementById(A);n&&(n.innerHTML=u.highlight(n.textContent,u.languages[f],f))})}}});var h=RegExp(u.languages.markup.tag.pattern.source,"gi"),a={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;function x(p){var f=p.replace(h,"");return f=f.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(k,C){if(C=C.toLowerCase(),C[0]==="#"){var P;return C[1]==="x"?P=parseInt(C.slice(2),16):P=Number(C.slice(1)),c(P)}else{var F=a[C];return F||k}}),f}u.languages.md=u.languages.markdown})(Prism);var Be={},Ve;function Sn(){return Ve||(Ve=1,(function(){if(typeof Prism>"u"||typeof document>"u")return;var u="line-numbers",g=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(h,a){if(!(h.tagName!=="PRE"||!h.classList.contains(u))){var c=h.querySelector(".line-numbers-rows");if(c){var x=parseInt(h.getAttribute("data-start"),10)||1,p=x+(c.children.length-1);a<x&&(a=x),a>p&&(a=p);var f=a-x;return c.children[f]}}},resize:function(h){v([h])},assumeViewportIndependence:!0};function v(h){if(h=h.filter(function(c){var x=b(c),p=x["white-space"];return p==="pre-wrap"||p==="pre-line"}),h.length!=0){var a=h.map(function(c){var x=c.querySelector("code"),p=c.querySelector(".line-numbers-rows");if(!(!x||!p)){var f=c.querySelector(".line-numbers-sizer"),k=x.textContent.split(g);f||(f=document.createElement("span"),f.className="line-numbers-sizer",x.appendChild(f)),f.innerHTML="0",f.style.display="block";var C=f.getBoundingClientRect().height;return f.innerHTML="",{element:c,lines:k,lineHeights:[],oneLinerHeight:C,sizer:f}}}).filter(Boolean);a.forEach(function(c){var x=c.sizer,p=c.lines,f=c.lineHeights,k=c.oneLinerHeight;f[p.length-1]=void 0,p.forEach(function(C,P){if(C&&C.length>1){var F=x.appendChild(document.createElement("span"));F.style.display="block",F.textContent=C}else f[P]=k})}),a.forEach(function(c){for(var x=c.sizer,p=c.lineHeights,f=0,k=0;k<p.length;k++)p[k]===void 0&&(p[k]=x.children[f++].getBoundingClientRect().height)}),a.forEach(function(c){var x=c.sizer,p=c.element.querySelector(".line-numbers-rows");x.style.display="none",x.innerHTML="",c.lineHeights.forEach(function(f,k){p.children[k].style.height=f+"px"})})}}function b(h){return h?window.getComputedStyle?getComputedStyle(h):h.currentStyle||null:null}var E=void 0;window.addEventListener("resize",function(){t.assumeViewportIndependence&&E===window.innerWidth||(E=window.innerWidth,v(Array.prototype.slice.call(document.querySelectorAll("pre."+u))))}),Prism.hooks.add("complete",function(h){if(h.code){var a=h.element,c=a.parentNode;if(!(!c||!/pre/i.test(c.nodeName))&&!a.querySelector(".line-numbers-rows")&&Prism.util.isActive(a,u)){a.classList.remove(u),c.classList.add(u);var x=h.code.match(g),p=x?x.length+1:1,f,k=new Array(p+1).join("<span></span>");f=document.createElement("span"),f.setAttribute("aria-hidden","true"),f.className="line-numbers-rows",f.innerHTML=k,c.hasAttribute("data-start")&&(c.style.counterReset="linenumber "+(parseInt(c.getAttribute("data-start"),10)-1)),h.element.appendChild(f),v([c]),Prism.hooks.run("line-numbers",h)}}}),Prism.hooks.add("line-numbers",function(h){h.plugins=h.plugins||{},h.plugins.lineNumbers=!0})})()),Be}Sn();function Ge(u){return u.useTabs?" ":u.hasPadding?" ":""}class Fn{padding;constructor(g){this.padding=Ge(g)}formatCell(g,t,v){const b=v;switch(t){case"right":return`${this.padding}${g.padStart(b)}${this.padding}`;case"center":{const E=b-g.length,h=Math.floor(E/2),a=E-h;return`${this.padding}${" ".repeat(h)}${g}${" ".repeat(a)}${this.padding}`}default:return`${this.padding}${g.padEnd(b)}${this.padding}`}}}class Rn{static indicators={left:g=>`:${"-".repeat(g-1)}`,right:g=>`${"-".repeat(g-1)}:`,center:g=>`:${"-".repeat(g-2)}:`,none:g=>"-".repeat(g)};static formatIndicator(g,t){return this.indicators[g](t)}}class Cn{config;cellFormatter;adjustedAlignments;constructor(g){this.config=g,this.cellFormatter=new Fn(g),this.adjustedAlignments=this.getAdjustedAlignments()}getAdjustedAlignments(){return this.config.columnAlignments.length<this.config.columnCount?[...Array.from(this.config.columnAlignments),...Array(this.config.columnCount-this.config.columnAlignments.length).fill("none")]:Array.from(this.config.columnAlignments)}formatRow(g){return`|${Array.from({length:this.config.columnCount},(v,b)=>{let E=g[b]??"";this.config.replaceNewlines&&(E=E.replace(/\n/g,"<br>"));const h=this.adjustedAlignments[b],a=this.config.columnWidths?this.config.columnWidths[b]:E.length;return this.cellFormatter.formatCell(E,h,a)}).join("|")}|`}formatAlignmentRow(){const g=Ge(this.config);return`|${Array.from({length:this.config.columnCount},(v,b)=>{const E=this.adjustedAlignments[b],h=this.config.columnWidths?this.config.columnWidths[b]:3,a=Rn.formatIndicator(E,h);return`${g}${a}${g}`}).join("|")}|`}}function Tn(u,g){const t=new Array(g).fill(3);return u.forEach(v=>{for(let b=0;b<g;b++){const E=v[b]??"";t[b]=Math.max(t[b],E.length)}}),t}function $n(u){const g=u.inputDataHeader.length,t=u.inputDataBody.map(v=>v.length);return Math.max(g,...t)}function jn(u,g,t){return t?Tn([u.inputDataHeader,...u.inputDataBody],g):void 0}function On(u,g,t=!0,v=!1,b=!1,E=!0){const h=$n(u),a=jn(u,h,t),c={columnCount:h,columnAlignments:g,columnWidths:a,useTabs:v,replaceNewlines:b,hasPadding:E},x=new Cn(c),p=x.formatRow(u.inputDataHeader),f=x.formatAlignmentRow(),k=u.inputDataBody.map(C=>x.formatRow(C)).join(`
39
- `);return`${p}
40
- ${f}
41
- ${k}`.trimEnd()}function Pn(u){let g="",t=u;for(;t>=0;)g=String.fromCharCode(t%26+65)+g,t=Math.floor(t/26)-1;return g}function In(u){return Array.from({length:u},(g,t)=>Pn(t))}class ue extends Error{constructor(g,t){super(g,t),this.name="MarkdownTableError",Object.setPrototypeOf(this,ue.prototype)}}function Mn(u){if(u===null||!Array.isArray(u))throw new ue("The 'data' prop must be a two-dimensional array.");if(u.length===0)throw new ue("The 'data' array must contain at least one row.")}const Dn=`
42
- code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}pre[class*=language-].line-numbers{position:relative;padding-left:2.4em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.5em;text-align:right}
43
- `,zn=`
44
- code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#282a36}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}pre[class*=language-].line-numbers{position:relative;padding-left:2.4em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.5em;text-align:right}
45
- `;function Ln(u,g){return g?{inputDataHeader:u[0],inputDataBody:u.slice(1)}:{inputDataHeader:In(u[0].length),inputDataBody:u}}function Nn(u,g,t,v,b,E,h){try{Mn(u);const{inputDataHeader:a,inputDataBody:c}=Ln(u,g);return On({inputDataHeader:a,inputDataBody:c},t,v,b,E,h)}catch(a){if(a instanceof ue)return`Error: ${a.message}`;throw a}}function Wn({inputData:u=null,hasHeader:g=!0,columnAlignments:t=[],isCompact:v=!1,hasTabs:b=!1,hasPadding:E=!0,convertLineBreaks:h=!1,className:a,onGenerate:c,theme:x="light",preStyle:p,topPadding:f=16,minWidth:k,showLineNumbers:C=!0}){const P=J.useRef(null),F=J.useId(),_=J.useDeferredValue(u),[,A]=J.useTransition(),n=J.useMemo(()=>Nn(_,g,t,!v,b,h,E),[_,g,t,v,b,h,E]);return J.useEffect(()=>{c&&c(n)},[n,c]),J.useEffect(()=>{const r=P.current?.querySelector("code"),o=P.current;r&&o&&n&&A(()=>{requestAnimationFrame(()=>{if(_n.highlightElement(r),C&&!o.querySelector(".line-numbers-rows")){const l=n.split(`
46
- `).length,m=document.createElement("span");m.setAttribute("aria-hidden","true"),m.className="line-numbers-rows";const S=new Array(l).fill(null).map((y,O)=>`<span data-line="${O+1}"></span>`).join("");m.innerHTML=S,o.appendChild(m),o.style.counterReset!=="linenumber"&&(o.style.counterReset="linenumber")}if(!C&&o){const s=o.querySelector(".line-numbers-rows");s&&s.remove()}})})},[n,A,C]),le.jsxs(le.Fragment,{children:[le.jsxs("style",{children:[x==="light"?Dn:zn,`
47
- pre {
48
- position: relative;
49
- padding-top: ${f}px !important;
50
- }
51
- pre::before {
52
- position: absolute;
53
- top: 8px;
54
- left: 12px;
55
- color: ${x==="light"?"#666":"#999"};
56
- letter-spacing: 2px;
57
- font-size: 12px;
58
- }
59
- /* Hide line numbers when showLineNumbers is false */
60
- pre:not(.line-numbers) .line-numbers-rows {
61
- display: none !important;
62
- }
63
- /* Remove left padding when line numbers are hidden */
64
- pre:not(.line-numbers) {
65
- padding-left: 1em !important;
66
- }
67
- pre:not(.line-numbers) > code {
68
- padding-left: 0 !important;
69
- }
70
- /* Fallback: use data attribute if counter doesn't work */
71
- .line-numbers-rows > span[data-line]::before {
72
- content: attr(data-line) !important;
73
- }
74
- `]}),le.jsx("div",{id:F,style:{position:"relative",isolation:"isolate",display:"inline-block"},children:le.jsx("pre",{ref:P,className:`${a} language-markdown ${C?"line-numbers":""} ${x==="dark"?"dark-theme":""}`,style:{width:"fit-content",minWidth:k?`${k}px`:"min-content",margin:0,...p},children:le.jsx("code",{className:"language-markdown",role:"code",children:n})})})]})}exports.MarkdownTable=Wn;exports.MarkdownTableError=ue;
package/dist/index.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview Main MarkdownTable component that generates and displays markdown
3
- * table syntax with Prism.js syntax highlighting.
4
- */
5
- import 'prismjs/components/prism-markdown';
6
- import 'prismjs/plugins/line-numbers/prism-line-numbers';
7
- import type { MarkdownTableProps } from './types';
8
- export type { Alignment, MarkdownTableProps, InputData, TableConfig } from './types';
9
- export { MarkdownTableError } from './validation';
10
- export declare function MarkdownTable({ inputData, hasHeader, columnAlignments, isCompact, hasTabs, hasPadding, convertLineBreaks, className, onGenerate, theme, preStyle, topPadding, minWidth, showLineNumbers, }: MarkdownTableProps): import("react/jsx-runtime").JSX.Element;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAa,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI7D,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AA6ClD,wBAAgB,aAAa,CAAC,EAC5B,SAAgB,EAChB,SAAgB,EAChB,gBAAqB,EACrB,SAAiB,EACjB,OAAe,EACf,UAAiB,EACjB,iBAAyB,EACzB,SAAS,EACT,UAAU,EACV,KAAe,EACf,QAAQ,EACR,UAAe,EACf,QAAQ,EACR,eAAsB,GACvB,EAAE,kBAAkB,2CAmIpB"}