@wrnrlr/prelude 0.0.1 → 0.1.3
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/.github/workflows/publish.yml +46 -5
- package/deno.json +18 -9
- package/package.json +4 -6
- package/readme.md +163 -41
- package/src/constants.ts +2 -1
- package/src/{controlflow.js → controlflow.ts} +63 -50
- package/src/hyperscript.ts +7 -6
- package/src/mod.ts +19 -17
- package/src/reactive.ts +42 -14
- package/src/resource.js +184 -0
- package/src/router.js +65 -0
- package/src/runtime.ts +9 -8
- package/test/hyperscript.js +2 -2
- package/test/reactive.js +12 -4
- package/www/assets/css/presets.css +504 -0
- package/www/assets/css/style.css +90 -0
- package/www/demo.html +15 -0
- package/www/index.html +211 -0
- package/www/playground.html +183 -0
- package/www/public/example/admin.html +88 -0
- package/{example → www/public/example}/counter.html +1 -1
- package/{example → www/public/example}/greeting.html +1 -1
- package/{example → www/public/example}/show.html +1 -1
- package/{example → www/public/example}/todo.html +1 -1
- package/www/public/fonts/fab.ttf +0 -0
- package/www/public/fonts/fab.woff2 +0 -0
- package/www/public/fonts/far.ttf +0 -0
- package/www/public/fonts/far.woff2 +0 -0
- package/www/public/fonts/fas.ttf +0 -0
- package/www/public/fonts/fas.woff2 +0 -0
- package/www/public/logo.svg +16 -0
- package/www/typedoc.json +13 -0
- package/www/vite.config.js +106 -0
- package/example/paint.html +0 -22
- package/index.html +0 -230
- package/presets.css +0 -284
- package/public/logo.svg +0 -5
- package/test/runtime.js +0 -7
- package/typedoc.jsonc +0 -31
- /package/{public → www/public}/banner.svg +0 -0
    
        package/example/paint.html
    DELETED
    
    | @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            <!DOCTYPE html>
         | 
| 2 | 
            -
            <title>Counter</title>
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            <script type="module">
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            import {h,signal,render,Canvas,Stroke,Line} from '../src/mod.ts'
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            function App() {
         | 
| 9 | 
            -
              const count = signal(1)
         | 
| 10 | 
            -
              return h(Canvas, h(Line, [0, 0, 200, 200]))
         | 
| 11 | 
            -
            }
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            render(App, document.body)
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            </script>
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            <style>
         | 
| 18 | 
            -
            body {
         | 
| 19 | 
            -
                width:100%; height:100%;
         | 
| 20 | 
            -
                background-color: grey;
         | 
| 21 | 
            -
            }
         | 
| 22 | 
            -
            </style>
         | 
    
        package/index.html
    DELETED
    
    | @@ -1,230 +0,0 @@ | |
| 1 | 
            -
            <!DOCTYPE html>
         | 
| 2 | 
            -
            <head>
         | 
| 3 | 
            -
            <title>Counter</title>
         | 
| 4 | 
            -
            <link href="https://unpkg.com/prismjs@1.29.0/themes/prism.css" rel="stylesheet" />
         | 
| 5 | 
            -
            <script src="https://unpkg.com/prismjs@1.29.0/components/prism-core.min.js"></script>
         | 
| 6 | 
            -
            <script src="https://unpkg.com/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
         | 
| 7 | 
            -
            </head>
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            <nav style="display: flex; justify-content: space-between; padding: 0.25rem 0.5rem; align-items: center;">
         | 
| 10 | 
            -
              <div>
         | 
| 11 | 
            -
                <img src="./banner.svg" alt="PreludeJS Logo" style="height: 3rem;">
         | 
| 12 | 
            -
              </div>
         | 
| 13 | 
            -
              <div style="display: flex; gap: 0.75rem;">
         | 
| 14 | 
            -
                <a href="/docs/index.html">Get Started</a>
         | 
| 15 | 
            -
                <a href="/docs/modules.html">API</a>
         | 
| 16 | 
            -
                <a href="#examples">Examples</a>
         | 
| 17 | 
            -
                <a href="https://github.com/wrnrlr/prelude">Github</a>
         | 
| 18 | 
            -
              </div>
         | 
| 19 | 
            -
            </nav>
         | 
| 20 | 
            -
             | 
| 21 | 
            -
            <section class="jumbo">
         | 
| 22 | 
            -
              <img class="logo" src="./logo.svg" alt="PreludeJS Logo" style="width: 300px">
         | 
| 23 | 
            -
              <div style="width: 900px">
         | 
| 24 | 
            -
                <h1>A <em>signal</em> based frontend library with fine-grained reactivity</h1>
         | 
| 25 | 
            -
                <h2>Prelude lets you develop web application in a familiar component-based functional style</h2>
         | 
| 26 | 
            -
                <p></p>
         | 
| 27 | 
            -
                <div style="display: flex; gap: 0.75rem;">
         | 
| 28 | 
            -
                  <a href="/docs/index.html">Learn More</a>
         | 
| 29 | 
            -
                  <a href="/docs/modules.html">API Reference</a>
         | 
