instaui 0.1.3__py3-none-any.whl → 0.1.4__py3-none-any.whl
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.
- instaui/components/content.py +4 -4
- instaui/components/element.py +56 -12
- instaui/components/highlight_code/code.js +63 -0
- instaui/components/highlight_code/code.py +117 -0
- instaui/components/highlight_code/static/core.min.js +307 -0
- instaui/components/highlight_code/static/languages/css.min.js +31 -0
- instaui/components/highlight_code/static/languages/javascript.min.js +81 -0
- instaui/components/highlight_code/static/languages/json.min.js +8 -0
- instaui/components/highlight_code/static/languages/python-repl.min.js +5 -0
- instaui/components/highlight_code/static/languages/python.min.js +42 -0
- instaui/components/highlight_code/static/languages/shell.min.js +5 -0
- instaui/components/highlight_code/static/styles/default.min.css +9 -0
- instaui/components/highlight_code/static/styles/github-dark-dimmed.min.css +9 -0
- instaui/components/highlight_code/static/styles/github-dark.min.css +10 -0
- instaui/components/highlight_code/static/styles/github.min.css +10 -0
- instaui/components/html/__init__.py +2 -0
- instaui/components/html/select.py +6 -7
- instaui/components/html/textarea.py +28 -0
- instaui/components/markdown/markdown.js +33 -0
- instaui/components/markdown/markdown.py +41 -0
- instaui/components/markdown/static/github-markdown.css +12 -0
- instaui/components/markdown/static/marked.esm.js +2580 -0
- instaui/components/vfor.py +1 -1
- instaui/daisyui/__init__.py +20 -0
- instaui/daisyui/_index.py +15 -0
- instaui/daisyui/button.py +38 -0
- instaui/daisyui/checkbox.py +17 -0
- instaui/daisyui/static/daisyui.css +1 -0
- instaui/daisyui/static/themes.css +1 -0
- instaui/dependencies/component_dependency.py +11 -5
- instaui/fastapi_server/dependency_router.py +4 -3
- instaui/fastapi_server/resource.py +12 -16
- instaui/fastapi_server/server.py +30 -12
- instaui/html_tools.py +4 -0
- instaui/inject.py +3 -3
- instaui/runtime/_app.py +6 -1
- instaui/runtime/resource.py +3 -0
- instaui/spa_router/_functions.py +1 -1
- instaui/spa_router/_route_model.py +1 -1
- instaui/static/insta-ui.css +1 -1
- instaui/static/insta-ui.esm-browser.prod.js +106 -111
- instaui/static/insta-ui.js.map +1 -1
- instaui/systems/module_system.py +30 -0
- instaui/template/zero_template.py +18 -17
- instaui/ui/__build_init.py +73 -0
- instaui/ui/__init__.py +68 -58
- instaui/ui/__init__.pyi +129 -0
- instaui/ui/events.py +1 -1
- instaui/ui_functions/server.py +3 -1
- instaui/zero/func.py +12 -11
- instaui/zero/scope.py +89 -1
- {instaui-0.1.3.dist-info → instaui-0.1.4.dist-info}/METADATA +1 -1
- {instaui-0.1.3.dist-info → instaui-0.1.4.dist-info}/RECORD +55 -31
- instaui/static/insta-ui.iife.js +0 -29
- instaui/static/insta-ui.iife.js.map +0 -1
- instaui/zero/test.html +0 -44
- {instaui-0.1.3.dist-info → instaui-0.1.4.dist-info}/LICENSE +0 -0
- {instaui-0.1.3.dist-info → instaui-0.1.4.dist-info}/WHEEL +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
/*! `css` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict"
|
3
|
+
;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),t=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),i=["accent-color","align-content","align-items","align-self","alignment-baseline","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-end-end-radius","border-end-start-radius","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","cx","cy","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","empty-cells","enable-background","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","flood-color","flood-opacity","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","kerning","justify-content","justify-items","justify-self","left","letter-spacing","lighting-color","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","marker","marker-end","marker-mid","marker-start","mask","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","scale","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","speak","speak-as","src","tab-size","table-layout","text-anchor","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-offset","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","vector-effect","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index"].sort().reverse()
|
4
|
+
;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},
|
5
|
+
BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",
|
6
|
+
begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{
|
7
|
+
className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{
|
8
|
+
scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
|
9
|
+
contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
|
10
|
+
scope:"number",
|
11
|
+
begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
|
12
|
+
relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
|
13
|
+
}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
|
14
|
+
case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
|
15
|
+
classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{
|
16
|
+
begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{
|
17
|
+
className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{
|
18
|
+
className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
|
19
|
+
},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
|
20
|
+
begin:":("+t.join("|")+")"},{begin:":(:)?("+o.join("|")+")"}]},l.CSS_VARIABLE,{
|
21
|
+
className:"attribute",begin:"\\b("+i.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,
|
22
|
+
contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{
|
23
|
+
begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
|
24
|
+
},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0,
|
25
|
+
excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]",
|
26
|
+
relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
|
27
|
+
},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
|
28
|
+
$pattern:/[a-z-]+/,keyword:"and or not only",attribute:r.join(" ")},contains:[{
|
29
|
+
begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{
|
30
|
+
className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})()
|
31
|
+
;export default hljsGrammar;
|
@@ -0,0 +1,81 @@
|
|
1
|
+
/*! `javascript` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict"
|
3
|
+
;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],i=[].concat(r,t,s)
|
4
|
+
;return o=>{const l=o.regex,d=e,b={begin:/<[A-Za-z0-9\\._:-]+/,
|
5
|
+
end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
|
6
|
+
const a=e[0].length+e.index,t=e.input[a]
|
7
|
+
;if("<"===t||","===t)return void n.ignoreMatch();let s
|
8
|
+
;">"===t&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
|
9
|
+
;return-1!==e.input.indexOf(a,n)})(e,{after:a})||n.ignoreMatch())
|
10
|
+
;const r=e.input.substring(a)
|
11
|
+
;((s=r.match(/^\s*=/))||(s=r.match(/^\s+extends\s+/))&&0===s.index)&&n.ignoreMatch()
|
12
|
+
}},g={$pattern:e,keyword:n,literal:a,built_in:i,"variable.language":c
|
13
|
+
},u="[0-9](_?[0-9])*",m=`\\.(${u})`,E="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",A={
|
14
|
+
className:"number",variants:[{
|
15
|
+
begin:`(\\b(${E})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{
|
16
|
+
begin:`\\b(${E})\\b((${m})\\b|\\.)?|(${m})\\b`},{
|
17
|
+
begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
|
18
|
+
begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
|
19
|
+
begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
|
20
|
+
begin:"\\b0[0-7]+n?\\b"}],relevance:0},y={className:"subst",begin:"\\$\\{",
|
21
|
+
end:"\\}",keywords:g,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",
|
22
|
+
returnEnd:!1,contains:[o.BACKSLASH_ESCAPE,y],subLanguage:"xml"}},N={
|
23
|
+
begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
|
24
|
+
contains:[o.BACKSLASH_ESCAPE,y],subLanguage:"css"}},_={begin:".?gql`",end:"",
|
25
|
+
starts:{end:"`",returnEnd:!1,contains:[o.BACKSLASH_ESCAPE,y],
|
26
|
+
subLanguage:"graphql"}},f={className:"string",begin:"`",end:"`",
|
27
|
+
contains:[o.BACKSLASH_ESCAPE,y]},p={className:"comment",
|
28
|
+
variants:[o.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
|
29
|
+
begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
|
30
|
+
begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
|
31
|
+
excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",
|
32
|
+
endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
|
33
|
+
}),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]
|
34
|
+
},v=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,h,N,_,f,{match:/\$\d+/},A]
|
35
|
+
;y.contains=v.concat({begin:/\{/,end:/\}/,keywords:g,contains:["self"].concat(v)
|
36
|
+
});const S=[].concat(p,y.contains),w=S.concat([{begin:/(\s*)\(/,end:/\)/,
|
37
|
+
keywords:g,contains:["self"].concat(S)}]),R={className:"params",begin:/(\s*)\(/,
|
38
|
+
end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:g,contains:w},O={variants:[{
|
39
|
+
match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,l.concat(d,"(",l.concat(/\./,d),")*")],
|
40
|
+
scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
|
41
|
+
match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},k={relevance:0,
|
42
|
+
match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
|
43
|
+
className:"title.class",keywords:{_:[...t,...s]}},I={variants:[{
|
44
|
+
match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
|
45
|
+
className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],
|
46
|
+
illegal:/%/},x={
|
47
|
+
match:l.concat(/\b/,(T=[...r,"super","import"].map((e=>e+"\\s*\\(")),
|
48
|
+
l.concat("(?!",T.join("|"),")")),d,l.lookahead(/\s*\(/)),
|
49
|
+
className:"title.function",relevance:0};var T;const C={
|
50
|
+
begin:l.concat(/\./,l.lookahead(l.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,
|
51
|
+
excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},M={
|
52
|
+
match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},
|
53
|
+
contains:[{begin:/\(\)/},R]
|
54
|
+
},B="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+o.UNDERSCORE_IDENT_RE+")\\s*=>",$={
|
55
|
+
match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(B)],
|
56
|
+
keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]}
|
57
|
+
;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{
|
58
|
+
PARAMS_CONTAINS:w,CLASS_REFERENCE:k},illegal:/#(?![$_A-z])/,
|
59
|
+
contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
|
60
|
+
label:"use_strict",className:"meta",relevance:10,
|
61
|
+
begin:/^\s*['"]use (strict|asm)['"]/
|
62
|
+
},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,h,N,_,f,p,{match:/\$\d+/},A,k,{
|
63
|
+
className:"attr",begin:d+l.lookahead(":"),relevance:0},$,{
|
64
|
+
begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
|
65
|
+
keywords:"return throw case",relevance:0,contains:[p,o.REGEXP_MODE,{
|
66
|
+
className:"function",begin:B,returnBegin:!0,end:"\\s*=>",contains:[{
|
67
|
+
className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{
|
68
|
+
className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
|
69
|
+
excludeBegin:!0,excludeEnd:!0,keywords:g,contains:w}]}]},{begin:/,/,relevance:0
|
70
|
+
},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
|
71
|
+
match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:b.begin,
|
72
|
+
"on:begin":b.isTrulyOpeningTag,end:b.end}],subLanguage:"xml",contains:[{
|
73
|
+
begin:b.begin,end:b.end,skip:!0,contains:["self"]}]}]},I,{
|
74
|
+
beginKeywords:"while if switch catch for"},{
|
75
|
+
begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
|
76
|
+
returnBegin:!0,label:"func.def",contains:[R,o.inherit(o.TITLE_MODE,{begin:d,
|
77
|
+
className:"title.function"})]},{match:/\.\.\./,relevance:0},C,{match:"\\$"+d,
|
78
|
+
relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
|
79
|
+
contains:[R]},x,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
|
80
|
+
className:"variable.constant"},O,M,{match:/\$[(.]/}]}}})()
|
81
|
+
;export default hljsGrammar;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/*! `json` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict";return e=>{
|
3
|
+
const a=["true","false","null"],r={scope:"literal",beginKeywords:a.join(" ")}
|
4
|
+
;return{name:"JSON",aliases:["jsonc"],keywords:{literal:a},contains:[{
|
5
|
+
className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{
|
6
|
+
match:/[{}[\],:]/,className:"punctuation",relevance:0
|
7
|
+
},e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
|
8
|
+
illegal:"\\S"}}})();export default hljsGrammar;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*! `python-repl` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict";return a=>({aliases:["pycon"],contains:[{
|
3
|
+
className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}
|
4
|
+
},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]})})()
|
5
|
+
;export default hljsGrammar;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/*! `python` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict";return e=>{
|
3
|
+
const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],t={
|
4
|
+
$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,
|
5
|
+
built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
|
6
|
+
literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
|
7
|
+
type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
|
8
|
+
},i={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/,
|
9
|
+
end:/\}/,keywords:t,illegal:/#/},l={begin:/\{\{/,relevance:0},o={
|
10
|
+
className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
|
11
|
+
begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
|
12
|
+
contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{
|
13
|
+
begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
|
14
|
+
contains:[e.BACKSLASH_ESCAPE,i],relevance:10},{
|
15
|
+
begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
|
16
|
+
contains:[e.BACKSLASH_ESCAPE,i,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
|
17
|
+
end:/"""/,contains:[e.BACKSLASH_ESCAPE,i,l,r]},{begin:/([uU]|[rR])'/,end:/'/,
|
18
|
+
relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
|
19
|
+
begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
|
20
|
+
end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
|
21
|
+
contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
|
22
|
+
contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
|
23
|
+
},b="[0-9](_?[0-9])*",c=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,d="\\b|"+s.join("|"),m={
|
24
|
+
className:"number",relevance:0,variants:[{
|
25
|
+
begin:`(\\b(${b})|(${c}))[eE][+-]?(${b})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{
|
26
|
+
begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{
|
27
|
+
begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`
|
28
|
+
},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${b})[jJ](?=${d})`
|
29
|
+
}]},g={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:t,
|
30
|
+
contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},p={
|
31
|
+
className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
|
32
|
+
end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,
|
33
|
+
contains:["self",i,m,o,e.HASH_COMMENT_MODE]}]};return r.contains=[o,m,i],{
|
34
|
+
name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:t,
|
35
|
+
illegal:/(<\/|\?)|=>/,contains:[i,m,{scope:"variable.language",match:/\bself\b/
|
36
|
+
},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"
|
37
|
+
},o,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",
|
38
|
+
3:"title.function"},contains:[p]},{variants:[{
|
39
|
+
match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],
|
40
|
+
scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
|
41
|
+
className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,p,o]}]}}})()
|
42
|
+
;export default hljsGrammar;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*! `shell` grammar compiled for Highlight.js 11.10.0 */
|
2
|
+
var hljsGrammar=(()=>{"use strict";return s=>({name:"Shell Session",
|
3
|
+
aliases:["console","shellsession"],contains:[{className:"meta.prompt",
|
4
|
+
begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
|
5
|
+
subLanguage:"bash"}}]})})();export default hljsGrammar;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/*!
|
2
|
+
Theme: Default
|
3
|
+
Description: Original highlight.js style
|
4
|
+
Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
5
|
+
Maintainer: @highlightjs/core-team
|
6
|
+
Website: https://highlightjs.org/
|
7
|
+
License: see project LICENSE
|
8
|
+
Touched: 2021
|
9
|
+
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
2
|
+
Theme: GitHub Dark Dimmed
|
3
|
+
Description: Dark dimmed theme as seen on github.com
|
4
|
+
Author: github.com
|
5
|
+
Maintainer: @Hirse
|
6
|
+
Updated: 2021-05-15
|
7
|
+
|
8
|
+
Colors taken from GitHub's CSS
|
9
|
+
*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
2
|
+
Theme: GitHub Dark
|
3
|
+
Description: Dark theme as seen on github.com
|
4
|
+
Author: github.com
|
5
|
+
Maintainer: @Hirse
|
6
|
+
Updated: 2021-05-15
|
7
|
+
|
8
|
+
Outdated base version: https://github.com/primer/github-syntax-dark
|
9
|
+
Current colors taken from GitHub's CSS
|
10
|
+
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
2
|
+
Theme: GitHub
|
3
|
+
Description: Light theme as seen on github.com
|
4
|
+
Author: github.com
|
5
|
+
Maintainer: @Hirse
|
6
|
+
Updated: 2021-05-15
|
7
|
+
|
8
|
+
Outdated base version: https://github.com/primer/github-syntax-light
|
9
|
+
Current colors taken from GitHub's CSS
|
10
|
+
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
|
@@ -13,6 +13,7 @@ from .div import Div as div
|
|
13
13
|
from .range import Range as range
|
14
14
|
from .date import Date as date
|
15
15
|
from .link import Link as link
|
16
|
+
from .textarea import Textarea as textarea
|
16
17
|
|
17
18
|
option = select.Option
|
18
19
|
|
@@ -33,4 +34,5 @@ __all__ = [
|
|
33
34
|
"range",
|
34
35
|
"date",
|
35
36
|
"link",
|
37
|
+
"textarea",
|
36
38
|
]
|
@@ -29,15 +29,13 @@ class Select(ValueElement[Union[List[str], str]]):
|
|
29
29
|
def __init__(
|
30
30
|
self,
|
31
31
|
value: Union[_T_Select_Value, ui_vars.TMaybeRef[_T_Select_Value], None] = None,
|
32
|
+
*,
|
33
|
+
model_value: Union[str, ui_vars.TMaybeRef[str], None] = None,
|
32
34
|
):
|
33
35
|
super().__init__("select", value, is_html_component=True)
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
-
value: Ref[Any],
|
38
|
-
*modifiers: Literal["lazy"],
|
39
|
-
):
|
40
|
-
return super().vmodel(value, *modifiers) # type: ignore
|
37
|
+
if model_value is not None:
|
38
|
+
self.props({"value": model_value})
|
41
39
|
|
42
40
|
@overload
|
43
41
|
def on_change(self, handler: Callable, *, key: Optional[str] = None) -> Self: ...
|
@@ -65,8 +63,9 @@ class Select(ValueElement[Union[List[str], str]]):
|
|
65
63
|
def from_list(
|
66
64
|
cls,
|
67
65
|
options: TMaybeRef[List],
|
66
|
+
value: Union[_T_Select_Value, ui_vars.TMaybeRef[_T_Select_Value], None] = None,
|
68
67
|
) -> Select:
|
69
|
-
with cls() as select:
|
68
|
+
with cls(value) as select:
|
70
69
|
with VFor(options) as item:
|
71
70
|
Select.Option(item) # type: ignore
|
72
71
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
from typing import TYPE_CHECKING, Optional, Union
|
3
|
+
from instaui.components.element import Element
|
4
|
+
from instaui.components.value_element import ValueElement
|
5
|
+
|
6
|
+
from ._mixins import InputEventMixin
|
7
|
+
|
8
|
+
if TYPE_CHECKING:
|
9
|
+
import instaui.vars as ui_vars
|
10
|
+
|
11
|
+
|
12
|
+
class Textarea(InputEventMixin, ValueElement[str]):
|
13
|
+
def __init__(
|
14
|
+
self,
|
15
|
+
value: Union[str, ui_vars.TMaybeRef[str], None] = None,
|
16
|
+
*,
|
17
|
+
model_value: Union[str, ui_vars.TMaybeRef[str], None] = None,
|
18
|
+
disabled: Optional[ui_vars.TMaybeRef[bool]] = None,
|
19
|
+
):
|
20
|
+
super().__init__("textarea", value, is_html_component=True)
|
21
|
+
|
22
|
+
if disabled is not None:
|
23
|
+
self.props({"disabled": disabled})
|
24
|
+
if model_value is not None:
|
25
|
+
self.props({"value": model_value})
|
26
|
+
|
27
|
+
def _input_event_mixin_element(self) -> Element:
|
28
|
+
return self
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { h, computed } from "vue";
|
2
|
+
import { marked } from "marked";
|
3
|
+
|
4
|
+
export default {
|
5
|
+
props: ['content'],
|
6
|
+
setup(props) {
|
7
|
+
|
8
|
+
const md = computed(() => marked.parse(
|
9
|
+
cleanMultilineString(props.content)
|
10
|
+
))
|
11
|
+
|
12
|
+
return () => h("div", { class: 'markdown-body', innerHTML: md.value });
|
13
|
+
}
|
14
|
+
|
15
|
+
}
|
16
|
+
|
17
|
+
function cleanMultilineString(text) {
|
18
|
+
const lines = text.split(/\r?\n/);
|
19
|
+
|
20
|
+
while (lines.length && lines[0].trim() === '') {
|
21
|
+
lines.shift();
|
22
|
+
}
|
23
|
+
|
24
|
+
while (lines.length && lines[lines.length - 1].trim() === '') {
|
25
|
+
lines.pop();
|
26
|
+
}
|
27
|
+
|
28
|
+
if (lines.length > 0) {
|
29
|
+
lines[0] = lines[0].replace(/^[\t ]+/, '');
|
30
|
+
}
|
31
|
+
|
32
|
+
return lines.join('\n');
|
33
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
from pathlib import Path
|
2
|
+
from instaui import ui
|
3
|
+
|
4
|
+
_STATIC_DIR = Path(__file__).parent / "static"
|
5
|
+
_CORE_JS_FILE = _STATIC_DIR / "marked.esm.js"
|
6
|
+
_GITHUB_MARKDOWN_CSS_FILE = _STATIC_DIR / "github-markdown.css"
|
7
|
+
|
8
|
+
_IMPORT_MAPS = {
|
9
|
+
"marked": _CORE_JS_FILE,
|
10
|
+
}
|
11
|
+
|
12
|
+
|
13
|
+
class Markdown(
|
14
|
+
ui.element,
|
15
|
+
esm="./markdown.js",
|
16
|
+
externals=_IMPORT_MAPS,
|
17
|
+
css=[_GITHUB_MARKDOWN_CSS_FILE],
|
18
|
+
):
|
19
|
+
def __init__(self, content: ui.TMaybeRef[str]):
|
20
|
+
super().__init__()
|
21
|
+
self.props({"content": _clean_multiline_string(content)})
|
22
|
+
|
23
|
+
|
24
|
+
def _clean_multiline_string(text: ui.TMaybeRef[str]) -> ui.TMaybeRef[str]:
|
25
|
+
if not isinstance(text, str):
|
26
|
+
return text
|
27
|
+
|
28
|
+
if not text:
|
29
|
+
return ""
|
30
|
+
|
31
|
+
lines = text.splitlines()
|
32
|
+
|
33
|
+
while lines and lines[0].strip() == "":
|
34
|
+
lines.pop(0)
|
35
|
+
while lines and lines[-1].strip() == "":
|
36
|
+
lines.pop()
|
37
|
+
|
38
|
+
if lines:
|
39
|
+
lines[0] = lines[0].lstrip()
|
40
|
+
|
41
|
+
return "\n".join(lines)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
MIT License
|
3
|
+
|
4
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
7
|
+
|
8
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
9
|
+
|
10
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
11
|
+
*/
|
12
|
+
.github-md-dark.markdown-body{color-scheme:dark;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:#f0f6fc;background-color:#0d1117;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.github-md-dark.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.github-md-dark.markdown-body h1:hover .anchor .octicon-link:before,.github-md-dark.markdown-body h2:hover .anchor .octicon-link:before,.github-md-dark.markdown-body h3:hover .anchor .octicon-link:before,.github-md-dark.markdown-body h4:hover .anchor .octicon-link:before,.github-md-dark.markdown-body h5:hover .anchor .octicon-link:before,.github-md-dark.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:' ';display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>")}.github-md-dark.markdown-body details,.github-md-dark.markdown-body figcaption,.github-md-dark.markdown-body figure{display:block}.github-md-dark.markdown-body summary{display:list-item}.github-md-dark.markdown-body [hidden]{display:none!important}.github-md-dark.markdown-body a{background-color:transparent;color:#4493f8;text-decoration:none}.github-md-dark.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.github-md-dark.markdown-body b,.github-md-dark.markdown-body strong{font-weight:600}.github-md-dark.markdown-body dfn{font-style:italic}.github-md-dark.markdown-body h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid #3d444db3}.github-md-dark.markdown-body mark{background-color:#bb800926;color:#f0f6fc}.github-md-dark.markdown-body small{font-size:90%}.github-md-dark.markdown-body sub,.github-md-dark.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.github-md-dark.markdown-body sub{bottom:-.25em}.github-md-dark.markdown-body sup{top:-.5em}.github-md-dark.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box}.github-md-dark.markdown-body code,.github-md-dark.markdown-body kbd,.github-md-dark.markdown-body pre,.github-md-dark.markdown-body samp{font-family:monospace;font-size:1em}.github-md-dark.markdown-body figure{margin:1em 2.5rem}.github-md-dark.markdown-body hr{box-sizing:content-box;overflow:hidden;background:0 0;border-bottom:1px solid #3d444db3;height:.25em;padding:0;margin:1.5rem 0;background-color:#3d444d;border:0}.github-md-dark.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.github-md-dark.markdown-body [type=button],.github-md-dark.markdown-body [type=reset],.github-md-dark.markdown-body [type=submit]{-webkit-appearance:button;appearance:button}.github-md-dark.markdown-body [type=checkbox],.github-md-dark.markdown-body [type=radio]{box-sizing:border-box;padding:0}.github-md-dark.markdown-body [type=number]::-webkit-inner-spin-button,.github-md-dark.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.github-md-dark.markdown-body [type=search]::-webkit-search-cancel-button,.github-md-dark.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.github-md-dark.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.github-md-dark.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.github-md-dark.markdown-body a:hover{text-decoration:underline}.github-md-dark.markdown-body ::placeholder{color:#9198a1;opacity:1}.github-md-dark.markdown-body hr::before{display:table;content:""}.github-md-dark.markdown-body hr::after{display:table;clear:both;content:""}.github-md-dark.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}.github-md-dark.markdown-body td,.github-md-dark.markdown-body th{padding:0}.github-md-dark.markdown-body details summary{cursor:pointer}.github-md-dark.markdown-body [role=button]:focus,.github-md-dark.markdown-body a:focus,.github-md-dark.markdown-body input[type=checkbox]:focus,.github-md-dark.markdown-body input[type=radio]:focus{outline:2px solid #1f6feb;outline-offset:-2px;box-shadow:none}.github-md-dark.markdown-body [role=button]:focus:not(:focus-visible),.github-md-dark.markdown-body a:focus:not(:focus-visible),.github-md-dark.markdown-body input[type=checkbox]:focus:not(:focus-visible),.github-md-dark.markdown-body input[type=radio]:focus:not(:focus-visible){outline:solid 1px transparent}.github-md-dark.markdown-body [role=button]:focus-visible,.github-md-dark.markdown-body a:focus-visible,.github-md-dark.markdown-body input[type=checkbox]:focus-visible,.github-md-dark.markdown-body input[type=radio]:focus-visible{outline:2px solid #1f6feb;outline-offset:-2px;box-shadow:none}.github-md-dark.markdown-body a:not([class]):focus,.github-md-dark.markdown-body a:not([class]):focus-visible,.github-md-dark.markdown-body input[type=checkbox]:focus,.github-md-dark.markdown-body input[type=checkbox]:focus-visible,.github-md-dark.markdown-body input[type=radio]:focus,.github-md-dark.markdown-body input[type=radio]:focus-visible{outline-offset:0}.github-md-dark.markdown-body kbd{display:inline-block;padding:.25rem;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:#f0f6fc;vertical-align:middle;background-color:#151b23;border:solid 1px #3d444db3;border-bottom-color:#3d444db3;border-radius:6px;box-shadow:inset 0 -1px 0 #3d444db3}.github-md-dark.markdown-body h1,.github-md-dark.markdown-body h2,.github-md-dark.markdown-body h3,.github-md-dark.markdown-body h4,.github-md-dark.markdown-body h5,.github-md-dark.markdown-body h6{margin-top:1.5rem;margin-bottom:1rem;font-weight:600;line-height:1.25}.github-md-dark.markdown-body h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #3d444db3}.github-md-dark.markdown-body h3{font-weight:600;font-size:1.25em}.github-md-dark.markdown-body h4{font-weight:600;font-size:1em}.github-md-dark.markdown-body h5{font-weight:600;font-size:.875em}.github-md-dark.markdown-body h6{font-weight:600;font-size:.85em;color:#9198a1}.github-md-dark.markdown-body p{margin-top:0;margin-bottom:10px}.github-md-dark.markdown-body blockquote{margin:0;padding:0 1em;color:#9198a1;border-left:.25em solid #3d444d}.github-md-dark.markdown-body ol,.github-md-dark.markdown-body ul{margin-top:0;margin-bottom:0;padding-left:2em}.github-md-dark.markdown-body ol ol,.github-md-dark.markdown-body ul ol{list-style-type:lower-roman}.github-md-dark.markdown-body ol ol ol,.github-md-dark.markdown-body ol ul ol,.github-md-dark.markdown-body ul ol ol,.github-md-dark.markdown-body ul ul ol{list-style-type:lower-alpha}.github-md-dark.markdown-body dd{margin-left:0}.github-md-dark.markdown-body code,.github-md-dark.markdown-body samp,.github-md-dark.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.github-md-dark.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.github-md-dark.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.github-md-dark.markdown-body input::-webkit-inner-spin-button,.github-md-dark.markdown-body input::-webkit-outer-spin-button{margin:0;appearance:none}.github-md-dark.markdown-body .mr-2{margin-right:.5rem!important}.github-md-dark.markdown-body::before{display:table;content:""}.github-md-dark.markdown-body::after{display:table;clear:both;content:""}.github-md-dark.markdown-body>:first-child{margin-top:0!important}.github-md-dark.markdown-body>:last-child{margin-bottom:0!important}.github-md-dark.markdown-body a:not([href]){color:inherit;text-decoration:none}.github-md-dark.markdown-body .absent{color:#f85149}.github-md-dark.markdown-body .anchor{float:left;padding-right:.25rem;margin-left:-20px;line-height:1}.github-md-dark.markdown-body .anchor:focus{outline:0}.github-md-dark.markdown-body blockquote,.github-md-dark.markdown-body details,.github-md-dark.markdown-body dl,.github-md-dark.markdown-body ol,.github-md-dark.markdown-body p,.github-md-dark.markdown-body pre,.github-md-dark.markdown-body table,.github-md-dark.markdown-body ul{margin-top:0;margin-bottom:1rem}.github-md-dark.markdown-body blockquote>:first-child{margin-top:0}.github-md-dark.markdown-body blockquote>:last-child{margin-bottom:0}.github-md-dark.markdown-body h1 .octicon-link,.github-md-dark.markdown-body h2 .octicon-link,.github-md-dark.markdown-body h3 .octicon-link,.github-md-dark.markdown-body h4 .octicon-link,.github-md-dark.markdown-body h5 .octicon-link,.github-md-dark.markdown-body h6 .octicon-link{color:#f0f6fc;vertical-align:middle;visibility:hidden}.github-md-dark.markdown-body h1:hover .anchor,.github-md-dark.markdown-body h2:hover .anchor,.github-md-dark.markdown-body h3:hover .anchor,.github-md-dark.markdown-body h4:hover .anchor,.github-md-dark.markdown-body h5:hover .anchor,.github-md-dark.markdown-body h6:hover .anchor{text-decoration:none}.github-md-dark.markdown-body h1:hover .anchor .octicon-link,.github-md-dark.markdown-body h2:hover .anchor .octicon-link,.github-md-dark.markdown-body h3:hover .anchor .octicon-link,.github-md-dark.markdown-body h4:hover .anchor .octicon-link,.github-md-dark.markdown-body h5:hover .anchor .octicon-link,.github-md-dark.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.github-md-dark.markdown-body h1 code,.github-md-dark.markdown-body h1 tt,.github-md-dark.markdown-body h2 code,.github-md-dark.markdown-body h2 tt,.github-md-dark.markdown-body h3 code,.github-md-dark.markdown-body h3 tt,.github-md-dark.markdown-body h4 code,.github-md-dark.markdown-body h4 tt,.github-md-dark.markdown-body h5 code,.github-md-dark.markdown-body h5 tt,.github-md-dark.markdown-body h6 code,.github-md-dark.markdown-body h6 tt{padding:0 .2em;font-size:inherit}.github-md-dark.markdown-body summary h1,.github-md-dark.markdown-body summary h2,.github-md-dark.markdown-body summary h3,.github-md-dark.markdown-body summary h4,.github-md-dark.markdown-body summary h5,.github-md-dark.markdown-body summary h6{display:inline-block}.github-md-dark.markdown-body summary h1 .anchor,.github-md-dark.markdown-body summary h2 .anchor,.github-md-dark.markdown-body summary h3 .anchor,.github-md-dark.markdown-body summary h4 .anchor,.github-md-dark.markdown-body summary h5 .anchor,.github-md-dark.markdown-body summary h6 .anchor{margin-left:-40px}.github-md-dark.markdown-body summary h1,.github-md-dark.markdown-body summary h2{padding-bottom:0;border-bottom:0}.github-md-dark.markdown-body ol.no-list,.github-md-dark.markdown-body ul.no-list{padding:0;list-style-type:none}.github-md-dark.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.github-md-dark.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.github-md-dark.markdown-body ol[type="i s"]{list-style-type:lower-roman}.github-md-dark.markdown-body ol[type="I s"]{list-style-type:upper-roman}.github-md-dark.markdown-body ol[type="1"]{list-style-type:decimal}.github-md-dark.markdown-body div>ol:not([type]){list-style-type:decimal}.github-md-dark.markdown-body ol ol,.github-md-dark.markdown-body ol ul,.github-md-dark.markdown-body ul ol,.github-md-dark.markdown-body ul ul{margin-top:0;margin-bottom:0}.github-md-dark.markdown-body li>p{margin-top:1rem}.github-md-dark.markdown-body li+li{margin-top:.25em}.github-md-dark.markdown-body dl{padding:0}.github-md-dark.markdown-body dl dt{padding:0;margin-top:1rem;font-size:1em;font-style:italic;font-weight:600}.github-md-dark.markdown-body dl dd{padding:0 1rem;margin-bottom:1rem}.github-md-dark.markdown-body table th{font-weight:600}.github-md-dark.markdown-body table td,.github-md-dark.markdown-body table th{padding:6px 13px;border:1px solid #3d444d}.github-md-dark.markdown-body table td>:last-child{margin-bottom:0}.github-md-dark.markdown-body table tr{background-color:#0d1117;border-top:1px solid #3d444db3}.github-md-dark.markdown-body table tr:nth-child(2n){background-color:#151b23}.github-md-dark.markdown-body table img{background-color:transparent}.github-md-dark.markdown-body img[align=right]{padding-left:20px}.github-md-dark.markdown-body img[align=left]{padding-right:20px}.github-md-dark.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.github-md-dark.markdown-body span.frame{display:block;overflow:hidden}.github-md-dark.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #3d444d}.github-md-dark.markdown-body span.frame span img{display:block;float:left}.github-md-dark.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#f0f6fc}.github-md-dark.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.github-md-dark.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.github-md-dark.markdown-body span.align-center span img{margin:0 auto;text-align:center}.github-md-dark.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.github-md-dark.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.github-md-dark.markdown-body span.align-right span img{margin:0;text-align:right}.github-md-dark.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.github-md-dark.markdown-body span.float-left span{margin:13px 0 0}.github-md-dark.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.github-md-dark.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.github-md-dark.markdown-body code,.github-md-dark.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:#656c7633;border-radius:6px}.github-md-dark.markdown-body code br,.github-md-dark.markdown-body tt br{display:none}.github-md-dark.markdown-body del code{text-decoration:inherit}.github-md-dark.markdown-body samp{font-size:85%}.github-md-dark.markdown-body pre code{font-size:100%}.github-md-dark.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}.github-md-dark.markdown-body .highlight{margin-bottom:1rem}.github-md-dark.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.github-md-dark.markdown-body .highlight pre,.github-md-dark.markdown-body pre{padding:1rem;overflow:auto;font-size:85%;line-height:1.45;color:#f0f6fc;background-color:#151b23;border-radius:6px}.github-md-dark.markdown-body pre code,.github-md-dark.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.github-md-dark.markdown-body .csv-data td,.github-md-dark.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.github-md-dark.markdown-body .csv-data .blob-num{padding:10px .5rem 9px;text-align:right;background:#0d1117;border:0}.github-md-dark.markdown-body .csv-data tr{border-top:0}.github-md-dark.markdown-body .csv-data th{font-weight:600;background:#151b23;border-top:0}.github-md-dark.markdown-body [data-footnote-ref]::before{content:"["}.github-md-dark.markdown-body [data-footnote-ref]::after{content:"]"}.github-md-dark.markdown-body .footnotes{font-size:12px;color:#9198a1;border-top:1px solid #3d444d}.github-md-dark.markdown-body .footnotes ol{padding-left:1rem}.github-md-dark.markdown-body .footnotes ol ul{display:inline-block;padding-left:1rem;margin-top:1rem}.github-md-dark.markdown-body .footnotes li{position:relative}.github-md-dark.markdown-body .footnotes li:target::before{position:absolute;top:calc(.5rem*-1);right:calc(.5rem*-1);bottom:calc(.5rem*-1);left:calc(1.5rem*-1);pointer-events:none;content:"";border:2px solid #1f6feb;border-radius:6px}.github-md-dark.markdown-body .footnotes li:target{color:#f0f6fc}.github-md-dark.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.github-md-dark.markdown-body body:has(:modal){padding-right:var(--dialog-scrollgutter)!important}.github-md-dark.markdown-body .pl-c{color:#9198a1}.github-md-dark.markdown-body .pl-c1,.github-md-dark.markdown-body .pl-s .pl-v{color:#79c0ff}.github-md-dark.markdown-body .pl-e,.github-md-dark.markdown-body .pl-en{color:#d2a8ff}.github-md-dark.markdown-body .pl-s .pl-s1,.github-md-dark.markdown-body .pl-smi{color:#f0f6fc}.github-md-dark.markdown-body .pl-ent{color:#7ee787}.github-md-dark.markdown-body .pl-k{color:#ff7b72}.github-md-dark.markdown-body .pl-pds,.github-md-dark.markdown-body .pl-s,.github-md-dark.markdown-body .pl-s .pl-pse .pl-s1,.github-md-dark.markdown-body .pl-sr,.github-md-dark.markdown-body .pl-sr .pl-cce,.github-md-dark.markdown-body .pl-sr .pl-sra,.github-md-dark.markdown-body .pl-sr .pl-sre{color:#a5d6ff}.github-md-dark.markdown-body .pl-smw,.github-md-dark.markdown-body .pl-v{color:#ffa657}.github-md-dark.markdown-body .pl-bu{color:#f85149}.github-md-dark.markdown-body .pl-ii{color:#f0f6fc;background-color:#8e1519}.github-md-dark.markdown-body .pl-c2{color:#f0f6fc;background-color:#b62324}.github-md-dark.markdown-body .pl-sr .pl-cce{font-weight:700;color:#7ee787}.github-md-dark.markdown-body .pl-ml{color:#f2cc60}.github-md-dark.markdown-body .pl-mh,.github-md-dark.markdown-body .pl-mh .pl-en,.github-md-dark.markdown-body .pl-ms{font-weight:700;color:#1f6feb}.github-md-dark.markdown-body .pl-mi{font-style:italic;color:#f0f6fc}.github-md-dark.markdown-body .pl-mb{font-weight:700;color:#f0f6fc}.github-md-dark.markdown-body .pl-md{color:#ffdcd7;background-color:#67060c}.github-md-dark.markdown-body .pl-mi1{color:#aff5b4;background-color:#033a16}.github-md-dark.markdown-body .pl-mc{color:#ffdfb6;background-color:#5a1e02}.github-md-dark.markdown-body .pl-mi2{color:#f0f6fc;background-color:#1158c7}.github-md-dark.markdown-body .pl-mdr{font-weight:700;color:#d2a8ff}.github-md-dark.markdown-body .pl-ba{color:#9198a1}.github-md-dark.markdown-body .pl-sg{color:#3d444d}.github-md-dark.markdown-body .pl-corl{text-decoration:underline;color:#a5d6ff}.github-md-dark.markdown-body [role=button]:focus:not(:focus-visible),.github-md-dark.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),.github-md-dark.markdown-body a:focus:not(:focus-visible),.github-md-dark.markdown-body button:focus:not(:focus-visible),.github-md-dark.markdown-body summary:focus:not(:focus-visible){outline:0;box-shadow:none}.github-md-dark.markdown-body [tabindex="0"]:focus:not(:focus-visible),.github-md-dark.markdown-body details-dialog:focus:not(:focus-visible){outline:0}.github-md-dark.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1em;font-style:normal!important;font-weight:400;line-height:1;vertical-align:-.075em}.github-md-dark.markdown-body g-emoji img{width:1em;height:1em}.github-md-dark.markdown-body .task-list-item{list-style-type:none}.github-md-dark.markdown-body .task-list-item label{font-weight:400}.github-md-dark.markdown-body .task-list-item.enabled label{cursor:pointer}.github-md-dark.markdown-body .task-list-item+.task-list-item{margin-top:.25rem}.github-md-dark.markdown-body .task-list-item .handle{display:none}.github-md-dark.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.github-md-dark.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.github-md-dark.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.github-md-dark.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.github-md-dark.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.github-md-dark.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.github-md-dark.markdown-body .markdown-alert{padding:.5rem 1rem;margin-bottom:1rem;color:inherit;border-left:.25em solid #3d444d}.github-md-dark.markdown-body .markdown-alert>:first-child{margin-top:0}.github-md-dark.markdown-body .markdown-alert>:last-child{margin-bottom:0}.github-md-dark.markdown-body .markdown-alert .markdown-alert-title{display:flex;font-weight:500;align-items:center;line-height:1}.github-md-dark.markdown-body .markdown-alert.markdown-alert-note{border-left-color:#1f6feb}.github-md-dark.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:#4493f8}.github-md-dark.markdown-body .markdown-alert.markdown-alert-important{border-left-color:#8957e5}.github-md-dark.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:#ab7df8}.github-md-dark.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:#9e6a03}.github-md-dark.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:#d29922}.github-md-dark.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:#238636}.github-md-dark.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:#3fb950}.github-md-dark.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:#da3633}.github-md-dark.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:#f85149}.github-md-dark.markdown-body>:first-child>.heading-element:first-child{margin-top:0!important}.github-md-dark.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}.markdown-body{color-scheme:light;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:#1f2328;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:' ';display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:#0969da;text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:600}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid #d1d9e0b3}.markdown-body mark{background-color:#fff8c5;color:#1f2328}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 2.5rem}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:0 0;border-bottom:1px solid #d1d9e0b3;height:.25em;padding:0;margin:1.5rem 0;background-color:#d1d9e0;border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::placeholder{color:#59636e;opacity:1}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;font-variant:tabular-nums}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{outline:2px solid #0969da;outline-offset:-2px;box-shadow:none}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{outline:2px solid #0969da;outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:.25rem;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:#1f2328;vertical-align:middle;background-color:#f6f8fa;border:solid 1px #d1d9e0b3;border-bottom-color:#d1d9e0b3;border-radius:6px;box-shadow:inset 0 -1px 0 #d1d9e0b3}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.5rem;margin-bottom:1rem;font-weight:600;line-height:1.25}.markdown-body h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #d1d9e0b3}.markdown-body h3{font-weight:600;font-size:1.25em}.markdown-body h4{font-weight:600;font-size:1em}.markdown-body h5{font-weight:600;font-size:.875em}.markdown-body h6{font-weight:600;font-size:.85em;color:#59636e}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:#59636e;border-left:.25em solid #d1d9e0}.markdown-body ol,.markdown-body ul{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{margin:0;appearance:none}.markdown-body .mr-2{margin-right:.5rem!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#d1242f}.markdown-body .anchor{float:left;padding-right:.25rem;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:1rem}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1f2328;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:1rem}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:1rem;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 1rem;margin-bottom:1rem}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #d1d9e0}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:#fff;border-top:1px solid #d1d9e0b3}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #d1d9e0}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#1f2328}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:#818b981f;border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}.markdown-body .highlight{margin-bottom:1rem}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:1rem;overflow:auto;font-size:85%;line-height:1.45;color:#1f2328;background-color:#f6f8fa;border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px .5rem 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.markdown-body [data-footnote-ref]::before{content:"["}.markdown-body [data-footnote-ref]::after{content:"]"}.markdown-body .footnotes{font-size:12px;color:#59636e;border-top:1px solid #d1d9e0}.markdown-body .footnotes ol{padding-left:1rem}.markdown-body .footnotes ol ul{display:inline-block;padding-left:1rem;margin-top:1rem}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target::before{position:absolute;top:calc(.5rem*-1);right:calc(.5rem*-1);bottom:calc(.5rem*-1);left:calc(1.5rem*-1);pointer-events:none;content:"";border:2px solid #0969da;border-radius:6px}.markdown-body .footnotes li:target{color:#1f2328}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body body:has(:modal){padding-right:var(--dialog-scrollgutter)!important}.markdown-body .pl-c{color:#59636e}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#0550ae}.markdown-body .pl-e,.markdown-body .pl-en{color:#6639ba}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#1f2328}.markdown-body .pl-ent{color:#0550ae}.markdown-body .pl-k{color:#cf222e}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#0a3069}.markdown-body .pl-smw,.markdown-body .pl-v{color:#953800}.markdown-body .pl-bu{color:#82071e}.markdown-body .pl-ii{color:#f6f8fa;background-color:#82071e}.markdown-body .pl-c2{color:#f6f8fa;background-color:#cf222e}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#116329}.markdown-body .pl-ml{color:#3b2300}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#0550ae}.markdown-body .pl-mi{font-style:italic;color:#1f2328}.markdown-body .pl-mb{font-weight:700;color:#1f2328}.markdown-body .pl-md{color:#82071e;background-color:#ffebe9}.markdown-body .pl-mi1{color:#116329;background-color:#dafbe1}.markdown-body .pl-mc{color:#953800;background-color:#ffd8b5}.markdown-body .pl-mi2{color:#d1d9e0;background-color:#0550ae}.markdown-body .pl-mdr{font-weight:700;color:#8250df}.markdown-body .pl-ba{color:#59636e}.markdown-body .pl-sg{color:#818b98}.markdown-body .pl-corl{text-decoration:underline;color:#0a3069}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body button:focus:not(:focus-visible),.markdown-body summary:focus:not(:focus-visible){outline:0;box-shadow:none}.markdown-body [tabindex="0"]:focus:not(:focus-visible),.markdown-body details-dialog:focus:not(:focus-visible){outline:0}.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1em;font-style:normal!important;font-weight:400;line-height:1;vertical-align:-.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:400}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:.25rem}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{padding:.5rem 1rem;margin-bottom:1rem;color:inherit;border-left:.25em solid #d1d9e0}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{display:flex;font-weight:500;align-items:center;line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:#0969da}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:#0969da}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:#8250df}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:#8250df}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:#9a6700}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:#9a6700}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:#1a7f37}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:#1a7f37}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:#cf222e}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:#d1242f}.markdown-body>:first-child>.heading-element:first-child{margin-top:0!important}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px}
|