chocola 2.0.0-next.4 → 2.0.0-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,31 +2,35 @@
2
2
 
3
3
  Chocola is a JavaScript library for creating web user interfaces.
4
4
 
5
- `chocola` only contains the functionality to build and serve web static builds. For production you may want to implement `chocola` to your workflow with other frameworks as Vite until official workflows are provided.
5
+ `chocola` only contains the functionality to build and serve web static builds. For production you may want to implement `chocola` to your workflow with other frameworks until official workflows are provided.
6
6
 
7
7
  ## Usage
8
8
 
9
9
  ```html
10
- <!-- MyTitle.html -->
10
+ <!-- Greeting.html -->
11
11
  <script>
12
- let self = new HTMLElement;
12
+ let self = new HTMLDivElement;
13
+ let input = new HTMLInputElement;
13
14
 
14
- export let title = "Default title";
15
+ export let title = "Hello";
15
16
 
16
17
  function $runtime() {
17
- console.log("Component mounted:", self)
18
+ input.focus();
18
19
  }
19
20
  </script>
20
21
 
21
22
  <template>
22
- <h1>{title}</h1>
23
+ <div>
24
+ <h1>{title}</h1>
25
+ <input bind:self="input" type="text" placeholder="Your name">
26
+ </div>
23
27
  </template>
24
28
 
25
29
  <style>
26
- button { color: chocolate; }
30
+ h1 { color: chocolate; }
27
31
  </style>
28
32
  ```
29
33
 
30
34
  ## Documentation
31
35
 
32
- See https://github.com/sad-gabi/chocola/wiki
36
+ See https://github.com/chocolajs/chocola/wiki/Overview
@@ -0,0 +1,32 @@
1
+ const ansi = {
2
+ bold: "\x1b[1m",
3
+ underline: "\x1b[4m",
4
+ red: "\x1b[31m",
5
+ green: "\x1b[32m",
6
+ yellow: "\x1b[33m",
7
+ };
8
+
9
+ const reset = "\x1b[0m";
10
+
11
+ function hexToAnsi(h) {
12
+ const r = parseInt(h.slice(1, 3), 16);
13
+ const g = parseInt(h.slice(3, 5), 16);
14
+ const b = parseInt(h.slice(5, 7), 16);
15
+ return `\x1b[38;2;${r};${g};${b}m`;
16
+ }
17
+
18
+ function makeChalk(stack) {
19
+ const fn = (s) => {
20
+ if (stack.length === 0) return s;
21
+ return stack.map(n => ansi[n] || hexToAnsi(n)).join("") + s + reset;
22
+ };
23
+ return new Proxy(fn, {
24
+ get(_, prop) {
25
+ if (prop === "hex") return (h) => makeChalk([...stack, h]);
26
+ return makeChalk([...stack, prop]);
27
+ },
28
+ });
29
+ }
30
+
31
+ const chalk = makeChalk([]);
32
+ export default chalk;