| 30 | 
            -
                </div>
         | 
| 31 | 
            -
              </div>
         | 
| 32 | 
            -
            </section>
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            <section>
         | 
| 35 | 
            -
              <div style="width: 900px">
         | 
| 36 | 
            -
                <h1></h1>
         | 
| 37 | 
            -
                <p>Prelude works directly in the browser using just vanilla JavaScript
         | 
| 38 | 
            -
                but for more complex applications it can also be writen in TypeScript and used together with a bundler like Vite.</p>
         | 
| 39 | 
            -
                <pre><code class="language-js">
         | 
| 40 | 
            -
            import {h, signal, render} from 'https://esm.sh/wrnrlr/prelude'
         | 
| 41 | 
            -
             | 
| 42 | 
            -
            const count = signal(1)
         | 
| 43 | 
            -
             | 
| 44 | 
            -
            function Counter(props) {
         | 
| 45 | 
            -
              const onClick = e => props.count(i => i+1)
         | 
| 46 | 
            -
              return [
         | 
| 47 | 
            -
                props.value,
         | 
| 48 | 
            -
                h('button', {value:props.value, onClick})
         | 
| 49 | 
            -
              ]
         | 
| 50 | 
            -
            }
         | 
| 51 | 
            -
             | 
| 52 | 
            -
            render(h(Counter, {value:signal})), document.body)
         | 
| 53 | 
            -
                </code></pre>
         | 
| 54 | 
            -
                <p>Try out this example for yourself <a href="http://codepen.io">here!</a></p>
         | 
| 55 | 
            -
              </div>
         | 
| 56 | 
            -
            </section>
         | 
| 57 | 
            -
             | 
| 58 | 
            -
            <section>
         | 
| 59 | 
            -
              <div class="wide wrapper">
         | 
| 60 | 
            -
                <h3>Signals with two-way data-binding</h3>
         | 
| 61 | 
            -
                <h2></h2>
         | 
| 62 | 
            -
                <p>Signals are nothing more then a function that allows you to both get and set a value.</p>
         | 
| 63 | 
            -
                <pre><code class="language-javascript">
         | 
| 64 | 
            -
            const a = signal(1)
         | 
| 65 | 
            -
            a() // 1
         | 
| 66 | 
            -
            a(2) // 2
         | 
| 67 | 
            -
                </code></pre>
         | 
| 68 | 
            -
                <p>Signals can be combined with other functions </p>
         | 
| 69 | 
            -
                <h3>Hyperscript: A DSL for HTML</h3>
         | 
| 70 | 
            -
                <p>Simple tags components</p>
         | 
| 71 | 
            -
                <pre><code class="language-javascript">
         | 
| 72 | 
            -
            h('h1', 'Hello World!')
         | 
| 73 | 
            -
                </code></pre>
         | 
| 74 | 
            -
                <p>Higher order components</p>
         | 
| 75 | 
            -
                <pre><code class="language-javascript">
         | 
| 76 | 
            -
            function Greet(props) {
         | 
| 77 | 
            -
                return h('h1', ['Hello', props.children])
         | 
| 78 | 
            -
            }
         | 
| 79 | 
            -
             | 
| 80 | 
            -
            h(Greet, 'Bob')
         | 
| 81 | 
            -
                </code></pre>
         | 
| 82 | 
            -
              </div>
         | 
| 83 | 
            -
            </section>
         | 
| 84 | 
            -
             | 
| 85 | 
            -
            <section id="examples" style="padding: 2rem; display: flex; flex-direction: column; justify-content: center;">
         | 
| 86 | 
            -
              <div style="width: 900px">
         | 
| 87 | 
            -
                <h1>Check out our examples yourself</h1>
         | 
| 88 | 
            -
                <h2>See how easy it is to developer a variaty of different web applications with Prelude.</h2>
         | 
| 89 | 
            -
              </div>
         | 
| 90 | 
            -
              <ul style="display: flex; gap: 1.5rem; list-style: none">
         | 
| 91 | 
            -
                <li>
         | 
| 92 | 
            -
                  <a href="./example/counter.html" class="card">
         | 
| 93 | 
            -
                    <div class="title">Counter</div>
         | 
| 94 | 
            -
                    <iframe class="example" title="Counter" src="./example/counter.html" scrolling="no"></iframe>
         | 
| 95 | 
            -
                  </a>
         | 
| 96 | 
            -
                </li>
         | 
| 97 | 
            -
                <li>
         | 
| 98 | 
            -
                  <a href="./example/todo.html" class="card">
         | 
| 99 | 
            -
                    <div class="title">Todo</div>
         | 
| 100 | 
            -
                    <iframe class="example" title="Todo" src="./example/todo.html" scrolling="no"></iframe>
         | 
| 101 | 
            -
                  </a>
         | 
| 102 | 
            -
                </li>
         | 
| 103 | 
            -
                <li>
         | 
| 104 | 
            -
                  <a href="./example/form.html" class="card">
         | 
| 105 | 
            -
                    <div class="title">Form</div>
         | 
| 106 | 
            -
                    <iframe class="example" title="Form" src="./example/form.html" scrolling="no"></iframe>
         | 
