juxscript 1.1.393 → 1.1.395

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.
Files changed (122) hide show
  1. package/bin/cli.js +9 -9
  2. package/dist/components/barChart.d.ts +103 -0
  3. package/dist/components/barChart.d.ts.map +1 -0
  4. package/dist/components/barChart.js +520 -0
  5. package/dist/components/barChart.js.map +1 -0
  6. package/dist/components/c.d.ts.map +1 -1
  7. package/dist/components/c.js +16 -12
  8. package/dist/components/c.js.map +1 -1
  9. package/dist/components/g.d.ts +21 -0
  10. package/dist/components/g.d.ts.map +1 -0
  11. package/dist/components/g.js +52 -0
  12. package/dist/components/g.js.map +1 -0
  13. package/dist/components/gateway.d.ts +97 -0
  14. package/dist/components/gateway.d.ts.map +1 -0
  15. package/dist/components/gateway.js +188 -0
  16. package/dist/components/gateway.js.map +1 -0
  17. package/dist/components/lineChart.d.ts +87 -0
  18. package/dist/components/lineChart.d.ts.map +1 -0
  19. package/dist/components/lineChart.js +330 -0
  20. package/dist/components/lineChart.js.map +1 -0
  21. package/dist/components/pieChart.d.ts +86 -0
  22. package/dist/components/pieChart.d.ts.map +1 -0
  23. package/dist/components/pieChart.js +300 -0
  24. package/dist/components/pieChart.js.map +1 -0
  25. package/dist/index.d.ts +15 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +16 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/primitives/button.d.ts +53 -0
  30. package/dist/primitives/button.d.ts.map +1 -0
  31. package/dist/primitives/button.js +170 -0
  32. package/dist/primitives/button.js.map +1 -0
  33. package/dist/primitives/c.d.ts +53 -0
  34. package/dist/primitives/c.d.ts.map +1 -0
  35. package/dist/primitives/c.js +127 -0
  36. package/dist/primitives/c.js.map +1 -0
  37. package/dist/primitives/checkbox.d.ts +92 -0
  38. package/dist/primitives/checkbox.d.ts.map +1 -0
  39. package/dist/primitives/checkbox.js +217 -0
  40. package/dist/primitives/checkbox.js.map +1 -0
  41. package/dist/primitives/data.d.ts +58 -0
  42. package/dist/primitives/data.d.ts.map +1 -0
  43. package/dist/primitives/data.js +131 -0
  44. package/dist/primitives/data.js.map +1 -0
  45. package/dist/primitives/grid.d.ts +58 -0
  46. package/dist/primitives/grid.d.ts.map +1 -0
  47. package/dist/primitives/grid.js +128 -0
  48. package/dist/primitives/grid.js.map +1 -0
  49. package/dist/primitives/include.d.ts +86 -0
  50. package/dist/primitives/include.d.ts.map +1 -0
  51. package/dist/primitives/include.js +239 -0
  52. package/dist/primitives/include.js.map +1 -0
  53. package/dist/primitives/indexDb.d.ts +80 -0
  54. package/dist/primitives/indexDb.d.ts.map +1 -0
  55. package/dist/primitives/indexDb.js +253 -0
  56. package/dist/primitives/indexDb.js.map +1 -0
  57. package/dist/primitives/input.d.ts +88 -0
  58. package/dist/primitives/input.d.ts.map +1 -0
  59. package/dist/primitives/input.js +216 -0
  60. package/dist/primitives/input.js.map +1 -0
  61. package/dist/primitives/link.d.ts +51 -0
  62. package/dist/primitives/link.d.ts.map +1 -0
  63. package/dist/primitives/link.js +178 -0
  64. package/dist/primitives/link.js.map +1 -0
  65. package/dist/primitives/list.d.ts +66 -0
  66. package/dist/primitives/list.d.ts.map +1 -0
  67. package/dist/primitives/list.js +233 -0
  68. package/dist/primitives/list.js.map +1 -0
  69. package/dist/primitives/nav.d.ts +64 -0
  70. package/dist/primitives/nav.d.ts.map +1 -0
  71. package/dist/primitives/nav.js +236 -0
  72. package/dist/primitives/nav.js.map +1 -0
  73. package/dist/primitives/radio.d.ts +58 -0
  74. package/dist/primitives/radio.d.ts.map +1 -0
  75. package/dist/primitives/radio.js +135 -0
  76. package/dist/primitives/radio.js.map +1 -0
  77. package/dist/primitives/routes.d.ts +15 -0
  78. package/dist/primitives/routes.d.ts.map +1 -0
  79. package/dist/primitives/routes.js +34 -0
  80. package/dist/primitives/routes.js.map +1 -0
  81. package/dist/primitives/select.d.ts +67 -0
  82. package/dist/primitives/select.d.ts.map +1 -0
  83. package/dist/primitives/select.js +160 -0
  84. package/dist/primitives/select.js.map +1 -0
  85. package/dist/primitives/style.d.ts +27 -0
  86. package/dist/primitives/style.d.ts.map +1 -0
  87. package/dist/primitives/style.js +53 -0
  88. package/dist/primitives/style.js.map +1 -0
  89. package/dist/primitives/table.d.ts +83 -0
  90. package/dist/primitives/table.d.ts.map +1 -0
  91. package/dist/primitives/table.js +264 -0
  92. package/dist/primitives/table.js.map +1 -0
  93. package/dist/primitives/tabs.d.ts +75 -0
  94. package/dist/primitives/tabs.d.ts.map +1 -0
  95. package/dist/primitives/tabs.js +263 -0
  96. package/dist/primitives/tabs.js.map +1 -0
  97. package/dist/primitives/tag.d.ts +92 -0
  98. package/dist/primitives/tag.d.ts.map +1 -0
  99. package/dist/primitives/tag.js +151 -0
  100. package/dist/primitives/tag.js.map +1 -0
  101. package/dist/services/db.d.ts +44 -0
  102. package/dist/services/db.d.ts.map +1 -0
  103. package/dist/services/db.js +59 -0
  104. package/dist/services/db.js.map +1 -0
  105. package/dist/services/email.d.ts +50 -0
  106. package/dist/services/email.d.ts.map +1 -0
  107. package/dist/services/email.js +60 -0
  108. package/dist/services/email.js.map +1 -0
  109. package/dist/services/s3.d.ts +61 -0
  110. package/dist/services/s3.d.ts.map +1 -0
  111. package/dist/services/s3.js +79 -0
  112. package/dist/services/s3.js.map +1 -0
  113. package/juxconfig.example.js +7 -0
  114. package/machinery/build3.js +2 -1
  115. package/machinery/compiler4.js +2 -0
  116. package/machinery/serve.js +6 -26
  117. package/machinery/validate-jux.js +4 -0
  118. package/package.json +2 -2
  119. /package/{presets → components}/calendar/calendar-usage.jux +0 -0
  120. /package/{presets → components}/calendar/calendar.jux +0 -0
  121. /package/{presets → components}/sidebar/index.jux +0 -0
  122. /package/{presets → components}/sidebar/usage.jux +0 -0
