@ratiosolver/flick 0.1.13 β†’ 0.2.1

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
@@ -1,29 +1,25 @@
1
1
  # Flick
2
2
 
3
- Flick is a tiny and focused UI framework designed for clarity and speed. It provides just the essentials to create reactive, component-based interfaces using clean and predictable patterns.
3
+ Flick is a tiny and focused UI framework designed for clarity and speed. It is built on top of **[Snabbdom](https://github.com/snabbdom/snabbdom)** for efficient Virtual DOM handling and **[Bootstrap](https://getbootstrap.com/)** for styling, providing strictly typed functional components to build reactive web interfaces.
4
4
 
5
- ⚑ Lightweight and fast
6
-
7
- 🧠 Reactive state management
8
-
9
- 🧩 Component-driven architecture
10
-
11
- πŸ’Ž Written in TypeScript
12
-
13
- πŸ”— Minimal external dependencies (relies only on Bootstrap)
5
+ ⚑ **Fast Virtual DOM** powered by Snabbdom
6
+ 🎨 **Bootstrap 5** Integration out-of-the-box
7
+ 🧩 **Functional Component** architecture
8
+ πŸ’Ž **Written in TypeScript**
9
+ πŸ”„ **Explicit Reactivity** model
14
10
 
15
11
  ## Overview
16
12
 
17
- Flick provides the basic utilities for managing components, lists, server connections, and user sessions. The framework is designed to be lightweight and flexible, making it easy to integrate into various web applications. It provides essential utilities for handling:
13
+ Flick takes a functional approach to UI development. Instead of complex state management systems or class-based components, it relies on simple functions that return Virtual DOM nodes. Reactivity is handled explicitlyβ€”you update your state variables and call `flick.redraw()` to update the view.
18
14
 
19
- - **Component management** – A structured approach to defining and interacting with components.
20
- - **List management** – Built-in support for managing collections of components.
21
- - **Server connection** – Tools for handling communication with a server.
22
- - **User management** – Basic utilities for managing the current user session.
15
+ Key features include:
16
+ - **Declarative UI** – Build views using simple functions.
17
+ - **Built-in Components** – Ready-to-use Bootstrap components like Navbar, Offcanvas, Table, ListGroup, and Toast.
18
+ - **Manual Redraw Control** – Full control over when the UI updates.
23
19
 
24
20
  ## Installation
25
21
 
26
- To install Flick, you can use npm:
22
+ To install Flick, use npm:
27
23
 
28
24
  ```bash
29
25
  npm install @ratiosolver/flick
@@ -31,28 +27,63 @@ npm install @ratiosolver/flick
31
27
 
32
28
  ## Usage
33
29
 
34
- Flick provides a set of utilities that can be used to build web applications. Here is an example of how to use the framework to create a simple component:
35
-
36
- ```javascript
37
- import { AppComponent } from '@ratiosolver/flick';
30
+ Flick exports a singleton instance `flick` to manage mounting and redrawing the application. Components are just functions that return Snabbdom VNodes.
38
31
 
39
- class MyApp extends AppComponent {
32
+ Here is a simple interactive counter example:
40
33
 
41
- count = 0;
42
- button = document.createElement('button');
34
+ ```typescript
35
+ import { flick, Button, App, Navbar, OffcanvasBrand, NavbarList, NavbarItem } from '@ratiosolver/flick';
36
+ import { h } from 'snabbdom';
43
37
 
44
- constructor() {
45
- super();
46
- button.textContent = 'Click me';
47
- button.onclick = () => this.increment();
48
- this.element.appendChild(button);
49
- }
38
+ // 1. Define your state
39
+ let count = 0;
50
40
 
51
- increment() {
52
- this.count++;
53
- this.button.textContent = `Clicked ${this.count} times`;
54
- }
41
+ // 2. Define actions that update state and trigger a redraw
42
+ function increment() {
43
+ count++;
44
+ flick.redraw();
55
45
  }
56
46
 
57
- const myApp = new MyApp();
47
+ // 3. Mount the application
48
+ flick.mount(() => {
49
+ // The main render function returns the entire app view
50
+
51
+ const navbar = Navbar(
52
+ OffcanvasBrand('Counter App'),
53
+ NavbarList([
54
+ NavbarItem('Home', () => console.log('Navigating to Home'), true)
55
+ ])
56
+ );
57
+
58
+ const content = h('div.container.mt-5.text-center', [
59
+ h('h1', 'Welcome to Flick'),
60
+ h('p.lead', `Current count is: ${count}`),
61
+ Button('Increment', increment)
62
+ ]);
63
+
64
+ // The App component typically wraps the layout
65
+ return App(navbar, content);
66
+ });
67
+ ```
68
+
69
+ ### Components
70
+
71
+ Flick provides helpers for common Bootstrap components. For example, creating a table:
72
+
73
+ ```typescript
74
+ import { Table, Row, flick } from '@ratiosolver/flick';
75
+
76
+ const headers = ['ID', 'Name', 'Role'];
77
+ const users = [
78
+ { id: 1, name: 'Alice', role: 'Admin' },
79
+ { id: 2, name: 'Bob', role: 'User' }
80
+ ];
81
+
82
+ const UserTable = () => Table(
83
+ headers,
84
+ users.map(user => Row(
85
+ [user.id.toString(), user.name, user.role],
86
+ () => console.log(`Clicked ${user.name}`)
87
+ ))
88
+ );
58
89
  ```
@@ -1,37 +1,8 @@
1
- import { AppListener } from "../app";
2
- import { Component } from "../component";
3
- import { ConnectionListener } from "../utils/connection";
4
- export declare class BrandComponent extends Component<HTMLAnchorElement> {
5
- /**
6
- * Creates a new brand component for the navigation bar.
7
- *
8
- * @param name - The display name of the brand. Defaults to 'Flick'.
9
- * @param icon - The source URL or path for the brand icon. Defaults to 'favicon.ico'.
10
- * @param icon_width - The width of the brand icon in pixels. Defaults to 32.
11
- * @param icon_height - The height of the brand icon in pixels. Defaults to 32.
12
- *
13
- * The constructor initializes the brand element with an icon and text,
14
- * styled and aligned for use in a navigation bar.
15
- */
16
- constructor(name?: string, icon?: string, icon_width?: number, icon_height?: number);
17
- }
18
- export declare class NavbarContent extends Component<HTMLDivElement> {
19
- constructor();
20
- }
21
- export declare class AppComponent extends Component<HTMLDivElement> implements AppListener, ConnectionListener {
22
- /**
23
- * Create an instance of the AppComponent.
24
- *
25
- * @param {string} id The ID of the element to use as the root of the application.
26
- */
27
- constructor(brand?: BrandComponent, content?: NavbarContent, id?: string);
28
- toast(info: string): void;
29
- selected_component(component: Component<Node> | null): void;
30
- connected(): void;
31
- logged_in(_info: any): void;
32
- received_message(_message: any): void;
33
- disconnected(): void;
34
- logged_out(): void;
35
- connection_error(_error: any): void;
36
- unmounting(): void;
37
- }
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function Brand(content: VNodeChildren, onClick?: () => void): VNode;
3
+ export declare function OffcanvasBrand(content: VNodeChildren, id?: string): VNode;
4
+ export declare function IconBrand(icon: string, width?: number, height?: number, name?: string, onClick?: () => void): VNode;
5
+ export declare function NavbarItem(text: string, onClick?: () => void, active?: boolean): VNode;
6
+ export declare function NavbarList(items: VNodeChildren[]): VNode;
7
+ export declare function Navbar(brand?: VNodeChildren, navbar_content?: VNodeChildren, id?: string): VNode;
8
+ export declare function App(navbar?: VNodeChildren, content?: VNodeChildren): VNode;
@@ -1,141 +1,76 @@
1
- import { Collapse } from "bootstrap";
2
- import { App } from "../app";
3
- import { Component, Fragment } from "../component";
4
- import { Connection } from "../utils/connection";
5
- class NavbarComponent extends Component {
6
- constructor(brand, content) {
7
- super(document.createElement('nav'));
8
- this.node.classList.add('navbar', 'navbar-expand-lg');
9
- this.add_child(new NavbarContainer(brand, content));
10
- }
1
+ import { Offcanvas } from 'bootstrap';
2
+ import { h } from 'snabbdom';
3
+ export function Brand(content, onClick) {
4
+ return h('a.navbar-brand', {
5
+ style: { cursor: onClick ? 'pointer' : 'default' },
6
+ on: { click: onClick || (() => { }) }
7
+ }, content);
11
8
  }
12
- class NavbarContainer extends Component {
13
- constructor(brand, content) {
14
- super(document.createElement('div'));
15
- this.node.classList.add('container-fluid');
16
- // Add the brand..
17
- this.add_child(brand);
18
- // Add the toggler..
19
- const toggler = document.createElement('button');
20
- toggler.classList.add('navbar-toggler');
21
- toggler.type = 'button';
22
- toggler.setAttribute('aria-controls', 'navbarContent');
23
- toggler.setAttribute('aria-expanded', 'false');
24
- toggler.setAttribute('aria-label', 'Toggle navigation');
25
- const toggler_span = document.createElement('span');
26
- toggler_span.classList.add('navbar-toggler-icon');
27
- toggler.appendChild(toggler_span);
28
- this.node.appendChild(toggler);
29
- // Add the content..
30
- this.add_child(content);
31
- toggler.addEventListener('click', (event) => {
32
- event.preventDefault();
33
- Collapse.getOrCreateInstance(content.node).toggle();
34
- });
35
- }
36
- }
37
- export class BrandComponent extends Component {
38
- /**
39
- * Creates a new brand component for the navigation bar.
40
- *
41
- * @param name - The display name of the brand. Defaults to 'Flick'.
42
- * @param icon - The source URL or path for the brand icon. Defaults to 'favicon.ico'.
43
- * @param icon_width - The width of the brand icon in pixels. Defaults to 32.
44
- * @param icon_height - The height of the brand icon in pixels. Defaults to 32.
45
- *
46
- * The constructor initializes the brand element with an icon and text,
47
- * styled and aligned for use in a navigation bar.
48
- */
49
- constructor(name = 'Flick', icon = 'favicon.ico', icon_width = 32, icon_height = 32) {
50
- super(document.createElement('a'));
51
- this.node.classList.add('navbar-brand', 'd-flex', 'align-items-center', 'gap-2');
52
- this.node.style.display = 'flex';
53
- this.node.style.alignItems = 'center';
54
- this.node.style.gap = '0.5rem'; // Add space between icon and text
55
- const brand_icon = document.createElement('img');
56
- brand_icon.src = icon;
57
- brand_icon.alt = name;
58
- brand_icon.width = icon_width;
59
- brand_icon.height = icon_height;
60
- brand_icon.classList.add('d-inline-block', 'align-text-top');
61
- this.node.appendChild(brand_icon);
62
- if (name) {
63
- brand_icon.classList.add('me-1');
64
- const brand_text = document.createElement('span');
65
- brand_text.textContent = name;
66
- brand_text.style.fontWeight = '500'; // Make text slightly bolder
67
- this.node.appendChild(brand_text);
9
+ export function OffcanvasBrand(content, id = 'offcanvasNavbar') {
10
+ return h('a.navbar-brand', {
11
+ style: { cursor: 'pointer' },
12
+ attrs: { 'aria-controls': id },
13
+ on: {
14
+ click: () => {
15
+ const el = document.getElementById(id);
16
+ if (el)
17
+ Offcanvas.getOrCreateInstance(el).show();
18
+ }
68
19
  }
69
- }
20
+ }, content);
21
+ }
22
+ export function IconBrand(icon, width = 30, height = 30, name, onClick) {
23
+ return h('a.navbar-brand', [
24
+ h('img', {
25
+ style: { cursor: onClick ? 'pointer' : 'default' },
26
+ props: {
27
+ src: icon,
28
+ width: width,
29
+ height: height,
30
+ alt: name || 'Brand Icon'
31
+ },
32
+ on: { click: onClick || (() => { }) }
33
+ }),
34
+ name ? ` ${name}` : ''
35
+ ]);
36
+ }
37
+ export function NavbarItem(text, onClick, active = false) {
38
+ return h('li.nav-item', { style: { cursor: 'pointer' } }, [
39
+ h('a.nav-link', {
40
+ class: { active },
41
+ on: { click: onClick || (() => { }) }
42
+ }, text)
43
+ ]);
44
+ }
45
+ export function NavbarList(items) {
46
+ return h('ul.navbar-nav.me-auto.mb-2.mb-lg-0', items);
70
47
  }
71
- export class NavbarContent extends Component {
72
- constructor() {
73
- super(document.createElement('div'));
74
- this.node.classList.add('collapse', 'navbar-collapse');
75
- this.node.id = 'navbarContent';
76
- }
48
+ export function Navbar(brand = Brand('Flick'), navbar_content, id = 'navbarSupportedContent') {
49
+ return h('nav.navbar.navbar-expand-lg.bg-body-tertiary', [
50
+ h('div.container-fluid', [
51
+ brand,
52
+ h('button.navbar-toggler', {
53
+ props: {
54
+ type: 'button'
55
+ },
56
+ attrs: {
57
+ 'data-bs-toggle': 'collapse',
58
+ 'data-bs-target': `#${id}`,
59
+ 'aria-controls': id,
60
+ 'aria-expanded': 'false',
61
+ 'aria-label': 'Toggle navigation'
62
+ }
63
+ }, [
64
+ h('span.navbar-toggler-icon')
65
+ ]),
66
+ h(`div#${id}.collapse.navbar-collapse`, navbar_content)
67
+ ])
68
+ ]);
77
69
  }
78
- export class AppComponent extends Component {
79
- /**
80
- * Create an instance of the AppComponent.
81
- *
82
- * @param {string} id The ID of the element to use as the root of the application.
83
- */
84
- constructor(brand = new BrandComponent(), content = new NavbarContent(), id = 'app') {
85
- super(document.querySelector('#' + id));
86
- this.node.classList.add('d-flex', 'flex-column', 'h-100');
87
- const fragment = new Fragment();
88
- fragment.add_child(new NavbarComponent(brand, content));
89
- // Add the toast container..
90
- const toast_container = document.createElement('div');
91
- toast_container.classList.add('toast-container', 'position-fixed', 'bottom-0', 'end-0', 'p-3');
92
- fragment.node.appendChild(toast_container);
93
- fragment.attach_to(this);
94
- App.get_instance().add_app_listener(this);
95
- Connection.get_instance().add_connection_listener(this);
96
- }
97
- toast(info) {
98
- const toast_container = this.node.querySelector('.toast-container');
99
- const toast = document.createElement('div');
100
- toast.classList.add('toast');
101
- toast.setAttribute('role', 'alert');
102
- toast.setAttribute('aria-live', 'assertive');
103
- toast.setAttribute('aria-atomic', 'true');
104
- toast.setAttribute('data-bs-autohide', 'true');
105
- toast.setAttribute('data-bs-delay', '5000');
106
- const toast_header = document.createElement('div');
107
- toast_header.classList.add('toast-header');
108
- const toast_title = document.createElement('strong');
109
- toast_title.classList.add('me-auto');
110
- toast_title.innerText = 'Info';
111
- toast_header.appendChild(toast_title);
112
- const toast_button = document.createElement('button');
113
- toast_button.classList.add('btn-close');
114
- toast_button.setAttribute('type', 'button');
115
- toast_button.setAttribute('data-bs-dismiss', 'toast');
116
- toast_button.setAttribute('aria-label', 'Close');
117
- toast_header.appendChild(toast_button);
118
- toast.appendChild(toast_header);
119
- const toast_body = document.createElement('div');
120
- toast_body.classList.add('toast-body');
121
- toast_body.innerText = info;
122
- toast.appendChild(toast_body);
123
- toast_container.appendChild(toast);
124
- setTimeout(() => toast.remove(), 5000);
125
- }
126
- selected_component(component) {
127
- if (component)
128
- this.add_child(component);
129
- }
130
- connected() { }
131
- logged_in(_info) { }
132
- received_message(_message) { }
133
- disconnected() { }
134
- logged_out() { }
135
- connection_error(_error) { }
136
- unmounting() {
137
- App.get_instance().remove_app_listener(this);
138
- Connection.get_instance().remove_connection_listener(this);
139
- }
70
+ export function App(navbar = Navbar(), content) {
71
+ return h('div', [
72
+ navbar,
73
+ content
74
+ ]);
140
75
  }
141
76
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/components/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/components/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,KAAK,CAAC,OAAsB,EAAE,OAAoB;IAChE,OAAO,CAAC,CAAC,gBAAgB,EACvB;QACE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;QAClD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;KACtC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB,EAAE,KAAa,iBAAiB;IACnF,OAAO,CAAC,CAAC,gBAAgB,EAAE;QACzB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC5B,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;QAC9B,EAAE,EAAE;YACF,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE;oBACJ,SAAS,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;SACF;KACF,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,SAAiB,EAAE,EAAE,IAAa,EAAE,OAAoB;IAClH,OAAO,CAAC,CAAC,gBAAgB,EAAE;QACzB,CAAC,CAAC,KAAK,EAAE;YACP,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;YAClD,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,IAAI,YAAY;aAC1B;YACD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;SACtC,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAoB,EAAE,SAAkB,KAAK;IACpF,OAAO,CAAC,CAAC,aAAa,EACpB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAClC,CAAC,CAAC,YAAY,EAAE;YACd,KAAK,EAAE,EAAE,MAAM,EAAE;YACjB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;SACtC,EAAE,IAAI,CAAC;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,OAAO,CAAC,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAuB,KAAK,CAAC,OAAO,CAAC,EAAE,cAA8B,EAAE,EAAE,GAAG,wBAAwB;IACzH,OAAO,CAAC,CAAC,8CAA8C,EAAE;QACvD,CAAC,CAAC,qBAAqB,EAAE;YACvB,KAAK;YACL,CAAC,CAAC,uBAAuB,EAAE;gBACzB,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;gBACD,KAAK,EAAE;oBACL,gBAAgB,EAAE,UAAU;oBAC5B,gBAAgB,EAAE,IAAI,EAAE,EAAE;oBAC1B,eAAe,EAAE,EAAE;oBACnB,eAAe,EAAE,OAAO;oBACxB,YAAY,EAAE,mBAAmB;iBAClC;aACF,EAAE;gBACD,CAAC,CAAC,0BAA0B,CAAC;aAC9B,CAAC;YACF,CAAC,CAAC,OAAO,EAAE,2BAA2B,EAAE,cAAc,CAAC;SACxD,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,SAAwB,MAAM,EAAE,EAAE,OAAuB;IAC3E,OAAO,CAAC,CAAC,KAAK,EAAE;QACd,MAAM;QACN,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Component } from "../app";
2
+ export declare class BrandComponent extends Component<void, HTMLAnchorElement> {
3
+ /**
4
+ * Creates a new brand component for the navigation bar.
5
+ *
6
+ * @param name - The display name of the brand. Defaults to 'Flick'.
7
+ * @param icon - The source URL or path for the brand icon. Defaults to 'favicon.ico'.
8
+ * @param icon_width - The width of the brand icon in pixels. Defaults to 32.
9
+ * @param icon_height - The height of the brand icon in pixels. Defaults to 32.
10
+ *
11
+ * The constructor initializes the brand element with an icon and text,
12
+ * styled and aligned for use in a navigation bar.
13
+ */
14
+ constructor(name?: string, icon?: string, icon_width?: number, icon_height?: number);
15
+ }
@@ -0,0 +1,39 @@
1
+ import { Component } from "../app";
2
+ export class BrandComponent extends Component {
3
+ /**
4
+ * Creates a new brand component for the navigation bar.
5
+ *
6
+ * @param name - The display name of the brand. Defaults to 'Flick'.
7
+ * @param icon - The source URL or path for the brand icon. Defaults to 'favicon.ico'.
8
+ * @param icon_width - The width of the brand icon in pixels. Defaults to 32.
9
+ * @param icon_height - The height of the brand icon in pixels. Defaults to 32.
10
+ *
11
+ * The constructor initializes the brand element with an icon and text,
12
+ * styled and aligned for use in a navigation bar.
13
+ */
14
+ constructor(name = 'Flick', icon = 'favicon.ico', icon_width = 32, icon_height = 32) {
15
+ super(undefined, document.createElement('a'));
16
+ this.element.classList.add('navbar-brand');
17
+ this.element.href = '#';
18
+ const brand_container = document.createElement('div');
19
+ brand_container.style.display = 'flex';
20
+ brand_container.style.alignItems = 'center';
21
+ brand_container.style.gap = '0.5rem'; // Add space between icon and text
22
+ const brand_icon = document.createElement('img');
23
+ brand_icon.src = icon;
24
+ brand_icon.alt = name;
25
+ brand_icon.width = icon_width;
26
+ brand_icon.height = icon_height;
27
+ brand_icon.classList.add('d-inline-block', 'align-text-top');
28
+ brand_container.appendChild(brand_icon);
29
+ if (name) {
30
+ brand_icon.classList.add('me-1');
31
+ const brand_text = document.createElement('span');
32
+ brand_text.textContent = name;
33
+ brand_text.style.fontWeight = '500'; // Make text slightly bolder
34
+ brand_container.appendChild(brand_text);
35
+ }
36
+ this.element.appendChild(brand_container);
37
+ }
38
+ }
39
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/components/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,OAAO,cAAe,SAAQ,SAAkC;IAEpE;;;;;;;;;;OAUG;IACH,YAAY,OAAe,OAAO,EAAE,OAAe,aAAa,EAAE,aAAqB,EAAE,EAAE,cAAsB,EAAE;QACjH,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;QAExB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACvC,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,kCAAkC;QAExE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;QAC9B,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;QAChC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC7D,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,4BAA4B;YAEjE,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;CACF"}
@@ -1,17 +1,2 @@
1
- import { PayloadComponent } from "../component";
2
- /**
3
- * Represents a button component that extends {@link PayloadComponent} with a payload of type `P`.
4
- *
5
- * This component creates an HTML `<button>` element and associates it with the provided payload.
6
- *
7
- * @typeParam P - The type of the payload associated with the button.
8
- * @extends PayloadComponent<HTMLButtonElement, P>
9
- *
10
- * @example
11
- * ```typescript
12
- * const button = new ButtonComponent<MyPayloadType>(payload);
13
- * ```
14
- */
15
- export declare class ButtonComponent<P> extends PayloadComponent<HTMLButtonElement, P> {
16
- constructor(payload: P);
17
- }
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function Button(content: VNodeChildren, onClick: () => void): VNode;
@@ -1,18 +1,5 @@
1
- import { PayloadComponent } from "../component";
2
- /**
3
- * Represents a button component that extends {@link PayloadComponent} with a payload of type `P`.
4
- *
5
- * This component creates an HTML `<button>` element and associates it with the provided payload.
6
- *
7
- * @typeParam P - The type of the payload associated with the button.
8
- * @extends PayloadComponent<HTMLButtonElement, P>
9
- *
10
- * @example
11
- * ```typescript
12
- * const button = new ButtonComponent<MyPayloadType>(payload);
13
- * ```
14
- */
15
- export class ButtonComponent extends PayloadComponent {
16
- constructor(payload) { super(document.createElement('button'), payload); }
1
+ import { h } from 'snabbdom';
2
+ export function Button(content, onClick) {
3
+ return h('button.btn.btn-primary', { on: { click: onClick } }, content);
17
4
  }
18
5
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAmB,SAAQ,gBAAsC;IAE5E,YAAY,OAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9E"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,MAAM,CAAC,OAAsB,EAAE,OAAmB;IAChE,OAAO,CAAC,CAAC,wBAAwB,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,57 +1,4 @@
1
- import { Component, PayloadComponent } from "../component";
2
- import { Selector, SelectorGroup } from "../utils/selector";
3
- export declare abstract class ListComponent<L extends HTMLElement, P> extends Component<L> {
4
- children: PayloadComponent<Node, P>[];
5
- compareFn: (a: P, b: P) => number;
6
- constructor(node: L, children: PayloadComponent<Node, P>[], compareFn?: (a: P, b: P) => number);
7
- add_child(child: PayloadComponent<Node, P>): void;
8
- remove_child(child: PayloadComponent<Node, P>): void;
9
- }
10
- export declare class UListComponent<P> extends ListComponent<HTMLUListElement, P> {
11
- constructor(payload: PayloadComponent<HTMLLIElement, P>[], compareFn?: (a: P, b: P) => number);
12
- }
13
- export declare class OListComponent<P> extends ListComponent<HTMLOListElement, P> {
14
- constructor(payload: PayloadComponent<HTMLLIElement, P>[], compareFn?: (a: P, b: P) => number);
15
- }
16
- export declare class DivListComponent<P> extends ListComponent<HTMLDivElement, P> {
17
- constructor(payload: PayloadComponent<HTMLDivElement, P>[], compareFn?: (a: P, b: P) => number);
18
- }
19
- export declare class ListItemComponent<P> extends PayloadComponent<HTMLLIElement, P> implements Selector {
20
- private readonly group;
21
- private readonly a;
22
- private icn;
23
- private text;
24
- /**
25
- * Creates an instance of UListElement.
26
- *
27
- * @param group The selector group this element belongs to.
28
- * @param payload The payload associated with this element.
29
- * @param icn The icon element to be displayed in the list item.
30
- * @param text The text content of the list item.
31
- */
32
- constructor(group: SelectorGroup, payload: P, icn: Element, text: string);
33
- set_icon(icn: Element): void;
34
- set_text(text: string): void;
35
- unmounting(): void;
36
- select(): void;
37
- unselect(): void;
38
- }
39
- export declare class CheckboxListItemComponent<P> extends PayloadComponent<HTMLLIElement, P> implements Selector {
40
- private readonly input;
41
- private readonly label;
42
- private icn;
43
- private text;
44
- /**
45
- * Creates an instance of CheckboxListItemComponent.
46
- *
47
- * @param payload The payload associated with this element.
48
- * @param id The unique identifier for the checkbox input element.
49
- * @param icn The icon element to be displayed in the list item.
50
- * @param text The text content of the list item.
51
- */
52
- constructor(payload: P, id: string, icn: Element, text: string);
53
- set_icon(icn: Element): void;
54
- set_text(text: string): void;
55
- select(): void;
56
- unselect(): void;
57
- }
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function ListGroupItem(content: VNodeChildren, onClick?: () => void, active?: boolean, disabled?: boolean): VNode;
3
+ export declare function ListGroupCheckbox(text: string, checked?: boolean, onToggle?: (checked: boolean) => void, disabled?: boolean): VNode;
4
+ export declare function ListGroup(items: VNodeChildren[]): VNode;
@@ -1,128 +1,31 @@
1
- import { Component, Fragment, PayloadComponent } from "../component";
2
- export class ListComponent extends Component {
3
- constructor(node, children, compareFn = ((_a, _b) => 0)) {
4
- super(node);
5
- this.children = []; // The children of the list component sorted by the comparison function
6
- this.children = children;
7
- this.compareFn = compareFn;
8
- this.children.sort((a, b) => this.compareFn(a.payload, b.payload));
9
- const fragment = new Fragment();
10
- for (const child of this.children)
11
- fragment.add_child(child);
12
- fragment.attach_to(this);
13
- }
14
- add_child(child) {
15
- this.children.push(child);
16
- this.children.sort((a, b) => this.compareFn(a.payload, b.payload));
17
- const index = this.children.indexOf(child);
18
- if (index === this.children.length - 1)
19
- super.add_child(child);
20
- else
21
- super.add_child_before(child, this.children[index + 1].node);
22
- }
23
- remove_child(child) {
24
- const index = this.children.indexOf(child);
25
- if (index !== -1) {
26
- this.children.splice(index, 1);
27
- super.remove_child(child);
28
- }
29
- else
30
- throw new Error('Child not found');
31
- }
1
+ import { h } from 'snabbdom';
2
+ export function ListGroupItem(content, onClick, active = false, disabled = false) {
3
+ return h('button.list-group-item.list-group-item-action' + (active ? '.active.rounded' : ''), {
4
+ props: {
5
+ type: 'button',
6
+ disabled: disabled
7
+ },
8
+ attrs: { 'aria-current': active ? 'true' : 'false' },
9
+ on: { click: onClick || (() => { }) }
10
+ }, content);
32
11
  }
33
- export class UListComponent extends ListComponent {
34
- constructor(payload, compareFn) {
35
- super(document.createElement('ul'), payload, compareFn);
36
- }
12
+ export function ListGroupCheckbox(text, checked = false, onToggle, disabled = false) {
13
+ return h('label.list-group-item', {
14
+ class: { 'disabled': disabled }
15
+ }, [
16
+ h('input.form-check-input.me-2', {
17
+ props: {
18
+ type: 'checkbox',
19
+ checked: checked,
20
+ disabled: disabled,
21
+ value: ''
22
+ },
23
+ on: { change: (event) => onToggle && onToggle(event.target.checked) }
24
+ }),
25
+ text
26
+ ]);
37
27
  }
38
- export class OListComponent extends ListComponent {
39
- constructor(payload, compareFn) {
40
- super(document.createElement('ol'), payload, compareFn);
41
- }
42
- }
43
- export class DivListComponent extends ListComponent {
44
- constructor(payload, compareFn) {
45
- super(document.createElement('div'), payload, compareFn);
46
- }
47
- }
48
- export class ListItemComponent extends PayloadComponent {
49
- /**
50
- * Creates an instance of UListElement.
51
- *
52
- * @param group The selector group this element belongs to.
53
- * @param payload The payload associated with this element.
54
- * @param icn The icon element to be displayed in the list item.
55
- * @param text The text content of the list item.
56
- */
57
- constructor(group, payload, icn, text) {
58
- super(document.createElement('li'), payload);
59
- this.group = group;
60
- this.node.classList.add('nav-item', 'list-group-item');
61
- this.a = document.createElement('a');
62
- this.a.classList.add('nav-link', 'd-flex', 'align-items-center');
63
- this.a.href = '#';
64
- this.icn = icn;
65
- this.icn.classList.add('me-2');
66
- this.a.append(this.icn);
67
- this.text = document.createTextNode(text);
68
- this.a.append(this.text);
69
- this.a.addEventListener('click', (event) => {
70
- event.preventDefault();
71
- this.group.set_selected(this);
72
- });
73
- this.node.append(this.a);
74
- this.group.add_selector(this);
75
- }
76
- set_icon(icn) {
77
- this.icn.replaceWith(icn);
78
- this.icn = icn;
79
- this.icn.classList.add('me-2');
80
- }
81
- set_text(text) { this.text.textContent = text; }
82
- unmounting() { this.group.remove_selector(this); }
83
- select() { this.a.classList.add('active'); }
84
- unselect() { this.a.classList.remove('active'); }
85
- }
86
- export class CheckboxListItemComponent extends PayloadComponent {
87
- /**
88
- * Creates an instance of CheckboxListItemComponent.
89
- *
90
- * @param payload The payload associated with this element.
91
- * @param id The unique identifier for the checkbox input element.
92
- * @param icn The icon element to be displayed in the list item.
93
- * @param text The text content of the list item.
94
- */
95
- constructor(payload, id, icn, text) {
96
- super(document.createElement('li'), payload);
97
- this.node.classList.add('list-group-item', 'd-flex', 'align-items-center');
98
- this.input = document.createElement('input');
99
- this.input.type = 'checkbox';
100
- this.input.id = id;
101
- this.input.classList.add('form-check-input', 'me-2');
102
- this.input.addEventListener('change', () => {
103
- if (this.input.checked)
104
- this.select();
105
- else
106
- this.unselect();
107
- });
108
- this.node.append(this.input);
109
- this.label = document.createElement('label');
110
- this.label.classList.add('form-check-label', 'd-flex', 'align-items-center', 'flex-grow-1', 'mb-0');
111
- this.label.htmlFor = id;
112
- this.icn = icn;
113
- this.icn.classList.add('me-2');
114
- this.label.append(this.icn);
115
- this.text = document.createTextNode(text);
116
- this.label.append(this.text);
117
- this.node.append(this.label);
118
- }
119
- set_icon(icn) {
120
- this.icn.replaceWith(icn);
121
- this.icn = icn;
122
- this.icn.classList.add('me-2');
123
- }
124
- set_text(text) { this.text.textContent = text; }
125
- select() { }
126
- unselect() { }
28
+ export function ListGroup(items) {
29
+ return h('div.list-group.list-group-flush', items);
127
30
  }
128
31
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/components/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,OAAgB,aAAwC,SAAQ,SAAY;IAKhF,YAAY,IAAO,EAAE,QAAqC,EAAE,YAAoC,CAAC,CAAC,EAAK,EAAE,EAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACnH,KAAK,CAAC,IAAI,CAAC,CAAC;QAJd,aAAQ,GAAgC,EAAE,CAAC,CAAC,uEAAuE;QAKjH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAC/B,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEQ,SAAS,CAAC,KAAgC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACpC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;YAEvB,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAEQ,YAAY,CAAC,KAAgC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;;YACC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,cAAkB,SAAQ,aAAkC;IAEvE,YAAY,OAA6C,EAAE,SAAkC;QAC3F,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,OAAO,cAAkB,SAAQ,aAAkC;IAEvE,YAAY,OAA6C,EAAE,SAAkC;QAC3F,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,OAAO,gBAAoB,SAAQ,aAAgC;IAEvE,YAAY,OAA8C,EAAE,SAAkC;QAC5F,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,MAAM,OAAO,iBAAqB,SAAQ,gBAAkC;IAO1E;;;;;;;OAOG;IACH,YAAY,KAAoB,EAAE,OAAU,EAAE,GAAY,EAAE,IAAY;QACtE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAEvD,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACjE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,IAAY,IAAU,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;IAErD,UAAU,KAAW,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,KAAW,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,QAAQ,KAAW,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,OAAO,yBAA6B,SAAQ,gBAAkC;IAOlF;;;;;;;OAOG;IACH,YAAY,OAAU,EAAE,EAAU,EAAE,GAAY,EAAE,IAAY;QAC5D,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE3E,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;;gBAEd,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,IAAY,IAAU,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;IAE9D,MAAM,KAAW,CAAC;IAClB,QAAQ,KAAW,CAAC;CACrB"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/components/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,aAAa,CAAC,OAAsB,EAAE,OAAoB,EAAE,SAAkB,KAAK,EAAE,WAAoB,KAAK;IAC5H,OAAO,CAAC,CAAC,+CAA+C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC5F,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;SACnB;QACD,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;QACpD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;KACtC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,UAAmB,KAAK,EAAE,QAAqC,EAAE,WAAoB,KAAK;IACxI,OAAO,CAAC,CAAC,uBAAuB,EAAE;QAChC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;KAChC,EAAE;QACD,CAAC,CAAC,6BAA6B,EAAE;YAC/B,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,EAAE;aACV;YACD,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAE,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC,EAAE;SACnG,CAAC;QACF,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,CAAC,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -1,5 +1,4 @@
1
- import { Component } from "../component";
2
- import { Selector, SelectorGroup } from "../utils/selector";
3
- export declare class Offcanvas extends Component<HTMLDivElement> {
4
- constructor(id: string, group: SelectorGroup, top: Map<HTMLAnchorElement, Selector>, bottom?: Map<HTMLAnchorElement, Selector>);
5
- }
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function OffcanvasHeader(title: string, id?: string): VNode;
3
+ export declare function OffcanvasBody(content: VNodeChildren): VNode;
4
+ export declare function Offcanvas(body: VNode, header?: VNode, id?: string): VNode;
@@ -1,39 +1,28 @@
1
- import { Component } from "../component";
2
- export class Offcanvas extends Component {
3
- constructor(id, group, top, bottom) {
4
- super(document.createElement('div'));
5
- this.node.classList.add('offcanvas', 'offcanvas-start', 'd-flex');
6
- this.node.tabIndex = -1;
7
- this.node.id = id;
8
- const body = document.createElement('div');
9
- body.classList.add('offcanvas-body', 'flex-column', 'flex-shrink-0', 'p-3', 'bg-light');
10
- const ul = document.createElement('ul');
11
- ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-auto');
12
- for (const [a, sel] of top) {
13
- const li = document.createElement('li');
14
- li.classList.add('nav-item');
15
- a.classList.add('nav-link');
16
- group.add_selector(sel);
17
- li.appendChild(a);
18
- ul.appendChild(li);
19
- }
20
- body.appendChild(ul);
21
- if (bottom) {
22
- const hr = document.createElement('hr');
23
- body.appendChild(hr);
24
- const footer_ul = document.createElement('ul');
25
- footer_ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-0');
26
- for (const [a, sel] of bottom) {
27
- const li = document.createElement('li');
28
- li.classList.add('nav-item');
29
- a.classList.add('nav-link');
30
- group.add_selector(sel);
31
- li.appendChild(a);
32
- footer_ul.appendChild(li);
1
+ import { h } from 'snabbdom';
2
+ import { Offcanvas as BootstrapOffcanvas } from 'bootstrap';
3
+ export function OffcanvasHeader(title, id = 'offcanvasNavbar') {
4
+ return h('div.offcanvas-header', [
5
+ h('h5.offcanvas-title', { props: { id: `${id}Label` } }, title),
6
+ h('button.btn-close', {
7
+ attrs: {
8
+ 'data-bs-dismiss': 'offcanvas',
9
+ 'aria-label': 'Close'
33
10
  }
34
- body.appendChild(footer_ul);
11
+ })
12
+ ]);
13
+ }
14
+ export function OffcanvasBody(content) {
15
+ return h('div.offcanvas-body', content);
16
+ }
17
+ export function Offcanvas(body, header, id = 'offcanvasNavbar') {
18
+ return h(`div#${id}.offcanvas.offcanvas-start`, {
19
+ key: id,
20
+ props: { tabindex: -1 },
21
+ attrs: { 'aria-labelledby': `${id}Label` },
22
+ hook: {
23
+ insert: (vnode) => BootstrapOffcanvas.getOrCreateInstance(vnode.elm),
24
+ destroy: (vnode) => { var _a; return (_a = BootstrapOffcanvas.getInstance(vnode.elm)) === null || _a === void 0 ? void 0 : _a.hide(); }
35
25
  }
36
- this.node.append(body);
37
- }
26
+ }, [header, body]);
38
27
  }
39
28
  //# sourceMappingURL=offcanvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"offcanvas.js","sourceRoot":"","sources":["../../src/components/offcanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,OAAO,SAAU,SAAQ,SAAyB;IAEtD,YAAY,EAAU,EAAE,KAAoB,EAAE,GAAqC,EAAE,MAAyC;QAC5H,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAExF,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAErB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAErB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAEnE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClB,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"offcanvas.js","sourceRoot":"","sources":["../../src/components/offcanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa,iBAAiB;IAC3E,OAAO,CAAC,CAAC,sBAAsB,EAAE;QAC/B,CAAC,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC;QAC/D,CAAC,CAAC,kBAAkB,EAAE;YACpB,KAAK,EAAE;gBACL,iBAAiB,EAAE,WAAW;gBAC9B,YAAY,EAAE,OAAO;aACtB;SACF,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAsB;IAClD,OAAO,CAAC,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAW,EAAE,MAAc,EAAE,KAAa,iBAAiB;IACnF,OAAO,CAAC,CAAC,OAAO,EAAE,4BAA4B,EAAE;QAC9C,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;QACvB,KAAK,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;QAC1C,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAkB,CAAC;YACnF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAkB,CAAC,0CAAE,IAAI,EAAE,CAAA,EAAA;SACrF;KACF,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function Header(cells: VNodeChildren[]): VNode;
3
+ export declare function Row(cells: VNodeChildren[], onClick?: () => void, active?: boolean): VNode;
4
+ export declare function Table(header: VNodeChildren[], rows: VNode[]): VNode;
@@ -0,0 +1,17 @@
1
+ import { h } from 'snabbdom';
2
+ export function Header(cells) {
3
+ return h('tr', cells.map(cell => h('th', { props: { scope: 'col' } }, cell)));
4
+ }
5
+ export function Row(cells, onClick, active = false) {
6
+ return h('tr' + (active ? '.table-active' : ''), {
7
+ style: { cursor: onClick ? 'pointer' : 'default' },
8
+ on: { click: onClick || (() => { }) }
9
+ }, cells.map(cell => h('td', cell)));
10
+ }
11
+ export function Table(header, rows) {
12
+ return h('table.table.table-striped.table-hover', [
13
+ h('thead', Header(header)),
14
+ h('tbody', rows)
15
+ ]);
16
+ }
17
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/components/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,MAAM,CAAC,KAAsB;IAC3C,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,OAAoB,EAAE,SAAkB,KAAK;IACvF,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC/C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;QAClD,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;KACtC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAuB,EAAE,IAAa;IAC1D,OAAO,CAAC,CAAC,uCAAuC,EAAE;QAChD,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { VNode, VNodeChildren } from 'snabbdom';
2
+ export declare function Toast(id: string, role: 'alert' | 'status', body: VNodeChildren, header?: VNodeChildren, autohide?: boolean, onClose?: () => void): VNode;
3
+ export declare function ToastContainer(toasts: VNodeChildren[]): VNode;
@@ -0,0 +1,27 @@
1
+ import { h } from 'snabbdom';
2
+ import * as bootstrap from 'bootstrap';
3
+ export function Toast(id, role, body, header, autohide = true, onClose) {
4
+ return h('div.toast', {
5
+ props: { id, role },
6
+ attrs: {
7
+ 'aria-live': role === 'alert' ? 'assertive' : 'polite',
8
+ 'aria-atomic': 'true',
9
+ 'data-bs-autohide': autohide ? 'true' : 'false'
10
+ },
11
+ hook: {
12
+ insert: (vnode) => {
13
+ const el = vnode.elm;
14
+ const toast = new bootstrap.Toast(el, { autohide });
15
+ el.addEventListener('hidden.bs.toast', () => { onClose && onClose(); });
16
+ toast.show();
17
+ }
18
+ }
19
+ }, [
20
+ header ? h('div.toast-header', header) : null,
21
+ h('div.toast-body', body)
22
+ ]);
23
+ }
24
+ export function ToastContainer(toasts) {
25
+ return h('div.toast-container.position-fixed.bottom-0.end-0.p-3', toasts);
26
+ }
27
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/components/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAwB,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,IAAwB,EAAE,IAAmB,EAAE,MAAsB,EAAE,WAAoB,IAAI,EAAE,OAAoB;IACrJ,OAAO,CAAC,CAAC,WAAW,EAAE;QACpB,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QACnB,KAAK,EAAE;YACL,WAAW,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;YACtD,aAAa,EAAE,MAAM;YACrB,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SAChD;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAkB,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpD,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;SACF;KACF,EAAE;QACD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7C,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,OAAO,CAAC,CAAC,uDAAuD,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type VNode } from 'snabbdom';
2
+ export type Component = () => VNode;
3
+ declare class Flick {
4
+ private old_node;
5
+ private root;
6
+ mount(root?: Component, container_id?: string): void;
7
+ redraw(): void;
8
+ }
9
+ export declare const flick: Flick;
10
+ export {};
package/dist/flick.js ADDED
@@ -0,0 +1,21 @@
1
+ import { init, classModule, propsModule, styleModule, eventListenersModule, attributesModule } from 'snabbdom';
2
+ import { App } from './components/app';
3
+ const patch = init([classModule, propsModule, styleModule, eventListenersModule, attributesModule]);
4
+ class Flick {
5
+ constructor() {
6
+ this.old_node = null;
7
+ this.root = null;
8
+ }
9
+ mount(root = () => App(), container_id = 'app') {
10
+ this.old_node = document.getElementById(container_id);
11
+ if (!this.old_node)
12
+ throw new Error(`Container with id "${container_id}" not found.`);
13
+ this.root = root;
14
+ this.redraw();
15
+ }
16
+ redraw() {
17
+ this.old_node = patch(this.old_node, this.root());
18
+ }
19
+ }
20
+ export const flick = new Flick();
21
+ //# sourceMappingURL=flick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flick.js","sourceRoot":"","sources":["../src/flick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAC;AAC3H,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAIpG,MAAM,KAAK;IAAX;QACY,aAAQ,GAA2B,IAAI,CAAC;QACxC,SAAI,GAAqB,IAAI,CAAC;IAa1C,CAAC;IAXU,KAAK,CAAC,OAAkB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,eAAuB,KAAK;QACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,QAAQ;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,YAAY,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAEM,MAAM;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,CAAC,IAAK,EAAE,CAAC,CAAC;IACxD,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,9 @@
1
1
  import 'bootstrap/dist/css/bootstrap.min.css';
2
2
  import 'bootstrap/dist/js/bootstrap.bundle.min.js';
3
- export * from './app';
4
- export * from './component';
3
+ export * from './flick';
5
4
  export * from './components/app';
6
5
  export * from './components/button';
7
- export * from './components/checkbox';
8
6
  export * from './components/list';
9
- export * from './components/sidebar';
10
7
  export * from './components/offcanvas';
11
- export * from './utils/settings';
12
- export * from './utils/connection';
13
- export * from './utils/user_components';
14
- export * from './utils/selector';
15
- export * from './utils/blink';
8
+ export * from './components/table';
9
+ export * from './components/toast';
package/dist/index.js CHANGED
@@ -1,16 +1,10 @@
1
1
  import 'bootstrap/dist/css/bootstrap.min.css';
2
2
  import 'bootstrap/dist/js/bootstrap.bundle.min.js';
3
- export * from './app';
4
- export * from './component';
3
+ export * from './flick';
5
4
  export * from './components/app';
6
5
  export * from './components/button';
7
- export * from './components/checkbox';
8
6
  export * from './components/list';
9
- export * from './components/sidebar';
10
7
  export * from './components/offcanvas';
11
- export * from './utils/settings';
12
- export * from './utils/connection';
13
- export * from './utils/user_components';
14
- export * from './utils/selector';
15
- export * from './utils/blink';
8
+ export * from './components/table';
9
+ export * from './components/toast';
16
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAC9C,OAAO,2CAA2C,CAAC;AAEnD,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAE5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAC9C,OAAO,2CAA2C,CAAC;AAEnD,cAAc,SAAS,CAAC;AAExB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/component.ts","../src/app.ts","../node_modules/@types/bootstrap/js/dist/base-component.d.ts","../node_modules/@types/bootstrap/js/dist/alert.d.ts","../node_modules/@types/bootstrap/js/dist/button.d.ts","../node_modules/@types/bootstrap/js/dist/carousel.d.ts","../node_modules/@types/bootstrap/js/dist/collapse.d.ts","../node_modules/@popperjs/core/lib/enums.d.ts","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.d.ts","../node_modules/@popperjs/core/lib/modifiers/flip.d.ts","../node_modules/@popperjs/core/lib/modifiers/hide.d.ts","../node_modules/@popperjs/core/lib/modifiers/offset.d.ts","../node_modules/@popperjs/core/lib/modifiers/eventListeners.d.ts","../node_modules/@popperjs/core/lib/modifiers/computeStyles.d.ts","../node_modules/@popperjs/core/lib/modifiers/arrow.d.ts","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.d.ts","../node_modules/@popperjs/core/lib/modifiers/applyStyles.d.ts","../node_modules/@popperjs/core/lib/types.d.ts","../node_modules/@popperjs/core/lib/modifiers/index.d.ts","../node_modules/@popperjs/core/lib/utils/detectOverflow.d.ts","../node_modules/@popperjs/core/lib/createPopper.d.ts","../node_modules/@popperjs/core/lib/popper-lite.d.ts","../node_modules/@popperjs/core/lib/popper.d.ts","../node_modules/@popperjs/core/lib/index.d.ts","../node_modules/@popperjs/core/index.d.ts","../node_modules/@types/bootstrap/js/dist/tooltip.d.ts","../node_modules/@types/bootstrap/js/dist/dropdown.d.ts","../node_modules/@types/bootstrap/js/dist/modal.d.ts","../node_modules/@types/bootstrap/js/dist/offcanvas.d.ts","../node_modules/@types/bootstrap/js/dist/popover.d.ts","../node_modules/@types/bootstrap/js/dist/scrollspy.d.ts","../node_modules/@types/bootstrap/js/dist/tab.d.ts","../node_modules/@types/bootstrap/js/dist/toast.d.ts","../node_modules/@types/bootstrap/index.d.ts","../src/utils/settings.ts","../src/utils/connection.ts","../src/components/app.ts","../src/components/button.ts","../src/components/checkbox.ts","../src/utils/selector.ts","../src/components/list.ts","../src/components/sidebar.ts","../src/components/offcanvas.ts","../src/utils/user_components.ts","../src/utils/blink.ts","../src/index.ts"],"fileIdsList":[[103],[97,99],[87,97,98,100,101,102],[97],[87,97],[88,89,90,91,92,93,94,95,96],[88,92,93,96,97,100],[88,89,90,91,92,93,94,95,96,97,98,100,101],[87,88,89,90,91,92,93,94,95,96],[83,84,85,86,105,106,107,108,109,110,111,112],[82],[82,104,105],[82,105],[82,104],[80],[80,81,113,115],[80,119],[80,81,114,115,116,117,118,119,120,121,122,123,124],[114],[80,81,113,115,117]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"97bef17b70996540484551518bbed9051dea185d3616d5c0d6010965175b0f5f","signature":"8c896e4202462304e5809fbdc68ef0494db3651550b24267e457b1835cf6f6c2"},{"version":"3bb8d2b3c42ddb7cfa887dc6fdf18c128075db28df79081d209c595f07891cc4","signature":"977bf8334d88ef8eb751cd2bab8895632841d2278bd02fdbc69b0955b94762b2"},{"version":"ce056ab24e2cd659c329b3db32bc2b9c49cb46885c713fc51a3ccf0530c0b263","impliedFormat":1},{"version":"e6f937d272c711656955e21e30f96d7d346c9c95f6835af61bcfc1289c21e207","impliedFormat":1},{"version":"2aa12d94c33ab2a76445b8e86f30ac5ef3036f4f6a54a039a15a61996ef05652","impliedFormat":1},{"version":"0c4e1e59c66f5d36dee15b22180dfc14771a7340f5e89b81f7826846d429a732","impliedFormat":1},{"version":"fc6cc569887efa22df1fe491a6ddaf9a1f389e02ea3c6e32ec420795d5b56ac5","impliedFormat":1},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"5b6b7e4f40994d55bb979fd544329a3d83464cce9e324c59f55dddb3868a9514","impliedFormat":1},{"version":"78d217f663fab7783f37a3c1aa2038eea13b5aae6def5a5ebc19f122f154fac4","impliedFormat":1},{"version":"b9296e3c5de713bbfcf87201017c93dce7d1e2dae442656da79361d9314e1da6","impliedFormat":1},{"version":"c84b98e1720fd189cb4f5e3a9aaad4140de5094facf80094ea0abb37c5a5fea1","impliedFormat":1},{"version":"5f77d8d9556472561ff5cb276df359f3fff8e8471a773d353acda6f9aa3d3406","impliedFormat":1},{"version":"51b68f12056e75383fa59b8b2e3c4a338f311a89b01da4effe7ab72e581e8720","impliedFormat":1},{"version":"27de6f00dd8d82e82d04b862744cb95929065c5e5df9aaa658de582f1c5c76dc","impliedFormat":1},{"version":"2c228f052f7801628e65c40e5c4a6f4f702461fe477085e24f7db422776d9655","impliedFormat":1},{"version":"c27c10cacba7bf7d64d223aee16402ca8bc3273000e6b281dcf2e3877a235590","affectsGlobalScope":true,"impliedFormat":1},{"version":"8c9413772b083f7ed51daa2d5b643626e592a0d147fd71db61e5885dc4891486","signature":"1dc507267156e6c5eda4a1a8064853d0ed6ecd926073900b96ed11f4bbd8b1fb"},{"version":"78b333391d841ca42558590a7699fc77b3801677ae99c9ee5ff46ebce4ef29ed","signature":"643f4875250cc5396bfa2592509f4f373b32902798b36867cd2508ec243c103b"},{"version":"afbe73ea4a8c7f3621d1596442a48b4fce23dd69c556871d16c19b987f106fcf","signature":"6667de9f13e3bc244c9dc5a1726b2c5b2e307e45a4609c9101f3394826f70e16"},{"version":"e5dd178323e393fedf149b9ba1986d2c7ddc53716a7d175048c13a5f1f59c84a","signature":"9d979e68ed2f894005deeaff402f4b5945567285ac52f28573f1dfd3ff2664a2"},{"version":"f6c1bad2b45eea442d3da8eb9cf2ef53dfdbb521aca51cd61ccb7e85cc7a0416","signature":"5396df26efac9326435c646457859c3bd35195d7f2b707200d00c5ecf41c623d"},{"version":"8c75f7c24ecb091282940be3a8bb4f69e26daa0582181babe92ff73d00764904","signature":"029dada1eb36e821262b7c4f4d0f423255e76ffddd6cbe548f27925b910cfb85"},{"version":"51d50c5a413eadd9d8fa7d18b79cec7905a87a80f366e00b9b3f2d0b6bfba61c","signature":"f68ca081e9bf40c4ba66ece0d57fd1886cb14cf8de6c03b679bfe59d577bda44"},{"version":"cb173f774a971810a046136330d7af7714d27675476cf223ac5fd086308d799f","signature":"19e35fc85de845d17e178cf44ead8d14d4fcb27548113305d232a8055ad1c1f2"},{"version":"a4708bc1d1926e2276e3dc8de3dedf974cf839de9307ed25665567c304d4fd86","signature":"046ba1f9829bb265a1fb1d952dda409593fb8f02efe97caecb718bc441ed6228"},{"version":"45a2fd3cde00788e16caf0510573702f420b5715cf1ef21b57bed4178bde0262","signature":"13f15870523f7c7b0792d44c4ce28b482f5882598f5a9866e28cabba2f9f2a00"},{"version":"f42a0a0447d588a4a684c8e72ca3ce2f0e35b9b11eb4ec58b209dbd1cb1ba438","signature":"f0595d80c8e00b0f0456f3ea81fda89e3695098ac2a1907db62a35baf0d9095c"},{"version":"2401508ed0f228c9ea082f7f4dd8a16581cc450b1d8b29cf83b0b070856d6c78","signature":"5f50dc11c4c21b592c151ac2253f0c641965136fe4e29c46014a67d7fabd9cda"}],"root":[80,81,[114,125]],"options":{"declaration":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"strict":true,"target":2},"referencedMap":[[104,1],[100,2],[103,3],[96,4],[94,5],[93,5],[92,4],[89,5],[90,4],[98,6],[91,5],[88,4],[95,5],[101,7],[102,8],[97,9],[99,5],[113,10],[83,11],[84,11],[85,11],[86,11],[106,12],[107,11],[108,11],[109,13],[110,11],[111,11],[112,11],[105,14],[81,15],[116,16],[117,15],[118,15],[120,17],[122,17],[121,17],[125,18],[115,19],[123,20]],"version":"5.8.3"}
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/snabbdom/build/htmldomapi.d.ts","../node_modules/snabbdom/build/helpers/attachto.d.ts","../node_modules/snabbdom/build/modules/style.d.ts","../node_modules/snabbdom/build/modules/eventlisteners.d.ts","../node_modules/snabbdom/build/modules/attributes.d.ts","../node_modules/snabbdom/build/modules/class.d.ts","../node_modules/snabbdom/build/modules/props.d.ts","../node_modules/snabbdom/build/modules/dataset.d.ts","../node_modules/snabbdom/build/vnode.d.ts","../node_modules/snabbdom/build/hooks.d.ts","../node_modules/snabbdom/build/modules/module.d.ts","../node_modules/snabbdom/build/init.d.ts","../node_modules/snabbdom/build/thunk.d.ts","../node_modules/snabbdom/build/is.d.ts","../node_modules/snabbdom/build/tovnode.d.ts","../node_modules/snabbdom/build/h.d.ts","../node_modules/snabbdom/build/jsx.d.ts","../node_modules/snabbdom/build/index.d.ts","../node_modules/@types/bootstrap/js/dist/base-component.d.ts","../node_modules/@types/bootstrap/js/dist/alert.d.ts","../node_modules/@types/bootstrap/js/dist/button.d.ts","../node_modules/@types/bootstrap/js/dist/carousel.d.ts","../node_modules/@types/bootstrap/js/dist/collapse.d.ts","../node_modules/@popperjs/core/lib/enums.d.ts","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.d.ts","../node_modules/@popperjs/core/lib/modifiers/flip.d.ts","../node_modules/@popperjs/core/lib/modifiers/hide.d.ts","../node_modules/@popperjs/core/lib/modifiers/offset.d.ts","../node_modules/@popperjs/core/lib/modifiers/eventListeners.d.ts","../node_modules/@popperjs/core/lib/modifiers/computeStyles.d.ts","../node_modules/@popperjs/core/lib/modifiers/arrow.d.ts","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.d.ts","../node_modules/@popperjs/core/lib/modifiers/applyStyles.d.ts","../node_modules/@popperjs/core/lib/types.d.ts","../node_modules/@popperjs/core/lib/modifiers/index.d.ts","../node_modules/@popperjs/core/lib/utils/detectOverflow.d.ts","../node_modules/@popperjs/core/lib/createPopper.d.ts","../node_modules/@popperjs/core/lib/popper-lite.d.ts","../node_modules/@popperjs/core/lib/popper.d.ts","../node_modules/@popperjs/core/lib/index.d.ts","../node_modules/@popperjs/core/index.d.ts","../node_modules/@types/bootstrap/js/dist/tooltip.d.ts","../node_modules/@types/bootstrap/js/dist/dropdown.d.ts","../node_modules/@types/bootstrap/js/dist/modal.d.ts","../node_modules/@types/bootstrap/js/dist/offcanvas.d.ts","../node_modules/@types/bootstrap/js/dist/popover.d.ts","../node_modules/@types/bootstrap/js/dist/scrollspy.d.ts","../node_modules/@types/bootstrap/js/dist/tab.d.ts","../node_modules/@types/bootstrap/js/dist/toast.d.ts","../node_modules/@types/bootstrap/index.d.ts","../src/components/app.ts","../src/flick.ts","../src/components/button.ts","../src/components/list.ts","../src/components/offcanvas.ts","../src/components/table.ts","../src/components/toast.ts","../src/index.ts","../node_modules/@types/estree/index.d.ts"],"fileIdsList":[[119],[113,115],[103,113,114,116,117,118],[113],[103,113],[104,105,106,107,108,109,110,111,112],[104,108,109,112,113,116],[104,105,106,107,108,109,110,111,112,113,114,116,117],[103,104,105,106,107,108,109,110,111,112],[99,100,101,102,121,122,123,124,125,126,127,128],[98],[98,120,121],[98,121],[98,120],[88],[80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],[80,88,90],[86,88,95],[90],[88,90],[89],[80,88],[81,82,83,84,85,86,87,89],[97,129],[97],[97,130],[130,131,132,133,134,135,136]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"095a402135de9fbfda29ba7c984bf54b9e65757396b4165706d898e9baa83ed5","impliedFormat":99},{"version":"0b6471168629b8a0cbac9f8f67bbbba83a1d64cf1424cd7d299439b3af88129a","impliedFormat":99},{"version":"3e0fa3b04086663fd406499ea37f0714b0d7cbc296eb81e244f2bf0ba4938bb2","impliedFormat":99},{"version":"3d11abe325e68a5b76d9f53ecc0b4ea29685ccbd8690b279f2177e0750d87f8c","impliedFormat":99},{"version":"f1952d24cb1344241341230924197977764249edcde80605e96454f073ebb35a","impliedFormat":99},{"version":"3b5b37b56d81802168c5b8df2f1d4a7ee018d67e7463f221d49b6ea20af00060","impliedFormat":99},{"version":"f3a6db8faeb959400a4d0e1100b9d5c54eb494800e6dc9a2452bb2e00a27397c","impliedFormat":99},{"version":"d278699a1c7e06a195ecc065c4965d1bbfb5bc2d67176e63bebf58b273158023","impliedFormat":99},{"version":"261ffd2f7502d9387324715c7dcb9f3a30c8d044b6dc3abc7ff80737c366476c","impliedFormat":99},{"version":"28729ff7b2ea98a9ba6ca4490c5540be744a4d73b4199ff6094cb65c9db33607","impliedFormat":99},{"version":"6ac889647435812fb7ced7035daf90c1f307710056e4b496a3fd5cb97c87daed","impliedFormat":99},{"version":"29f60d17027d6bc8891797f6ed95ac84ee42313e6b03ddb49beff6f22f49f8c6","impliedFormat":99},{"version":"f71579228be8825267577e970c8f0ee2869cebae0bb7603b00644fec924c6717","impliedFormat":99},{"version":"e50f096cb424b63343ad5814622623f15cf3830f41710376bebb3c7f71554713","impliedFormat":99},{"version":"69ebae4354b59ff1ba38419d6033e22d0db6ffe6c1d562e78914f88f06ec517f","impliedFormat":99},{"version":"45f0aee62dc187cbde99b10987e1f8649a30bba8bf9c95957e37d1551d0626da","impliedFormat":99},{"version":"919b048385b82efca27e5adec2f61f17a2b219582f2deb8a13b4648c7c8fafbf","impliedFormat":99},{"version":"47747eabb3c64620a12f707bf30c7f7a211e25754a2da1f98267068f49bd0947","impliedFormat":99},{"version":"ce056ab24e2cd659c329b3db32bc2b9c49cb46885c713fc51a3ccf0530c0b263","impliedFormat":1},{"version":"e6f937d272c711656955e21e30f96d7d346c9c95f6835af61bcfc1289c21e207","impliedFormat":1},{"version":"2aa12d94c33ab2a76445b8e86f30ac5ef3036f4f6a54a039a15a61996ef05652","impliedFormat":1},{"version":"0c4e1e59c66f5d36dee15b22180dfc14771a7340f5e89b81f7826846d429a732","impliedFormat":1},{"version":"fc6cc569887efa22df1fe491a6ddaf9a1f389e02ea3c6e32ec420795d5b56ac5","impliedFormat":1},{"version":"70a29119482d358ab4f28d28ee2dcd05d6cbf8e678068855d016e10a9256ec12","impliedFormat":1},{"version":"869ac759ae8f304536d609082732cb025a08dcc38237fe619caf3fcdd41dde6f","impliedFormat":1},{"version":"0ea900fe6565f9133e06bce92e3e9a4b5a69234e83d40b7df2e1752b8d2b5002","impliedFormat":1},{"version":"e5408f95ca9ac5997c0fea772d68b1bf390e16c2a8cad62858553409f2b12412","impliedFormat":1},{"version":"3c1332a48695617fc5c8a1aead8f09758c2e73018bd139882283fb5a5b8536a6","impliedFormat":1},{"version":"9260b03453970e98ce9b1ad851275acd9c7d213c26c7d86bae096e8e9db4e62b","impliedFormat":1},{"version":"083838d2f5fea0c28f02ce67087101f43bd6e8697c51fd48029261653095080c","impliedFormat":1},{"version":"969132719f0f5822e669f6da7bd58ea0eb47f7899c1db854f8f06379f753b365","impliedFormat":1},{"version":"94ca5d43ff6f9dc8b1812b0770b761392e6eac1948d99d2da443dc63c32b2ec1","impliedFormat":1},{"version":"2cbc88cf54c50e74ee5642c12217e6fd5415e1b35232d5666d53418bae210b3b","impliedFormat":1},{"version":"ccb226557417c606f8b1bba85d178f4bcea3f8ae67b0e86292709a634a1d389d","impliedFormat":1},{"version":"5ea98f44cc9de1fe05d037afe4813f3dcd3a8c5de43bdd7db24624a364fad8e6","impliedFormat":1},{"version":"5260a62a7d326565c7b42293ed427e4186b9d43d6f160f50e134a18385970d02","impliedFormat":1},{"version":"0b3fc2d2d41ad187962c43cb38117d0aee0d3d515c8a6750aaea467da76b42aa","impliedFormat":1},{"version":"ed219f328224100dad91505388453a8c24a97367d1bc13dcec82c72ab13012b7","impliedFormat":1},{"version":"6847b17c96eb44634daa112849db0c9ade344fe23e6ced190b7eeb862beca9f4","impliedFormat":1},{"version":"d479a5128f27f63b58d57a61e062bd68fa43b684271449a73a4d3e3666a599a7","impliedFormat":1},{"version":"6f308b141358ac799edc3e83e887441852205dc1348310d30b62c69438b93ca0","impliedFormat":1},{"version":"5b6b7e4f40994d55bb979fd544329a3d83464cce9e324c59f55dddb3868a9514","impliedFormat":1},{"version":"78d217f663fab7783f37a3c1aa2038eea13b5aae6def5a5ebc19f122f154fac4","impliedFormat":1},{"version":"b9296e3c5de713bbfcf87201017c93dce7d1e2dae442656da79361d9314e1da6","impliedFormat":1},{"version":"c84b98e1720fd189cb4f5e3a9aaad4140de5094facf80094ea0abb37c5a5fea1","impliedFormat":1},{"version":"5f77d8d9556472561ff5cb276df359f3fff8e8471a773d353acda6f9aa3d3406","impliedFormat":1},{"version":"51b68f12056e75383fa59b8b2e3c4a338f311a89b01da4effe7ab72e581e8720","impliedFormat":1},{"version":"27de6f00dd8d82e82d04b862744cb95929065c5e5df9aaa658de582f1c5c76dc","impliedFormat":1},{"version":"2c228f052f7801628e65c40e5c4a6f4f702461fe477085e24f7db422776d9655","impliedFormat":1},{"version":"c27c10cacba7bf7d64d223aee16402ca8bc3273000e6b281dcf2e3877a235590","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f37aa3c3c0f0394d229a7693d03fb7777ad9d3fb9153fbd41024670dc784682","signature":"22bc7c922dd01a1e382c4650b8e7b65da237daa3288d71a70a162a9fcec79f90"},{"version":"a67a172c88e0b76774aadf9c33a963adf674c7475837ffa4fa9947d6f8e653eb","signature":"5719bde101e1285c3dd272b7ae5730fb43340e75fb98622cdb45418f8a8d3512"},{"version":"6f47c65561cfc9a6de36b496357be59641193c7877bdc9d83cc066390b517f08","signature":"2d0a616fce82542d76f976cafa2a15653fb2b94cd8bbaf861b0ba101918ce0e1"},{"version":"f65a000b9423427abaee9dd3d42b8d147a60d09bf835130f5fa9add648189ada","signature":"89d2361ab4ac64c14ec5025e511fb85ff26d71dec6b8e405152328e983d7a28a"},{"version":"ac89782f5a9af10374e1ca6d0e849b12f7e177bb4e8ae852482e2149294f8b3a","signature":"ed7612236e968a5e95749675c92ef6dd938fdfb1692001b6fa541c2d0e3aa22a"},{"version":"6213fd77c40222f0298705f0c3503b50defdbce585bc053324d72d5f7403eee8","signature":"b1589a10eb3a260feadbb9d2e1460b8d120c5dc721e2ebbc57afc2395fcd8636"},{"version":"fa5a76c3919ec2dddff4015245088bd977e0429744a25a664c219a48c85f8ebc","signature":"ee057cc801d02e8c9fbbc3ede10d3ae5a8ccc84fcb997df71eb4e45a2d36d79c"},{"version":"c4f8cc133472c31734b82aceddba8a05dbb0bdd4f1a11dc6d84257f5fb43f2fb","signature":"abc9b19a2e3af95ec22ef739a59c7337fee51b53faf07b2baf786980e927431c"},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[[130,137]],"options":{"declaration":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"strict":true,"target":2},"referencedMap":[[120,1],[116,2],[119,3],[112,4],[110,5],[109,5],[108,4],[105,5],[106,4],[114,6],[107,5],[104,4],[111,5],[117,7],[118,8],[113,9],[115,5],[129,10],[99,11],[100,11],[101,11],[102,11],[122,12],[123,11],[124,11],[125,13],[126,11],[127,11],[128,11],[121,14],[95,15],[81,15],[89,15],[97,16],[91,17],[96,18],[84,19],[85,19],[87,19],[83,20],[90,21],[86,19],[82,19],[92,15],[94,22],[88,23],[130,24],[132,25],[133,25],[134,24],[135,25],[136,24],[131,26],[137,27]],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ratiosolver/flick",
3
- "version": "0.1.13",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "description": "A tiny and focused UI framework designed for clarity and speed",
6
6
  "main": "dist/index.js",
@@ -26,14 +26,18 @@
26
26
  "/dist"
27
27
  ],
28
28
  "scripts": {
29
- "build": "tsc"
29
+ "build": "tsc",
30
+ "dev": "vite playground"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@types/bootstrap": "^5.2.10",
33
- "typescript": "^5.8.3"
34
+ "jsdom": "^27.4.0",
35
+ "typescript": "^5.8.3",
36
+ "vite": "^7.3.1"
34
37
  },
35
38
  "peerDependencies": {
36
- "bootstrap": "^5.3.8"
39
+ "bootstrap": "^5.3.8",
40
+ "snabbdom": "^3.6.3"
37
41
  },
38
42
  "publishConfig": {
39
43
  "access": "public"