| 107 | 
            -
                  </a>
         | 
| 108 | 
            -
                </li>
         | 
| 109 | 
            -
              </ul>
         | 
| 110 | 
            -
              <div style="width: 900px">
         | 
| 111 | 
            -
                <p><a href="">All Examples</a></p>
         | 
| 112 | 
            -
              </div>
         | 
| 113 | 
            -
            </section>
         | 
| 114 | 
            -
             | 
| 115 | 
            -
            <section>
         | 
| 116 | 
            -
              <div style="width: 900px">
         | 
| 117 | 
            -
                <h1>Welcome to our community!</h1>
         | 
| 118 | 
            -
                <h2>Free and Open Source Software</h2>
         | 
| 119 | 
            -
                <ul>
         | 
| 120 | 
            -
                  <li>Only 10kb minified js, small bundle size for a lot of power</li>
         | 
| 121 | 
            -
                  <li>Typescript support</li>
         | 
| 122 | 
            -
                  <li>Fully documented</li>
         | 
| 123 | 
            -
                  <li>Extensivaly tested</li>
         | 
| 124 | 
            -
                  <li>No seperate build process requires, works directly in the browser</li>
         | 
| 125 | 
            -
                </ul>
         | 
| 126 | 
            -
              </div>
         | 
| 127 | 
            -
            </section>
         | 
| 128 | 
            -
             | 
| 129 | 
            -
            <section style="display:flex; flex-direction:row; padding: 2rem; background-color: white">
         | 
| 130 | 
            -
              <div style="display: flex; flex-direction:column; flex-grow: 2; align-self: stretch; justify-content: space-between">
         | 
| 131 | 
            -
                  <div style="display: flex; gap: 0.75rem">
         | 
| 132 | 
            -
                      <a href="/">Home</a>
         | 
| 133 | 
            -
                      <a href="/docs/index.html">Quick Guide</a>
         | 
| 134 | 
            -
                      <a href="/docs/modules.html">API Reference</a>
         | 
| 135 | 
            -
                  </div>
         | 
| 136 | 
            -
                  <div style="display: flex; gap: 0.75rem">
         | 
| 137 | 
            -
                      <a href="https://github.com/wrnrlr/prelude">Github</a>
         | 
| 138 | 
            -
                      <a href="https://npm.com/@wrnrlr/prelude">NPM</a>
         | 
| 139 | 
            -
                      <a href="https://jsr.io/@wrnrlr/prelude">JSR</a>
         | 
| 140 | 
            -
                  </div>
         | 
| 141 | 
            -
                  <div>Some Right Reserved © 2024</div>
         | 
| 142 | 
            -
              </div>
         | 
| 143 | 
            -
              <img class="emblem" src="./logo.svg" style="width: 100px">
         | 
| 144 | 
            -
            </section>
         | 
| 145 | 
            -
             | 
| 146 | 
            -
            <style >
         | 
| 147 | 
            -
            @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Warang+Citi&display=swap');
         | 
| 148 | 
            -
            @import url('/presets.css')
         | 
| 149 | 
            -
             | 
| 150 | 
            -
            html {
         | 
| 151 | 
            -
              font-size: 20px;
         | 
| 152 | 
            -
              font-family: "Noto Sans Warang Citi", sans-serif;
         | 
| 153 | 
            -
              font-weight: 400;
         | 
| 154 | 
            -
              font-style: normal;
         | 
| 155 | 
            -
              margin: 0;
         | 
| 156 | 
            -
              display: flex;
         | 
| 157 | 
            -
              width: 100%;
         | 
| 158 | 
            -
              height: 100%
         | 
| 159 | 
            -
            }
         | 
| 160 | 
            -
             | 
| 161 | 
            -
            body {
         | 
| 162 | 
            -
              margin: 0;
         | 
| 163 | 
            -
              flex-grow: 2;
         | 
| 164 | 
            -
              width: 100%;
         | 
| 165 | 
            -
              height: 100%;
         | 
| 166 | 
            -
            }
         | 
| 167 | 
            -
             | 
| 168 | 
            -
            a { color: dodgerblue; }
         | 
| 169 | 
            -
            a:visited { color: dodgerblue; }
         | 
| 170 | 
            -
             | 
| 171 | 
            -
            h1 { font-size: 2.5rem; color: var(--slate-900); font-weight: bolder }
         | 
| 172 | 
            -
            h2 { font-size: 2rem; color: var(--slate-700); line-height: 1.5 }
         | 
| 173 | 
            -
             | 
| 174 | 
            -
            section {
         | 
| 175 | 
            -
              padding: 2rem;
         | 
| 176 | 
            -
              display: flex;
         | 
| 177 | 
            -
              align-items: center;
         | 
| 178 | 
            -
              justify-content: center;
         | 
| 179 | 
            -
              flex-direction: column;
         | 
| 180 | 
            -
            }
         | 
| 181 | 
            -
            section:nth-child(even) { background-color: var(--neutral-100); }
         | 
| 182 | 
            -
            section:nth-child(odd) { background-color: var(--neutral-200); }
         | 
| 183 | 
            -
             | 