@@ -0,0 +1,170 @@
1
+ import generateId from '../utils/idgen.js';
2
+ import niceName from '../utils/niceName.js';
3
+ import { pageState } from '../state/pageState.js';
4
+ class Button {
5
+ constructor(id, options = {}) {
6
+ this._onChange = null;
7
+ this.id = id || generateId();
8
+ this.opts = {
9
+ variant: 'default',
10
+ size: 'default',
11
+ type: 'button',
12
+ disabled: false,
13
+ ...options
14
+ };
15
+ // Auto-generate content from ID if not provided
16
+ if (!this.opts.content && this.id) {
17
+ this.opts.content = niceName(this.id);
18
+ }
19
+ this._element = document.createElement('button');
20
+ this._element.id = this.id;
21
+ this._element.type = this.opts.type;
22
+ if (this.opts.disabled)
23
+ this._element.disabled = true;
24
+ // Build class list
25
+ const classes = ['jux-button'];
26
+ if (this.opts.variant)
27
+ classes.push(`jux-button--${this.opts.variant}`);
28
+ if (this.opts.size && this.opts.size !== 'default')
29
+ classes.push(`jux-button--${this.opts.size}`);
30
+ if (this.opts.class)
31
+ classes.push(this.opts.class);
32
+ this._element.className = classes.join(' ');
33
+ if (this.opts.style)
34
+ this._element.setAttribute('style', this.opts.style);
35
+ // Content
36
+ if (this.opts.icon) {
37
+ const iconSpan = document.createElement('span');
38
+ iconSpan.className = 'jux-button-icon';
39
+ iconSpan.textContent = this.opts.icon;
40
+ this._element.appendChild(iconSpan);
41
+ }
42
+ if (this.opts.content) {
43
+ const textSpan = document.createElement('span');
44
+ textSpan.className = 'jux-button-text';
45
+ textSpan.textContent = this.opts.content;
46
+ this._element.appendChild(textSpan);
47
+ }
48
+ // Extra attributes
49
+ for (const [key, value] of Object.entries(this.opts)) {
50
+ if (['content', 'class', 'style', 'target', 'variant', 'size', 'type', 'disabled', 'icon', 'onClick'].includes(key))
51
+ continue;
52
+ this._element.setAttribute(`data-${key}`, String(value));
53
+ }
54
+ // Click handler
55
+ if (this.opts.onClick) {
56
+ this._element.addEventListener('click', this.opts.onClick);
57
+ }
58
+ const resolvedTarget = this.opts.target;
59
+ const container = resolvedTarget
60
+ ? document.getElementById(resolvedTarget) || document.querySelector(resolvedTarget)
61
+ : document.getElementById('app');
62
+ container?.appendChild(this._element);
63
+ }
64
+ // ═══════════════════════════════════════════════════════════
65
+ // FLUENT BUILDER API
66
+ // ═══════════════════════════════════════════════════════════
67
+ content(value) {
68
+ this.opts.content = value;
69
+ const textEl = this._element.querySelector('.jux-button-text');
70
+ if (textEl) {
71
+ textEl.textContent = value;
72
+ }
73
+ else {
74
+ const textSpan = document.createElement('span');
75
+ textSpan.className = 'jux-button-text';
76
+ textSpan.textContent = value;
77
+ this._element.appendChild(textSpan);
78
+ }
79
+ return this;
80
+ }
81
+ variant(value) {
82
+ if (this.opts.variant)
83
+ this._element.classList.remove(`jux-button--${this.opts.variant}`);
84
+ this.opts.variant = value;
85
+ this._element.classList.add(`jux-button--${value}`);
86
+ return this;
87
+ }
88
+ size(value) {
89
+ if (this.opts.size && this.opts.size !== 'default')
90
+ this._element.classList.remove(`jux-button--${this.opts.size}`);
91
+ this.opts.size = value;
92
+ if (value !== 'default')
93
+ this._element.classList.add(`jux-button--${value}`);
94
+ return this;
95
+ }
96
+ disabled(value = true) {
97
+ this.opts.disabled = value;
98
+ this._element.disabled = value;
99
+ return this;
100
+ }
101
+ icon(value) {
102
+ this.opts.icon = value;
103
+ let iconEl = this._element.querySelector('.jux-button-icon');
104
+ if (iconEl) {
105
+ iconEl.textContent = value;
106
+ }
107
+ else {
108
+ const iconSpan = document.createElement('span');
109
+ iconSpan.className = 'jux-button-icon';
110
+ iconSpan.textContent = value;
111
+ this._element.prepend(iconSpan);
112
+ }
113
+ return this;
114
+ }
115
+ style(value) {
116
+ this.opts.style = value;
117
+ this._element.setAttribute('style', value);
118
+ return this;
119
+ }
120
+ class(value) {
121
+ this.opts.class = value;
122
+ this._element.className = value;
123
+ return this;
124
+ }
125
+ // ═══════════════════════════════════════════════════════════
126
+ // PAGESTATE INTEGRATION (delegates to fluent API)
127
+ // ═══════════════════════════════════════════════════════════
128
+ getValue() { return this.opts.content ?? ''; }
129
+ getContent() { return this.opts.content ?? ''; }
130
+ getVariant() { return this.opts.variant ?? 'default'; }
131
+ getSize() { return this.opts.size ?? 'default'; }
132
+ getIcon() { return this.opts.icon ?? ''; }
133
+ getDisabled() { return this.opts.disabled ?? false; }
134
+ getClass() { return this.opts.class ?? ''; }
135
+ getStyle() { return this.opts.style ?? ''; }
136
+ setValue(val) { return this.content(val); }
137
+ setContent(val) { return this.content(val); }
138
+ setVariant(val) { return this.variant(val); }
139
+ setSize(val) { return this.size(val); }
140
+ setIcon(val) { return this.icon(val); }
141
+ setDisabled(val) { return this.disabled(val); }
142
+ setClass(val) { return this.class(val); }
143
+ setStyle(val) { return this.style(val); }
144
+ getElement() { return this._element; }
145
+ onChange(fn) {
146
+ this._onChange = fn;
147
+ return this;
148
+ }
149
+ onClick(fn) {
150
+ this._element.addEventListener('click', fn);
151
+ return this;
152
+ }
153
+ /** Returns the reactive pageState proxy for this component */
154
+ get state() {
155
+ return pageState[this.id];
156
+ }
157
+ }
158
+ export function button(id, options = {}) {
159
+ const b = new Button(id, options);
160
+ pageState.__register(b);
161
+ return b;
162
+ }
163
+ export function btn(id, options = {}) {
164
+ const b = new Button(id, options);
165
+ pageState.__register(b);
166
+ return b;
167
+ }
168
+ export { Button };
169
+ export default button;
170
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../lib/primitives/button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ interface COptions {
2
+ id?: string;
3
+ class?: string;
4
+ style?: string;
5
+ target?: string;
6
+ [key: string]: any;
7
+ }
8
+ declare class C {
9
+ id: string;
10
+ opts: COptions;
11
+ private _element;
12
+ constructor(width: string, height?: string, padding?: string, radius?: string, margin?: string, border?: string, overflow?: string, options?: COptions);
13
+ get element(): HTMLElement;
14
+ getElement(): HTMLElement;
15
+ id_set(value: string): this;
16
+ class(value: string): this;
17
+ style(css: string): this;
18
+ padding(value: string): this;
19
+ radius(value: string): this;
20
+ margin(value: string): this;
21
+ border(value: string): this;
22
+ overflow(value: string): this;
23
+ width(value: string): this;
24
+ height(value: string): this;
25
+ target_set(value: string): this;
26
+ getId(): string;
27
+ getClass(): string;
28
+ getStyle(): string;
29
+ getPadding(): string;
30
+ getRadius(): string;
31
+ getMargin(): string;
32
+ getBorder(): string;
33
+ getOverflow(): string;
34
+ getTarget(): string;
35
+ getValue(): string;
36
+ setId(val: string): this;
37
+ setClass(val: string): this;
38
+ setStyle(val: string): this;
39
+ setPadding(val: string): this;
40
+ setRadius(val: string): this;
41
+ setMargin(val: string): this;
42
+ setBorder(val: string): this;
43
+ setOverflow(val: string): this;
44
+ setTarget(val: string): this;
45
+ setValue(val: string): this;
46
+ setInnerHTML(val: string): this;
47
+ append(child: C | HTMLElement): this;
48
+ render(target?: string | HTMLElement | C): this;
49
+ }
50
+ export declare function c(width: string, height?: string, padding?: string, radius?: string, margin?: string, border?: string, overflow?: string, options?: COptions): C;
51
+ export { C, COptions, c as container };
52
+ export default c;
53
+ //# sourceMappingURL=c.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../lib/primitives/c.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import generateId from "../utils/idgen.js";
2
+ function sanitizeCSSValue(value) {
3
+ // Fix calc('...') or calc("...") → calc(...)
4
+ return value.replace(/calc\(\s*['"]([^'"]*)['"]\s*\)/g, 'calc($1)');
5
+ }
6
+ class C {
7
+ constructor(width, height, padding, radius, margin, border, overflow, options = {}) {
8
+ this.id = options.id || generateId('c');
9
+ this.opts = { ...options };
10
+ this._element = document.createElement('div');
11
+ this._element.id = this.id;
12
+ this._element.style.boxSizing = 'border-box';
13
+ this._element.style.float = 'left';
14
+ if (width)
15
+ this._element.style.width = sanitizeCSSValue(width);
16
+ if (height)
17
+ this._element.style.height = sanitizeCSSValue(height);
18
+ if (padding)
19
+ this._element.style.padding = sanitizeCSSValue(padding);
20
+ if (radius)
21
+ this._element.style.borderRadius = sanitizeCSSValue(radius);
22
+ if (margin)
23
+ this._element.style.margin = sanitizeCSSValue(margin);
24
+ if (border)
25
+ this._element.style.border = sanitizeCSSValue(border);
26
+ if (overflow)
27
+ this._element.style.overflow = overflow;
28
+ if (this.opts.class)
29
+ this._element.className = this.opts.class;
30
+ if (this.opts.style)
31
+ this._element.setAttribute('style', this._element.getAttribute('style') + ';' + this.opts.style);
32
+ // Extra data-* attributes
33
+ const reserved = ['id', 'class', 'style', 'target'];
34
+ for (const [key, value] of Object.entries(this.opts)) {
35
+ if (reserved.includes(key))
36
+ continue;
37
+ this._element.setAttribute(`data-${key}`, String(value));
38
+ }
39
+ // Auto-mount
40
+ if (this.opts.target) {
41
+ this.render(this.opts.target);
42
+ }
43
+ else {
44
+ this.render();
45
+ }
46
+ }
47
+ // ═══════════════════════════════════════════════════════════
48
+ // ELEMENT ACCESS
49
+ // ═══════════════════════════════════════════════════════════
50
+ get element() { return this._element; }
51
+ getElement() { return this._element; }
52
+ // ═══════════════════════════════════════════════════════════
53
+ // FLUENT BUILDER API
54
+ // ═══════════════════════════════════════════════════════════
55
+ id_set(value) { this.id = value; this._element.id = value; return this; }
56
+ class(value) { this.opts.class = value; this._element.className = value; return this; }
57
+ style(css) {
58
+ this.opts.style = css;
59
+ const existing = this._element.getAttribute('style') || '';
60
+ this._element.setAttribute('style', existing + ';' + css);
61
+ return this;
62
+ }
63
+ padding(value) { this.opts.padding = value; this._element.style.padding = sanitizeCSSValue(value); return this; }
64
+ radius(value) { this.opts.radius = value; this._element.style.borderRadius = sanitizeCSSValue(value); return this; }
65
+ margin(value) { this.opts.margin = value; this._element.style.margin = sanitizeCSSValue(value); return this; }
66
+ border(value) { this.opts.border = value; this._element.style.border = sanitizeCSSValue(value); return this; }
67
+ overflow(value) { this.opts.overflow = value; this._element.style.overflow = value; return this; }
68
+ width(value) { this._element.style.width = sanitizeCSSValue(value); return this; }
69
+ height(value) { this._element.style.height = sanitizeCSSValue(value); return this; }
70
+ target_set(value) { this.opts.target = value; return this; }
71
+ // ═══════════════════════════════════════════════════════════
72
+ // GETTERS / SETTERS (delegators)
73
+ // ═══════════════════════════════════════════════════════════
74
+ getId() { return this.id; }
75
+ getClass() { return this.opts.class ?? ''; }
76
+ getStyle() { return this.opts.style ?? ''; }
77
+ getPadding() { return this.opts.padding ?? ''; }
78
+ getRadius() { return this.opts.radius ?? ''; }
79
+ getMargin() { return this.opts.margin ?? ''; }
80
+ getBorder() { return this.opts.border ?? ''; }
81
+ getOverflow() { return this.opts.overflow ?? ''; }
82
+ getTarget() { return this.opts.target ?? ''; }
83
+ getValue() { return this._element.textContent ?? ''; }
84
+ setId(val) { return this.id_set(val); }
85
+ setClass(val) { return this.class(val); }
86
+ setStyle(val) { return this.style(val); }
87
+ setPadding(val) { return this.padding(val); }
88
+ setRadius(val) { return this.radius(val); }
89
+ setMargin(val) { return this.margin(val); }
90
+ setBorder(val) { return this.border(val); }
91
+ setOverflow(val) { return this.overflow(val); }
92
+ setTarget(val) { return this.target_set(val); }
93
+ setValue(val) { this._element.textContent = val; return this; }
94
+ setInnerHTML(val) { this._element.innerHTML = val; return this; }
95
+ // ═══════════════════════════════════════════════════════════
96
+ // TREE / RENDER
97
+ // ═══════════════════════════════════════════════════════════
98
+ append(child) {
99
+ const node = child instanceof C ? child.element : child;
100
+ this._element.appendChild(node);
101
+ return this;
102
+ }
103
+ render(target) {
104
+ let parent;
105
+ if (target instanceof C) {
106
+ parent = target.element;
107
+ }
108
+ else if (typeof target === 'string') {
109
+ parent = document.getElementById(target) || document.querySelector(target);
110
+ }
111
+ else {
112
+ parent = target || document.getElementById('app');
113
+ }
114
+ parent?.appendChild(this._element);
115
+ return this;
116
+ }
117
+ }
118
+ // ═══════════════════════════════════════════════════════════
119
+ // FACTORIES
120
+ // ═══════════════════════════════════════════════════════════
121
+ export function c(width, height, padding, radius, margin, border, overflow, options) {
122
+ const inst = new C(width, height, padding, radius, margin, border, overflow, options);
123
+ return inst;
124
+ }
125
+ export { C, c as container };
126
+ export default c;
127
+ //# sourceMappingURL=c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c.js","sourceRoot":"","sources":["../../lib/primitives/c.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ interface CheckboxOption {
2
+ label: string;
3
+ value: string;
4
+ disabled?: boolean;
5
+ checked?: boolean;
6
+ }
7
+ interface CheckboxOptions {
8
+ label?: string;
9
+ checked?: boolean;
10
+ disabled?: boolean;
11
+ class?: string;
12
+ style?: string;
13
+ onChange?: (checked: boolean, event: Event) => void;
14
+ }
15
+ interface CheckboxGroupOptions {
16
+ label?: string;
17
+ options?: CheckboxOption[];
18
+ values?: string[];
19
+ direction?: 'vertical' | 'horizontal';
20
+ disabled?: boolean;
21
+ class?: string;
22
+ style?: string;
23
+ onChange?: (values: string[], event: Event) => void;
24
+ }
25
+ declare class Checkbox {
26
+ id: string;
27
+ opts: CheckboxOptions;
28
+ private _element;
29
+ private _wrapper;
30
+ private _onChange;
31
+ constructor(id: string, options?: CheckboxOptions);
32
+ label(value: string): this;
33
+ checked(value?: boolean): this;
34
+ disabled(value?: boolean): this;
35
+ style(value: string): this;
36
+ class(value: string): this;
37
+ onChange(fn: (checked: boolean, event: Event) => void): this;
38
+ /** Returns the reactive pageState proxy for this component */
39
+ get state(): any;
40
+ getValue(): boolean;
41
+ getLabel(): string;
42
+ getChecked(): boolean;
43
+ getDisabled(): boolean;
44
+ getClass(): string;
45
+ getStyle(): string;
46
+ setValue(val: boolean): this;
47
+ setChecked(val: boolean): this;
48
+ setLabel(val: string): this;
49
+ setDisabled(val: boolean): this;
50
+ setClass(val: string): this;
51
+ setStyle(val: string): this;
52
+ render(target?: string | HTMLElement): this;
53
+ }
54
+ declare class CheckboxGroup {
55
+ id: string;
56
+ opts: CheckboxGroupOptions;
57
+ private _wrapper;
58
+ private _inputs;
59
+ private _onChange;
60
+ constructor(id: string, options?: CheckboxGroupOptions);
61
+ label(value: string): this;
62
+ direction(value: 'vertical' | 'horizontal'): this;
63
+ disabled(value?: boolean): this;
64
+ style(value: string): this;
65
+ class(value: string): this;
66
+ options(opts: CheckboxOption[]): this;
67
+ values(vals: string[]): this;
68
+ onChange(fn: (values: string[], event: Event) => void): this;
69
+ /** Returns the reactive pageState proxy for this component */
70
+ get state(): any;
71
+ getValues(): string[];
72
+ getLabel(): string;
73
+ getDirection(): string;
74
+ getDisabled(): boolean;
75
+ getClass(): string;
76
+ getStyle(): string;
77
+ setValues(vals: string[]): this;
78
+ setOptions(opts: CheckboxOption[]): this;
79
+ setLabel(val: string): this;
80
+ setDirection(val: 'vertical' | 'horizontal'): this;
81
+ setDisabled(val: boolean): this;
82
+ setClass(val: string): this;
83
+ setStyle(val: string): this;
84
+ getOptions(): CheckboxOption[];
85
+ private _rebuild;
86
+ private _buildOptions;
87
+ render(target?: string | HTMLElement): this;
88
+ }
89
+ export declare function checkbox(id: string, options?: CheckboxOptions): Checkbox;
90
+ export declare function checkboxGroup(id: string, options?: CheckboxGroupOptions): CheckboxGroup;
91
+ export { Checkbox, CheckboxGroup, CheckboxOption, CheckboxOptions, CheckboxGroupOptions };
92
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../lib/primitives/checkbox.ts"],"names":[],"mappings":"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"}