| 184 | 
            -
            section > .wrapper { width: 700px }
         | 
| 185 | 
            -
            section > .wide.wrapper { width: 900px }
         | 
| 186 | 
            -
             | 
| 187 | 
            -
            /* Top Navigation */
         | 
| 188 | 
            -
             | 
| 189 | 
            -
            iframe.example {
         | 
| 190 | 
            -
              zoom: 1.0;
         | 
| 191 | 
            -
              width: 100%;
         | 
| 192 | 
            -
              height:100%;
         | 
| 193 | 
            -
              border: none;
         | 
| 194 | 
            -
              overflow: hidden;
         | 
| 195 | 
            -
              background-color: var(--neutral-50)
         | 
| 196 | 
            -
            }
         | 
| 197 | 
            -
             | 
| 198 | 
            -
            /* iframe.example > a {
         | 
| 199 | 
            -
              position: absolute;
         | 
| 200 | 
            -
              top: 0;
         | 
| 201 | 
            -
              left: 0;
         | 
| 202 | 
            -
              width: 100%;
         | 
| 203 | 
            -
              height: 100%;
         | 
| 204 | 
            -
              background: rgba(0.3, 1, 0, 0.0);
         | 
| 205 | 
            -
              cursor: pointer;
         | 
| 206 | 
            -
            } */
         | 
| 207 | 
            -
             | 
| 208 | 
            -
            .card {
         | 
| 209 | 
            -
              width: 20rem;
         | 
| 210 | 
            -
              height: 16rem;
         | 
| 211 | 
            -
              display: flex;
         | 
| 212 | 
            -
              flex-direction: column;
         | 
| 213 | 
            -
              /* border: 1px solid var(--neutral-400); */
         | 
| 214 | 
            -
              /* border-radius: 0.5em 0.5em 0 0; */
         | 
| 215 | 
            -
            }
         | 
| 216 | 
            -
             | 
| 217 | 
            -
            .card > .title {
         | 
| 218 | 
            -
              font-weight: bold;
         | 
| 219 | 
            -
              color: var(--gray-700);
         | 
| 220 | 
            -
              padding: 0.5em;
         | 
| 221 | 
            -
              background-color: var(--gray-300);
         | 
| 222 | 
            -
              border-radius: 0.5em 0.5em 0 0;
         | 
| 223 | 
            -
              /* border-bottom: 1px solid var(--gray-400); */
         | 
| 224 | 
            -
            }
         | 
| 225 | 
            -
             | 
| 226 | 
            -
            a.card {
         | 
| 227 | 
            -
              text-decoration: none;
         | 
| 228 | 
            -
            }
         | 
| 229 | 
            -
             | 
| 230 | 
            -
            </style>
         | 
    
        package/presets.css
    DELETED
    
    | @@ -1,284 +0,0 @@ | |
| 1 | 
            -
            @font-face {font-family:BasicIcons;src:url(/static/fa.woff2) format('woff2');}
         | 
| 2 | 
            -
            *, ::before, ::after {box-sizing: border-box; margin: 0; min-width: 0}
         | 
| 3 | 
            -
            html {
         | 
| 4 | 
            -
              height: 100%;
         | 
| 5 | 
            -
              hanging-punctuation: first last;
         | 
| 6 | 
            -
              font-family:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji';
         | 
| 7 | 
            -
              line-height: 1.15; -webkit-text-size-adjust: 100%;
         | 
| 8 | 
            -
              -moz-tab-size: 4; tab-size: 4;
         | 
| 9 | 
            -
              font-size: 18px;
         | 
| 10 | 
            -
              color: var(--neutral-950);
         | 
| 11 | 
            -
              background-color: var(--neutral-50);
         | 
| 12 | 
            -
            }
         | 
| 13 | 
            -
            body {height: 100%}
         | 
| 14 | 
            -
            hr {height: 0;color: inherit;}
         | 
| 15 | 
            -
            abbr[title] {text-decoration: underline dotted}
         | 
| 16 | 
            -
            b,strong {font-weight: bolder}
         | 
| 17 | 
            -
            code,kbd,samp,pre {font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size: 1em;}
         | 
| 18 | 
            -
            small {font-size: 80%;}
         | 
| 19 | 
            -
            sub,sup {font-size: 75%;line-height: 0;position: relative;vertical-align: baseline;}
         | 
| 20 | 
            -
            sub {bottom: -0.25em}
         | 
| 21 | 
            -
            sup {top: -0.5em}
         | 
| 22 | 
            -
            table {border-collapse: collapse; text-indent: 0; border-color: inherit;}
         | 
| 23 | 
            -
            button,input,optgroup,select,textarea {font-family:inherit;font-size:100%;line-height:1.15;}
         | 
| 24 | 
            -
            button, select {text-transform: none}
         | 
| 25 | 
            -
            button, [type='button'], [type='reset'], [type='submit'] {-webkit-appearance: button}
         | 
| 26 | 
            -
            ::-moz-focus-inner {border-style: none;padding: 0;}
         | 
| 27 | 
            -
            :-moz-focusring {outline: 1px dotted ButtonText;}
         | 
| 28 | 
            -
            :-moz-ui-invalid {box-shadow: none;}
         | 
| 29 | 
            -
            legend {padding: 0}
         | 
| 30 | 
            -
            progress {vertical-align: baseline}
         | 
| 31 | 
            -
            ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {height: auto;margin: 0}
         | 
| 32 | 
            -
            [type='search'] {-webkit-appearance: textfield; outline-offset: -2px;}
         | 
| 33 | 
            -
            ::-webkit-search-decoration {-webkit-appearance: none;}
         | 
| 34 | 
            -
            ::-webkit-file-upload-button {-webkit-appearance: button;font: inherit;}
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            h1,h2,h3,h4,h5,h6 {text-wrap:balance}
         | 
| 37 | 
            -
            p {max-width:62ch;text-wrap:pretty}
         | 
| 38 | 
            -
            dialog {padding:0;border-width:0}
         | 
| 39 | 
            -
            button,input {padding:0;border-width:0;background-color:transparent}
         | 
| 40 | 
            -
            input:focus,button:focus {outline:none}
         | 
| 41 | 
            -
            summary {display: list-item;}
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            :root {
         | 
| 44 | 
            -
              --slate-50: #f8fafc;
         | 
| 45 | 
            -
              --slate-100: #f1f5f9;
         | 
| 46 | 
            -
              --slate-200: #e2e8f0;
         | 
| 47 | 
            -
              --slate-300: #cbd5e1;
         | 
| 48 | 
            -
              --slate-400: #94a3b8;
         | 
| 49 | 
            -
              --slate-500: #64748b;
         | 
| 50 | 
            -
              --slate-600: #475569;
         | 
| 51 | 
            -
              --slate-700: #334155;
         | 
| 52 | 
            -
              --slate-800: #1e293b;
         | 
| 53 | 
            -
              --slate-900: #0f172a;
         | 
| 54 | 
            -
              --slate-950: #020617;
         | 
| 55 | 
            -
             | 
| 56 | 
            -
              --gray-50: #f9fafb;
         | 
| 57 | 
            -
              --gray-100: #f3f4f6;
         | 
| 58 | 
            -
              --gray-200: #e5e7eb;
         | 
| 59 | 
            -
              --gray-300: #d1d5db;
         | 
| 60 | 
            -
              --gray-400: #9ca3af;
         | 
| 61 | 
            -
              --gray-500: #6b7280;
         | 
| 62 | 
            -
              --gray-600: #4b5563;
         | 
| 63 | 
            -
              --gray-700: #374151;
         | 
| 64 | 
            -
              --gray-800: #1f2937;
         | 
| 65 | 
            -
              --gray-900: #111827;
         | 
| 66 | 
            -
              --gray-950: #030712;
         | 
| 67 | 
            -
             | 
| 68 | 
            -
              --red-50: #f9fafb;
         | 
| 69 | 
            -
              --red-100: #f3f4f6;
         | 
| 70 | 
            -
              --red-200: #e5e7eb;
         | 
| 71 | 
            -
              --red-300: #d1d5db;
         | 
| 72 | 
            -
              --red-400: #9ca3af;
         | 
| 73 | 
            -
              --red-500: #6b7280;
         | 
| 74 | 
            -
              --red-600: #4b5563;
         | 
| 75 | 
            -
              --red-700: #374151;
         | 
| 76 | 
            -
              --red-800: #1f2937;
         | 
| 77 | 
            -
              --red-900: #111827;
         | 
| 78 | 
            -
              --red-950: #030712;
         | 
| 79 | 
            -
             | 
| 80 | 
            -
              /* red */
         | 
| 81 | 
            -
              --red-50: #fef2f2;
         | 
| 82 | 
            -
              --red-100: #fee2e2;
         | 
| 83 | 
            -
              --red-200: #fecaca;
         | 
| 84 | 
            -
              --red-300: #fca5a5;
         | 
| 85 | 
            -
              --red-400: #f87171;
         | 
| 86 | 
            -
              --red-500: #ef4444;
         | 
| 87 | 
            -
              --red-600: #dc2626;
         | 
| 88 | 
            -
              --red-700: #b91c1c;
         | 
| 89 | 
            -
              --red-800: #991b1b;
         | 
| 90 | 
            -
              --red-900: #7f1d1d;
         | 
| 91 | 
            -
              --red-950: #450a0a;
         | 
| 92 | 
            -
             | 
| 93 | 
            -
              --orange-50: #fff7ed;
         | 
| 94 | 
            -
              --orange-100: #ffedd5;
         | 
| 95 | 
            -
              --orange-200: #fed7aa;
         | 
| 96 | 
            -
              --orange-300: #fdba74;
         | 
| 97 | 
            -
              --orange-400: #fb923c;
         | 
| 98 | 
            -
              --orange-500: #f97316;
         | 
| 99 | 
            -
              --orange-600: #ea580c;
         | 
| 100 | 
            -
              --orange-700: #c2410c;
         | 
| 101 | 
            -
              --orange-800: #9a3412;
         | 
| 102 | 
            -
              --orange-900: #7c2d12;
         | 
| 103 | 
            -
              --orange-950: #431407;
         | 
| 104 | 
            -
             | 
| 105 | 
            -
              --yellow-50: #fefce8;
         | 
| 106 | 
            -
              --yellow-100: #fef9c3;
         | 
| 107 | 
            -
              --yellow-200: #fef08a;
         | 
| 108 | 
            -
              --yellow-300: #fde047;
         | 
| 109 | 
            -
              --yellow-400: #facc15;
         | 
| 110 | 
            -
              --yellow-500: #eab308;
         | 
| 111 | 
            -
              --yellow-600: #ca8a04;
         | 
| 112 | 
            -
              --yellow-700: #a16207;
         | 
| 113 | 
            -
              --yellow-800: #854d0e;
         | 
| 114 | 
            -
              --yellow-900: #713f12;
         | 
| 115 | 
            -
              --yellow-950: #422006;
         | 
| 116 | 
            -
             | 
| 117 | 
            -
              --lime-50: #f7fee7;
         | 
| 118 | 
            -
              --lime-100: #ecfccb;
         | 
| 119 | 
            -
              --lime-200: #d9f99d;
         | 
| 120 | 
            -
              --lime-300: #bef264;
         | 
| 121 | 
            -
              --lime-400: #a3e635;
         | 
| 122 | 
            -
              --lime-500: #84cc16;
         | 
| 123 | 
            -
              --lime-600: #65a30d;
         | 
| 124 | 
            -
              --lime-700: #4d7c0f;
         | 
| 125 | 
            -
              --lime-800: #3f6212;
         | 
| 126 | 
            -
              --lime-900: #365314;
         | 
| 127 | 
            -
              --lime-950: #1a2e05;
         | 
| 128 | 
            -
             | 
| 129 | 
            -
              --green-50: #f0fdf4;
         | 
| 130 | 
            -
              --green-100: #dcfce7;
         | 
| 131 | 
            -
              --green-200: #bbf7d0;
         | 
| 132 | 
            -
              --green-300: #86efac;
         | 
| 133 | 
            -
              --green-400: #4ade80;
         | 
| 134 | 
            -
              --green-500: #22c55e;
         | 
| 135 | 
            -
              --green-600: #16a34a;
         | 
| 136 | 
            -
              --green-700: #15803d;
         | 
| 137 | 
            -
              --green-800: #166534;
         | 
| 138 | 
            -
              --green-900: #14532d;
         | 
| 139 | 
            -
              --green-950: #052e16;
         | 
| 140 | 
            -
             | 
| 141 | 
            -
              --emrald-50: #ecfdf5;
         | 
| 142 | 
            -
              --emrald-100: #d1fae5;
         | 
| 143 | 
            -
              --emrald-200: #a7f3d0;
         | 
| 144 | 
            -
              --emrald-300: #6ee7b7;
         | 
| 145 | 
            -
              --emrald-400: #34d399;
         | 
| 146 | 
            -
              --emrald-500: #10b981;
         | 
| 147 | 
            -
              --emrald-600: #059669;
         | 
| 148 | 
            -
              --emrald-700: #047857;
         | 
| 149 | 
            -
              --emrald-800: #065f46;
         | 
| 150 | 
            -
              --emrald-900: #064e3b;
         | 
| 151 | 
            -
              --emrald-950: #022c22;
         | 
| 152 | 
            -
             | 
| 153 | 
            -
              --teal-50: #f0fdfa;
         | 
| 154 | 
            -
              --teal-100: #ccfbf1;
         | 
| 155 | 
            -
              --teal-200: #99f6e4;
         | 
| 156 | 
            -
              --teal-300: #5eead4;
         | 
| 157 | 
            -
              --teal-400: #2dd4bf;
         | 
| 158 | 
            -
              --teal-500: #14b8a6;
         | 
| 159 | 
            -
              --teal-600: #0d9488;
         | 
| 160 | 
            -
              --teal-700: #0f766e;
         | 
| 161 | 
            -
              --teal-800: #115e59;
         | 
| 162 | 
            -
              --teal-900: #134e4a;
         | 
| 163 | 
            -
              --teal-950: #042f2e;
         | 
| 164 | 
            -
             | 
| 165 | 
            -
              --cyan-50: #ecfeff;
         | 
| 166 | 
            -
              --cyan-100: #cffafe;
         | 
| 167 | 
            -
              --cyan-200: #a5f3fc;
         | 
| 168 | 
            -
              --cyan-300: #67e8f9;
         | 
| 169 | 
            -
              --cyan-400: #22d3ee;
         | 
| 170 | 
            -
              --cyan-500: #06b6d4;
         | 
| 171 | 
            -
              --cyan-600: #0891b2;
         | 
| 172 | 
            -
              --cyan-700: #0e7490;
         | 
| 173 | 
            -
              --cyan-800: #155e75;
         | 
| 174 | 
            -
              --cyan-900: #164e63;
         | 
| 175 | 
            -
              --cyan-950: #083344;
         | 
| 176 | 
            -
             | 
| 177 | 
            -
              --sky-50: #f0f9ff;
         | 
| 178 | 
            -
              --sky-100: #e0f2fe;
         | 
| 179 | 
            -
              --sky-200: #bae6fd;
         | 
| 180 | 
            -
              --sky-300: #7dd3fc;
         | 
| 181 | 
            -
              --sky-400: #38bdf8;
         | 
| 182 | 
            -
              --sky-500: #0ea5e9;
         | 
| 183 | 
            -
              --sky-600: #0284c7;
         | 
| 184 | 
            -
              --sky-700: #0369a1;
         | 
| 185 | 
            -
              --sky-800: #075985;
         | 
| 186 | 
            -
              --sky-900: #0c4a6e;
         | 
| 187 | 
            -
              --sky-950: #082f49;
         | 
| 188 | 
            -
             | 
| 189 | 
            -
              --blue-50: #eff6ff;
         | 
| 190 | 
            -
              --blue-100: #dbeafe;
         | 
| 191 | 
            -
              --blue-200: #bfdbfe;
         | 
| 192 | 
            -
              --blue-300: #93c5fd;
         | 
| 193 | 
            -
              --blue-400: #60a5fa;
         | 
| 194 | 
            -
              --blue-500: #3b82f6;
         | 
| 195 | 
            -
              --blue-600: #2563eb;
         | 
| 196 | 
            -
              --blue-700: #1d4ed8;
         | 
| 197 | 
            -
              --blue-800: #1e40af;
         | 
| 198 | 
            -
              --blue-900: #1e3a8a;
         | 
| 199 | 
            -
              --blue-950: #172554;
         | 
| 200 | 
            -
             | 
| 201 | 
            -
              --indigo-50: #eef2ff;
         | 
| 202 | 
            -
              --indigo-100: #e0e7ff;
         | 
| 203 | 
            -
              --indigo-200: #c7d2fe;
         | 
| 204 | 
            -
              --indigo-300: #a5b4fc;
         | 
| 205 | 
            -
              --indigo-400: #818cf8;
         | 
| 206 | 
            -
              --indigo-500: #6366f1;
         | 
| 207 | 
            -
              --indigo-600: #4f46e5;
         | 
| 208 | 
            -
              --indigo-700: #4338ca;
         | 
| 209 | 
            -
              --indigo-800: #3730a3;
         | 
| 210 | 
            -
              --indigo-900: #312e81;
         | 
| 211 | 
            -
              --indigo-950: #1e1b4b;
         | 
| 212 | 
            -
             | 
| 213 | 
            -
              --violet-50: #f5f3ff;
         | 
| 214 | 
            -
              --violet-100: #ede9fe;
         | 
| 215 | 
            -
              --violet-200: #ddd6fe;
         | 
| 216 | 
            -
              --violet-300: #c4b5fd;
         | 
| 217 | 
            -
              --violet-400: #a78bfa;
         | 
| 218 | 
            -
              --violet-500: #8b5cf6;
         | 
| 219 | 
            -
              --violet-600: #7c3aed;
         | 
| 220 | 
            -
              --violet-700: #6d28d9;
         | 
| 221 | 
            -
              --violet-800: #5b21b6;
         | 
| 222 | 
            -
              --violet-900: #4c1d95;
         | 
| 223 | 
            -
              --violet-950: #2e1065;
         | 
| 224 | 
            -
             | 
| 225 | 
            -
              --purple-50: #faf5ff;
         | 
| 226 | 
            -
              --purple-100: #f3e8ff;
         | 
| 227 | 
            -
              --purple-200: #e9d5ff;
         | 
| 228 | 
            -
              --purple-300: #d8b4fe;
         | 
| 229 | 
            -
              --purple-400: #c084fc;
         | 
| 230 | 
            -
              --purple-500: #a855f7;
         | 
| 231 | 
            -
              --purple-600: #9333ea;
         | 
| 232 | 
            -
              --purple-700: #7e22ce;
         | 
| 233 | 
            -
              --purple-800: #6b21a8;
         | 
| 234 | 
            -
              --purple-900: #581c87;
         | 
| 235 | 
            -
              --purple-950: #3b0764;
         | 
| 236 | 
            -
             | 
| 237 | 
            -
              --fuchsia-50: #fdf4ff;
         | 
| 238 | 
            -
              --fuchsia-100: #fae8ff;
         | 
| 239 | 
            -
              --fuchsia-200: #f5d0fe;
         | 
| 240 | 
            -
              --fuchsia-300: #f0abfc;
         | 
| 241 | 
            -
              --fuchsia-400: #e879f9;
         | 
| 242 | 
            -
              --fuchsia-500: #d946ef;
         | 
| 243 | 
            -
              --fuchsia-600: #c026d3;
         | 
| 244 | 
            -
              --fuchsia-700: #a21caf;
         | 
| 245 | 
            -
              --fuchsia-800: #86198f;
         | 
| 246 | 
            -
              --fuchsia-900: #701a75;
         | 
| 247 | 
            -
              --fuchsia-950: #4a044e;
         | 
| 248 | 
            -
             | 
| 249 | 
            -
              --pink-50: #fdf2f8;
         | 
| 250 | 
            -
              --pink-100: #fce7f3;
         | 
| 251 | 
            -
              --pink-200: #fbcfe8;
         | 
| 252 | 
            -
              --pink-300: #f9a8d4;
         | 
| 253 | 
            -
              --pink-400: #f472b6;
         | 
| 254 | 
            -
              --pink-500: #ec4899;
         | 
| 255 | 
            -
              --pink-600: #db2777;
         | 
| 256 | 
            -
              --pink-700: #be185d;
         | 
| 257 | 
            -
              --pink-800: #9d174d;
         | 
| 258 | 
            -
              --pink-900: #831843;
         | 
| 259 | 
            -
              --pink-950: #500724;
         | 
| 260 | 
            -
             | 
| 261 | 
            -
              --rose-50: #fff1f2;
         | 
| 262 | 
            -
              --rose-100: #ffe4e6;
         | 
| 263 | 
            -
              --rose-200: #fecdd3;
         | 
| 264 | 
            -
              --rose-300: #fda4af;
         | 
| 265 | 
            -
              --rose-400: #fb7185;
         | 
| 266 | 
            -
              --rose-500: #f43f5e;
         | 
| 267 | 
            -
              --rose-600: #e11d48;
         | 
| 268 | 
            -
              --rose-700: #be123c;
         | 
| 269 | 
            -
              --rose-800: #9f1239;
         | 
| 270 | 
            -
              --rose-900: #881337;
         | 
| 271 | 
            -
              --rose-950: #4c0519;
         | 
| 272 | 
            -
             | 
| 273 | 
            -
              --neutral-50: #fafafa;
         | 
| 274 | 
            -
              --neutral-100: #f5f5f5;
         | 
| 275 | 
            -
              --neutral-200: #e5e5e5;
         | 
| 276 | 
            -
              --neutral-300: #d4d4d4;
         | 
| 277 | 
            -
              --neutral-400: #a3a3a3;
         | 
| 278 | 
            -
              --neutral-500: #737373;
         | 
| 279 | 
            -
              --neutral-600: #525252;
         | 
| 280 | 
            -
              --neutral-700: #404040;
         | 
| 281 | 
            -
              --neutral-800: #262626;
         | 
| 282 | 
            -
              --neutral-900: #171717;
         | 
| 283 | 
            -
              --neutral-950: #0a0a0a;
         | 
| 284 | 
            -
            }
         | 
    
        package/public/logo.svg
    DELETED
    
    | @@ -1,5 +0,0 @@ | |
| 1 | 
            -
            <?xml version="1.0" encoding="UTF-8"?>
         | 
| 2 | 
            -
            <!-- Generated by Pixelmator Pro 3.2.3 -->
         | 
| 3 | 
            -
            <svg width="709" height="709" viewBox="0 0 709 709" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
         | 
| 4 | 
            -
                <path id="Rectangle" fill="none" stroke="#444444" stroke-width="40" stroke-linecap="round" stroke-linejoin="round" d="M 76 617 L 631 617 L 631 94 C 631 94 26 450 358 450 C 682 450 76 94 76 94 L 76 617 Z"/>
         | 
| 5 | 
            -
            </svg>
         | 
    
        package/test/runtime.js
    DELETED
    
    
    
        package/typedoc.jsonc
    DELETED
    
    | @@ -1,31 +0,0 @@ | |
| 1 | 
            -
            {
         | 
| 2 | 
            -
              "name": "prelude",
         | 
| 3 | 
            -
              "hostedBaseUrl": "https://wrnrlr.github.io/prelude",
         | 
| 4 | 
            -
              "useHostedBaseUrlForAbsoluteLinks": false,
         | 
| 5 | 
            -
              "out":"./public/docs/",
         | 
| 6 | 
            -
              "compilerOptions": {
         | 
| 7 | 
            -
                "strict": true,
         | 
| 8 | 
            -
                "allowJs": true,
         | 
| 9 | 
            -
                "checkJs": false,
         | 
| 10 | 
            -
                "noImplicitThis": false,
         | 
| 11 | 
            -
                "allowImportingTsExtensions": true,
         | 
| 12 | 
            -
                "lib": [],
         | 
| 13 | 
            -
                "target": ["esnext"],
         | 
| 14 | 
            -
                "downlevelIteration": true
         | 
| 15 | 
            -
              },
         | 
| 16 | 
            -
              "entryPoints": ["./src/mod.ts"],
         | 
| 17 | 
            -
              "navigation": {
         | 
| 18 | 
            -
                  "includeCategories": true,
         | 
| 19 | 
            -
                  "includeGroups": false,
         | 
| 20 | 
            -
                  "includeFolders": true
         | 
| 21 | 
            -
              },
         | 
| 22 | 
            -
              "visibilityFilters": {
         | 
| 23 | 
            -
                  "protected": false,
         | 
| 24 | 
            -
                  "private": false,
         | 
| 25 | 
            -
                  "inherited": true,
         | 
| 26 | 
            -
                  "external": false,
         | 
| 27 | 
            -
                  "@alpha": false,
         | 
| 28 | 
            -
                  "@beta": false
         | 
| 29 | 
            -
              },
         | 
| 30 | 
            -
              "categorizeByGroup": true
         | 
| 31 | 
            -
            }
         | 
| 
            File without changes
         |