bank20baht-ui-angular 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1,4596 @@
1
+ // Generated by scripts/generate.ts from bank20baht-ui's custom-elements.json. Do not edit:
2
+ // change the element's JSDoc in packages/core and run `bun run generate`.
3
+ import { booleanAttribute, Directive, Input, output } from '@angular/core';
4
+ import { assign, hostElement, num, relay } from './runtime.js';
5
+ import * as i0 from "@angular/core";
6
+ /** `<baht-accordion>`: Accordion */
7
+ export class BahtAccordionDirective {
8
+ set items(v) {
9
+ assign(this.element, 'items', v);
10
+ }
11
+ set multiple(v) {
12
+ assign(this.element, 'multiple', v);
13
+ }
14
+ constructor() {
15
+ /** The element itself, for its methods. */
16
+ this.element = hostElement();
17
+ /** A section opened or closed. */
18
+ this.bahtToggle = output();
19
+ relay(this.element, 'baht-toggle', this.bahtToggle);
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtAccordionDirective, isStandalone: true, selector: "baht-accordion", inputs: { items: "items", multiple: ["multiple", "multiple", booleanAttribute] }, outputs: { bahtToggle: "bahtToggle" }, exportAs: ["bahtAccordion"], ngImport: i0 }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAccordionDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{ selector: 'baht-accordion', exportAs: 'bahtAccordion' }]
27
+ }], ctorParameters: () => [], propDecorators: { items: [{
28
+ type: Input
29
+ }], multiple: [{
30
+ type: Input,
31
+ args: [{ transform: booleanAttribute }]
32
+ }], bahtToggle: [{ type: i0.Output, args: ["bahtToggle"] }] } });
33
+ /** `<baht-alert>`: Inline alert / callout */
34
+ export class BahtAlertDirective {
35
+ set tone(v) {
36
+ assign(this.element, 'tone', v);
37
+ }
38
+ set heading(v) {
39
+ assign(this.element, 'heading', v);
40
+ }
41
+ set message(v) {
42
+ assign(this.element, 'message', v);
43
+ }
44
+ set dismissible(v) {
45
+ assign(this.element, 'dismissible', v);
46
+ }
47
+ constructor() {
48
+ /** The element itself, for its methods. */
49
+ this.element = hostElement();
50
+ /** The close button was pressed. */
51
+ this.bahtDismiss = output();
52
+ relay(this.element, 'baht-dismiss', this.bahtDismiss);
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAlertDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtAlertDirective, isStandalone: true, selector: "baht-alert", inputs: { tone: "tone", heading: "heading", message: "message", dismissible: ["dismissible", "dismissible", booleanAttribute] }, outputs: { bahtDismiss: "bahtDismiss" }, exportAs: ["bahtAlert"], ngImport: i0 }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAlertDirective, decorators: [{
58
+ type: Directive,
59
+ args: [{ selector: 'baht-alert', exportAs: 'bahtAlert' }]
60
+ }], ctorParameters: () => [], propDecorators: { tone: [{
61
+ type: Input
62
+ }], heading: [{
63
+ type: Input
64
+ }], message: [{
65
+ type: Input
66
+ }], dismissible: [{
67
+ type: Input,
68
+ args: [{ transform: booleanAttribute }]
69
+ }], bahtDismiss: [{ type: i0.Output, args: ["bahtDismiss"] }] } });
70
+ /** `<baht-app-shell>`: An application's frame: a header band, a navigator on the left and the page */
71
+ export class BahtAppShellDirective {
72
+ set brand(v) {
73
+ assign(this.element, 'brand', v);
74
+ }
75
+ set brandSub(v) {
76
+ assign(this.element, 'brandSub', v);
77
+ }
78
+ set brandHref(v) {
79
+ assign(this.element, 'brandHref', v);
80
+ }
81
+ /** A further line in the header, naming the part of the application. */
82
+ set context(v) {
83
+ assign(this.element, 'context', v);
84
+ }
85
+ set items(v) {
86
+ assign(this.element, 'items', v);
87
+ }
88
+ /** Key of the current entry. */
89
+ set value(v) {
90
+ assign(this.element, 'value', v);
91
+ }
92
+ /** Show a box that narrows the navigator as you type. */
93
+ set filterable(v) {
94
+ assign(this.element, 'filterable', v);
95
+ }
96
+ /** Accessible name of the navigator. */
97
+ set label(v) {
98
+ assign(this.element, 'label', v);
99
+ }
100
+ /** Groups folded away; the shell keeps it in step as headings are pressed. */
101
+ set collapsedGroups(v) {
102
+ assign(this.element, 'collapsedGroups', v);
103
+ }
104
+ constructor() {
105
+ /** The element itself, for its methods. */
106
+ this.element = hostElement();
107
+ /** An entry was pressed. `detail: { key, href }`. Cancelable: `preventDefault()` to route yourself. Clicks with a modifier key are left to the browser. */
108
+ this.bahtNav = output();
109
+ /** A group heading was pressed. `detail: { group, collapsed }`. */
110
+ this.bahtNavGroup = output();
111
+ relay(this.element, 'baht-nav', this.bahtNav);
112
+ relay(this.element, 'baht-nav-group', this.bahtNavGroup);
113
+ }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAppShellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtAppShellDirective, isStandalone: true, selector: "baht-app-shell", inputs: { brand: "brand", brandSub: "brandSub", brandHref: "brandHref", context: "context", items: "items", value: "value", filterable: ["filterable", "filterable", booleanAttribute], label: "label", collapsedGroups: "collapsedGroups" }, outputs: { bahtNav: "bahtNav", bahtNavGroup: "bahtNavGroup" }, exportAs: ["bahtAppShell"], ngImport: i0 }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAppShellDirective, decorators: [{
118
+ type: Directive,
119
+ args: [{ selector: 'baht-app-shell', exportAs: 'bahtAppShell' }]
120
+ }], ctorParameters: () => [], propDecorators: { brand: [{
121
+ type: Input
122
+ }], brandSub: [{
123
+ type: Input
124
+ }], brandHref: [{
125
+ type: Input
126
+ }], context: [{
127
+ type: Input
128
+ }], items: [{
129
+ type: Input
130
+ }], value: [{
131
+ type: Input
132
+ }], filterable: [{
133
+ type: Input,
134
+ args: [{ transform: booleanAttribute }]
135
+ }], label: [{
136
+ type: Input
137
+ }], collapsedGroups: [{
138
+ type: Input
139
+ }], bahtNav: [{ type: i0.Output, args: ["bahtNav"] }], bahtNavGroup: [{ type: i0.Output, args: ["bahtNavGroup"] }] } });
140
+ /** `<baht-approval-chain>`: An approval route: each step in order, who it is with and how far it got */
141
+ export class BahtApprovalChainDirective {
142
+ constructor() {
143
+ /** The element itself, for its methods. */
144
+ this.element = hostElement();
145
+ }
146
+ set heading(v) {
147
+ assign(this.element, 'heading', v);
148
+ }
149
+ set steps(v) {
150
+ assign(this.element, 'steps', v);
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtApprovalChainDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
153
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtApprovalChainDirective, isStandalone: true, selector: "baht-approval-chain", inputs: { heading: "heading", steps: "steps" }, exportAs: ["bahtApprovalChain"], ngImport: i0 }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtApprovalChainDirective, decorators: [{
156
+ type: Directive,
157
+ args: [{ selector: 'baht-approval-chain', exportAs: 'bahtApprovalChain' }]
158
+ }], propDecorators: { heading: [{
159
+ type: Input
160
+ }], steps: [{
161
+ type: Input
162
+ }] } });
163
+ /** `<baht-avatar>`: Small circular identity chip — initials derived from `label`, or an explicit `initials` override */
164
+ export class BahtAvatarDirective {
165
+ constructor() {
166
+ /** The element itself, for its methods. */
167
+ this.element = hostElement();
168
+ }
169
+ /** Full name; initials are derived from it when `initials` isn't set. */
170
+ set label(v) {
171
+ assign(this.element, 'label', v);
172
+ }
173
+ /** Explicit override — first 1-2 characters are shown as-is. */
174
+ set initials(v) {
175
+ assign(this.element, 'initials', v);
176
+ }
177
+ set size(v) {
178
+ assign(this.element, 'size', v);
179
+ }
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
181
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtAvatarDirective, isStandalone: true, selector: "baht-avatar", inputs: { label: "label", initials: "initials", size: "size" }, exportAs: ["bahtAvatar"], ngImport: i0 }); }
182
+ }
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtAvatarDirective, decorators: [{
184
+ type: Directive,
185
+ args: [{ selector: 'baht-avatar', exportAs: 'bahtAvatar' }]
186
+ }], propDecorators: { label: [{
187
+ type: Input
188
+ }], initials: [{
189
+ type: Input
190
+ }], size: [{
191
+ type: Input
192
+ }] } });
193
+ /** `<baht-badge>`: Status pill / tag / counter (20baht badges) */
194
+ export class BahtBadgeDirective {
195
+ constructor() {
196
+ /** The element itself, for its methods. */
197
+ this.element = hostElement();
198
+ }
199
+ set tone(v) {
200
+ assign(this.element, 'tone', v);
201
+ }
202
+ set label(v) {
203
+ assign(this.element, 'label', v);
204
+ }
205
+ /** Force the dot on/off; defaults to on for status tones. */
206
+ set dot(v) {
207
+ assign(this.element, 'dot', v);
208
+ }
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
210
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtBadgeDirective, isStandalone: true, selector: "baht-badge", inputs: { tone: "tone", label: "label", dot: "dot" }, exportAs: ["bahtBadge"], ngImport: i0 }); }
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBadgeDirective, decorators: [{
213
+ type: Directive,
214
+ args: [{ selector: 'baht-badge', exportAs: 'bahtBadge' }]
215
+ }], propDecorators: { tone: [{
216
+ type: Input
217
+ }], label: [{
218
+ type: Input
219
+ }], dot: [{
220
+ type: Input
221
+ }] } });
222
+ /** `<baht-bar-chart>` */
223
+ export class BahtBarChartDirective {
224
+ constructor() {
225
+ /** The element itself, for its methods. */
226
+ this.element = hostElement();
227
+ }
228
+ /** Original API: `{ label, count }[]`, one bar each. */
229
+ set groups(v) {
230
+ assign(this.element, 'groups', v);
231
+ }
232
+ /** Series API: one entry per series, one value per category. */
233
+ set series(v) {
234
+ assign(this.element, 'series', v);
235
+ }
236
+ /** Category names, one per value index. */
237
+ set categories(v) {
238
+ assign(this.element, 'categories', v);
239
+ }
240
+ /** Bars across (default) or columns up. */
241
+ set orientation(v) {
242
+ assign(this.element, 'orientation', v);
243
+ }
244
+ /** Stack the series inside one band instead of grouping them side by side. */
245
+ set stacked(v) {
246
+ assign(this.element, 'stacked', v);
247
+ }
248
+ /** Previous-period values, drawn as a muted bar under each current bar. */
249
+ set compare(v) {
250
+ assign(this.element, 'compare', v);
251
+ }
252
+ /** Names the muted `compare` bar in the key and the table twin. */
253
+ set compareLabel(v) {
254
+ assign(this.element, 'compareLabel', v);
255
+ }
256
+ /** Budget / target lines drawn over the bars. */
257
+ set markers(v) {
258
+ assign(this.element, 'markers', v);
259
+ }
260
+ /** `ends` prints the value at the bar tip; `none` leaves it to the tooltip. */
261
+ set labelValues(v) {
262
+ assign(this.element, 'labelValues', v);
263
+ }
264
+ /** Index of the series (2+ series) or category (one series) to highlight. */
265
+ set emphasis(v) {
266
+ assign(this.element, 'emphasis', v);
267
+ }
268
+ /** Single color for every bar; per-series palette otherwise. */
269
+ set color(v) {
270
+ assign(this.element, 'color', v);
271
+ }
272
+ /** Accessible summary used by the vertical (graphics-only) rendering. */
273
+ set label(v) {
274
+ assign(this.element, 'label', v);
275
+ }
276
+ /** Shown instead of the marks when there is nothing to plot. */
277
+ set emptyMessage(v) {
278
+ assign(this.element, 'emptyMessage', v);
279
+ }
280
+ /** Hold the previous render at reduced opacity while new data loads. */
281
+ set loading(v) {
282
+ assign(this.element, 'loading', v);
283
+ }
284
+ /** Render the "View as table" twin under the chart. */
285
+ set showTable(v) {
286
+ assign(this.element, 'showTable', v);
287
+ }
288
+ /** How values are rendered in labels, ticks, tooltips and the table twin. */
289
+ set format(v) {
290
+ assign(this.element, 'format', v);
291
+ }
292
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
293
+ set currency(v) {
294
+ assign(this.element, 'currency', v);
295
+ }
296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBarChartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
297
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtBarChartDirective, isStandalone: true, selector: "baht-bar-chart", inputs: { groups: "groups", series: "series", categories: "categories", orientation: "orientation", stacked: ["stacked", "stacked", booleanAttribute], compare: "compare", compareLabel: "compareLabel", markers: "markers", labelValues: "labelValues", emphasis: "emphasis", color: "color", label: "label", emptyMessage: "emptyMessage", loading: ["loading", "loading", booleanAttribute], showTable: ["showTable", "showTable", booleanAttribute], format: "format", currency: "currency" }, exportAs: ["bahtBarChart"], ngImport: i0 }); }
298
+ }
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBarChartDirective, decorators: [{
300
+ type: Directive,
301
+ args: [{ selector: 'baht-bar-chart', exportAs: 'bahtBarChart' }]
302
+ }], propDecorators: { groups: [{
303
+ type: Input
304
+ }], series: [{
305
+ type: Input
306
+ }], categories: [{
307
+ type: Input
308
+ }], orientation: [{
309
+ type: Input
310
+ }], stacked: [{
311
+ type: Input,
312
+ args: [{ transform: booleanAttribute }]
313
+ }], compare: [{
314
+ type: Input
315
+ }], compareLabel: [{
316
+ type: Input
317
+ }], markers: [{
318
+ type: Input
319
+ }], labelValues: [{
320
+ type: Input
321
+ }], emphasis: [{
322
+ type: Input
323
+ }], color: [{
324
+ type: Input
325
+ }], label: [{
326
+ type: Input
327
+ }], emptyMessage: [{
328
+ type: Input
329
+ }], loading: [{
330
+ type: Input,
331
+ args: [{ transform: booleanAttribute }]
332
+ }], showTable: [{
333
+ type: Input,
334
+ args: [{ transform: booleanAttribute }]
335
+ }], format: [{
336
+ type: Input
337
+ }], currency: [{
338
+ type: Input
339
+ }] } });
340
+ /** `<baht-breadcrumbs>`: Breadcrumb trail */
341
+ export class BahtBreadcrumbsDirective {
342
+ set items(v) {
343
+ assign(this.element, 'items', v);
344
+ }
345
+ set separator(v) {
346
+ assign(this.element, 'separator', v);
347
+ }
348
+ constructor() {
349
+ /** The element itself, for its methods. */
350
+ this.element = hostElement();
351
+ /** A crumb was pressed. */
352
+ this.bahtNavigate = output();
353
+ relay(this.element, 'baht-navigate', this.bahtNavigate);
354
+ }
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBreadcrumbsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
356
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtBreadcrumbsDirective, isStandalone: true, selector: "baht-breadcrumbs", inputs: { items: "items", separator: "separator" }, outputs: { bahtNavigate: "bahtNavigate" }, exportAs: ["bahtBreadcrumbs"], ngImport: i0 }); }
357
+ }
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtBreadcrumbsDirective, decorators: [{
359
+ type: Directive,
360
+ args: [{ selector: 'baht-breadcrumbs', exportAs: 'bahtBreadcrumbs' }]
361
+ }], ctorParameters: () => [], propDecorators: { items: [{
362
+ type: Input
363
+ }], separator: [{
364
+ type: Input
365
+ }], bahtNavigate: [{ type: i0.Output, args: ["bahtNavigate"] }] } });
366
+ /** `<baht-button>`: Design-system button (20baht: no scale, no shadow change — color does the work) */
367
+ export class BahtButtonDirective {
368
+ constructor() {
369
+ /** The element itself, for its methods. */
370
+ this.element = hostElement();
371
+ }
372
+ set variant(v) {
373
+ assign(this.element, 'variant', v);
374
+ }
375
+ set size(v) {
376
+ assign(this.element, 'size', v);
377
+ }
378
+ set disabled(v) {
379
+ assign(this.element, 'disabled', v);
380
+ }
381
+ /** Forwarded to the native button — 'button' (default) or 'submit'. */
382
+ set type(v) {
383
+ assign(this.element, 'type', v);
384
+ }
385
+ /** Alternative to children for setting the label programmatically. */
386
+ set label(v) {
387
+ assign(this.element, 'label', v);
388
+ }
389
+ /** Optional leading icon from the curated set (copy/check/download/…). */
390
+ set icon(v) {
391
+ assign(this.element, 'icon', v);
392
+ }
393
+ /** Square icon-only button. Requires `label` for the accessible name. */
394
+ set iconOnly(v) {
395
+ assign(this.element, 'iconOnly', v);
396
+ }
397
+ /** A host `aria-label` never reaches assistive tech on its own — light DOM has no implicit ARIA relationship between a custom element and its rendered children, so an `aria-label` written on `<baht-button>` stays on the host and the inner native `<button>` keeps whatever text (or none) is inside it. Mirroring the attribute into this property forwards it to the inner button's `aria-label`, taking priority over `label`/icon-only fallback — this is how a glyph-only child (e.g. `‹`) gets a real accessible name without `icon-only`. Mapped to the plain `aria-label` attribute so hosts write it the way they naturally would; kept off the `ariaLabel` IDL accessor to avoid shadowing the platform's own ARIAMixin. */
398
+ set hostAriaLabel(v) {
399
+ assign(this.element, 'hostAriaLabel', v);
400
+ }
401
+ /** Keyboard shortcut that clicks this button from anywhere on the page, e.g. `alt+q`, `shift+alt+s`, `mod+enter` (`mod` = ⌘ on Mac, Ctrl elsewhere). Also shown in a hover/focus tooltip and announced through `aria-keyshortcuts`. */
402
+ set shortcut(v) {
403
+ assign(this.element, 'shortcut', v);
404
+ }
405
+ /** Where the shortcut tooltip sits. */
406
+ set tooltipPosition(v) {
407
+ assign(this.element, 'tooltipPosition', v);
408
+ }
409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
410
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtButtonDirective, isStandalone: true, selector: "baht-button", inputs: { variant: "variant", size: "size", disabled: ["disabled", "disabled", booleanAttribute], type: "type", label: "label", icon: "icon", iconOnly: ["iconOnly", "iconOnly", booleanAttribute], hostAriaLabel: "hostAriaLabel", shortcut: "shortcut", tooltipPosition: "tooltipPosition" }, exportAs: ["bahtButton"], ngImport: i0 }); }
411
+ }
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtButtonDirective, decorators: [{
413
+ type: Directive,
414
+ args: [{ selector: 'baht-button', exportAs: 'bahtButton' }]
415
+ }], propDecorators: { variant: [{
416
+ type: Input
417
+ }], size: [{
418
+ type: Input
419
+ }], disabled: [{
420
+ type: Input,
421
+ args: [{ transform: booleanAttribute }]
422
+ }], type: [{
423
+ type: Input
424
+ }], label: [{
425
+ type: Input
426
+ }], icon: [{
427
+ type: Input
428
+ }], iconOnly: [{
429
+ type: Input,
430
+ args: [{ transform: booleanAttribute }]
431
+ }], hostAriaLabel: [{
432
+ type: Input
433
+ }], shortcut: [{
434
+ type: Input
435
+ }], tooltipPosition: [{
436
+ type: Input
437
+ }] } });
438
+ /** `<baht-card>`: Surface card (20baht: white on cream, 1px border, no shadow at rest — the border carries the separation) */
439
+ export class BahtCardDirective {
440
+ constructor() {
441
+ /** The element itself, for its methods. */
442
+ this.element = hostElement();
443
+ }
444
+ set heading(v) {
445
+ assign(this.element, 'heading', v);
446
+ }
447
+ set subtitle(v) {
448
+ assign(this.element, 'subtitle', v);
449
+ }
450
+ /** hero = 20px radius + roomier padding (large/feature cards). */
451
+ set hero(v) {
452
+ assign(this.element, 'hero', v);
453
+ }
454
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
455
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtCardDirective, isStandalone: true, selector: "baht-card", inputs: { heading: "heading", subtitle: "subtitle", hero: ["hero", "hero", booleanAttribute] }, exportAs: ["bahtCard"], ngImport: i0 }); }
456
+ }
457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCardDirective, decorators: [{
458
+ type: Directive,
459
+ args: [{ selector: 'baht-card', exportAs: 'bahtCard' }]
460
+ }], propDecorators: { heading: [{
461
+ type: Input
462
+ }], subtitle: [{
463
+ type: Input
464
+ }], hero: [{
465
+ type: Input,
466
+ args: [{ transform: booleanAttribute }]
467
+ }] } });
468
+ /** `<baht-catalog-card>`: A card that opens something: picture, name, one line about it */
469
+ export class BahtCatalogCardDirective {
470
+ set heading(v) {
471
+ assign(this.element, 'heading', v);
472
+ }
473
+ set description(v) {
474
+ assign(this.element, 'description', v);
475
+ }
476
+ set image(v) {
477
+ assign(this.element, 'image', v);
478
+ }
479
+ set href(v) {
480
+ assign(this.element, 'href', v);
481
+ }
482
+ constructor() {
483
+ /** The element itself, for its methods. */
484
+ this.element = hostElement();
485
+ /** The link was pressed. `detail: { href }`. Cancelable: `preventDefault()` to route yourself. */
486
+ this.bahtOpen = output();
487
+ relay(this.element, 'baht-open', this.bahtOpen);
488
+ }
489
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCatalogCardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
490
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtCatalogCardDirective, isStandalone: true, selector: "baht-catalog-card", inputs: { heading: "heading", description: "description", image: "image", href: "href" }, outputs: { bahtOpen: "bahtOpen" }, exportAs: ["bahtCatalogCard"], ngImport: i0 }); }
491
+ }
492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCatalogCardDirective, decorators: [{
493
+ type: Directive,
494
+ args: [{ selector: 'baht-catalog-card', exportAs: 'bahtCatalogCard' }]
495
+ }], ctorParameters: () => [], propDecorators: { heading: [{
496
+ type: Input
497
+ }], description: [{
498
+ type: Input
499
+ }], image: [{
500
+ type: Input
501
+ }], href: [{
502
+ type: Input
503
+ }], bahtOpen: [{ type: i0.Output, args: ["bahtOpen"] }] } });
504
+ /** `<baht-checkbox>` */
505
+ export class BahtCheckboxDirective {
506
+ set field(v) {
507
+ assign(this.element, 'field', v);
508
+ }
509
+ set value(v) {
510
+ assign(this.element, 'value', v);
511
+ }
512
+ set disabled(v) {
513
+ assign(this.element, 'disabled', v);
514
+ }
515
+ set readonly(v) {
516
+ assign(this.element, 'readonly', v);
517
+ }
518
+ set required(v) {
519
+ assign(this.element, 'required', v);
520
+ }
521
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
522
+ set showOptional(v) {
523
+ assign(this.element, 'showOptional', v);
524
+ }
525
+ set error(v) {
526
+ assign(this.element, 'error', v);
527
+ }
528
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
529
+ set debounce(v) {
530
+ assign(this.element, 'debounce', v);
531
+ }
532
+ constructor() {
533
+ /** The element itself, for its methods. */
534
+ this.element = hostElement();
535
+ /** Field mode: the user edited the value. */
536
+ this.bahtInput = output();
537
+ /** The value the user picked or typed, for `[(value)]`. */
538
+ this.valueChange = output();
539
+ relay(this.element, 'baht-input', this.bahtInput);
540
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
541
+ }
542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
543
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtCheckboxDirective, isStandalone: true, selector: "baht-checkbox", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtCheckbox"], ngImport: i0 }); }
544
+ }
545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCheckboxDirective, decorators: [{
546
+ type: Directive,
547
+ args: [{ selector: 'baht-checkbox', exportAs: 'bahtCheckbox' }]
548
+ }], ctorParameters: () => [], propDecorators: { field: [{
549
+ type: Input
550
+ }], value: [{
551
+ type: Input
552
+ }], disabled: [{
553
+ type: Input,
554
+ args: [{ transform: booleanAttribute }]
555
+ }], readonly: [{
556
+ type: Input,
557
+ args: [{ transform: booleanAttribute }]
558
+ }], required: [{
559
+ type: Input,
560
+ args: [{ transform: booleanAttribute }]
561
+ }], showOptional: [{
562
+ type: Input,
563
+ args: [{ transform: booleanAttribute }]
564
+ }], error: [{
565
+ type: Input
566
+ }], debounce: [{
567
+ type: Input,
568
+ args: [{ transform: num }]
569
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
570
+ /** `<baht-code>`: Monospace code (20baht): an inline chip or a block */
571
+ export class BahtCodeDirective {
572
+ constructor() {
573
+ /** The element itself, for its methods. */
574
+ this.element = hostElement();
575
+ }
576
+ set variant(v) {
577
+ assign(this.element, 'variant', v);
578
+ }
579
+ /** Alternative to children for setting the code text programmatically. */
580
+ set code(v) {
581
+ assign(this.element, 'code', v);
582
+ }
583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCodeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
584
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtCodeDirective, isStandalone: true, selector: "baht-code", inputs: { variant: "variant", code: "code" }, exportAs: ["bahtCode"], ngImport: i0 }); }
585
+ }
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCodeDirective, decorators: [{
587
+ type: Directive,
588
+ args: [{ selector: 'baht-code', exportAs: 'bahtCode' }]
589
+ }], propDecorators: { variant: [{
590
+ type: Input
591
+ }], code: [{
592
+ type: Input
593
+ }] } });
594
+ /** `<baht-column-picker>`: The Available / Selected dialog behind a table's Columns button: add, remove and reorder columns, and expand a reference column to dot-walk into its fields. */
595
+ export class BahtColumnPickerDirective {
596
+ set open(v) {
597
+ assign(this.element, 'open', v);
598
+ }
599
+ set columns(v) {
600
+ assign(this.element, 'columns', v);
601
+ }
602
+ /** The columns showing now, in order. */
603
+ set selected(v) {
604
+ assign(this.element, 'selected', v);
605
+ }
606
+ constructor() {
607
+ /** The element itself, for its methods. */
608
+ this.element = hostElement();
609
+ /** OK was pressed. `detail: ColumnsChangeDetail`. */
610
+ this.bahtColumnsChange = output();
611
+ /** The dialog was dismissed, or OK was pressed. */
612
+ this.bahtClose = output();
613
+ relay(this.element, 'baht-columns-change', this.bahtColumnsChange);
614
+ relay(this.element, 'baht-close', this.bahtClose);
615
+ }
616
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtColumnPickerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
617
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtColumnPickerDirective, isStandalone: true, selector: "baht-column-picker", inputs: { open: ["open", "open", booleanAttribute], columns: "columns", selected: "selected" }, outputs: { bahtColumnsChange: "bahtColumnsChange", bahtClose: "bahtClose" }, exportAs: ["bahtColumnPicker"], ngImport: i0 }); }
618
+ }
619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtColumnPickerDirective, decorators: [{
620
+ type: Directive,
621
+ args: [{ selector: 'baht-column-picker', exportAs: 'bahtColumnPicker' }]
622
+ }], ctorParameters: () => [], propDecorators: { open: [{
623
+ type: Input,
624
+ args: [{ transform: booleanAttribute }]
625
+ }], columns: [{
626
+ type: Input
627
+ }], selected: [{
628
+ type: Input
629
+ }], bahtColumnsChange: [{ type: i0.Output, args: ["bahtColumnsChange"] }], bahtClose: [{ type: i0.Output, args: ["bahtClose"] }] } });
630
+ /** `<baht-comments>`: A conversation on a record: the thread, oldest first, and a composer */
631
+ export class BahtCommentsDirective {
632
+ set entries(v) {
633
+ assign(this.element, 'entries', v);
634
+ }
635
+ set allowInternal(v) {
636
+ assign(this.element, 'allowInternal', v);
637
+ }
638
+ set placeholder(v) {
639
+ assign(this.element, 'placeholder', v);
640
+ }
641
+ set internalLabel(v) {
642
+ assign(this.element, 'internalLabel', v);
643
+ }
644
+ set emptyMessage(v) {
645
+ assign(this.element, 'emptyMessage', v);
646
+ }
647
+ set busy(v) {
648
+ assign(this.element, 'busy', v);
649
+ }
650
+ constructor() {
651
+ /** The element itself, for its methods. */
652
+ this.element = hostElement();
653
+ /** The composer was submitted; the box clears. */
654
+ this.bahtSubmit = output();
655
+ relay(this.element, 'baht-submit', this.bahtSubmit);
656
+ }
657
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCommentsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
658
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtCommentsDirective, isStandalone: true, selector: "baht-comments", inputs: { entries: "entries", allowInternal: ["allowInternal", "allowInternal", booleanAttribute], placeholder: "placeholder", internalLabel: "internalLabel", emptyMessage: "emptyMessage", busy: ["busy", "busy", booleanAttribute] }, outputs: { bahtSubmit: "bahtSubmit" }, exportAs: ["bahtComments"], ngImport: i0 }); }
659
+ }
660
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCommentsDirective, decorators: [{
661
+ type: Directive,
662
+ args: [{ selector: 'baht-comments', exportAs: 'bahtComments' }]
663
+ }], ctorParameters: () => [], propDecorators: { entries: [{
664
+ type: Input
665
+ }], allowInternal: [{
666
+ type: Input,
667
+ args: [{ transform: booleanAttribute }]
668
+ }], placeholder: [{
669
+ type: Input
670
+ }], internalLabel: [{
671
+ type: Input
672
+ }], emptyMessage: [{
673
+ type: Input
674
+ }], busy: [{
675
+ type: Input,
676
+ args: [{ transform: booleanAttribute }]
677
+ }], bahtSubmit: [{ type: i0.Output, args: ["bahtSubmit"] }] } });
678
+ /** `<baht-currency>`: Money input: plain digits while typing, thousands-separated on blur */
679
+ export class BahtCurrencyDirective {
680
+ set field(v) {
681
+ assign(this.element, 'field', v);
682
+ }
683
+ set value(v) {
684
+ assign(this.element, 'value', v);
685
+ }
686
+ set disabled(v) {
687
+ assign(this.element, 'disabled', v);
688
+ }
689
+ set readonly(v) {
690
+ assign(this.element, 'readonly', v);
691
+ }
692
+ set required(v) {
693
+ assign(this.element, 'required', v);
694
+ }
695
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
696
+ set showOptional(v) {
697
+ assign(this.element, 'showOptional', v);
698
+ }
699
+ set error(v) {
700
+ assign(this.element, 'error', v);
701
+ }
702
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
703
+ set debounce(v) {
704
+ assign(this.element, 'debounce', v);
705
+ }
706
+ constructor() {
707
+ /** The element itself, for its methods. */
708
+ this.element = hostElement();
709
+ /** Field mode: the user edited the value. */
710
+ this.bahtInput = output();
711
+ /** The value the user picked or typed, for `[(value)]`. */
712
+ this.valueChange = output();
713
+ relay(this.element, 'baht-input', this.bahtInput);
714
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
715
+ }
716
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCurrencyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
717
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtCurrencyDirective, isStandalone: true, selector: "baht-currency", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtCurrency"], ngImport: i0 }); }
718
+ }
719
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtCurrencyDirective, decorators: [{
720
+ type: Directive,
721
+ args: [{ selector: 'baht-currency', exportAs: 'bahtCurrency' }]
722
+ }], ctorParameters: () => [], propDecorators: { field: [{
723
+ type: Input
724
+ }], value: [{
725
+ type: Input
726
+ }], disabled: [{
727
+ type: Input,
728
+ args: [{ transform: booleanAttribute }]
729
+ }], readonly: [{
730
+ type: Input,
731
+ args: [{ transform: booleanAttribute }]
732
+ }], required: [{
733
+ type: Input,
734
+ args: [{ transform: booleanAttribute }]
735
+ }], showOptional: [{
736
+ type: Input,
737
+ args: [{ transform: booleanAttribute }]
738
+ }], error: [{
739
+ type: Input
740
+ }], debounce: [{
741
+ type: Input,
742
+ args: [{ transform: num }]
743
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
744
+ /** `<baht-datepicker>`: Calendar field on top of flatpickr */
745
+ export class BahtDatepickerDirective {
746
+ set field(v) {
747
+ assign(this.element, 'field', v);
748
+ }
749
+ set value(v) {
750
+ assign(this.element, 'value', v);
751
+ }
752
+ set disabled(v) {
753
+ assign(this.element, 'disabled', v);
754
+ }
755
+ set readonly(v) {
756
+ assign(this.element, 'readonly', v);
757
+ }
758
+ set required(v) {
759
+ assign(this.element, 'required', v);
760
+ }
761
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
762
+ set showOptional(v) {
763
+ assign(this.element, 'showOptional', v);
764
+ }
765
+ set error(v) {
766
+ assign(this.element, 'error', v);
767
+ }
768
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
769
+ set debounce(v) {
770
+ assign(this.element, 'debounce', v);
771
+ }
772
+ constructor() {
773
+ /** The element itself, for its methods. */
774
+ this.element = hostElement();
775
+ /** Field mode: the user edited the value. */
776
+ this.bahtInput = output();
777
+ /** The value the user picked or typed, for `[(value)]`. */
778
+ this.valueChange = output();
779
+ relay(this.element, 'baht-input', this.bahtInput);
780
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
781
+ }
782
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtDatepickerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
783
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtDatepickerDirective, isStandalone: true, selector: "baht-datepicker", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtDatepicker"], ngImport: i0 }); }
784
+ }
785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtDatepickerDirective, decorators: [{
786
+ type: Directive,
787
+ args: [{ selector: 'baht-datepicker', exportAs: 'bahtDatepicker' }]
788
+ }], ctorParameters: () => [], propDecorators: { field: [{
789
+ type: Input
790
+ }], value: [{
791
+ type: Input
792
+ }], disabled: [{
793
+ type: Input,
794
+ args: [{ transform: booleanAttribute }]
795
+ }], readonly: [{
796
+ type: Input,
797
+ args: [{ transform: booleanAttribute }]
798
+ }], required: [{
799
+ type: Input,
800
+ args: [{ transform: booleanAttribute }]
801
+ }], showOptional: [{
802
+ type: Input,
803
+ args: [{ transform: booleanAttribute }]
804
+ }], error: [{
805
+ type: Input
806
+ }], debounce: [{
807
+ type: Input,
808
+ args: [{ transform: num }]
809
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
810
+ /** `<baht-donut-chart>`: Pure-SVG donut with a legend that carries value and share */
811
+ export class BahtDonutChartDirective {
812
+ constructor() {
813
+ /** The element itself, for its methods. */
814
+ this.element = hostElement();
815
+ }
816
+ set groups(v) {
817
+ assign(this.element, 'groups', v);
818
+ }
819
+ set total(v) {
820
+ assign(this.element, 'total', v);
821
+ }
822
+ /** Single-series color override (first segment). */
823
+ set color(v) {
824
+ assign(this.element, 'color', v);
825
+ }
826
+ set centerLabel(v) {
827
+ assign(this.element, 'centerLabel', v);
828
+ }
829
+ /** Label of the folded tail bucket. */
830
+ set otherLabel(v) {
831
+ assign(this.element, 'otherLabel', v);
832
+ }
833
+ /** Shown instead of the marks when there is nothing to plot. */
834
+ set emptyMessage(v) {
835
+ assign(this.element, 'emptyMessage', v);
836
+ }
837
+ /** Hold the previous render at reduced opacity while new data loads. */
838
+ set loading(v) {
839
+ assign(this.element, 'loading', v);
840
+ }
841
+ /** Render the "View as table" twin under the chart. */
842
+ set showTable(v) {
843
+ assign(this.element, 'showTable', v);
844
+ }
845
+ /** How values are rendered in labels, ticks, tooltips and the table twin. */
846
+ set format(v) {
847
+ assign(this.element, 'format', v);
848
+ }
849
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
850
+ set currency(v) {
851
+ assign(this.element, 'currency', v);
852
+ }
853
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtDonutChartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
854
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtDonutChartDirective, isStandalone: true, selector: "baht-donut-chart", inputs: { groups: "groups", total: "total", color: "color", centerLabel: "centerLabel", otherLabel: "otherLabel", emptyMessage: "emptyMessage", loading: ["loading", "loading", booleanAttribute], showTable: ["showTable", "showTable", booleanAttribute], format: "format", currency: "currency" }, exportAs: ["bahtDonutChart"], ngImport: i0 }); }
855
+ }
856
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtDonutChartDirective, decorators: [{
857
+ type: Directive,
858
+ args: [{ selector: 'baht-donut-chart', exportAs: 'bahtDonutChart' }]
859
+ }], propDecorators: { groups: [{
860
+ type: Input
861
+ }], total: [{
862
+ type: Input
863
+ }], color: [{
864
+ type: Input
865
+ }], centerLabel: [{
866
+ type: Input
867
+ }], otherLabel: [{
868
+ type: Input
869
+ }], emptyMessage: [{
870
+ type: Input
871
+ }], loading: [{
872
+ type: Input,
873
+ args: [{ transform: booleanAttribute }]
874
+ }], showTable: [{
875
+ type: Input,
876
+ args: [{ transform: booleanAttribute }]
877
+ }], format: [{
878
+ type: Input
879
+ }], currency: [{
880
+ type: Input
881
+ }] } });
882
+ /** `<baht-edit-table>`: A table whose cells are edited in place (reference lists, catalog items, groups) */
883
+ export class BahtEditTableDirective {
884
+ set columns(v) {
885
+ assign(this.element, 'columns', v);
886
+ }
887
+ set rows(v) {
888
+ assign(this.element, 'rows', v);
889
+ }
890
+ set rowKey(v) {
891
+ assign(this.element, 'rowKey', v);
892
+ }
893
+ set addable(v) {
894
+ assign(this.element, 'addable', v);
895
+ }
896
+ set removable(v) {
897
+ assign(this.element, 'removable', v);
898
+ }
899
+ set label(v) {
900
+ assign(this.element, 'label', v);
901
+ }
902
+ constructor() {
903
+ /** The element itself, for its methods. */
904
+ this.element = hostElement();
905
+ /** The blank first row was added (`addable`). */
906
+ this.bahtRowAdd = output();
907
+ /** A changed row's Save was pressed. */
908
+ this.bahtRowSave = output();
909
+ /** Remove was pressed (`removable`). */
910
+ this.bahtRowDelete = output();
911
+ relay(this.element, 'baht-row-add', this.bahtRowAdd);
912
+ relay(this.element, 'baht-row-save', this.bahtRowSave);
913
+ relay(this.element, 'baht-row-delete', this.bahtRowDelete);
914
+ }
915
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtEditTableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
916
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtEditTableDirective, isStandalone: true, selector: "baht-edit-table", inputs: { columns: "columns", rows: "rows", rowKey: "rowKey", addable: ["addable", "addable", booleanAttribute], removable: ["removable", "removable", booleanAttribute], label: "label" }, outputs: { bahtRowAdd: "bahtRowAdd", bahtRowSave: "bahtRowSave", bahtRowDelete: "bahtRowDelete" }, exportAs: ["bahtEditTable"], ngImport: i0 }); }
917
+ }
918
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtEditTableDirective, decorators: [{
919
+ type: Directive,
920
+ args: [{ selector: 'baht-edit-table', exportAs: 'bahtEditTable' }]
921
+ }], ctorParameters: () => [], propDecorators: { columns: [{
922
+ type: Input
923
+ }], rows: [{
924
+ type: Input
925
+ }], rowKey: [{
926
+ type: Input
927
+ }], addable: [{
928
+ type: Input,
929
+ args: [{ transform: booleanAttribute }]
930
+ }], removable: [{
931
+ type: Input,
932
+ args: [{ transform: booleanAttribute }]
933
+ }], label: [{
934
+ type: Input
935
+ }], bahtRowAdd: [{ type: i0.Output, args: ["bahtRowAdd"] }], bahtRowSave: [{ type: i0.Output, args: ["bahtRowSave"] }], bahtRowDelete: [{ type: i0.Output, args: ["bahtRowDelete"] }] } });
936
+ /** `<baht-empty-state>`: Centered "nothing here" placeholder for lists, tables, and searches */
937
+ export class BahtEmptyStateDirective {
938
+ constructor() {
939
+ /** The element itself, for its methods. */
940
+ this.element = hostElement();
941
+ }
942
+ /** Illustration name (`empty-box`, `search-slash`, `folder`, …), or any emoji / short text. Empty string hides it. */
943
+ set icon(v) {
944
+ assign(this.element, 'icon', v);
945
+ }
946
+ set message(v) {
947
+ assign(this.element, 'message', v);
948
+ }
949
+ set hint(v) {
950
+ assign(this.element, 'hint', v);
951
+ }
952
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtEmptyStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
953
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtEmptyStateDirective, isStandalone: true, selector: "baht-empty-state", inputs: { icon: "icon", message: "message", hint: "hint" }, exportAs: ["bahtEmptyState"], ngImport: i0 }); }
954
+ }
955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtEmptyStateDirective, decorators: [{
956
+ type: Directive,
957
+ args: [{ selector: 'baht-empty-state', exportAs: 'bahtEmptyState' }]
958
+ }], propDecorators: { icon: [{
959
+ type: Input
960
+ }], message: [{
961
+ type: Input
962
+ }], hint: [{
963
+ type: Input
964
+ }] } });
965
+ /** `<baht-error-state>`: Centered failure placeholder with an optional retry action */
966
+ export class BahtErrorStateDirective {
967
+ /** Illustration name (`error` by default), or any emoji / short text. Empty string hides it. */
968
+ set icon(v) {
969
+ assign(this.element, 'icon', v);
970
+ }
971
+ set heading(v) {
972
+ assign(this.element, 'heading', v);
973
+ }
974
+ set message(v) {
975
+ assign(this.element, 'message', v);
976
+ }
977
+ /** Renders a retry button with this label; omit for no action. */
978
+ set retryLabel(v) {
979
+ assign(this.element, 'retryLabel', v);
980
+ }
981
+ constructor() {
982
+ /** The element itself, for its methods. */
983
+ this.element = hostElement();
984
+ /** Retry was pressed. */
985
+ this.bahtRetry = output();
986
+ relay(this.element, 'baht-retry', this.bahtRetry);
987
+ }
988
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtErrorStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
989
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtErrorStateDirective, isStandalone: true, selector: "baht-error-state", inputs: { icon: "icon", heading: "heading", message: "message", retryLabel: "retryLabel" }, outputs: { bahtRetry: "bahtRetry" }, exportAs: ["bahtErrorState"], ngImport: i0 }); }
990
+ }
991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtErrorStateDirective, decorators: [{
992
+ type: Directive,
993
+ args: [{ selector: 'baht-error-state', exportAs: 'bahtErrorState' }]
994
+ }], ctorParameters: () => [], propDecorators: { icon: [{
995
+ type: Input
996
+ }], heading: [{
997
+ type: Input
998
+ }], message: [{
999
+ type: Input
1000
+ }], retryLabel: [{
1001
+ type: Input
1002
+ }], bahtRetry: [{ type: i0.Output, args: ["bahtRetry"] }] } });
1003
+ /** `<baht-fieldset>`: Semantic group wrapper (native <fieldset>/<legend>) */
1004
+ export class BahtFieldsetDirective {
1005
+ constructor() {
1006
+ /** The element itself, for its methods. */
1007
+ this.element = hostElement();
1008
+ }
1009
+ set legend(v) {
1010
+ assign(this.element, 'legend', v);
1011
+ }
1012
+ /** Muted help line under the group (e.g. "Fill both languages for accurate reading"). */
1013
+ set help(v) {
1014
+ assign(this.element, 'help', v);
1015
+ }
1016
+ set disabled(v) {
1017
+ assign(this.element, 'disabled', v);
1018
+ }
1019
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFieldsetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1020
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtFieldsetDirective, isStandalone: true, selector: "baht-fieldset", inputs: { legend: "legend", help: "help", disabled: ["disabled", "disabled", booleanAttribute] }, exportAs: ["bahtFieldset"], ngImport: i0 }); }
1021
+ }
1022
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFieldsetDirective, decorators: [{
1023
+ type: Directive,
1024
+ args: [{ selector: 'baht-fieldset', exportAs: 'bahtFieldset' }]
1025
+ }], propDecorators: { legend: [{
1026
+ type: Input
1027
+ }], help: [{
1028
+ type: Input
1029
+ }], disabled: [{
1030
+ type: Input,
1031
+ args: [{ transform: booleanAttribute }]
1032
+ }] } });
1033
+ /** `<baht-file>`: File field (spec 01 §2 + §13) */
1034
+ export class BahtFileDirective {
1035
+ /** Resolved registry uploader — <baht-form> injects it when `field.uploader` is set. */
1036
+ set uploader(v) {
1037
+ assign(this.element, 'uploader', v);
1038
+ }
1039
+ set field(v) {
1040
+ assign(this.element, 'field', v);
1041
+ }
1042
+ set value(v) {
1043
+ assign(this.element, 'value', v);
1044
+ }
1045
+ set disabled(v) {
1046
+ assign(this.element, 'disabled', v);
1047
+ }
1048
+ set readonly(v) {
1049
+ assign(this.element, 'readonly', v);
1050
+ }
1051
+ set required(v) {
1052
+ assign(this.element, 'required', v);
1053
+ }
1054
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
1055
+ set showOptional(v) {
1056
+ assign(this.element, 'showOptional', v);
1057
+ }
1058
+ set error(v) {
1059
+ assign(this.element, 'error', v);
1060
+ }
1061
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
1062
+ set debounce(v) {
1063
+ assign(this.element, 'debounce', v);
1064
+ }
1065
+ constructor() {
1066
+ /** The element itself, for its methods. */
1067
+ this.element = hostElement();
1068
+ /** Field mode: the user edited the value. */
1069
+ this.bahtInput = output();
1070
+ /** The value the user picked or typed, for `[(value)]`. */
1071
+ this.valueChange = output();
1072
+ relay(this.element, 'baht-input', this.bahtInput);
1073
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
1074
+ }
1075
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFileDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1076
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtFileDirective, isStandalone: true, selector: "baht-file", inputs: { uploader: "uploader", field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtFile"], ngImport: i0 }); }
1077
+ }
1078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFileDirective, decorators: [{
1079
+ type: Directive,
1080
+ args: [{ selector: 'baht-file', exportAs: 'bahtFile' }]
1081
+ }], ctorParameters: () => [], propDecorators: { uploader: [{
1082
+ type: Input
1083
+ }], field: [{
1084
+ type: Input
1085
+ }], value: [{
1086
+ type: Input
1087
+ }], disabled: [{
1088
+ type: Input,
1089
+ args: [{ transform: booleanAttribute }]
1090
+ }], readonly: [{
1091
+ type: Input,
1092
+ args: [{ transform: booleanAttribute }]
1093
+ }], required: [{
1094
+ type: Input,
1095
+ args: [{ transform: booleanAttribute }]
1096
+ }], showOptional: [{
1097
+ type: Input,
1098
+ args: [{ transform: booleanAttribute }]
1099
+ }], error: [{
1100
+ type: Input
1101
+ }], debounce: [{
1102
+ type: Input,
1103
+ args: [{ transform: num }]
1104
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
1105
+ /** `<baht-filter>`: Filter chip group */
1106
+ export class BahtFilterDirective {
1107
+ set options(v) {
1108
+ assign(this.element, 'options', v);
1109
+ }
1110
+ set selected(v) {
1111
+ assign(this.element, 'selected', v);
1112
+ }
1113
+ /** Look: `'chips'` (default) = separate pill chips; `'segmented'` = one joined segmented control. With `multiple=false` a segmented control never clears. */
1114
+ set variant(v) {
1115
+ assign(this.element, 'variant', v);
1116
+ }
1117
+ /** false = radio behavior (max one active; clicking it again clears — except with `variant="segmented"`, where the active segment stays selected). */
1118
+ set multiple(v) {
1119
+ assign(this.element, 'multiple', v);
1120
+ }
1121
+ set disabled(v) {
1122
+ assign(this.element, 'disabled', v);
1123
+ }
1124
+ /** Accessible name for the chip group. */
1125
+ set label(v) {
1126
+ assign(this.element, 'label', v);
1127
+ }
1128
+ constructor() {
1129
+ /** The element itself, for its methods. */
1130
+ this.element = hostElement();
1131
+ /** The selection changed. */
1132
+ this.bahtChange = output();
1133
+ relay(this.element, 'baht-change', this.bahtChange);
1134
+ }
1135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1136
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtFilterDirective, isStandalone: true, selector: "baht-filter", inputs: { options: "options", selected: "selected", variant: "variant", multiple: ["multiple", "multiple", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], label: "label" }, outputs: { bahtChange: "bahtChange" }, exportAs: ["bahtFilter"], ngImport: i0 }); }
1137
+ }
1138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFilterDirective, decorators: [{
1139
+ type: Directive,
1140
+ args: [{ selector: 'baht-filter', exportAs: 'bahtFilter' }]
1141
+ }], ctorParameters: () => [], propDecorators: { options: [{
1142
+ type: Input
1143
+ }], selected: [{
1144
+ type: Input
1145
+ }], variant: [{
1146
+ type: Input
1147
+ }], multiple: [{
1148
+ type: Input,
1149
+ args: [{ transform: booleanAttribute }]
1150
+ }], disabled: [{
1151
+ type: Input,
1152
+ args: [{ transform: booleanAttribute }]
1153
+ }], label: [{
1154
+ type: Input
1155
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }] } });
1156
+ /** `<baht-filter-builder>`: Builds a filter for a list: rows of column, comparison and value, all or any of them */
1157
+ export class BahtFilterBuilderDirective {
1158
+ set fields(v) {
1159
+ assign(this.element, 'fields', v);
1160
+ }
1161
+ set value(v) {
1162
+ assign(this.element, 'value', v);
1163
+ }
1164
+ constructor() {
1165
+ /** The element itself, for its methods. */
1166
+ this.element = hostElement();
1167
+ /** The filter changed. `detail: { value }`. */
1168
+ this.bahtChange = output();
1169
+ /** The value the user picked or typed, for `[(value)]`. */
1170
+ this.valueChange = output();
1171
+ relay(this.element, 'baht-change', this.bahtChange);
1172
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
1173
+ }
1174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFilterBuilderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1175
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtFilterBuilderDirective, isStandalone: true, selector: "baht-filter-builder", inputs: { fields: "fields", value: "value" }, outputs: { bahtChange: "bahtChange", valueChange: "valueChange" }, exportAs: ["bahtFilterBuilder"], ngImport: i0 }); }
1176
+ }
1177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFilterBuilderDirective, decorators: [{
1178
+ type: Directive,
1179
+ args: [{ selector: 'baht-filter-builder', exportAs: 'bahtFilterBuilder' }]
1180
+ }], ctorParameters: () => [], propDecorators: { fields: [{
1181
+ type: Input
1182
+ }], value: [{
1183
+ type: Input
1184
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
1185
+ /** `<baht-form>`: <baht-form> — dumb controlled form renderer (spec 01) */
1186
+ export class BahtFormDirective {
1187
+ set form(v) {
1188
+ assign(this.element, 'form', v);
1189
+ }
1190
+ set value(v) {
1191
+ assign(this.element, 'value', v);
1192
+ }
1193
+ set registry(v) {
1194
+ assign(this.element, 'registry', v);
1195
+ }
1196
+ /** Label every non-required field "(optional)" (localized) instead of relying on asterisks alone. */
1197
+ set showOptional(v) {
1198
+ assign(this.element, 'showOptional', v);
1199
+ }
1200
+ set options(v) {
1201
+ assign(this.element, 'options', v);
1202
+ }
1203
+ /** L2 (workflow) derived per-field UI state, keyed by field key. Optional. */
1204
+ set fieldStates(v) {
1205
+ assign(this.element, 'fieldStates', v);
1206
+ }
1207
+ /** Name of a view from `form.views`. Display-only: when set, only that view's fields are rendered and validated (the user can only fix what they see), but getData() still returns the FULL form — the server always validates the complete schema, views never change the submit payload. */
1208
+ set view(v) {
1209
+ assign(this.element, 'view', v);
1210
+ }
1211
+ /** Feature-flag values (spec 01 §12) — fields whose `flag` is off behave as if they were never in the schema: no render, no validation, no payload. */
1212
+ set flags(v) {
1213
+ assign(this.element, 'flags', v);
1214
+ }
1215
+ /** Key of the open tab section; the first one showing when unset or gone. */
1216
+ set tab(v) {
1217
+ assign(this.element, 'tab', v);
1218
+ }
1219
+ /** Force every field readonly — a display-only render of this form's own layout/widths. */
1220
+ set readonly(v) {
1221
+ assign(this.element, 'readonly', v);
1222
+ }
1223
+ constructor() {
1224
+ /** The element itself, for its methods. */
1225
+ this.element = hostElement();
1226
+ /** A tab of a tabbed layout was picked. */
1227
+ this.bahtTabChange = output();
1228
+ /** `validate()` ran. */
1229
+ this.bahtValidity = output();
1230
+ /** A field changed (an edit or a script); `data` is the whole form. */
1231
+ this.bahtChange = output();
1232
+ relay(this.element, 'baht-tab-change', this.bahtTabChange);
1233
+ relay(this.element, 'baht-validity', this.bahtValidity);
1234
+ relay(this.element, 'baht-change', this.bahtChange);
1235
+ }
1236
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1237
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtFormDirective, isStandalone: true, selector: "baht-form", inputs: { form: "form", value: "value", registry: "registry", showOptional: ["showOptional", "showOptional", booleanAttribute], options: "options", fieldStates: "fieldStates", view: "view", flags: "flags", tab: "tab", readonly: ["readonly", "readonly", booleanAttribute] }, outputs: { bahtTabChange: "bahtTabChange", bahtValidity: "bahtValidity", bahtChange: "bahtChange" }, exportAs: ["bahtForm"], ngImport: i0 }); }
1238
+ }
1239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtFormDirective, decorators: [{
1240
+ type: Directive,
1241
+ args: [{ selector: 'baht-form', exportAs: 'bahtForm' }]
1242
+ }], ctorParameters: () => [], propDecorators: { form: [{
1243
+ type: Input
1244
+ }], value: [{
1245
+ type: Input
1246
+ }], registry: [{
1247
+ type: Input
1248
+ }], showOptional: [{
1249
+ type: Input,
1250
+ args: [{ transform: booleanAttribute }]
1251
+ }], options: [{
1252
+ type: Input
1253
+ }], fieldStates: [{
1254
+ type: Input
1255
+ }], view: [{
1256
+ type: Input
1257
+ }], flags: [{
1258
+ type: Input
1259
+ }], tab: [{
1260
+ type: Input
1261
+ }], readonly: [{
1262
+ type: Input,
1263
+ args: [{ transform: booleanAttribute }]
1264
+ }], bahtTabChange: [{ type: i0.Output, args: ["bahtTabChange"] }], bahtValidity: [{ type: i0.Output, args: ["bahtValidity"] }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }] } });
1265
+ /** `<baht-heatmap>`: Calendar heat for one month or N weeks: one cell per day, colored on the sequential ramp, with a weekday header, a per-cell tooltip and a "less / more" scale legend */
1266
+ export class BahtHeatmapDirective {
1267
+ constructor() {
1268
+ /** The element itself, for its methods. */
1269
+ this.element = hostElement();
1270
+ }
1271
+ /** `{ date: 'YYYY-MM-DD', value }[]`; days with no entry render as empty. */
1272
+ set values(v) {
1273
+ assign(this.element, 'values', v);
1274
+ }
1275
+ /** First day (inclusive), `YYYY-MM-DD`. Defaults to the earliest value. */
1276
+ set from(v) {
1277
+ assign(this.element, 'from', v);
1278
+ }
1279
+ /** Last day (inclusive), `YYYY-MM-DD`. Defaults to the latest value. */
1280
+ set to(v) {
1281
+ assign(this.element, 'to', v);
1282
+ }
1283
+ /** Caption on the low end of the scale legend. */
1284
+ set lessLabel(v) {
1285
+ assign(this.element, 'lessLabel', v);
1286
+ }
1287
+ /** Caption on the high end of the scale legend. */
1288
+ set moreLabel(v) {
1289
+ assign(this.element, 'moreLabel', v);
1290
+ }
1291
+ /** Text shown in a zero/empty cell in `show-values` mode. */
1292
+ set zeroLabel(v) {
1293
+ assign(this.element, 'zeroLabel', v);
1294
+ }
1295
+ /** Roomier month-grid layout with the day number and value printed in each cell. */
1296
+ set showValues(v) {
1297
+ assign(this.element, 'showValues', v);
1298
+ }
1299
+ /** Accessible summary; falls back to a generated sentence. */
1300
+ set label(v) {
1301
+ assign(this.element, 'label', v);
1302
+ }
1303
+ /** Shown instead of the marks when there is nothing to plot. */
1304
+ set emptyMessage(v) {
1305
+ assign(this.element, 'emptyMessage', v);
1306
+ }
1307
+ /** Hold the previous render at reduced opacity while new data loads. */
1308
+ set loading(v) {
1309
+ assign(this.element, 'loading', v);
1310
+ }
1311
+ /** Render the "View as table" twin under the chart. */
1312
+ set showTable(v) {
1313
+ assign(this.element, 'showTable', v);
1314
+ }
1315
+ /** How values are rendered in labels, ticks, tooltips and the table twin. */
1316
+ set format(v) {
1317
+ assign(this.element, 'format', v);
1318
+ }
1319
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
1320
+ set currency(v) {
1321
+ assign(this.element, 'currency', v);
1322
+ }
1323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtHeatmapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1324
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtHeatmapDirective, isStandalone: true, selector: "baht-heatmap", inputs: { values: "values", from: "from", to: "to", lessLabel: "lessLabel", moreLabel: "moreLabel", zeroLabel: "zeroLabel", showValues: ["showValues", "showValues", booleanAttribute], label: "label", emptyMessage: "emptyMessage", loading: ["loading", "loading", booleanAttribute], showTable: ["showTable", "showTable", booleanAttribute], format: "format", currency: "currency" }, exportAs: ["bahtHeatmap"], ngImport: i0 }); }
1325
+ }
1326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtHeatmapDirective, decorators: [{
1327
+ type: Directive,
1328
+ args: [{ selector: 'baht-heatmap', exportAs: 'bahtHeatmap' }]
1329
+ }], propDecorators: { values: [{
1330
+ type: Input
1331
+ }], from: [{
1332
+ type: Input
1333
+ }], to: [{
1334
+ type: Input
1335
+ }], lessLabel: [{
1336
+ type: Input
1337
+ }], moreLabel: [{
1338
+ type: Input
1339
+ }], zeroLabel: [{
1340
+ type: Input
1341
+ }], showValues: [{
1342
+ type: Input,
1343
+ args: [{ transform: booleanAttribute }]
1344
+ }], label: [{
1345
+ type: Input
1346
+ }], emptyMessage: [{
1347
+ type: Input
1348
+ }], loading: [{
1349
+ type: Input,
1350
+ args: [{ transform: booleanAttribute }]
1351
+ }], showTable: [{
1352
+ type: Input,
1353
+ args: [{ transform: booleanAttribute }]
1354
+ }], format: [{
1355
+ type: Input
1356
+ }], currency: [{
1357
+ type: Input
1358
+ }] } });
1359
+ /** `<baht-input>`: text + email + password share one control; email differs only in input type + validator, password only in input type (masked, never formatted or logged). */
1360
+ export class BahtInputDirective {
1361
+ set field(v) {
1362
+ assign(this.element, 'field', v);
1363
+ }
1364
+ set value(v) {
1365
+ assign(this.element, 'value', v);
1366
+ }
1367
+ set disabled(v) {
1368
+ assign(this.element, 'disabled', v);
1369
+ }
1370
+ set readonly(v) {
1371
+ assign(this.element, 'readonly', v);
1372
+ }
1373
+ set required(v) {
1374
+ assign(this.element, 'required', v);
1375
+ }
1376
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
1377
+ set showOptional(v) {
1378
+ assign(this.element, 'showOptional', v);
1379
+ }
1380
+ set error(v) {
1381
+ assign(this.element, 'error', v);
1382
+ }
1383
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
1384
+ set debounce(v) {
1385
+ assign(this.element, 'debounce', v);
1386
+ }
1387
+ constructor() {
1388
+ /** The element itself, for its methods. */
1389
+ this.element = hostElement();
1390
+ /** Field mode: the user edited the value. */
1391
+ this.bahtInput = output();
1392
+ /** The value the user picked or typed, for `[(value)]`. */
1393
+ this.valueChange = output();
1394
+ relay(this.element, 'baht-input', this.bahtInput);
1395
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
1396
+ }
1397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1398
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtInputDirective, isStandalone: true, selector: "baht-input", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtInput"], ngImport: i0 }); }
1399
+ }
1400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtInputDirective, decorators: [{
1401
+ type: Directive,
1402
+ args: [{ selector: 'baht-input', exportAs: 'bahtInput' }]
1403
+ }], ctorParameters: () => [], propDecorators: { field: [{
1404
+ type: Input
1405
+ }], value: [{
1406
+ type: Input
1407
+ }], disabled: [{
1408
+ type: Input,
1409
+ args: [{ transform: booleanAttribute }]
1410
+ }], readonly: [{
1411
+ type: Input,
1412
+ args: [{ transform: booleanAttribute }]
1413
+ }], required: [{
1414
+ type: Input,
1415
+ args: [{ transform: booleanAttribute }]
1416
+ }], showOptional: [{
1417
+ type: Input,
1418
+ args: [{ transform: booleanAttribute }]
1419
+ }], error: [{
1420
+ type: Input
1421
+ }], debounce: [{
1422
+ type: Input,
1423
+ args: [{ transform: num }]
1424
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
1425
+ /** `<baht-keyvalue-editor>`: Inline key = value row editor (field maps, config objects, …) */
1426
+ export class BahtKeyvalueEditorDirective {
1427
+ set value(v) {
1428
+ assign(this.element, 'value', v);
1429
+ }
1430
+ set keyPlaceholder(v) {
1431
+ assign(this.element, 'keyPlaceholder', v);
1432
+ }
1433
+ set valuePlaceholder(v) {
1434
+ assign(this.element, 'valuePlaceholder', v);
1435
+ }
1436
+ set add_label(v) {
1437
+ assign(this.element, 'add_label', v);
1438
+ }
1439
+ set disabled(v) {
1440
+ assign(this.element, 'disabled', v);
1441
+ }
1442
+ constructor() {
1443
+ /** The element itself, for its methods. */
1444
+ this.element = hostElement();
1445
+ /** A pair was added, edited or removed. */
1446
+ this.bahtChange = output();
1447
+ /** The value the user picked or typed, for `[(value)]`. */
1448
+ this.valueChange = output();
1449
+ relay(this.element, 'baht-change', this.bahtChange);
1450
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
1451
+ }
1452
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtKeyvalueEditorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1453
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtKeyvalueEditorDirective, isStandalone: true, selector: "baht-keyvalue-editor", inputs: { value: "value", keyPlaceholder: "keyPlaceholder", valuePlaceholder: "valuePlaceholder", add_label: "add_label", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { bahtChange: "bahtChange", valueChange: "valueChange" }, exportAs: ["bahtKeyvalueEditor"], ngImport: i0 }); }
1454
+ }
1455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtKeyvalueEditorDirective, decorators: [{
1456
+ type: Directive,
1457
+ args: [{ selector: 'baht-keyvalue-editor', exportAs: 'bahtKeyvalueEditor' }]
1458
+ }], ctorParameters: () => [], propDecorators: { value: [{
1459
+ type: Input
1460
+ }], keyPlaceholder: [{
1461
+ type: Input
1462
+ }], valuePlaceholder: [{
1463
+ type: Input
1464
+ }], add_label: [{
1465
+ type: Input
1466
+ }], disabled: [{
1467
+ type: Input,
1468
+ args: [{ transform: booleanAttribute }]
1469
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
1470
+ /** `<baht-line-chart>`: Multi-series line chart with a crosshair tooltip that lists every series at the hovered x */
1471
+ export class BahtLineChartDirective {
1472
+ constructor() {
1473
+ /** The element itself, for its methods. */
1474
+ this.element = hostElement();
1475
+ }
1476
+ /** One entry per line: `{ name, values, color? }`. */
1477
+ set series(v) {
1478
+ assign(this.element, 'series', v);
1479
+ }
1480
+ /** X labels, one per value index. */
1481
+ set categories(v) {
1482
+ assign(this.element, 'categories', v);
1483
+ }
1484
+ /** Fill under the line at 10% opacity. Single series only. */
1485
+ set area(v) {
1486
+ assign(this.element, 'area', v);
1487
+ }
1488
+ /** Reference lines (targets, averages) drawn across the plot. */
1489
+ set markers(v) {
1490
+ assign(this.element, 'markers', v);
1491
+ }
1492
+ /** Draw the last N points dashed — a projection, not measured data. */
1493
+ set forecast(v) {
1494
+ assign(this.element, 'forecast', v);
1495
+ }
1496
+ /** Hairline at this value (0, a target). `null` draws none. */
1497
+ set baseline(v) {
1498
+ assign(this.element, 'baseline', v);
1499
+ }
1500
+ /** `ends` labels the last point of each line when the labels do not collide. */
1501
+ set labelValues(v) {
1502
+ assign(this.element, 'labelValues', v);
1503
+ }
1504
+ /** Accessible summary; falls back to a generated sentence. */
1505
+ set label(v) {
1506
+ assign(this.element, 'label', v);
1507
+ }
1508
+ /** Shown instead of the marks when there is nothing to plot. */
1509
+ set emptyMessage(v) {
1510
+ assign(this.element, 'emptyMessage', v);
1511
+ }
1512
+ /** Hold the previous render at reduced opacity while new data loads. */
1513
+ set loading(v) {
1514
+ assign(this.element, 'loading', v);
1515
+ }
1516
+ /** Render the "View as table" twin under the chart. */
1517
+ set showTable(v) {
1518
+ assign(this.element, 'showTable', v);
1519
+ }
1520
+ /** How values are rendered in labels, ticks, tooltips and the table twin. */
1521
+ set format(v) {
1522
+ assign(this.element, 'format', v);
1523
+ }
1524
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
1525
+ set currency(v) {
1526
+ assign(this.element, 'currency', v);
1527
+ }
1528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLineChartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1529
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtLineChartDirective, isStandalone: true, selector: "baht-line-chart", inputs: { series: "series", categories: "categories", area: ["area", "area", booleanAttribute], markers: "markers", forecast: ["forecast", "forecast", num], baseline: "baseline", labelValues: "labelValues", label: "label", emptyMessage: "emptyMessage", loading: ["loading", "loading", booleanAttribute], showTable: ["showTable", "showTable", booleanAttribute], format: "format", currency: "currency" }, exportAs: ["bahtLineChart"], ngImport: i0 }); }
1530
+ }
1531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLineChartDirective, decorators: [{
1532
+ type: Directive,
1533
+ args: [{ selector: 'baht-line-chart', exportAs: 'bahtLineChart' }]
1534
+ }], propDecorators: { series: [{
1535
+ type: Input
1536
+ }], categories: [{
1537
+ type: Input
1538
+ }], area: [{
1539
+ type: Input,
1540
+ args: [{ transform: booleanAttribute }]
1541
+ }], markers: [{
1542
+ type: Input
1543
+ }], forecast: [{
1544
+ type: Input,
1545
+ args: [{ transform: num }]
1546
+ }], baseline: [{
1547
+ type: Input
1548
+ }], labelValues: [{
1549
+ type: Input
1550
+ }], label: [{
1551
+ type: Input
1552
+ }], emptyMessage: [{
1553
+ type: Input
1554
+ }], loading: [{
1555
+ type: Input,
1556
+ args: [{ transform: booleanAttribute }]
1557
+ }], showTable: [{
1558
+ type: Input,
1559
+ args: [{ transform: booleanAttribute }]
1560
+ }], format: [{
1561
+ type: Input
1562
+ }], currency: [{
1563
+ type: Input
1564
+ }] } });
1565
+ /** `<baht-link>`: Styled anchor (20baht underline treatment) */
1566
+ export class BahtLinkDirective {
1567
+ constructor() {
1568
+ /** The element itself, for its methods. */
1569
+ this.element = hostElement();
1570
+ }
1571
+ set href(v) {
1572
+ assign(this.element, 'href', v);
1573
+ }
1574
+ set label(v) {
1575
+ assign(this.element, 'label', v);
1576
+ }
1577
+ set external(v) {
1578
+ assign(this.element, 'external', v);
1579
+ }
1580
+ /** Screen-reader suffix for external links (override to localize). */
1581
+ set externalHint(v) {
1582
+ assign(this.element, 'externalHint', v);
1583
+ }
1584
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1585
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtLinkDirective, isStandalone: true, selector: "baht-link", inputs: { href: "href", label: "label", external: ["external", "external", booleanAttribute], externalHint: "externalHint" }, exportAs: ["bahtLink"], ngImport: i0 }); }
1586
+ }
1587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLinkDirective, decorators: [{
1588
+ type: Directive,
1589
+ args: [{ selector: 'baht-link', exportAs: 'bahtLink' }]
1590
+ }], propDecorators: { href: [{
1591
+ type: Input
1592
+ }], label: [{
1593
+ type: Input
1594
+ }], external: [{
1595
+ type: Input,
1596
+ args: [{ transform: booleanAttribute }]
1597
+ }], externalHint: [{
1598
+ type: Input
1599
+ }] } });
1600
+ /** `<baht-list>`: Display list — same server-side contract as <baht-table>: `items` is the current page, `loading` shows skeleton rows, the host fetches on `baht-page-change` (pair with <baht-pagination>). */
1601
+ export class BahtListDirective {
1602
+ set items(v) {
1603
+ assign(this.element, 'items', v);
1604
+ }
1605
+ set loading(v) {
1606
+ assign(this.element, 'loading', v);
1607
+ }
1608
+ set error(v) {
1609
+ assign(this.element, 'error', v);
1610
+ }
1611
+ set errorMessage(v) {
1612
+ assign(this.element, 'errorMessage', v);
1613
+ }
1614
+ set emptyMessage(v) {
1615
+ assign(this.element, 'emptyMessage', v);
1616
+ }
1617
+ set skeletonRows(v) {
1618
+ assign(this.element, 'skeletonRows', v);
1619
+ }
1620
+ set clickable(v) {
1621
+ assign(this.element, 'clickable', v);
1622
+ }
1623
+ constructor() {
1624
+ /** The element itself, for its methods. */
1625
+ this.element = hostElement();
1626
+ /** An item was pressed. */
1627
+ this.bahtItemClick = output();
1628
+ relay(this.element, 'baht-item-click', this.bahtItemClick);
1629
+ }
1630
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1631
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtListDirective, isStandalone: true, selector: "baht-list", inputs: { items: "items", loading: ["loading", "loading", booleanAttribute], error: ["error", "error", booleanAttribute], errorMessage: "errorMessage", emptyMessage: "emptyMessage", skeletonRows: ["skeletonRows", "skeletonRows", num], clickable: ["clickable", "clickable", booleanAttribute] }, outputs: { bahtItemClick: "bahtItemClick" }, exportAs: ["bahtList"], ngImport: i0 }); }
1632
+ }
1633
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtListDirective, decorators: [{
1634
+ type: Directive,
1635
+ args: [{ selector: 'baht-list', exportAs: 'bahtList' }]
1636
+ }], ctorParameters: () => [], propDecorators: { items: [{
1637
+ type: Input
1638
+ }], loading: [{
1639
+ type: Input,
1640
+ args: [{ transform: booleanAttribute }]
1641
+ }], error: [{
1642
+ type: Input,
1643
+ args: [{ transform: booleanAttribute }]
1644
+ }], errorMessage: [{
1645
+ type: Input
1646
+ }], emptyMessage: [{
1647
+ type: Input
1648
+ }], skeletonRows: [{
1649
+ type: Input,
1650
+ args: [{ transform: num }]
1651
+ }], clickable: [{
1652
+ type: Input,
1653
+ args: [{ transform: booleanAttribute }]
1654
+ }], bahtItemClick: [{ type: i0.Output, args: ["bahtItemClick"] }] } });
1655
+ /** `<baht-loading-overlay>`: Full-viewport loading scrim with a centered spinner (0.4 ink scrim, same as `<baht-modal>`'s) */
1656
+ export class BahtLoadingOverlayDirective {
1657
+ constructor() {
1658
+ /** The element itself, for its methods. */
1659
+ this.element = hostElement();
1660
+ }
1661
+ set open(v) {
1662
+ assign(this.element, 'open', v);
1663
+ }
1664
+ set label(v) {
1665
+ assign(this.element, 'label', v);
1666
+ }
1667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLoadingOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1668
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtLoadingOverlayDirective, isStandalone: true, selector: "baht-loading-overlay", inputs: { open: ["open", "open", booleanAttribute], label: "label" }, exportAs: ["bahtLoadingOverlay"], ngImport: i0 }); }
1669
+ }
1670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtLoadingOverlayDirective, decorators: [{
1671
+ type: Directive,
1672
+ args: [{ selector: 'baht-loading-overlay', exportAs: 'bahtLoadingOverlay' }]
1673
+ }], propDecorators: { open: [{
1674
+ type: Input,
1675
+ args: [{ transform: booleanAttribute }]
1676
+ }], label: [{
1677
+ type: Input
1678
+ }] } });
1679
+ /** `<baht-markdown>`: `type: 'markdown'` — GitHub's comment box: Write and Preview tabs over a plain string of markdown */
1680
+ export class BahtMarkdownDirective {
1681
+ /** Resolved registry uploader — <baht-form> injects it when `field.uploader` is set. */
1682
+ set uploader(v) {
1683
+ assign(this.element, 'uploader', v);
1684
+ }
1685
+ /** Which image URLs may embed — <baht-form> injects `registry.markdownImage`. */
1686
+ set allowImage(v) {
1687
+ assign(this.element, 'allowImage', v);
1688
+ }
1689
+ set field(v) {
1690
+ assign(this.element, 'field', v);
1691
+ }
1692
+ set value(v) {
1693
+ assign(this.element, 'value', v);
1694
+ }
1695
+ set disabled(v) {
1696
+ assign(this.element, 'disabled', v);
1697
+ }
1698
+ set readonly(v) {
1699
+ assign(this.element, 'readonly', v);
1700
+ }
1701
+ set required(v) {
1702
+ assign(this.element, 'required', v);
1703
+ }
1704
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
1705
+ set showOptional(v) {
1706
+ assign(this.element, 'showOptional', v);
1707
+ }
1708
+ set error(v) {
1709
+ assign(this.element, 'error', v);
1710
+ }
1711
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
1712
+ set debounce(v) {
1713
+ assign(this.element, 'debounce', v);
1714
+ }
1715
+ constructor() {
1716
+ /** The element itself, for its methods. */
1717
+ this.element = hostElement();
1718
+ /** Field mode: the user edited the value. */
1719
+ this.bahtInput = output();
1720
+ /** The value the user picked or typed, for `[(value)]`. */
1721
+ this.valueChange = output();
1722
+ relay(this.element, 'baht-input', this.bahtInput);
1723
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
1724
+ }
1725
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMarkdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1726
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtMarkdownDirective, isStandalone: true, selector: "baht-markdown", inputs: { uploader: "uploader", allowImage: "allowImage", field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtMarkdown"], ngImport: i0 }); }
1727
+ }
1728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMarkdownDirective, decorators: [{
1729
+ type: Directive,
1730
+ args: [{ selector: 'baht-markdown', exportAs: 'bahtMarkdown' }]
1731
+ }], ctorParameters: () => [], propDecorators: { uploader: [{
1732
+ type: Input
1733
+ }], allowImage: [{
1734
+ type: Input
1735
+ }], field: [{
1736
+ type: Input
1737
+ }], value: [{
1738
+ type: Input
1739
+ }], disabled: [{
1740
+ type: Input,
1741
+ args: [{ transform: booleanAttribute }]
1742
+ }], readonly: [{
1743
+ type: Input,
1744
+ args: [{ transform: booleanAttribute }]
1745
+ }], required: [{
1746
+ type: Input,
1747
+ args: [{ transform: booleanAttribute }]
1748
+ }], showOptional: [{
1749
+ type: Input,
1750
+ args: [{ transform: booleanAttribute }]
1751
+ }], error: [{
1752
+ type: Input
1753
+ }], debounce: [{
1754
+ type: Input,
1755
+ args: [{ transform: num }]
1756
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
1757
+ /** `<baht-markdown-view>`: markdown source as sanitized HTML: GitHub-flavoured, raw HTML shown as text, and images only where `allowImage` says (same origin by default) */
1758
+ export class BahtMarkdownViewDirective {
1759
+ constructor() {
1760
+ /** The element itself, for its methods. */
1761
+ this.element = hostElement();
1762
+ }
1763
+ /** The markdown source. */
1764
+ set source(v) {
1765
+ assign(this.element, 'source', v);
1766
+ }
1767
+ /** Which image URLs may embed; any other image renders as a link. */
1768
+ set allowImage(v) {
1769
+ assign(this.element, 'allowImage', v);
1770
+ }
1771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMarkdownViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1772
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtMarkdownViewDirective, isStandalone: true, selector: "baht-markdown-view", inputs: { source: "source", allowImage: "allowImage" }, exportAs: ["bahtMarkdownView"], ngImport: i0 }); }
1773
+ }
1774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMarkdownViewDirective, decorators: [{
1775
+ type: Directive,
1776
+ args: [{ selector: 'baht-markdown-view', exportAs: 'bahtMarkdownView' }]
1777
+ }], propDecorators: { source: [{
1778
+ type: Input
1779
+ }], allowImage: [{
1780
+ type: Input
1781
+ }] } });
1782
+ /** `<baht-menu>`: Action menu behind a button: the ⋯ "more" menu on a table row or card, or a labelled "Export ▾" menu */
1783
+ export class BahtMenuDirective {
1784
+ /** Menu entries. Set as a property: `el.items = [...]`. */
1785
+ set items(v) {
1786
+ assign(this.element, 'items', v);
1787
+ }
1788
+ /** Visible trigger text; empty = an icon-only trigger. */
1789
+ set triggerLabel(v) {
1790
+ assign(this.element, 'triggerLabel', v);
1791
+ }
1792
+ /** Trigger icon from the curated set (default `more`, the ⋯). Ignored when `trigger-label` is set. */
1793
+ set icon(v) {
1794
+ assign(this.element, 'icon', v);
1795
+ }
1796
+ /** Accessible name of the trigger (and the menu). Defaults to the trigger text, else "More actions". */
1797
+ set label(v) {
1798
+ assign(this.element, 'label', v);
1799
+ }
1800
+ /** Trigger look: `ghost` (default) or `secondary`. */
1801
+ set variant(v) {
1802
+ assign(this.element, 'variant', v);
1803
+ }
1804
+ set size(v) {
1805
+ assign(this.element, 'size', v);
1806
+ }
1807
+ /** Menu edge aligned with the trigger: `'end'` (default) or `'start'`. */
1808
+ set align(v) {
1809
+ assign(this.element, 'align', v);
1810
+ }
1811
+ set disabled(v) {
1812
+ assign(this.element, 'disabled', v);
1813
+ }
1814
+ /** Non-item first line of the menu ("Signed in as …"). */
1815
+ set heading(v) {
1816
+ assign(this.element, 'heading', v);
1817
+ }
1818
+ constructor() {
1819
+ /** The element itself, for its methods. */
1820
+ this.element = hostElement();
1821
+ /** An item was picked (click, keyboard or its shortcut). `detail: { value, item }`. */
1822
+ this.bahtSelect = output();
1823
+ relay(this.element, 'baht-select', this.bahtSelect);
1824
+ }
1825
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1826
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtMenuDirective, isStandalone: true, selector: "baht-menu", inputs: { items: "items", triggerLabel: "triggerLabel", icon: "icon", label: "label", variant: "variant", size: "size", align: "align", disabled: ["disabled", "disabled", booleanAttribute], heading: "heading" }, outputs: { bahtSelect: "bahtSelect" }, exportAs: ["bahtMenu"], ngImport: i0 }); }
1827
+ }
1828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMenuDirective, decorators: [{
1829
+ type: Directive,
1830
+ args: [{ selector: 'baht-menu', exportAs: 'bahtMenu' }]
1831
+ }], ctorParameters: () => [], propDecorators: { items: [{
1832
+ type: Input
1833
+ }], triggerLabel: [{
1834
+ type: Input
1835
+ }], icon: [{
1836
+ type: Input
1837
+ }], label: [{
1838
+ type: Input
1839
+ }], variant: [{
1840
+ type: Input
1841
+ }], size: [{
1842
+ type: Input
1843
+ }], align: [{
1844
+ type: Input
1845
+ }], disabled: [{
1846
+ type: Input,
1847
+ args: [{ transform: booleanAttribute }]
1848
+ }], heading: [{
1849
+ type: Input
1850
+ }], bahtSelect: [{ type: i0.Output, args: ["bahtSelect"] }] } });
1851
+ /** `<baht-meter>`: Spent-against-budget meter */
1852
+ export class BahtMeterDirective {
1853
+ constructor() {
1854
+ /** The element itself, for its methods. */
1855
+ this.element = hostElement();
1856
+ }
1857
+ /** Amount used so far. */
1858
+ set value(v) {
1859
+ assign(this.element, 'value', v);
1860
+ }
1861
+ /** The budget / capacity the value is measured against. */
1862
+ set max(v) {
1863
+ assign(this.element, 'max', v);
1864
+ }
1865
+ /** Sentence-case caption. */
1866
+ set label(v) {
1867
+ assign(this.element, 'label', v);
1868
+ }
1869
+ /** How value and max read: number | currency | percent | compact. */
1870
+ set format(v) {
1871
+ assign(this.element, 'format', v);
1872
+ }
1873
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
1874
+ set currency(v) {
1875
+ assign(this.element, 'currency', v);
1876
+ }
1877
+ /** Fractions of `max` where the fill turns warning / danger. */
1878
+ set thresholds(v) {
1879
+ assign(this.element, 'thresholds', v);
1880
+ }
1881
+ /** Pace marker: where the value *should* be by now. `null` hides the tick. */
1882
+ set expected(v) {
1883
+ assign(this.element, 'expected', v);
1884
+ }
1885
+ /** Word shown after the numbers when the meter is over budget. */
1886
+ set overLabel(v) {
1887
+ assign(this.element, 'overLabel', v);
1888
+ }
1889
+ /** Word shown when the value has reached the budget exactly, but not passed it. */
1890
+ set atLabel(v) {
1891
+ assign(this.element, 'atLabel', v);
1892
+ }
1893
+ /** Word shown after the numbers when the meter is near its limit. */
1894
+ set nearLabel(v) {
1895
+ assign(this.element, 'nearLabel', v);
1896
+ }
1897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMeterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1898
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtMeterDirective, isStandalone: true, selector: "baht-meter", inputs: { value: ["value", "value", num], max: ["max", "max", num], label: "label", format: "format", currency: "currency", thresholds: "thresholds", expected: "expected", overLabel: "overLabel", atLabel: "atLabel", nearLabel: "nearLabel" }, exportAs: ["bahtMeter"], ngImport: i0 }); }
1899
+ }
1900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMeterDirective, decorators: [{
1901
+ type: Directive,
1902
+ args: [{ selector: 'baht-meter', exportAs: 'bahtMeter' }]
1903
+ }], propDecorators: { value: [{
1904
+ type: Input,
1905
+ args: [{ transform: num }]
1906
+ }], max: [{
1907
+ type: Input,
1908
+ args: [{ transform: num }]
1909
+ }], label: [{
1910
+ type: Input
1911
+ }], format: [{
1912
+ type: Input
1913
+ }], currency: [{
1914
+ type: Input
1915
+ }], thresholds: [{
1916
+ type: Input
1917
+ }], expected: [{
1918
+ type: Input
1919
+ }], overLabel: [{
1920
+ type: Input
1921
+ }], atLabel: [{
1922
+ type: Input
1923
+ }], nearLabel: [{
1924
+ type: Input
1925
+ }] } });
1926
+ /** `<baht-modal>`: Modal dialog (20baht: 0.4 ink scrim, no blur; float shadow; 20px radius) */
1927
+ export class BahtModalDirective {
1928
+ set open(v) {
1929
+ assign(this.element, 'open', v);
1930
+ }
1931
+ set heading(v) {
1932
+ assign(this.element, 'heading', v);
1933
+ }
1934
+ /** One muted line under the heading; also becomes the dialog's aria-describedby. */
1935
+ set description(v) {
1936
+ assign(this.element, 'description', v);
1937
+ }
1938
+ set showClose(v) {
1939
+ assign(this.element, 'showClose', v);
1940
+ }
1941
+ /** `'center'` (default) dialog, `'sheet'` bottom sheet below 600px (centered from 600px up), or `'side'` full-height drawer at the inline end. */
1942
+ set placement(v) {
1943
+ assign(this.element, 'placement', v);
1944
+ }
1945
+ /** Scrim click requests close. Off by default: a stray click outside the panel must not throw away what the user typed — close via ×, Escape or your buttons. */
1946
+ set closeOnScrim(v) {
1947
+ assign(this.element, 'closeOnScrim', v);
1948
+ }
1949
+ constructor() {
1950
+ /** The element itself, for its methods. */
1951
+ this.element = hostElement();
1952
+ /** Asked to close; the host sets `open` to false. */
1953
+ this.bahtClose = output();
1954
+ relay(this.element, 'baht-close', this.bahtClose);
1955
+ }
1956
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtModalDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1957
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtModalDirective, isStandalone: true, selector: "baht-modal", inputs: { open: ["open", "open", booleanAttribute], heading: "heading", description: "description", showClose: ["showClose", "showClose", booleanAttribute], placement: "placement", closeOnScrim: ["closeOnScrim", "closeOnScrim", booleanAttribute] }, outputs: { bahtClose: "bahtClose" }, exportAs: ["bahtModal"], ngImport: i0 }); }
1958
+ }
1959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtModalDirective, decorators: [{
1960
+ type: Directive,
1961
+ args: [{ selector: 'baht-modal', exportAs: 'bahtModal' }]
1962
+ }], ctorParameters: () => [], propDecorators: { open: [{
1963
+ type: Input,
1964
+ args: [{ transform: booleanAttribute }]
1965
+ }], heading: [{
1966
+ type: Input
1967
+ }], description: [{
1968
+ type: Input
1969
+ }], showClose: [{
1970
+ type: Input,
1971
+ args: [{ transform: booleanAttribute }]
1972
+ }], placement: [{
1973
+ type: Input
1974
+ }], closeOnScrim: [{
1975
+ type: Input,
1976
+ args: [{ transform: booleanAttribute }]
1977
+ }], bahtClose: [{ type: i0.Output, args: ["bahtClose"] }] } });
1978
+ /** `<baht-multiselect>`: Multi-pick rendered as a checkbox group; value = array of option keys. */
1979
+ export class BahtMultiselectDirective {
1980
+ set field(v) {
1981
+ assign(this.element, 'field', v);
1982
+ }
1983
+ set value(v) {
1984
+ assign(this.element, 'value', v);
1985
+ }
1986
+ set disabled(v) {
1987
+ assign(this.element, 'disabled', v);
1988
+ }
1989
+ set readonly(v) {
1990
+ assign(this.element, 'readonly', v);
1991
+ }
1992
+ set required(v) {
1993
+ assign(this.element, 'required', v);
1994
+ }
1995
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
1996
+ set showOptional(v) {
1997
+ assign(this.element, 'showOptional', v);
1998
+ }
1999
+ set error(v) {
2000
+ assign(this.element, 'error', v);
2001
+ }
2002
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2003
+ set debounce(v) {
2004
+ assign(this.element, 'debounce', v);
2005
+ }
2006
+ constructor() {
2007
+ /** The element itself, for its methods. */
2008
+ this.element = hostElement();
2009
+ /** Field mode: the user edited the value. */
2010
+ this.bahtInput = output();
2011
+ /** The value the user picked or typed, for `[(value)]`. */
2012
+ this.valueChange = output();
2013
+ relay(this.element, 'baht-input', this.bahtInput);
2014
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2015
+ }
2016
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMultiselectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2017
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtMultiselectDirective, isStandalone: true, selector: "baht-multiselect", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtMultiselect"], ngImport: i0 }); }
2018
+ }
2019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtMultiselectDirective, decorators: [{
2020
+ type: Directive,
2021
+ args: [{ selector: 'baht-multiselect', exportAs: 'bahtMultiselect' }]
2022
+ }], ctorParameters: () => [], propDecorators: { field: [{
2023
+ type: Input
2024
+ }], value: [{
2025
+ type: Input
2026
+ }], disabled: [{
2027
+ type: Input,
2028
+ args: [{ transform: booleanAttribute }]
2029
+ }], readonly: [{
2030
+ type: Input,
2031
+ args: [{ transform: booleanAttribute }]
2032
+ }], required: [{
2033
+ type: Input,
2034
+ args: [{ transform: booleanAttribute }]
2035
+ }], showOptional: [{
2036
+ type: Input,
2037
+ args: [{ transform: booleanAttribute }]
2038
+ }], error: [{
2039
+ type: Input
2040
+ }], debounce: [{
2041
+ type: Input,
2042
+ args: [{ transform: num }]
2043
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2044
+ /** `<baht-notification-bell>`: Header bell: an icon button with the unread count and a panel listing the notifications */
2045
+ export class BahtNotificationBellDirective {
2046
+ set items(v) {
2047
+ assign(this.element, 'items', v);
2048
+ }
2049
+ /** Unread count on the badge; defaults to the unread items. */
2050
+ set count(v) {
2051
+ assign(this.element, 'count', v);
2052
+ }
2053
+ set label(v) {
2054
+ assign(this.element, 'label', v);
2055
+ }
2056
+ set emptyMessage(v) {
2057
+ assign(this.element, 'emptyMessage', v);
2058
+ }
2059
+ constructor() {
2060
+ /** The element itself, for its methods. */
2061
+ this.element = hostElement();
2062
+ /** The panel opened (refresh the items then). */
2063
+ this.bahtOpen = output();
2064
+ /** A notification was picked; the panel closes. */
2065
+ this.bahtSelect = output();
2066
+ /** "Mark all read" was pressed. */
2067
+ this.bahtMarkAll = output();
2068
+ relay(this.element, 'baht-open', this.bahtOpen);
2069
+ relay(this.element, 'baht-select', this.bahtSelect);
2070
+ relay(this.element, 'baht-mark-all', this.bahtMarkAll);
2071
+ }
2072
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtNotificationBellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2073
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtNotificationBellDirective, isStandalone: true, selector: "baht-notification-bell", inputs: { items: "items", count: "count", label: "label", emptyMessage: "emptyMessage" }, outputs: { bahtOpen: "bahtOpen", bahtSelect: "bahtSelect", bahtMarkAll: "bahtMarkAll" }, exportAs: ["bahtNotificationBell"], ngImport: i0 }); }
2074
+ }
2075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtNotificationBellDirective, decorators: [{
2076
+ type: Directive,
2077
+ args: [{ selector: 'baht-notification-bell', exportAs: 'bahtNotificationBell' }]
2078
+ }], ctorParameters: () => [], propDecorators: { items: [{
2079
+ type: Input
2080
+ }], count: [{
2081
+ type: Input
2082
+ }], label: [{
2083
+ type: Input
2084
+ }], emptyMessage: [{
2085
+ type: Input
2086
+ }], bahtOpen: [{ type: i0.Output, args: ["bahtOpen"] }], bahtSelect: [{ type: i0.Output, args: ["bahtSelect"] }], bahtMarkAll: [{ type: i0.Output, args: ["bahtMarkAll"] }] } });
2087
+ /** `<baht-number>` */
2088
+ export class BahtNumberDirective {
2089
+ set field(v) {
2090
+ assign(this.element, 'field', v);
2091
+ }
2092
+ set value(v) {
2093
+ assign(this.element, 'value', v);
2094
+ }
2095
+ set disabled(v) {
2096
+ assign(this.element, 'disabled', v);
2097
+ }
2098
+ set readonly(v) {
2099
+ assign(this.element, 'readonly', v);
2100
+ }
2101
+ set required(v) {
2102
+ assign(this.element, 'required', v);
2103
+ }
2104
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2105
+ set showOptional(v) {
2106
+ assign(this.element, 'showOptional', v);
2107
+ }
2108
+ set error(v) {
2109
+ assign(this.element, 'error', v);
2110
+ }
2111
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2112
+ set debounce(v) {
2113
+ assign(this.element, 'debounce', v);
2114
+ }
2115
+ constructor() {
2116
+ /** The element itself, for its methods. */
2117
+ this.element = hostElement();
2118
+ /** Field mode: the user edited the value. */
2119
+ this.bahtInput = output();
2120
+ /** The value the user picked or typed, for `[(value)]`. */
2121
+ this.valueChange = output();
2122
+ relay(this.element, 'baht-input', this.bahtInput);
2123
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2124
+ }
2125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtNumberDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2126
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtNumberDirective, isStandalone: true, selector: "baht-number", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtNumber"], ngImport: i0 }); }
2127
+ }
2128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtNumberDirective, decorators: [{
2129
+ type: Directive,
2130
+ args: [{ selector: 'baht-number', exportAs: 'bahtNumber' }]
2131
+ }], ctorParameters: () => [], propDecorators: { field: [{
2132
+ type: Input
2133
+ }], value: [{
2134
+ type: Input
2135
+ }], disabled: [{
2136
+ type: Input,
2137
+ args: [{ transform: booleanAttribute }]
2138
+ }], readonly: [{
2139
+ type: Input,
2140
+ args: [{ transform: booleanAttribute }]
2141
+ }], required: [{
2142
+ type: Input,
2143
+ args: [{ transform: booleanAttribute }]
2144
+ }], showOptional: [{
2145
+ type: Input,
2146
+ args: [{ transform: booleanAttribute }]
2147
+ }], error: [{
2148
+ type: Input
2149
+ }], debounce: [{
2150
+ type: Input,
2151
+ args: [{ transform: num }]
2152
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2153
+ /** `<baht-order-box>`: The box beside a catalog item that orders it */
2154
+ export class BahtOrderBoxDirective {
2155
+ set heading(v) {
2156
+ assign(this.element, 'heading', v);
2157
+ }
2158
+ /** The button's text. */
2159
+ set label(v) {
2160
+ assign(this.element, 'label', v);
2161
+ }
2162
+ set disabled(v) {
2163
+ assign(this.element, 'disabled', v);
2164
+ }
2165
+ constructor() {
2166
+ /** The element itself, for its methods. */
2167
+ this.element = hostElement();
2168
+ /** The button was pressed. */
2169
+ this.bahtOrder = output();
2170
+ relay(this.element, 'baht-order', this.bahtOrder);
2171
+ }
2172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtOrderBoxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2173
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtOrderBoxDirective, isStandalone: true, selector: "baht-order-box", inputs: { heading: "heading", label: "label", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { bahtOrder: "bahtOrder" }, exportAs: ["bahtOrderBox"], ngImport: i0 }); }
2174
+ }
2175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtOrderBoxDirective, decorators: [{
2176
+ type: Directive,
2177
+ args: [{ selector: 'baht-order-box', exportAs: 'bahtOrderBox' }]
2178
+ }], ctorParameters: () => [], propDecorators: { heading: [{
2179
+ type: Input
2180
+ }], label: [{
2181
+ type: Input
2182
+ }], disabled: [{
2183
+ type: Input,
2184
+ args: [{ transform: booleanAttribute }]
2185
+ }], bahtOrder: [{ type: i0.Output, args: ["bahtOrder"] }] } });
2186
+ /** `<baht-otp>`: One-time-code input: N boxes, auto-advance, backspace steps back, paste distributes */
2187
+ export class BahtOtpDirective {
2188
+ set length(v) {
2189
+ assign(this.element, 'length', v);
2190
+ }
2191
+ set value(v) {
2192
+ assign(this.element, 'value', v);
2193
+ }
2194
+ set disabled(v) {
2195
+ assign(this.element, 'disabled', v);
2196
+ }
2197
+ /** 'numeric' restricts to digits; 'text' allows anything. */
2198
+ set mode(v) {
2199
+ assign(this.element, 'mode', v);
2200
+ }
2201
+ /** Accessible name for the group of boxes. */
2202
+ set label(v) {
2203
+ assign(this.element, 'label', v);
2204
+ }
2205
+ constructor() {
2206
+ /** The element itself, for its methods. */
2207
+ this.element = hostElement();
2208
+ /** A digit changed. */
2209
+ this.bahtChange = output();
2210
+ /** Every box is filled. */
2211
+ this.bahtOtpComplete = output();
2212
+ /** The value the user picked or typed, for `[(value)]`. */
2213
+ this.valueChange = output();
2214
+ relay(this.element, 'baht-change', this.bahtChange);
2215
+ relay(this.element, 'baht-otp-complete', this.bahtOtpComplete);
2216
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
2217
+ relay(this.element, 'baht-otp-complete', this.valueChange, (d) => d.value);
2218
+ }
2219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtOtpDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2220
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtOtpDirective, isStandalone: true, selector: "baht-otp", inputs: { length: ["length", "length", num], value: "value", disabled: ["disabled", "disabled", booleanAttribute], mode: "mode", label: "label" }, outputs: { bahtChange: "bahtChange", bahtOtpComplete: "bahtOtpComplete", valueChange: "valueChange" }, exportAs: ["bahtOtp"], ngImport: i0 }); }
2221
+ }
2222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtOtpDirective, decorators: [{
2223
+ type: Directive,
2224
+ args: [{ selector: 'baht-otp', exportAs: 'bahtOtp' }]
2225
+ }], ctorParameters: () => [], propDecorators: { length: [{
2226
+ type: Input,
2227
+ args: [{ transform: num }]
2228
+ }], value: [{
2229
+ type: Input
2230
+ }], disabled: [{
2231
+ type: Input,
2232
+ args: [{ transform: booleanAttribute }]
2233
+ }], mode: [{
2234
+ type: Input
2235
+ }], label: [{
2236
+ type: Input
2237
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtOtpComplete: [{ type: i0.Output, args: ["bahtOtpComplete"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2238
+ /** `<baht-page-header>`: The top of a page: a way back, the title, what the page is for and its actions */
2239
+ export class BahtPageHeaderDirective {
2240
+ set heading(v) {
2241
+ assign(this.element, 'heading', v);
2242
+ }
2243
+ set description(v) {
2244
+ assign(this.element, 'description', v);
2245
+ }
2246
+ /** Small line above the title. */
2247
+ set eyebrow(v) {
2248
+ assign(this.element, 'eyebrow', v);
2249
+ }
2250
+ set backLabel(v) {
2251
+ assign(this.element, 'backLabel', v);
2252
+ }
2253
+ set backHref(v) {
2254
+ assign(this.element, 'backHref', v);
2255
+ }
2256
+ constructor() {
2257
+ /** The element itself, for its methods. */
2258
+ this.element = hostElement();
2259
+ /** The back link was pressed. Cancelable: `preventDefault()` to route yourself. */
2260
+ this.bahtBack = output();
2261
+ relay(this.element, 'baht-back', this.bahtBack);
2262
+ }
2263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPageHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2264
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtPageHeaderDirective, isStandalone: true, selector: "baht-page-header", inputs: { heading: "heading", description: "description", eyebrow: "eyebrow", backLabel: "backLabel", backHref: "backHref" }, outputs: { bahtBack: "bahtBack" }, exportAs: ["bahtPageHeader"], ngImport: i0 }); }
2265
+ }
2266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPageHeaderDirective, decorators: [{
2267
+ type: Directive,
2268
+ args: [{ selector: 'baht-page-header', exportAs: 'bahtPageHeader' }]
2269
+ }], ctorParameters: () => [], propDecorators: { heading: [{
2270
+ type: Input
2271
+ }], description: [{
2272
+ type: Input
2273
+ }], eyebrow: [{
2274
+ type: Input
2275
+ }], backLabel: [{
2276
+ type: Input
2277
+ }], backHref: [{
2278
+ type: Input
2279
+ }], bahtBack: [{ type: i0.Output, args: ["bahtBack"] }] } });
2280
+ /** `<baht-pagination>`: Server-side pagination control: it never slices data — it only reports the page the user asked for via `baht-page-change`; the host fetches that page */
2281
+ export class BahtPaginationDirective {
2282
+ set page(v) {
2283
+ assign(this.element, 'page', v);
2284
+ }
2285
+ set totalPages(v) {
2286
+ assign(this.element, 'totalPages', v);
2287
+ }
2288
+ /** 'numbered' = 1 … 4 5 6 … 20 · 'compact' = « Page 4 of 20 · 'cursor' = « Prev / Next » */
2289
+ set variant(v) {
2290
+ assign(this.element, 'variant', v);
2291
+ }
2292
+ /** Numbered pages shown on each side of the current page. */
2293
+ set siblings(v) {
2294
+ assign(this.element, 'siblings', v);
2295
+ }
2296
+ /** cursor variant only — whether a next/previous page is available. */
2297
+ set hasNext(v) {
2298
+ assign(this.element, 'hasNext', v);
2299
+ }
2300
+ set hasPrev(v) {
2301
+ assign(this.element, 'hasPrev', v);
2302
+ }
2303
+ constructor() {
2304
+ /** The element itself, for its methods. */
2305
+ this.element = hostElement();
2306
+ /** A page was picked. */
2307
+ this.bahtPageChange = output();
2308
+ /** Cursor mode: next or previous was pressed. */
2309
+ this.bahtCursorChange = output();
2310
+ relay(this.element, 'baht-page-change', this.bahtPageChange);
2311
+ relay(this.element, 'baht-cursor-change', this.bahtCursorChange);
2312
+ }
2313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPaginationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2314
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtPaginationDirective, isStandalone: true, selector: "baht-pagination", inputs: { page: ["page", "page", num], totalPages: ["totalPages", "totalPages", num], variant: "variant", siblings: ["siblings", "siblings", num], hasNext: ["hasNext", "hasNext", booleanAttribute], hasPrev: ["hasPrev", "hasPrev", booleanAttribute] }, outputs: { bahtPageChange: "bahtPageChange", bahtCursorChange: "bahtCursorChange" }, exportAs: ["bahtPagination"], ngImport: i0 }); }
2315
+ }
2316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPaginationDirective, decorators: [{
2317
+ type: Directive,
2318
+ args: [{ selector: 'baht-pagination', exportAs: 'bahtPagination' }]
2319
+ }], ctorParameters: () => [], propDecorators: { page: [{
2320
+ type: Input,
2321
+ args: [{ transform: num }]
2322
+ }], totalPages: [{
2323
+ type: Input,
2324
+ args: [{ transform: num }]
2325
+ }], variant: [{
2326
+ type: Input
2327
+ }], siblings: [{
2328
+ type: Input,
2329
+ args: [{ transform: num }]
2330
+ }], hasNext: [{
2331
+ type: Input,
2332
+ args: [{ transform: booleanAttribute }]
2333
+ }], hasPrev: [{
2334
+ type: Input,
2335
+ args: [{ transform: booleanAttribute }]
2336
+ }], bahtPageChange: [{ type: i0.Output, args: ["bahtPageChange"] }], bahtCursorChange: [{ type: i0.Output, args: ["bahtCursorChange"] }] } });
2337
+ /** `<baht-popover>`: A floating panel anchored to a trigger — filters, a quick-edit form, a hover card you click open */
2338
+ export class BahtPopoverDirective {
2339
+ set open(v) {
2340
+ assign(this.element, 'open', v);
2341
+ }
2342
+ /** Accessible name of the panel. */
2343
+ set label(v) {
2344
+ assign(this.element, 'label', v);
2345
+ }
2346
+ /** Where the panel sits relative to the trigger. */
2347
+ set placement(v) {
2348
+ assign(this.element, 'placement', v);
2349
+ }
2350
+ constructor() {
2351
+ /** The element itself, for its methods. */
2352
+ this.element = hostElement();
2353
+ /** The user opened or closed it. `detail: { open }`. */
2354
+ this.bahtToggle = output();
2355
+ relay(this.element, 'baht-toggle', this.bahtToggle);
2356
+ }
2357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPopoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2358
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtPopoverDirective, isStandalone: true, selector: "baht-popover", inputs: { open: ["open", "open", booleanAttribute], label: "label", placement: "placement" }, outputs: { bahtToggle: "bahtToggle" }, exportAs: ["bahtPopover"], ngImport: i0 }); }
2359
+ }
2360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtPopoverDirective, decorators: [{
2361
+ type: Directive,
2362
+ args: [{ selector: 'baht-popover', exportAs: 'bahtPopover' }]
2363
+ }], ctorParameters: () => [], propDecorators: { open: [{
2364
+ type: Input,
2365
+ args: [{ transform: booleanAttribute }]
2366
+ }], label: [{
2367
+ type: Input
2368
+ }], placement: [{
2369
+ type: Input
2370
+ }], bahtToggle: [{ type: i0.Output, args: ["bahtToggle"] }] } });
2371
+ /** `<baht-progress>`: Progress bar */
2372
+ export class BahtProgressDirective {
2373
+ constructor() {
2374
+ /** The element itself, for its methods. */
2375
+ this.element = hostElement();
2376
+ }
2377
+ set value(v) {
2378
+ assign(this.element, 'value', v);
2379
+ }
2380
+ set tone(v) {
2381
+ assign(this.element, 'tone', v);
2382
+ }
2383
+ set showLabel(v) {
2384
+ assign(this.element, 'showLabel', v);
2385
+ }
2386
+ /** Accessible name for the progressbar. */
2387
+ set label(v) {
2388
+ assign(this.element, 'label', v);
2389
+ }
2390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtProgressDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2391
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtProgressDirective, isStandalone: true, selector: "baht-progress", inputs: { value: "value", tone: "tone", showLabel: ["showLabel", "showLabel", booleanAttribute], label: "label" }, exportAs: ["bahtProgress"], ngImport: i0 }); }
2392
+ }
2393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtProgressDirective, decorators: [{
2394
+ type: Directive,
2395
+ args: [{ selector: 'baht-progress', exportAs: 'bahtProgress' }]
2396
+ }], propDecorators: { value: [{
2397
+ type: Input
2398
+ }], tone: [{
2399
+ type: Input
2400
+ }], showLabel: [{
2401
+ type: Input,
2402
+ args: [{ transform: booleanAttribute }]
2403
+ }], label: [{
2404
+ type: Input
2405
+ }] } });
2406
+ /** `<baht-progress-ring>`: Circular single-value "percent used" ring — the round counterpart to `<baht-progress>`'s linear bar */
2407
+ export class BahtProgressRingDirective {
2408
+ constructor() {
2409
+ /** The element itself, for its methods. */
2410
+ this.element = hostElement();
2411
+ }
2412
+ /** 0-100, clamped. */
2413
+ set value(v) {
2414
+ assign(this.element, 'value', v);
2415
+ }
2416
+ set tone(v) {
2417
+ assign(this.element, 'tone', v);
2418
+ }
2419
+ /** Caption under the percentage, e.g. "of budget used". */
2420
+ set label(v) {
2421
+ assign(this.element, 'label', v);
2422
+ }
2423
+ /** Rendered pixel size (square). */
2424
+ set size(v) {
2425
+ assign(this.element, 'size', v);
2426
+ }
2427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtProgressRingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2428
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtProgressRingDirective, isStandalone: true, selector: "baht-progress-ring", inputs: { value: ["value", "value", num], tone: "tone", label: "label", size: ["size", "size", num] }, exportAs: ["bahtProgressRing"], ngImport: i0 }); }
2429
+ }
2430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtProgressRingDirective, decorators: [{
2431
+ type: Directive,
2432
+ args: [{ selector: 'baht-progress-ring', exportAs: 'bahtProgressRing' }]
2433
+ }], propDecorators: { value: [{
2434
+ type: Input,
2435
+ args: [{ transform: num }]
2436
+ }], tone: [{
2437
+ type: Input
2438
+ }], label: [{
2439
+ type: Input
2440
+ }], size: [{
2441
+ type: Input,
2442
+ args: [{ transform: num }]
2443
+ }] } });
2444
+ /** `<baht-radio>` */
2445
+ export class BahtRadioDirective {
2446
+ set field(v) {
2447
+ assign(this.element, 'field', v);
2448
+ }
2449
+ set value(v) {
2450
+ assign(this.element, 'value', v);
2451
+ }
2452
+ set disabled(v) {
2453
+ assign(this.element, 'disabled', v);
2454
+ }
2455
+ set readonly(v) {
2456
+ assign(this.element, 'readonly', v);
2457
+ }
2458
+ set required(v) {
2459
+ assign(this.element, 'required', v);
2460
+ }
2461
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2462
+ set showOptional(v) {
2463
+ assign(this.element, 'showOptional', v);
2464
+ }
2465
+ set error(v) {
2466
+ assign(this.element, 'error', v);
2467
+ }
2468
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2469
+ set debounce(v) {
2470
+ assign(this.element, 'debounce', v);
2471
+ }
2472
+ constructor() {
2473
+ /** The element itself, for its methods. */
2474
+ this.element = hostElement();
2475
+ /** Field mode: the user edited the value. */
2476
+ this.bahtInput = output();
2477
+ /** The value the user picked or typed, for `[(value)]`. */
2478
+ this.valueChange = output();
2479
+ relay(this.element, 'baht-input', this.bahtInput);
2480
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2481
+ }
2482
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2483
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtRadioDirective, isStandalone: true, selector: "baht-radio", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtRadio"], ngImport: i0 }); }
2484
+ }
2485
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRadioDirective, decorators: [{
2486
+ type: Directive,
2487
+ args: [{ selector: 'baht-radio', exportAs: 'bahtRadio' }]
2488
+ }], ctorParameters: () => [], propDecorators: { field: [{
2489
+ type: Input
2490
+ }], value: [{
2491
+ type: Input
2492
+ }], disabled: [{
2493
+ type: Input,
2494
+ args: [{ transform: booleanAttribute }]
2495
+ }], readonly: [{
2496
+ type: Input,
2497
+ args: [{ transform: booleanAttribute }]
2498
+ }], required: [{
2499
+ type: Input,
2500
+ args: [{ transform: booleanAttribute }]
2501
+ }], showOptional: [{
2502
+ type: Input,
2503
+ args: [{ transform: booleanAttribute }]
2504
+ }], error: [{
2505
+ type: Input
2506
+ }], debounce: [{
2507
+ type: Input,
2508
+ args: [{ transform: num }]
2509
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2510
+ /** `<baht-range>`: Range slider */
2511
+ export class BahtRangeDirective {
2512
+ /** Current value. Standalone: a number. Field mode: `number | null` (null = untouched). */
2513
+ set value(v) {
2514
+ assign(this.element, 'value', v);
2515
+ }
2516
+ /** Standalone lower bound; a field uses `field.min`. */
2517
+ set min(v) {
2518
+ assign(this.element, 'min', v);
2519
+ }
2520
+ /** Standalone upper bound; a field uses `field.max`. */
2521
+ set max(v) {
2522
+ assign(this.element, 'max', v);
2523
+ }
2524
+ /** Standalone step; a field uses `field.step`. */
2525
+ set step(v) {
2526
+ assign(this.element, 'step', v);
2527
+ }
2528
+ /** Standalone visible label; a field uses its label. */
2529
+ set label(v) {
2530
+ assign(this.element, 'label', v);
2531
+ }
2532
+ /** Show the current value next to the slider. */
2533
+ set showValue(v) {
2534
+ assign(this.element, 'showValue', v);
2535
+ }
2536
+ set field(v) {
2537
+ assign(this.element, 'field', v);
2538
+ }
2539
+ set disabled(v) {
2540
+ assign(this.element, 'disabled', v);
2541
+ }
2542
+ set readonly(v) {
2543
+ assign(this.element, 'readonly', v);
2544
+ }
2545
+ set required(v) {
2546
+ assign(this.element, 'required', v);
2547
+ }
2548
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2549
+ set showOptional(v) {
2550
+ assign(this.element, 'showOptional', v);
2551
+ }
2552
+ set error(v) {
2553
+ assign(this.element, 'error', v);
2554
+ }
2555
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2556
+ set debounce(v) {
2557
+ assign(this.element, 'debounce', v);
2558
+ }
2559
+ constructor() {
2560
+ /** The element itself, for its methods. */
2561
+ this.element = hostElement();
2562
+ /** Standalone mode: the slider moved. `detail: { value }`. */
2563
+ this.bahtChange = output();
2564
+ /** Field mode: the slider moved. `detail: { key, value }`. */
2565
+ this.bahtInput = output();
2566
+ /** The value the user picked or typed, for `[(value)]`. */
2567
+ this.valueChange = output();
2568
+ relay(this.element, 'baht-change', this.bahtChange);
2569
+ relay(this.element, 'baht-input', this.bahtInput);
2570
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
2571
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2572
+ }
2573
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2574
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtRangeDirective, isStandalone: true, selector: "baht-range", inputs: { value: "value", min: ["min", "min", num], max: ["max", "max", num], step: ["step", "step", num], label: "label", showValue: ["showValue", "showValue", booleanAttribute], field: "field", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtChange: "bahtChange", bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtRange"], ngImport: i0 }); }
2575
+ }
2576
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRangeDirective, decorators: [{
2577
+ type: Directive,
2578
+ args: [{ selector: 'baht-range', exportAs: 'bahtRange' }]
2579
+ }], ctorParameters: () => [], propDecorators: { value: [{
2580
+ type: Input
2581
+ }], min: [{
2582
+ type: Input,
2583
+ args: [{ transform: num }]
2584
+ }], max: [{
2585
+ type: Input,
2586
+ args: [{ transform: num }]
2587
+ }], step: [{
2588
+ type: Input,
2589
+ args: [{ transform: num }]
2590
+ }], label: [{
2591
+ type: Input
2592
+ }], showValue: [{
2593
+ type: Input,
2594
+ args: [{ transform: booleanAttribute }]
2595
+ }], field: [{
2596
+ type: Input
2597
+ }], disabled: [{
2598
+ type: Input,
2599
+ args: [{ transform: booleanAttribute }]
2600
+ }], readonly: [{
2601
+ type: Input,
2602
+ args: [{ transform: booleanAttribute }]
2603
+ }], required: [{
2604
+ type: Input,
2605
+ args: [{ transform: booleanAttribute }]
2606
+ }], showOptional: [{
2607
+ type: Input,
2608
+ args: [{ transform: booleanAttribute }]
2609
+ }], error: [{
2610
+ type: Input
2611
+ }], debounce: [{
2612
+ type: Input,
2613
+ args: [{ transform: num }]
2614
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2615
+ /** `<baht-rating>`: Star rating */
2616
+ export class BahtRatingDirective {
2617
+ /** Picked star count. Standalone: a number (`0` = none). Field mode: `number | null`. */
2618
+ set value(v) {
2619
+ assign(this.element, 'value', v);
2620
+ }
2621
+ /** Standalone star count; a field uses `field.max` instead. */
2622
+ set max(v) {
2623
+ assign(this.element, 'max', v);
2624
+ }
2625
+ /** Standalone accessible name for the radiogroup; a field uses its label. */
2626
+ set label(v) {
2627
+ assign(this.element, 'label', v);
2628
+ }
2629
+ set field(v) {
2630
+ assign(this.element, 'field', v);
2631
+ }
2632
+ set disabled(v) {
2633
+ assign(this.element, 'disabled', v);
2634
+ }
2635
+ set readonly(v) {
2636
+ assign(this.element, 'readonly', v);
2637
+ }
2638
+ set required(v) {
2639
+ assign(this.element, 'required', v);
2640
+ }
2641
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2642
+ set showOptional(v) {
2643
+ assign(this.element, 'showOptional', v);
2644
+ }
2645
+ set error(v) {
2646
+ assign(this.element, 'error', v);
2647
+ }
2648
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2649
+ set debounce(v) {
2650
+ assign(this.element, 'debounce', v);
2651
+ }
2652
+ constructor() {
2653
+ /** The element itself, for its methods. */
2654
+ this.element = hostElement();
2655
+ /** Standalone mode: a star was picked. `detail: { value }` (0 = cleared). */
2656
+ this.bahtChange = output();
2657
+ /** Field mode: a star was picked. `detail: { key, value }` (null = cleared). */
2658
+ this.bahtInput = output();
2659
+ /** The value the user picked or typed, for `[(value)]`. */
2660
+ this.valueChange = output();
2661
+ relay(this.element, 'baht-change', this.bahtChange);
2662
+ relay(this.element, 'baht-input', this.bahtInput);
2663
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
2664
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2665
+ }
2666
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRatingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2667
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtRatingDirective, isStandalone: true, selector: "baht-rating", inputs: { value: "value", max: ["max", "max", num], label: "label", field: "field", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtChange: "bahtChange", bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtRating"], ngImport: i0 }); }
2668
+ }
2669
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRatingDirective, decorators: [{
2670
+ type: Directive,
2671
+ args: [{ selector: 'baht-rating', exportAs: 'bahtRating' }]
2672
+ }], ctorParameters: () => [], propDecorators: { value: [{
2673
+ type: Input
2674
+ }], max: [{
2675
+ type: Input,
2676
+ args: [{ transform: num }]
2677
+ }], label: [{
2678
+ type: Input
2679
+ }], field: [{
2680
+ type: Input
2681
+ }], disabled: [{
2682
+ type: Input,
2683
+ args: [{ transform: booleanAttribute }]
2684
+ }], readonly: [{
2685
+ type: Input,
2686
+ args: [{ transform: booleanAttribute }]
2687
+ }], required: [{
2688
+ type: Input,
2689
+ args: [{ transform: booleanAttribute }]
2690
+ }], showOptional: [{
2691
+ type: Input,
2692
+ args: [{ transform: booleanAttribute }]
2693
+ }], error: [{
2694
+ type: Input
2695
+ }], debounce: [{
2696
+ type: Input,
2697
+ args: [{ transform: num }]
2698
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2699
+ /** `<baht-record-bar>`: The bar over a record: what it is, and what can be done to it, kept in sight while the form below scrolls */
2700
+ export class BahtRecordBarDirective {
2701
+ /** The lines naming the record, first one strongest. */
2702
+ set lines(v) {
2703
+ assign(this.element, 'lines', v);
2704
+ }
2705
+ set backHref(v) {
2706
+ assign(this.element, 'backHref', v);
2707
+ }
2708
+ set backLabel(v) {
2709
+ assign(this.element, 'backLabel', v);
2710
+ }
2711
+ /** `false` lets it scroll away with the page. */
2712
+ set sticky(v) {
2713
+ assign(this.element, 'sticky', v);
2714
+ }
2715
+ constructor() {
2716
+ /** The element itself, for its methods. */
2717
+ this.element = hostElement();
2718
+ /** The back link was pressed. Cancelable: `preventDefault()` to route yourself. */
2719
+ this.bahtBack = output();
2720
+ relay(this.element, 'baht-back', this.bahtBack);
2721
+ }
2722
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRecordBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2723
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtRecordBarDirective, isStandalone: true, selector: "baht-record-bar", inputs: { lines: "lines", backHref: "backHref", backLabel: "backLabel", sticky: ["sticky", "sticky", booleanAttribute] }, outputs: { bahtBack: "bahtBack" }, exportAs: ["bahtRecordBar"], ngImport: i0 }); }
2724
+ }
2725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRecordBarDirective, decorators: [{
2726
+ type: Directive,
2727
+ args: [{ selector: 'baht-record-bar', exportAs: 'bahtRecordBar' }]
2728
+ }], ctorParameters: () => [], propDecorators: { lines: [{
2729
+ type: Input
2730
+ }], backHref: [{
2731
+ type: Input
2732
+ }], backLabel: [{
2733
+ type: Input
2734
+ }], sticky: [{
2735
+ type: Input,
2736
+ args: [{ transform: booleanAttribute }]
2737
+ }], bahtBack: [{ type: i0.Output, args: ["bahtBack"] }] } });
2738
+ /** `<baht-reference-dialog>`: A reference's records as a table in a modal: search one column or every column, build a filter, sort by a header, add, remove and reorder columns, page through, and press a row's first cell to pick it */
2739
+ export class BahtReferenceDialogDirective {
2740
+ set open(v) {
2741
+ assign(this.element, 'open', v);
2742
+ }
2743
+ set heading(v) {
2744
+ assign(this.element, 'heading', v);
2745
+ }
2746
+ set columns(v) {
2747
+ assign(this.element, 'columns', v);
2748
+ }
2749
+ set lister(v) {
2750
+ assign(this.element, 'lister', v);
2751
+ }
2752
+ /** The record the field holds now, marked in the table. */
2753
+ set selected(v) {
2754
+ assign(this.element, 'selected', v);
2755
+ }
2756
+ /** Every column on offer; without it, only `columns`. */
2757
+ set walk(v) {
2758
+ assign(this.element, 'walk', v);
2759
+ }
2760
+ /** The columns this person chose last time. Keys no longer on offer are dropped. */
2761
+ set savedColumns(v) {
2762
+ assign(this.element, 'savedColumns', v);
2763
+ }
2764
+ /** The filters this person saved; null hides saving. The host keeps them. */
2765
+ set savedFilters(v) {
2766
+ assign(this.element, 'savedFilters', v);
2767
+ }
2768
+ constructor() {
2769
+ /** The element itself, for its methods. */
2770
+ this.element = hostElement();
2771
+ /** A record was picked. `detail: { key, label }`. */
2772
+ this.bahtPick = output();
2773
+ /** The modal was dismissed. */
2774
+ this.bahtClose = output();
2775
+ /** The columns were chosen. `detail: ColumnsChangeDetail`. */
2776
+ this.bahtColumnsChange = output();
2777
+ /** A filter was saved or deleted. `detail: { filters }`. */
2778
+ this.bahtSavedFiltersChange = output();
2779
+ relay(this.element, 'baht-pick', this.bahtPick);
2780
+ relay(this.element, 'baht-close', this.bahtClose);
2781
+ relay(this.element, 'baht-columns-change', this.bahtColumnsChange);
2782
+ relay(this.element, 'baht-saved-filters-change', this.bahtSavedFiltersChange);
2783
+ }
2784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtReferenceDialogDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2785
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtReferenceDialogDirective, isStandalone: true, selector: "baht-reference-dialog", inputs: { open: ["open", "open", booleanAttribute], heading: "heading", columns: "columns", lister: "lister", selected: "selected", walk: "walk", savedColumns: "savedColumns", savedFilters: "savedFilters" }, outputs: { bahtPick: "bahtPick", bahtClose: "bahtClose", bahtColumnsChange: "bahtColumnsChange", bahtSavedFiltersChange: "bahtSavedFiltersChange" }, exportAs: ["bahtReferenceDialog"], ngImport: i0 }); }
2786
+ }
2787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtReferenceDialogDirective, decorators: [{
2788
+ type: Directive,
2789
+ args: [{ selector: 'baht-reference-dialog', exportAs: 'bahtReferenceDialog' }]
2790
+ }], ctorParameters: () => [], propDecorators: { open: [{
2791
+ type: Input,
2792
+ args: [{ transform: booleanAttribute }]
2793
+ }], heading: [{
2794
+ type: Input
2795
+ }], columns: [{
2796
+ type: Input
2797
+ }], lister: [{
2798
+ type: Input
2799
+ }], selected: [{
2800
+ type: Input
2801
+ }], walk: [{
2802
+ type: Input
2803
+ }], savedColumns: [{
2804
+ type: Input
2805
+ }], savedFilters: [{
2806
+ type: Input
2807
+ }], bahtPick: [{ type: i0.Output, args: ["bahtPick"] }], bahtClose: [{ type: i0.Output, args: ["bahtClose"] }], bahtColumnsChange: [{ type: i0.Output, args: ["bahtColumnsChange"] }], bahtSavedFiltersChange: [{ type: i0.Output, args: ["bahtSavedFiltersChange"] }] } });
2808
+ /** `<baht-reference-picker>`: Reference lookup: read-only input + magnifier opening a typeahead dropdown */
2809
+ export class BahtReferencePickerDirective {
2810
+ /** Accessible name for the combobox + its option list (standalone; a field uses its label). */
2811
+ set label(v) {
2812
+ assign(this.element, 'label', v);
2813
+ }
2814
+ /** Selected id (the reference's key). Field mode: `string | null`. */
2815
+ set value(v) {
2816
+ assign(this.element, 'value', v);
2817
+ }
2818
+ /** Human-readable label for `value`; falls back to showing the raw id. */
2819
+ set display(v) {
2820
+ assign(this.element, 'display', v);
2821
+ }
2822
+ set placeholder(v) {
2823
+ assign(this.element, 'placeholder', v);
2824
+ }
2825
+ /** Marks the control invalid (styles + aria-invalid). */
2826
+ set invalid(v) {
2827
+ assign(this.element, 'invalid', v);
2828
+ }
2829
+ /** Optional link to the selected record, rendered as an external-link button. */
2830
+ set href(v) {
2831
+ assign(this.element, 'href', v);
2832
+ }
2833
+ /** Accessible name for the lookup button. */
2834
+ set lookupLabel(v) {
2835
+ assign(this.element, 'lookupLabel', v);
2836
+ }
2837
+ /** Debounce for search calls, ms (default 200). */
2838
+ set debounce(v) {
2839
+ assign(this.element, 'debounce', v);
2840
+ }
2841
+ /** Async search: term in, options out. Required for the dropdown to work (standalone). */
2842
+ set fetcher(v) {
2843
+ assign(this.element, 'fetcher', v);
2844
+ }
2845
+ /** Field mode: the record lookup (set by `<baht-form>` from `registry.references`). */
2846
+ set lookup(v) {
2847
+ assign(this.element, 'lookup', v);
2848
+ }
2849
+ set field(v) {
2850
+ assign(this.element, 'field', v);
2851
+ }
2852
+ set disabled(v) {
2853
+ assign(this.element, 'disabled', v);
2854
+ }
2855
+ set readonly(v) {
2856
+ assign(this.element, 'readonly', v);
2857
+ }
2858
+ set required(v) {
2859
+ assign(this.element, 'required', v);
2860
+ }
2861
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2862
+ set showOptional(v) {
2863
+ assign(this.element, 'showOptional', v);
2864
+ }
2865
+ set error(v) {
2866
+ assign(this.element, 'error', v);
2867
+ }
2868
+ constructor() {
2869
+ /** The element itself, for its methods. */
2870
+ this.element = hostElement();
2871
+ /** Standalone mode: a record was picked or cleared. `detail: { value, label }`. */
2872
+ this.bahtChange = output();
2873
+ /** Field mode: a record was picked or cleared. `detail: { key, value }`. */
2874
+ this.bahtInput = output();
2875
+ /** The value the user picked or typed, for `[(value)]`. */
2876
+ this.valueChange = output();
2877
+ relay(this.element, 'baht-change', this.bahtChange);
2878
+ relay(this.element, 'baht-input', this.bahtInput);
2879
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
2880
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2881
+ }
2882
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtReferencePickerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2883
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtReferencePickerDirective, isStandalone: true, selector: "baht-reference-picker", inputs: { label: "label", value: "value", display: "display", placeholder: "placeholder", invalid: ["invalid", "invalid", booleanAttribute], href: "href", lookupLabel: "lookupLabel", debounce: ["debounce", "debounce", num], fetcher: "fetcher", lookup: "lookup", field: "field", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error" }, outputs: { bahtChange: "bahtChange", bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtReferencePicker"], ngImport: i0 }); }
2884
+ }
2885
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtReferencePickerDirective, decorators: [{
2886
+ type: Directive,
2887
+ args: [{ selector: 'baht-reference-picker', exportAs: 'bahtReferencePicker' }]
2888
+ }], ctorParameters: () => [], propDecorators: { label: [{
2889
+ type: Input
2890
+ }], value: [{
2891
+ type: Input
2892
+ }], display: [{
2893
+ type: Input
2894
+ }], placeholder: [{
2895
+ type: Input
2896
+ }], invalid: [{
2897
+ type: Input,
2898
+ args: [{ transform: booleanAttribute }]
2899
+ }], href: [{
2900
+ type: Input
2901
+ }], lookupLabel: [{
2902
+ type: Input
2903
+ }], debounce: [{
2904
+ type: Input,
2905
+ args: [{ transform: num }]
2906
+ }], fetcher: [{
2907
+ type: Input
2908
+ }], lookup: [{
2909
+ type: Input
2910
+ }], field: [{
2911
+ type: Input
2912
+ }], disabled: [{
2913
+ type: Input,
2914
+ args: [{ transform: booleanAttribute }]
2915
+ }], readonly: [{
2916
+ type: Input,
2917
+ args: [{ transform: booleanAttribute }]
2918
+ }], required: [{
2919
+ type: Input,
2920
+ args: [{ transform: booleanAttribute }]
2921
+ }], showOptional: [{
2922
+ type: Input,
2923
+ args: [{ transform: booleanAttribute }]
2924
+ }], error: [{
2925
+ type: Input
2926
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
2927
+ /** `<baht-repeater>`: <baht-repeater> — array-of-rows control (spec 01 §10) */
2928
+ export class BahtRepeaterDirective {
2929
+ /** Row-scoped errors from the host form, keyed `key[i].subKey`. */
2930
+ set rowErrors(v) {
2931
+ assign(this.element, 'rowErrors', v);
2932
+ }
2933
+ /** Rule-derived states of the row sub-fields, keyed `key[i].sub` (spec 02 §2a). Absent = every sub-field visible with its descriptor defaults. */
2934
+ set rowStates(v) {
2935
+ assign(this.element, 'rowStates', v);
2936
+ }
2937
+ /** Set by the host form: what makes a `reference` column searchable. */
2938
+ set rowLookup(v) {
2939
+ assign(this.element, 'rowLookup', v);
2940
+ }
2941
+ set field(v) {
2942
+ assign(this.element, 'field', v);
2943
+ }
2944
+ set value(v) {
2945
+ assign(this.element, 'value', v);
2946
+ }
2947
+ set disabled(v) {
2948
+ assign(this.element, 'disabled', v);
2949
+ }
2950
+ set readonly(v) {
2951
+ assign(this.element, 'readonly', v);
2952
+ }
2953
+ set required(v) {
2954
+ assign(this.element, 'required', v);
2955
+ }
2956
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
2957
+ set showOptional(v) {
2958
+ assign(this.element, 'showOptional', v);
2959
+ }
2960
+ set error(v) {
2961
+ assign(this.element, 'error', v);
2962
+ }
2963
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
2964
+ set debounce(v) {
2965
+ assign(this.element, 'debounce', v);
2966
+ }
2967
+ constructor() {
2968
+ /** The element itself, for its methods. */
2969
+ this.element = hostElement();
2970
+ /** Field mode: the user edited the value. */
2971
+ this.bahtInput = output();
2972
+ /** The value the user picked or typed, for `[(value)]`. */
2973
+ this.valueChange = output();
2974
+ relay(this.element, 'baht-input', this.bahtInput);
2975
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
2976
+ }
2977
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRepeaterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2978
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtRepeaterDirective, isStandalone: true, selector: "baht-repeater", inputs: { rowErrors: "rowErrors", rowStates: "rowStates", rowLookup: "rowLookup", field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtRepeater"], ngImport: i0 }); }
2979
+ }
2980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRepeaterDirective, decorators: [{
2981
+ type: Directive,
2982
+ args: [{ selector: 'baht-repeater', exportAs: 'bahtRepeater' }]
2983
+ }], ctorParameters: () => [], propDecorators: { rowErrors: [{
2984
+ type: Input
2985
+ }], rowStates: [{
2986
+ type: Input
2987
+ }], rowLookup: [{
2988
+ type: Input
2989
+ }], field: [{
2990
+ type: Input
2991
+ }], value: [{
2992
+ type: Input
2993
+ }], disabled: [{
2994
+ type: Input,
2995
+ args: [{ transform: booleanAttribute }]
2996
+ }], readonly: [{
2997
+ type: Input,
2998
+ args: [{ transform: booleanAttribute }]
2999
+ }], required: [{
3000
+ type: Input,
3001
+ args: [{ transform: booleanAttribute }]
3002
+ }], showOptional: [{
3003
+ type: Input,
3004
+ args: [{ transform: booleanAttribute }]
3005
+ }], error: [{
3006
+ type: Input
3007
+ }], debounce: [{
3008
+ type: Input,
3009
+ args: [{ transform: num }]
3010
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
3011
+ /** `<baht-rule-builder>`: Edits a workflow's `rules` without code: "when all / any of <field> <is> <value>, then show / hide / make mandatory / set value / skip step" */
3012
+ export class BahtRuleBuilderDirective {
3013
+ set workflow(v) {
3014
+ assign(this.element, 'workflow', v);
3015
+ }
3016
+ constructor() {
3017
+ /** The element itself, for its methods. */
3018
+ this.element = hostElement();
3019
+ /** A rule was edited. */
3020
+ this.bahtChange = output();
3021
+ relay(this.element, 'baht-change', this.bahtChange);
3022
+ }
3023
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRuleBuilderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3024
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtRuleBuilderDirective, isStandalone: true, selector: "baht-rule-builder", inputs: { workflow: "workflow" }, outputs: { bahtChange: "bahtChange" }, exportAs: ["bahtRuleBuilder"], ngImport: i0 }); }
3025
+ }
3026
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtRuleBuilderDirective, decorators: [{
3027
+ type: Directive,
3028
+ args: [{ selector: 'baht-rule-builder', exportAs: 'bahtRuleBuilder' }]
3029
+ }], ctorParameters: () => [], propDecorators: { workflow: [{
3030
+ type: Input
3031
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }] } });
3032
+ /** `<baht-saved-filters>`: ServiceNow's Save Filters: name the filter being built, apply a saved one, delete one */
3033
+ export class BahtSavedFiltersDirective {
3034
+ set filters(v) {
3035
+ assign(this.element, 'filters', v);
3036
+ }
3037
+ /** The filter Save would keep. */
3038
+ set current(v) {
3039
+ assign(this.element, 'current', v);
3040
+ }
3041
+ /** What can be filtered on now. */
3042
+ set fields(v) {
3043
+ assign(this.element, 'fields', v);
3044
+ }
3045
+ constructor() {
3046
+ /** The element itself, for its methods. */
3047
+ this.element = hostElement();
3048
+ /** A saved filter was chosen. `detail: { value }`. */
3049
+ this.bahtFilterPick = output();
3050
+ /** One was saved or deleted. `detail: { filters }`. */
3051
+ this.bahtSavedFiltersChange = output();
3052
+ relay(this.element, 'baht-filter-pick', this.bahtFilterPick);
3053
+ relay(this.element, 'baht-saved-filters-change', this.bahtSavedFiltersChange);
3054
+ }
3055
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSavedFiltersDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3056
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtSavedFiltersDirective, isStandalone: true, selector: "baht-saved-filters", inputs: { filters: "filters", current: "current", fields: "fields" }, outputs: { bahtFilterPick: "bahtFilterPick", bahtSavedFiltersChange: "bahtSavedFiltersChange" }, exportAs: ["bahtSavedFilters"], ngImport: i0 }); }
3057
+ }
3058
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSavedFiltersDirective, decorators: [{
3059
+ type: Directive,
3060
+ args: [{ selector: 'baht-saved-filters', exportAs: 'bahtSavedFilters' }]
3061
+ }], ctorParameters: () => [], propDecorators: { filters: [{
3062
+ type: Input
3063
+ }], current: [{
3064
+ type: Input
3065
+ }], fields: [{
3066
+ type: Input
3067
+ }], bahtFilterPick: [{ type: i0.Output, args: ["bahtFilterPick"] }], bahtSavedFiltersChange: [{ type: i0.Output, args: ["bahtSavedFiltersChange"] }] } });
3068
+ /** `<baht-section>`: Section divider (`type: "section"`): heading + rule, no value */
3069
+ export class BahtSectionDirective {
3070
+ set field(v) {
3071
+ assign(this.element, 'field', v);
3072
+ }
3073
+ /** Folded right now. */
3074
+ set collapsed(v) {
3075
+ assign(this.element, 'collapsed', v);
3076
+ }
3077
+ constructor() {
3078
+ /** The element itself, for its methods. */
3079
+ this.element = hostElement();
3080
+ /** The user folded or unfolded it. `detail: { collapsed }`. */
3081
+ this.bahtSectionToggle = output();
3082
+ relay(this.element, 'baht-section-toggle', this.bahtSectionToggle);
3083
+ }
3084
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSectionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3085
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtSectionDirective, isStandalone: true, selector: "baht-section", inputs: { field: "field", collapsed: ["collapsed", "collapsed", booleanAttribute] }, outputs: { bahtSectionToggle: "bahtSectionToggle" }, exportAs: ["bahtSection"], ngImport: i0 }); }
3086
+ }
3087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSectionDirective, decorators: [{
3088
+ type: Directive,
3089
+ args: [{ selector: 'baht-section', exportAs: 'bahtSection' }]
3090
+ }], ctorParameters: () => [], propDecorators: { field: [{
3091
+ type: Input
3092
+ }], collapsed: [{
3093
+ type: Input,
3094
+ args: [{ transform: booleanAttribute }]
3095
+ }], bahtSectionToggle: [{ type: i0.Output, args: ["bahtSectionToggle"] }] } });
3096
+ /** `<baht-select>`: Single-choice dropdown */
3097
+ export class BahtSelectDirective {
3098
+ set field(v) {
3099
+ assign(this.element, 'field', v);
3100
+ }
3101
+ set value(v) {
3102
+ assign(this.element, 'value', v);
3103
+ }
3104
+ set disabled(v) {
3105
+ assign(this.element, 'disabled', v);
3106
+ }
3107
+ set readonly(v) {
3108
+ assign(this.element, 'readonly', v);
3109
+ }
3110
+ set required(v) {
3111
+ assign(this.element, 'required', v);
3112
+ }
3113
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
3114
+ set showOptional(v) {
3115
+ assign(this.element, 'showOptional', v);
3116
+ }
3117
+ set error(v) {
3118
+ assign(this.element, 'error', v);
3119
+ }
3120
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
3121
+ set debounce(v) {
3122
+ assign(this.element, 'debounce', v);
3123
+ }
3124
+ constructor() {
3125
+ /** The element itself, for its methods. */
3126
+ this.element = hostElement();
3127
+ /** Field mode: the user edited the value. */
3128
+ this.bahtInput = output();
3129
+ /** The value the user picked or typed, for `[(value)]`. */
3130
+ this.valueChange = output();
3131
+ relay(this.element, 'baht-input', this.bahtInput);
3132
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
3133
+ }
3134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3135
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtSelectDirective, isStandalone: true, selector: "baht-select", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtSelect"], ngImport: i0 }); }
3136
+ }
3137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSelectDirective, decorators: [{
3138
+ type: Directive,
3139
+ args: [{ selector: 'baht-select', exportAs: 'bahtSelect' }]
3140
+ }], ctorParameters: () => [], propDecorators: { field: [{
3141
+ type: Input
3142
+ }], value: [{
3143
+ type: Input
3144
+ }], disabled: [{
3145
+ type: Input,
3146
+ args: [{ transform: booleanAttribute }]
3147
+ }], readonly: [{
3148
+ type: Input,
3149
+ args: [{ transform: booleanAttribute }]
3150
+ }], required: [{
3151
+ type: Input,
3152
+ args: [{ transform: booleanAttribute }]
3153
+ }], showOptional: [{
3154
+ type: Input,
3155
+ args: [{ transform: booleanAttribute }]
3156
+ }], error: [{
3157
+ type: Input
3158
+ }], debounce: [{
3159
+ type: Input,
3160
+ args: [{ transform: num }]
3161
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
3162
+ /** `<baht-skeleton>`: Loading placeholder (opacity pulse — the 20baht system bans gradients in core UI, so no shimmer) */
3163
+ export class BahtSkeletonDirective {
3164
+ constructor() {
3165
+ /** The element itself, for its methods. */
3166
+ this.element = hostElement();
3167
+ }
3168
+ set variant(v) {
3169
+ assign(this.element, 'variant', v);
3170
+ }
3171
+ set width(v) {
3172
+ assign(this.element, 'width', v);
3173
+ }
3174
+ set height(v) {
3175
+ assign(this.element, 'height', v);
3176
+ }
3177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSkeletonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3178
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtSkeletonDirective, isStandalone: true, selector: "baht-skeleton", inputs: { variant: "variant", width: "width", height: "height" }, exportAs: ["bahtSkeleton"], ngImport: i0 }); }
3179
+ }
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSkeletonDirective, decorators: [{
3181
+ type: Directive,
3182
+ args: [{ selector: 'baht-skeleton', exportAs: 'bahtSkeleton' }]
3183
+ }], propDecorators: { variant: [{
3184
+ type: Input
3185
+ }], width: [{
3186
+ type: Input
3187
+ }], height: [{
3188
+ type: Input
3189
+ }] } });
3190
+ /** `<baht-sparkline>`: Micro trend line — no axes, no ticks, no tooltip */
3191
+ export class BahtSparklineDirective {
3192
+ constructor() {
3193
+ /** The element itself, for its methods. */
3194
+ this.element = hostElement();
3195
+ }
3196
+ /** The points, oldest first. Fewer than two points renders nothing. */
3197
+ set values(v) {
3198
+ assign(this.element, 'values', v);
3199
+ }
3200
+ /** Drawing width in px. */
3201
+ set width(v) {
3202
+ assign(this.element, 'width', v);
3203
+ }
3204
+ /** Drawing height in px. */
3205
+ set height(v) {
3206
+ assign(this.element, 'height', v);
3207
+ }
3208
+ /** Mark the newest point with an accent dot. */
3209
+ set accentLast(v) {
3210
+ assign(this.element, 'accentLast', v);
3211
+ }
3212
+ /** Line color; defaults to the de-emphasis chart token. */
3213
+ set color(v) {
3214
+ assign(this.element, 'color', v);
3215
+ }
3216
+ /** Accessible name; falls back to a plain "Trend of N points" sentence. */
3217
+ set label(v) {
3218
+ assign(this.element, 'label', v);
3219
+ }
3220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSparklineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3221
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtSparklineDirective, isStandalone: true, selector: "baht-sparkline", inputs: { values: "values", width: ["width", "width", num], height: ["height", "height", num], accentLast: ["accentLast", "accentLast", booleanAttribute], color: "color", label: "label" }, exportAs: ["bahtSparkline"], ngImport: i0 }); }
3222
+ }
3223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSparklineDirective, decorators: [{
3224
+ type: Directive,
3225
+ args: [{ selector: 'baht-sparkline', exportAs: 'bahtSparkline' }]
3226
+ }], propDecorators: { values: [{
3227
+ type: Input
3228
+ }], width: [{
3229
+ type: Input,
3230
+ args: [{ transform: num }]
3231
+ }], height: [{
3232
+ type: Input,
3233
+ args: [{ transform: num }]
3234
+ }], accentLast: [{
3235
+ type: Input,
3236
+ args: [{ transform: booleanAttribute }]
3237
+ }], color: [{
3238
+ type: Input
3239
+ }], label: [{
3240
+ type: Input
3241
+ }] } });
3242
+ /** `<baht-spinner>`: Loading spinner — the single animated icon the 20baht system allows */
3243
+ export class BahtSpinnerDirective {
3244
+ constructor() {
3245
+ /** The element itself, for its methods. */
3246
+ this.element = hostElement();
3247
+ }
3248
+ set size(v) {
3249
+ assign(this.element, 'size', v);
3250
+ }
3251
+ set label(v) {
3252
+ assign(this.element, 'label', v);
3253
+ }
3254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSpinnerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3255
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtSpinnerDirective, isStandalone: true, selector: "baht-spinner", inputs: { size: "size", label: "label" }, exportAs: ["bahtSpinner"], ngImport: i0 }); }
3256
+ }
3257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSpinnerDirective, decorators: [{
3258
+ type: Directive,
3259
+ args: [{ selector: 'baht-spinner', exportAs: 'bahtSpinner' }]
3260
+ }], propDecorators: { size: [{
3261
+ type: Input
3262
+ }], label: [{
3263
+ type: Input
3264
+ }] } });
3265
+ /** `<baht-split-button>`: Split button: a main action plus a ▾ toggle that opens a menu of related actions (NOTES 2026-10-31) */
3266
+ export class BahtSplitButtonDirective {
3267
+ /** Main action label. */
3268
+ set label(v) {
3269
+ assign(this.element, 'label', v);
3270
+ }
3271
+ set variant(v) {
3272
+ assign(this.element, 'variant', v);
3273
+ }
3274
+ set size(v) {
3275
+ assign(this.element, 'size', v);
3276
+ }
3277
+ set disabled(v) {
3278
+ assign(this.element, 'disabled', v);
3279
+ }
3280
+ /** Shortcut for the main action, e.g. `alt+s` (see `<baht-button shortcut>`). */
3281
+ set shortcut(v) {
3282
+ assign(this.element, 'shortcut', v);
3283
+ }
3284
+ /** Menu entries. Set as a property: `el.items = [...]`. */
3285
+ set items(v) {
3286
+ assign(this.element, 'items', v);
3287
+ }
3288
+ /** Menu edge aligned with the button: `'end'` (default, right in LTR) or `'start'`. */
3289
+ set align(v) {
3290
+ assign(this.element, 'align', v);
3291
+ }
3292
+ /** Accessible name of the ▾ toggle. Defaults to the localized "More actions". */
3293
+ set menuLabel(v) {
3294
+ assign(this.element, 'menuLabel', v);
3295
+ }
3296
+ constructor() {
3297
+ /** The element itself, for its methods. */
3298
+ this.element = hostElement();
3299
+ /** The main action was activated (click or its shortcut). */
3300
+ this.bahtClick = output();
3301
+ /** A menu item was picked. `detail: { value, item }`. */
3302
+ this.bahtSelect = output();
3303
+ relay(this.element, 'baht-click', this.bahtClick);
3304
+ relay(this.element, 'baht-select', this.bahtSelect);
3305
+ }
3306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSplitButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3307
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtSplitButtonDirective, isStandalone: true, selector: "baht-split-button", inputs: { label: "label", variant: "variant", size: "size", disabled: ["disabled", "disabled", booleanAttribute], shortcut: "shortcut", items: "items", align: "align", menuLabel: "menuLabel" }, outputs: { bahtClick: "bahtClick", bahtSelect: "bahtSelect" }, exportAs: ["bahtSplitButton"], ngImport: i0 }); }
3308
+ }
3309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSplitButtonDirective, decorators: [{
3310
+ type: Directive,
3311
+ args: [{ selector: 'baht-split-button', exportAs: 'bahtSplitButton' }]
3312
+ }], ctorParameters: () => [], propDecorators: { label: [{
3313
+ type: Input
3314
+ }], variant: [{
3315
+ type: Input
3316
+ }], size: [{
3317
+ type: Input
3318
+ }], disabled: [{
3319
+ type: Input,
3320
+ args: [{ transform: booleanAttribute }]
3321
+ }], shortcut: [{
3322
+ type: Input
3323
+ }], items: [{
3324
+ type: Input
3325
+ }], align: [{
3326
+ type: Input
3327
+ }], menuLabel: [{
3328
+ type: Input
3329
+ }], bahtClick: [{ type: i0.Output, args: ["bahtClick"] }], bahtSelect: [{ type: i0.Output, args: ["bahtSelect"] }] } });
3330
+ /** `<baht-stat>`: Stat tile: label, one figure, an optional delta against a named period and an optional sparkline */
3331
+ export class BahtStatDirective {
3332
+ constructor() {
3333
+ /** The element itself, for its methods. */
3334
+ this.element = hostElement();
3335
+ }
3336
+ /** Sentence-case caption above the figure, no trailing colon. */
3337
+ set label(v) {
3338
+ assign(this.element, 'label', v);
3339
+ }
3340
+ /** The figure. */
3341
+ set value(v) {
3342
+ assign(this.element, 'value', v);
3343
+ }
3344
+ /** How the figure reads: number | currency | percent | compact. */
3345
+ set format(v) {
3346
+ assign(this.element, 'format', v);
3347
+ }
3348
+ /** ISO currency code for `format="currency"` (THB renders `฿`). */
3349
+ set currency(v) {
3350
+ assign(this.element, 'currency', v);
3351
+ }
3352
+ /** Change against the previous period. `null` hides the delta row. With `delta-kind="pct"` it is a percentage (18 → "18%"); with `"abs"` it is a raw amount rendered with this tile's `format`. */
3353
+ set delta(v) {
3354
+ assign(this.element, 'delta', v);
3355
+ }
3356
+ /** Whether `delta` is a percentage or an absolute amount. */
3357
+ set deltaKind(v) {
3358
+ assign(this.element, 'deltaKind', v);
3359
+ }
3360
+ /** What the delta is measured against, e.g. "vs August". With no `delta` it is still rendered on its own as a muted caption, so a figure can name its period. */
3361
+ set deltaLabel(v) {
3362
+ assign(this.element, 'deltaLabel', v);
3363
+ }
3364
+ /** Is a rise good news? Spending tiles set `up-is-good="false"`. */
3365
+ set upIsGood(v) {
3366
+ assign(this.element, 'upIsGood', v);
3367
+ }
3368
+ /** Recent points drawn as a muted sparkline with an accent on the newest. */
3369
+ set trend(v) {
3370
+ assign(this.element, 'trend', v);
3371
+ }
3372
+ /** `hero` is the one 48px+ figure a view leads with. */
3373
+ set size(v) {
3374
+ assign(this.element, 'size', v);
3375
+ }
3376
+ /** Icon name from the curated set (see icons.ts), shown in a chip before the label. */
3377
+ set icon(v) {
3378
+ assign(this.element, 'icon', v);
3379
+ }
3380
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStatDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3381
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtStatDirective, isStandalone: true, selector: "baht-stat", inputs: { label: "label", value: ["value", "value", num], format: "format", currency: "currency", delta: "delta", deltaKind: "deltaKind", deltaLabel: "deltaLabel", upIsGood: ["upIsGood", "upIsGood", booleanAttribute], trend: "trend", size: "size", icon: "icon" }, exportAs: ["bahtStat"], ngImport: i0 }); }
3382
+ }
3383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStatDirective, decorators: [{
3384
+ type: Directive,
3385
+ args: [{ selector: 'baht-stat', exportAs: 'bahtStat' }]
3386
+ }], propDecorators: { label: [{
3387
+ type: Input
3388
+ }], value: [{
3389
+ type: Input,
3390
+ args: [{ transform: num }]
3391
+ }], format: [{
3392
+ type: Input
3393
+ }], currency: [{
3394
+ type: Input
3395
+ }], delta: [{
3396
+ type: Input
3397
+ }], deltaKind: [{
3398
+ type: Input
3399
+ }], deltaLabel: [{
3400
+ type: Input
3401
+ }], upIsGood: [{
3402
+ type: Input,
3403
+ args: [{ transform: booleanAttribute }]
3404
+ }], trend: [{
3405
+ type: Input
3406
+ }], size: [{
3407
+ type: Input
3408
+ }], icon: [{
3409
+ type: Input
3410
+ }] } });
3411
+ /** `<baht-stat-chart>`: Big single-number stat (report type "count") */
3412
+ export class BahtStatChartDirective {
3413
+ constructor() {
3414
+ /** The element itself, for its methods. */
3415
+ this.element = hostElement();
3416
+ }
3417
+ set total(v) {
3418
+ assign(this.element, 'total', v);
3419
+ }
3420
+ set label(v) {
3421
+ assign(this.element, 'label', v);
3422
+ }
3423
+ /** Overrides the number color (defaults to the primary token). */
3424
+ set color(v) {
3425
+ assign(this.element, 'color', v);
3426
+ }
3427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStatChartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3428
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtStatChartDirective, isStandalone: true, selector: "baht-stat-chart", inputs: { total: ["total", "total", num], label: "label", color: "color" }, exportAs: ["bahtStatChart"], ngImport: i0 }); }
3429
+ }
3430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStatChartDirective, decorators: [{
3431
+ type: Directive,
3432
+ args: [{ selector: 'baht-stat-chart', exportAs: 'bahtStatChart' }]
3433
+ }], propDecorators: { total: [{
3434
+ type: Input,
3435
+ args: [{ transform: num }]
3436
+ }], label: [{
3437
+ type: Input
3438
+ }], color: [{
3439
+ type: Input
3440
+ }] } });
3441
+ /** `<baht-steps>`: <baht-steps> — wizard progress indicator (spec 03) */
3442
+ export class BahtStepsDirective {
3443
+ constructor() {
3444
+ /** The element itself, for its methods. */
3445
+ this.element = hostElement();
3446
+ }
3447
+ /** Step labels in order. */
3448
+ set steps(v) {
3449
+ assign(this.element, 'steps', v);
3450
+ }
3451
+ /** 0-based index of the current step. */
3452
+ set current(v) {
3453
+ assign(this.element, 'current', v);
3454
+ }
3455
+ /** 'default' = horizontal numbered markers; 'sidebar' = vertical nav list, current pilled; 'chevron' = a joined strip of states, scrolling sideways when it does not fit. */
3456
+ set variant(v) {
3457
+ assign(this.element, 'variant', v);
3458
+ }
3459
+ /** chevron: tick the steps before the current one. Off when the strip lists states, not progress. */
3460
+ set showDone(v) {
3461
+ assign(this.element, 'showDone', v);
3462
+ }
3463
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStepsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3464
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtStepsDirective, isStandalone: true, selector: "baht-steps", inputs: { steps: "steps", current: ["current", "current", num], variant: "variant", showDone: ["showDone", "showDone", booleanAttribute] }, exportAs: ["bahtSteps"], ngImport: i0 }); }
3465
+ }
3466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtStepsDirective, decorators: [{
3467
+ type: Directive,
3468
+ args: [{ selector: 'baht-steps', exportAs: 'bahtSteps' }]
3469
+ }], propDecorators: { steps: [{
3470
+ type: Input
3471
+ }], current: [{
3472
+ type: Input,
3473
+ args: [{ transform: num }]
3474
+ }], variant: [{
3475
+ type: Input
3476
+ }], showDone: [{
3477
+ type: Input,
3478
+ args: [{ transform: booleanAttribute }]
3479
+ }] } });
3480
+ /** `<baht-swipe-row>`: Row container for touch lists: the children are the row, `actions` sit behind it on the right and are revealed by swiping the row left */
3481
+ export class BahtSwipeRowDirective {
3482
+ /** Actions revealed by the swipe, in order: `{ key, label, tone? }`. */
3483
+ set actions(v) {
3484
+ assign(this.element, 'actions', v);
3485
+ }
3486
+ /** Revealed state. Reflected; set it to open or close the row from the host. */
3487
+ set open(v) {
3488
+ assign(this.element, 'open', v);
3489
+ }
3490
+ /** Accessible name of the action group (default: the i18n `rowActions` string). */
3491
+ set label(v) {
3492
+ assign(this.element, 'label', v);
3493
+ }
3494
+ constructor() {
3495
+ /** The element itself, for its methods. */
3496
+ this.element = hostElement();
3497
+ /** A revealed action was pressed. */
3498
+ this.bahtAction = output();
3499
+ relay(this.element, 'baht-action', this.bahtAction);
3500
+ }
3501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSwipeRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3502
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtSwipeRowDirective, isStandalone: true, selector: "baht-swipe-row", inputs: { actions: "actions", open: ["open", "open", booleanAttribute], label: "label" }, outputs: { bahtAction: "bahtAction" }, exportAs: ["bahtSwipeRow"], ngImport: i0 }); }
3503
+ }
3504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtSwipeRowDirective, decorators: [{
3505
+ type: Directive,
3506
+ args: [{ selector: 'baht-swipe-row', exportAs: 'bahtSwipeRow' }]
3507
+ }], ctorParameters: () => [], propDecorators: { actions: [{
3508
+ type: Input
3509
+ }], open: [{
3510
+ type: Input,
3511
+ args: [{ transform: booleanAttribute }]
3512
+ }], label: [{
3513
+ type: Input
3514
+ }], bahtAction: [{ type: i0.Output, args: ["bahtAction"] }] } });
3515
+ /** `<baht-table>`: Server-side data table */
3516
+ export class BahtTableDirective {
3517
+ /** Rows of the CURRENT page. */
3518
+ set items(v) {
3519
+ assign(this.element, 'items', v);
3520
+ }
3521
+ /** column key -> display name, or a reference column with `fields` (property); empty = derive keys from the first row (`snake_case` -> `Title Case`). */
3522
+ set columns(v) {
3523
+ assign(this.element, 'columns', v);
3524
+ }
3525
+ set loading(v) {
3526
+ assign(this.element, 'loading', v);
3527
+ }
3528
+ set error(v) {
3529
+ assign(this.element, 'error', v);
3530
+ }
3531
+ set errorMessage(v) {
3532
+ assign(this.element, 'errorMessage', v);
3533
+ }
3534
+ set emptyMessage(v) {
3535
+ assign(this.element, 'emptyMessage', v);
3536
+ }
3537
+ /** Row-number column (No.). Offset lets numbering continue across pages. */
3538
+ set showIndex(v) {
3539
+ assign(this.element, 'showIndex', v);
3540
+ }
3541
+ set indexOffset(v) {
3542
+ assign(this.element, 'indexOffset', v);
3543
+ }
3544
+ set skeletonRows(v) {
3545
+ assign(this.element, 'skeletonRows', v);
3546
+ }
3547
+ /** Which row key identifies a row in baht-row-click detail.id (e.g. 'group_id'). */
3548
+ set rowKey(v) {
3549
+ assign(this.element, 'rowKey', v);
3550
+ }
3551
+ /** Rows emit baht-row-click + get hover/keyboard affordances. */
3552
+ set clickable(v) {
3553
+ assign(this.element, 'clickable', v);
3554
+ }
3555
+ /** Custom cell renderers by column key, dotted keys included (functions — a property, never JSON). */
3556
+ set renderers(v) {
3557
+ assign(this.element, 'renderers', v);
3558
+ }
3559
+ /** Subset + order of columns to render (dotted keys allowed); empty/omitted = show all top-level columns. */
3560
+ set visibleColumns(v) {
3561
+ assign(this.element, 'visibleColumns', v);
3562
+ }
3563
+ /** Group the page's rows by this (dotted) column key — or a function of the row (property). Unset = no grouping. */
3564
+ set groupBy(v) {
3565
+ assign(this.element, 'groupBy', v);
3566
+ }
3567
+ /** Group header content (property); default is "Column: value (n)". */
3568
+ set groupLabel(v) {
3569
+ assign(this.element, 'groupLabel', v);
3570
+ }
3571
+ /** Group headers are disclosures (click to collapse). Set the JS property to `false` for static headers. */
3572
+ set groupCollapsible(v) {
3573
+ assign(this.element, 'groupCollapsible', v);
3574
+ }
3575
+ /** Start every group collapsed (per page — resets when `items`/`page` change). */
3576
+ set groupCollapsed(v) {
3577
+ assign(this.element, 'groupCollapsed', v);
3578
+ }
3579
+ /** Drop the column header row (list-style tables, e.g. grouped ledgers). */
3580
+ set hideHeader(v) {
3581
+ assign(this.element, 'hideHeader', v);
3582
+ }
3583
+ /** Built-in "Columns" toggle — derives its options from `columns`/rows. Set `column-picker="false"` to hide it. */
3584
+ set columnPicker(v) {
3585
+ assign(this.element, 'columnPicker', v);
3586
+ }
3587
+ /** Total matching rows across all pages — renders "{n} results" in the toolbar. Unset = no count. */
3588
+ set total(v) {
3589
+ assign(this.element, 'total', v);
3590
+ }
3591
+ set selectable(v) {
3592
+ assign(this.element, 'selectable', v);
3593
+ }
3594
+ set selected(v) {
3595
+ assign(this.element, 'selected', v);
3596
+ }
3597
+ /** Make every column sortable (or set `sortable` per column in `columns`). */
3598
+ set sortable(v) {
3599
+ assign(this.element, 'sortable', v);
3600
+ }
3601
+ /** Current sort, mirrored in the header (`aria-sort`); the host keeps it in sync with the fetch. */
3602
+ set sort(v) {
3603
+ assign(this.element, 'sort', v);
3604
+ }
3605
+ /** A Filter button: a condition builder over every column, and the applied conditions as breadcrumbs. */
3606
+ set filterable(v) {
3607
+ assign(this.element, 'filterable', v);
3608
+ }
3609
+ /** The applied filter; the host applies it and keeps it in sync. */
3610
+ set filter(v) {
3611
+ assign(this.element, 'filter', v);
3612
+ }
3613
+ /** The filters this person saved; null hides saving. The host keeps them. */
3614
+ set savedFilters(v) {
3615
+ assign(this.element, 'savedFilters', v);
3616
+ }
3617
+ /** Trailing "..." button per row; emits `baht-row-actions { row, index, id }`. */
3618
+ set rowActions(v) {
3619
+ assign(this.element, 'rowActions', v);
3620
+ }
3621
+ set page(v) {
3622
+ assign(this.element, 'page', v);
3623
+ }
3624
+ set totalPages(v) {
3625
+ assign(this.element, 'totalPages', v);
3626
+ }
3627
+ /** Keep the footer with one page too, so a list always shows where the pages are. */
3628
+ set alwaysPaginate(v) {
3629
+ assign(this.element, 'alwaysPaginate', v);
3630
+ }
3631
+ /** Switch the footer to Prev/Next (cursor-based API, no total count). */
3632
+ set cursorMode(v) {
3633
+ assign(this.element, 'cursorMode', v);
3634
+ }
3635
+ set hasNext(v) {
3636
+ assign(this.element, 'hasNext', v);
3637
+ }
3638
+ set hasPrev(v) {
3639
+ assign(this.element, 'hasPrev', v);
3640
+ }
3641
+ constructor() {
3642
+ /** The element itself, for its methods. */
3643
+ this.element = hostElement();
3644
+ /** A row was pressed. */
3645
+ this.bahtRowClick = output();
3646
+ /** The selection changed. */
3647
+ this.bahtSelectionChange = output();
3648
+ /** A sortable header was pressed. */
3649
+ this.bahtSortChange = output();
3650
+ /** The column picker was confirmed. */
3651
+ this.bahtColumnsChange = output();
3652
+ /** The filter changed. */
3653
+ this.bahtFilterChange = output();
3654
+ /** A group was collapsed or expanded. */
3655
+ this.bahtGroupToggle = output();
3656
+ /** A row's actions button was pressed. */
3657
+ this.bahtRowActions = output();
3658
+ relay(this.element, 'baht-row-click', this.bahtRowClick);
3659
+ relay(this.element, 'baht-selection-change', this.bahtSelectionChange);
3660
+ relay(this.element, 'baht-sort-change', this.bahtSortChange);
3661
+ relay(this.element, 'baht-columns-change', this.bahtColumnsChange);
3662
+ relay(this.element, 'baht-filter-change', this.bahtFilterChange);
3663
+ relay(this.element, 'baht-group-toggle', this.bahtGroupToggle);
3664
+ relay(this.element, 'baht-row-actions', this.bahtRowActions);
3665
+ }
3666
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3667
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtTableDirective, isStandalone: true, selector: "baht-table", inputs: { items: "items", columns: "columns", loading: ["loading", "loading", booleanAttribute], error: ["error", "error", booleanAttribute], errorMessage: "errorMessage", emptyMessage: "emptyMessage", showIndex: ["showIndex", "showIndex", booleanAttribute], indexOffset: ["indexOffset", "indexOffset", num], skeletonRows: ["skeletonRows", "skeletonRows", num], rowKey: "rowKey", clickable: ["clickable", "clickable", booleanAttribute], renderers: "renderers", visibleColumns: "visibleColumns", groupBy: "groupBy", groupLabel: "groupLabel", groupCollapsible: ["groupCollapsible", "groupCollapsible", booleanAttribute], groupCollapsed: ["groupCollapsed", "groupCollapsed", booleanAttribute], hideHeader: ["hideHeader", "hideHeader", booleanAttribute], columnPicker: ["columnPicker", "columnPicker", booleanAttribute], total: ["total", "total", num], selectable: ["selectable", "selectable", booleanAttribute], selected: "selected", sortable: ["sortable", "sortable", booleanAttribute], sort: "sort", filterable: ["filterable", "filterable", booleanAttribute], filter: "filter", savedFilters: "savedFilters", rowActions: ["rowActions", "rowActions", booleanAttribute], page: ["page", "page", num], totalPages: ["totalPages", "totalPages", num], alwaysPaginate: ["alwaysPaginate", "alwaysPaginate", booleanAttribute], cursorMode: ["cursorMode", "cursorMode", booleanAttribute], hasNext: ["hasNext", "hasNext", booleanAttribute], hasPrev: ["hasPrev", "hasPrev", booleanAttribute] }, outputs: { bahtRowClick: "bahtRowClick", bahtSelectionChange: "bahtSelectionChange", bahtSortChange: "bahtSortChange", bahtColumnsChange: "bahtColumnsChange", bahtFilterChange: "bahtFilterChange", bahtGroupToggle: "bahtGroupToggle", bahtRowActions: "bahtRowActions" }, exportAs: ["bahtTable"], ngImport: i0 }); }
3668
+ }
3669
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTableDirective, decorators: [{
3670
+ type: Directive,
3671
+ args: [{ selector: 'baht-table', exportAs: 'bahtTable' }]
3672
+ }], ctorParameters: () => [], propDecorators: { items: [{
3673
+ type: Input
3674
+ }], columns: [{
3675
+ type: Input
3676
+ }], loading: [{
3677
+ type: Input,
3678
+ args: [{ transform: booleanAttribute }]
3679
+ }], error: [{
3680
+ type: Input,
3681
+ args: [{ transform: booleanAttribute }]
3682
+ }], errorMessage: [{
3683
+ type: Input
3684
+ }], emptyMessage: [{
3685
+ type: Input
3686
+ }], showIndex: [{
3687
+ type: Input,
3688
+ args: [{ transform: booleanAttribute }]
3689
+ }], indexOffset: [{
3690
+ type: Input,
3691
+ args: [{ transform: num }]
3692
+ }], skeletonRows: [{
3693
+ type: Input,
3694
+ args: [{ transform: num }]
3695
+ }], rowKey: [{
3696
+ type: Input
3697
+ }], clickable: [{
3698
+ type: Input,
3699
+ args: [{ transform: booleanAttribute }]
3700
+ }], renderers: [{
3701
+ type: Input
3702
+ }], visibleColumns: [{
3703
+ type: Input
3704
+ }], groupBy: [{
3705
+ type: Input
3706
+ }], groupLabel: [{
3707
+ type: Input
3708
+ }], groupCollapsible: [{
3709
+ type: Input,
3710
+ args: [{ transform: booleanAttribute }]
3711
+ }], groupCollapsed: [{
3712
+ type: Input,
3713
+ args: [{ transform: booleanAttribute }]
3714
+ }], hideHeader: [{
3715
+ type: Input,
3716
+ args: [{ transform: booleanAttribute }]
3717
+ }], columnPicker: [{
3718
+ type: Input,
3719
+ args: [{ transform: booleanAttribute }]
3720
+ }], total: [{
3721
+ type: Input,
3722
+ args: [{ transform: num }]
3723
+ }], selectable: [{
3724
+ type: Input,
3725
+ args: [{ transform: booleanAttribute }]
3726
+ }], selected: [{
3727
+ type: Input
3728
+ }], sortable: [{
3729
+ type: Input,
3730
+ args: [{ transform: booleanAttribute }]
3731
+ }], sort: [{
3732
+ type: Input
3733
+ }], filterable: [{
3734
+ type: Input,
3735
+ args: [{ transform: booleanAttribute }]
3736
+ }], filter: [{
3737
+ type: Input
3738
+ }], savedFilters: [{
3739
+ type: Input
3740
+ }], rowActions: [{
3741
+ type: Input,
3742
+ args: [{ transform: booleanAttribute }]
3743
+ }], page: [{
3744
+ type: Input,
3745
+ args: [{ transform: num }]
3746
+ }], totalPages: [{
3747
+ type: Input,
3748
+ args: [{ transform: num }]
3749
+ }], alwaysPaginate: [{
3750
+ type: Input,
3751
+ args: [{ transform: booleanAttribute }]
3752
+ }], cursorMode: [{
3753
+ type: Input,
3754
+ args: [{ transform: booleanAttribute }]
3755
+ }], hasNext: [{
3756
+ type: Input,
3757
+ args: [{ transform: booleanAttribute }]
3758
+ }], hasPrev: [{
3759
+ type: Input,
3760
+ args: [{ transform: booleanAttribute }]
3761
+ }], bahtRowClick: [{ type: i0.Output, args: ["bahtRowClick"] }], bahtSelectionChange: [{ type: i0.Output, args: ["bahtSelectionChange"] }], bahtSortChange: [{ type: i0.Output, args: ["bahtSortChange"] }], bahtColumnsChange: [{ type: i0.Output, args: ["bahtColumnsChange"] }], bahtFilterChange: [{ type: i0.Output, args: ["bahtFilterChange"] }], bahtGroupToggle: [{ type: i0.Output, args: ["bahtGroupToggle"] }], bahtRowActions: [{ type: i0.Output, args: ["bahtRowActions"] }] } });
3762
+ /** `<baht-tabs>`: Tabs (APG tab pattern) */
3763
+ export class BahtTabsDirective {
3764
+ /** The tab strip. Set as a property: `el.tabs = [...]`. */
3765
+ set tabs(v) {
3766
+ assign(this.element, 'tabs', v);
3767
+ }
3768
+ /** Selected tab key. */
3769
+ set value(v) {
3770
+ assign(this.element, 'value', v);
3771
+ }
3772
+ /** Accessible name of the tab list. */
3773
+ set label(v) {
3774
+ assign(this.element, 'label', v);
3775
+ }
3776
+ /** `automatic` (default): arrows select. `manual`: arrows focus, Enter/Space selects. */
3777
+ set activation(v) {
3778
+ assign(this.element, 'activation', v);
3779
+ }
3780
+ /** `line` (default): an underline strip. `pill`: rounded chips; the active fill is `--baht-tabs-pill-active`. */
3781
+ set variant(v) {
3782
+ assign(this.element, 'variant', v);
3783
+ }
3784
+ constructor() {
3785
+ /** The element itself, for its methods. */
3786
+ this.element = hostElement();
3787
+ /** The user selected a tab. `detail: { value }`. Setting `value` does not fire it. */
3788
+ this.bahtChange = output();
3789
+ /** The value the user picked or typed, for `[(value)]`. */
3790
+ this.valueChange = output();
3791
+ relay(this.element, 'baht-change', this.bahtChange);
3792
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
3793
+ }
3794
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTabsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3795
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtTabsDirective, isStandalone: true, selector: "baht-tabs", inputs: { tabs: "tabs", value: "value", label: "label", activation: "activation", variant: "variant" }, outputs: { bahtChange: "bahtChange", valueChange: "valueChange" }, exportAs: ["bahtTabs"], ngImport: i0 }); }
3796
+ }
3797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTabsDirective, decorators: [{
3798
+ type: Directive,
3799
+ args: [{ selector: 'baht-tabs', exportAs: 'bahtTabs' }]
3800
+ }], ctorParameters: () => [], propDecorators: { tabs: [{
3801
+ type: Input
3802
+ }], value: [{
3803
+ type: Input
3804
+ }], label: [{
3805
+ type: Input
3806
+ }], activation: [{
3807
+ type: Input
3808
+ }], variant: [{
3809
+ type: Input
3810
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
3811
+ /** `<baht-tags>`: Creatable chip input: value is `string[]` (unique, trimmed, in entry order) */
3812
+ export class BahtTagsDirective {
3813
+ set field(v) {
3814
+ assign(this.element, 'field', v);
3815
+ }
3816
+ set value(v) {
3817
+ assign(this.element, 'value', v);
3818
+ }
3819
+ set disabled(v) {
3820
+ assign(this.element, 'disabled', v);
3821
+ }
3822
+ set readonly(v) {
3823
+ assign(this.element, 'readonly', v);
3824
+ }
3825
+ set required(v) {
3826
+ assign(this.element, 'required', v);
3827
+ }
3828
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
3829
+ set showOptional(v) {
3830
+ assign(this.element, 'showOptional', v);
3831
+ }
3832
+ set error(v) {
3833
+ assign(this.element, 'error', v);
3834
+ }
3835
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
3836
+ set debounce(v) {
3837
+ assign(this.element, 'debounce', v);
3838
+ }
3839
+ constructor() {
3840
+ /** The element itself, for its methods. */
3841
+ this.element = hostElement();
3842
+ /** Field mode: the user edited the value. */
3843
+ this.bahtInput = output();
3844
+ /** The value the user picked or typed, for `[(value)]`. */
3845
+ this.valueChange = output();
3846
+ relay(this.element, 'baht-input', this.bahtInput);
3847
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
3848
+ }
3849
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTagsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3850
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtTagsDirective, isStandalone: true, selector: "baht-tags", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtTags"], ngImport: i0 }); }
3851
+ }
3852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTagsDirective, decorators: [{
3853
+ type: Directive,
3854
+ args: [{ selector: 'baht-tags', exportAs: 'bahtTags' }]
3855
+ }], ctorParameters: () => [], propDecorators: { field: [{
3856
+ type: Input
3857
+ }], value: [{
3858
+ type: Input
3859
+ }], disabled: [{
3860
+ type: Input,
3861
+ args: [{ transform: booleanAttribute }]
3862
+ }], readonly: [{
3863
+ type: Input,
3864
+ args: [{ transform: booleanAttribute }]
3865
+ }], required: [{
3866
+ type: Input,
3867
+ args: [{ transform: booleanAttribute }]
3868
+ }], showOptional: [{
3869
+ type: Input,
3870
+ args: [{ transform: booleanAttribute }]
3871
+ }], error: [{
3872
+ type: Input
3873
+ }], debounce: [{
3874
+ type: Input,
3875
+ args: [{ transform: num }]
3876
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
3877
+ /** `<baht-text>`: Static text block (`type: "label"`): no value, no emits. */
3878
+ export class BahtTextDirective {
3879
+ constructor() {
3880
+ /** The element itself, for its methods. */
3881
+ this.element = hostElement();
3882
+ }
3883
+ set field(v) {
3884
+ assign(this.element, 'field', v);
3885
+ }
3886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3887
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtTextDirective, isStandalone: true, selector: "baht-text", inputs: { field: "field" }, exportAs: ["bahtText"], ngImport: i0 }); }
3888
+ }
3889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTextDirective, decorators: [{
3890
+ type: Directive,
3891
+ args: [{ selector: 'baht-text', exportAs: 'bahtText' }]
3892
+ }], propDecorators: { field: [{
3893
+ type: Input
3894
+ }] } });
3895
+ /** `<baht-textarea>` */
3896
+ export class BahtTextareaDirective {
3897
+ set field(v) {
3898
+ assign(this.element, 'field', v);
3899
+ }
3900
+ set value(v) {
3901
+ assign(this.element, 'value', v);
3902
+ }
3903
+ set disabled(v) {
3904
+ assign(this.element, 'disabled', v);
3905
+ }
3906
+ set readonly(v) {
3907
+ assign(this.element, 'readonly', v);
3908
+ }
3909
+ set required(v) {
3910
+ assign(this.element, 'required', v);
3911
+ }
3912
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
3913
+ set showOptional(v) {
3914
+ assign(this.element, 'showOptional', v);
3915
+ }
3916
+ set error(v) {
3917
+ assign(this.element, 'error', v);
3918
+ }
3919
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
3920
+ set debounce(v) {
3921
+ assign(this.element, 'debounce', v);
3922
+ }
3923
+ constructor() {
3924
+ /** The element itself, for its methods. */
3925
+ this.element = hostElement();
3926
+ /** Field mode: the user edited the value. */
3927
+ this.bahtInput = output();
3928
+ /** The value the user picked or typed, for `[(value)]`. */
3929
+ this.valueChange = output();
3930
+ relay(this.element, 'baht-input', this.bahtInput);
3931
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
3932
+ }
3933
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTextareaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3934
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtTextareaDirective, isStandalone: true, selector: "baht-textarea", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtTextarea"], ngImport: i0 }); }
3935
+ }
3936
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTextareaDirective, decorators: [{
3937
+ type: Directive,
3938
+ args: [{ selector: 'baht-textarea', exportAs: 'bahtTextarea' }]
3939
+ }], ctorParameters: () => [], propDecorators: { field: [{
3940
+ type: Input
3941
+ }], value: [{
3942
+ type: Input
3943
+ }], disabled: [{
3944
+ type: Input,
3945
+ args: [{ transform: booleanAttribute }]
3946
+ }], readonly: [{
3947
+ type: Input,
3948
+ args: [{ transform: booleanAttribute }]
3949
+ }], required: [{
3950
+ type: Input,
3951
+ args: [{ transform: booleanAttribute }]
3952
+ }], showOptional: [{
3953
+ type: Input,
3954
+ args: [{ transform: booleanAttribute }]
3955
+ }], error: [{
3956
+ type: Input
3957
+ }], debounce: [{
3958
+ type: Input,
3959
+ args: [{ transform: num }]
3960
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
3961
+ /** `<baht-theme-toggle>`: Light / dark switch for the 20baht themes */
3962
+ export class BahtThemeToggleDirective {
3963
+ /** Current theme. Setting it applies it to the target (not saved, no event). */
3964
+ set theme(v) {
3965
+ assign(this.element, 'theme', v);
3966
+ }
3967
+ /** Theme when nothing is saved and the target has none: `light`, `dark`, or `system`. */
3968
+ set default(v) {
3969
+ assign(this.element, 'default', v);
3970
+ }
3971
+ /** CSS selector of the element that carries `data-baht-theme`. Default: `<html>`. */
3972
+ set target(v) {
3973
+ assign(this.element, 'target', v);
3974
+ }
3975
+ /** localStorage key for the user's choice; `""` turns persistence off. */
3976
+ set storageKey(v) {
3977
+ assign(this.element, 'storageKey', v);
3978
+ }
3979
+ constructor() {
3980
+ /** The element itself, for its methods. */
3981
+ this.element = hostElement();
3982
+ /** The user switched theme. `detail: { theme: 'light' | 'dark' }`. */
3983
+ this.bahtThemeChange = output();
3984
+ relay(this.element, 'baht-theme-change', this.bahtThemeChange);
3985
+ }
3986
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtThemeToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3987
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtThemeToggleDirective, isStandalone: true, selector: "baht-theme-toggle", inputs: { theme: "theme", default: "default", target: "target", storageKey: "storageKey" }, outputs: { bahtThemeChange: "bahtThemeChange" }, exportAs: ["bahtThemeToggle"], ngImport: i0 }); }
3988
+ }
3989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtThemeToggleDirective, decorators: [{
3990
+ type: Directive,
3991
+ args: [{ selector: 'baht-theme-toggle', exportAs: 'bahtThemeToggle' }]
3992
+ }], ctorParameters: () => [], propDecorators: { theme: [{
3993
+ type: Input
3994
+ }], default: [{
3995
+ type: Input
3996
+ }], target: [{
3997
+ type: Input
3998
+ }], storageKey: [{
3999
+ type: Input
4000
+ }], bahtThemeChange: [{ type: i0.Output, args: ["bahtThemeChange"] }] } });
4001
+ /** `<baht-timeline>`: Vertical timeline (run history, audit log) */
4002
+ export class BahtTimelineDirective {
4003
+ constructor() {
4004
+ /** The element itself, for its methods. */
4005
+ this.element = hostElement();
4006
+ }
4007
+ set items(v) {
4008
+ assign(this.element, 'items', v);
4009
+ }
4010
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTimelineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4011
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtTimelineDirective, isStandalone: true, selector: "baht-timeline", inputs: { items: "items" }, exportAs: ["bahtTimeline"], ngImport: i0 }); }
4012
+ }
4013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTimelineDirective, decorators: [{
4014
+ type: Directive,
4015
+ args: [{ selector: 'baht-timeline', exportAs: 'bahtTimeline' }]
4016
+ }], propDecorators: { items: [{
4017
+ type: Input
4018
+ }] } });
4019
+ /** `<baht-toast>`: Toast host — put ONE <baht-toast> on the page and call show(): const toast = document.querySelector('baht-toast'); toast.show({ message: 'Saved.', tone: 'success' }); Copy: short and dry ("Saved.", not "Successfully saved your changes!"). */
4020
+ export class BahtToastDirective {
4021
+ /** Default auto-dismiss (ms) when show() gets no duration. */
4022
+ set duration(v) {
4023
+ assign(this.element, 'duration', v);
4024
+ }
4025
+ constructor() {
4026
+ /** The element itself, for its methods. */
4027
+ this.element = hostElement();
4028
+ /** A toast was dismissed. */
4029
+ this.bahtDismiss = output();
4030
+ relay(this.element, 'baht-dismiss', this.bahtDismiss);
4031
+ }
4032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtToastDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4033
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtToastDirective, isStandalone: true, selector: "baht-toast", inputs: { duration: ["duration", "duration", num] }, outputs: { bahtDismiss: "bahtDismiss" }, exportAs: ["bahtToast"], ngImport: i0 }); }
4034
+ }
4035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtToastDirective, decorators: [{
4036
+ type: Directive,
4037
+ args: [{ selector: 'baht-toast', exportAs: 'bahtToast' }]
4038
+ }], ctorParameters: () => [], propDecorators: { duration: [{
4039
+ type: Input,
4040
+ args: [{ transform: num }]
4041
+ }], bahtDismiss: [{ type: i0.Output, args: ["bahtDismiss"] }] } });
4042
+ /** `<baht-toggle>` */
4043
+ export class BahtToggleDirective {
4044
+ set field(v) {
4045
+ assign(this.element, 'field', v);
4046
+ }
4047
+ set value(v) {
4048
+ assign(this.element, 'value', v);
4049
+ }
4050
+ set disabled(v) {
4051
+ assign(this.element, 'disabled', v);
4052
+ }
4053
+ set readonly(v) {
4054
+ assign(this.element, 'readonly', v);
4055
+ }
4056
+ set required(v) {
4057
+ assign(this.element, 'required', v);
4058
+ }
4059
+ /** Append the localized "(optional)" marker to the label when not required (set by <baht-form show-optional>). */
4060
+ set showOptional(v) {
4061
+ assign(this.element, 'showOptional', v);
4062
+ }
4063
+ set error(v) {
4064
+ assign(this.element, 'error', v);
4065
+ }
4066
+ /** Debounce for typed edits (ms); unset = BahtFieldBase.defaultDebounce. */
4067
+ set debounce(v) {
4068
+ assign(this.element, 'debounce', v);
4069
+ }
4070
+ constructor() {
4071
+ /** The element itself, for its methods. */
4072
+ this.element = hostElement();
4073
+ /** Field mode: the user edited the value. */
4074
+ this.bahtInput = output();
4075
+ /** The value the user picked or typed, for `[(value)]`. */
4076
+ this.valueChange = output();
4077
+ relay(this.element, 'baht-input', this.bahtInput);
4078
+ relay(this.element, 'baht-input', this.valueChange, (d) => d.value);
4079
+ }
4080
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4081
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtToggleDirective, isStandalone: true, selector: "baht-toggle", inputs: { field: "field", value: "value", disabled: ["disabled", "disabled", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], required: ["required", "required", booleanAttribute], showOptional: ["showOptional", "showOptional", booleanAttribute], error: "error", debounce: ["debounce", "debounce", num] }, outputs: { bahtInput: "bahtInput", valueChange: "valueChange" }, exportAs: ["bahtToggle"], ngImport: i0 }); }
4082
+ }
4083
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtToggleDirective, decorators: [{
4084
+ type: Directive,
4085
+ args: [{ selector: 'baht-toggle', exportAs: 'bahtToggle' }]
4086
+ }], ctorParameters: () => [], propDecorators: { field: [{
4087
+ type: Input
4088
+ }], value: [{
4089
+ type: Input
4090
+ }], disabled: [{
4091
+ type: Input,
4092
+ args: [{ transform: booleanAttribute }]
4093
+ }], readonly: [{
4094
+ type: Input,
4095
+ args: [{ transform: booleanAttribute }]
4096
+ }], required: [{
4097
+ type: Input,
4098
+ args: [{ transform: booleanAttribute }]
4099
+ }], showOptional: [{
4100
+ type: Input,
4101
+ args: [{ transform: booleanAttribute }]
4102
+ }], error: [{
4103
+ type: Input
4104
+ }], debounce: [{
4105
+ type: Input,
4106
+ args: [{ transform: num }]
4107
+ }], bahtInput: [{ type: i0.Output, args: ["bahtInput"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
4108
+ /** `<baht-tooltip>`: Hover/focus tooltip */
4109
+ export class BahtTooltipDirective {
4110
+ constructor() {
4111
+ /** The element itself, for its methods. */
4112
+ this.element = hostElement();
4113
+ }
4114
+ set text(v) {
4115
+ assign(this.element, 'text', v);
4116
+ }
4117
+ set position(v) {
4118
+ assign(this.element, 'position', v);
4119
+ }
4120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4121
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.2.5", type: BahtTooltipDirective, isStandalone: true, selector: "baht-tooltip", inputs: { text: "text", position: "position" }, exportAs: ["bahtTooltip"], ngImport: i0 }); }
4122
+ }
4123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTooltipDirective, decorators: [{
4124
+ type: Directive,
4125
+ args: [{ selector: 'baht-tooltip', exportAs: 'bahtTooltip' }]
4126
+ }], propDecorators: { text: [{
4127
+ type: Input
4128
+ }], position: [{
4129
+ type: Input
4130
+ }] } });
4131
+ /** `<baht-typeahead>`: Text input with suggestions (autocomplete) */
4132
+ export class BahtTypeaheadDirective {
4133
+ /** Accessible name (also the listbox name). */
4134
+ set label(v) {
4135
+ assign(this.element, 'label', v);
4136
+ }
4137
+ /** The text. Controlled: re-feed after `baht-change` (or don't — the input keeps what was typed). */
4138
+ set value(v) {
4139
+ assign(this.element, 'value', v);
4140
+ }
4141
+ set placeholder(v) {
4142
+ assign(this.element, 'placeholder', v);
4143
+ }
4144
+ set disabled(v) {
4145
+ assign(this.element, 'disabled', v);
4146
+ }
4147
+ /** Marks the control invalid (styles + aria-invalid). */
4148
+ set invalid(v) {
4149
+ assign(this.element, 'invalid', v);
4150
+ }
4151
+ /** Static suggestion list, filtered client-side. Ignored when `fetcher` is set. */
4152
+ set options(v) {
4153
+ assign(this.element, 'options', v);
4154
+ }
4155
+ /** Async suggestions: term in, options out. Errors show as "no matches". */
4156
+ set fetcher(v) {
4157
+ assign(this.element, 'fetcher', v);
4158
+ }
4159
+ /** Quiet time (ms) before the host hears the text and suggestions are (re)computed. */
4160
+ set debounce(v) {
4161
+ assign(this.element, 'debounce', v);
4162
+ }
4163
+ /** Characters typed before suggestions appear (0 = suggest on focus/arrow too). */
4164
+ set minChars(v) {
4165
+ assign(this.element, 'minChars', v);
4166
+ }
4167
+ /** Cap on suggestions shown. */
4168
+ set maxItems(v) {
4169
+ assign(this.element, 'maxItems', v);
4170
+ }
4171
+ /** false = the text must be a picked option; blur reverts otherwise. */
4172
+ set freeText(v) {
4173
+ assign(this.element, 'freeText', v);
4174
+ }
4175
+ /** HTML autocomplete token forwarded to the input ('off' keeps the browser's own list away). */
4176
+ set autocomplete(v) {
4177
+ assign(this.element, 'autocomplete', v);
4178
+ }
4179
+ constructor() {
4180
+ /** The element itself, for its methods. */
4181
+ this.element = hostElement();
4182
+ /** The text or the picked option changed. */
4183
+ this.bahtChange = output();
4184
+ /** An option was picked. */
4185
+ this.bahtSelect = output();
4186
+ /** The value the user picked or typed, for `[(value)]`. */
4187
+ this.valueChange = output();
4188
+ relay(this.element, 'baht-change', this.bahtChange);
4189
+ relay(this.element, 'baht-select', this.bahtSelect);
4190
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
4191
+ }
4192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTypeaheadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4193
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtTypeaheadDirective, isStandalone: true, selector: "baht-typeahead", inputs: { label: "label", value: "value", placeholder: "placeholder", disabled: ["disabled", "disabled", booleanAttribute], invalid: ["invalid", "invalid", booleanAttribute], options: "options", fetcher: "fetcher", debounce: ["debounce", "debounce", num], minChars: ["minChars", "minChars", num], maxItems: ["maxItems", "maxItems", num], freeText: ["freeText", "freeText", booleanAttribute], autocomplete: "autocomplete" }, outputs: { bahtChange: "bahtChange", bahtSelect: "bahtSelect", valueChange: "valueChange" }, exportAs: ["bahtTypeahead"], ngImport: i0 }); }
4194
+ }
4195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtTypeaheadDirective, decorators: [{
4196
+ type: Directive,
4197
+ args: [{ selector: 'baht-typeahead', exportAs: 'bahtTypeahead' }]
4198
+ }], ctorParameters: () => [], propDecorators: { label: [{
4199
+ type: Input
4200
+ }], value: [{
4201
+ type: Input
4202
+ }], placeholder: [{
4203
+ type: Input
4204
+ }], disabled: [{
4205
+ type: Input,
4206
+ args: [{ transform: booleanAttribute }]
4207
+ }], invalid: [{
4208
+ type: Input,
4209
+ args: [{ transform: booleanAttribute }]
4210
+ }], options: [{
4211
+ type: Input
4212
+ }], fetcher: [{
4213
+ type: Input
4214
+ }], debounce: [{
4215
+ type: Input,
4216
+ args: [{ transform: num }]
4217
+ }], minChars: [{
4218
+ type: Input,
4219
+ args: [{ transform: num }]
4220
+ }], maxItems: [{
4221
+ type: Input,
4222
+ args: [{ transform: num }]
4223
+ }], freeText: [{
4224
+ type: Input,
4225
+ args: [{ transform: booleanAttribute }]
4226
+ }], autocomplete: [{
4227
+ type: Input
4228
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtSelect: [{ type: i0.Output, args: ["bahtSelect"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
4229
+ /** `<baht-upload>`: File upload against an HTTP endpoint */
4230
+ export class BahtUploadDirective {
4231
+ /** Endpoint that receives the file and returns its stored URL. Required. */
4232
+ set url(v) {
4233
+ assign(this.element, 'url', v);
4234
+ }
4235
+ /** HTTP method for the upload request. */
4236
+ set method(v) {
4237
+ assign(this.element, 'method', v);
4238
+ }
4239
+ /** Form-data key the file is sent under. */
4240
+ set fieldName(v) {
4241
+ assign(this.element, 'fieldName', v);
4242
+ }
4243
+ /** Where the stored URL lives in a JSON response (dotted path). Empty = the body itself. */
4244
+ set responseKey(v) {
4245
+ assign(this.element, 'responseKey', v);
4246
+ }
4247
+ /** Extra request headers (e.g. Authorization). Property only. */
4248
+ set headers(v) {
4249
+ assign(this.element, 'headers', v);
4250
+ }
4251
+ /** Send cookies on cross-origin requests. */
4252
+ set withCredentials(v) {
4253
+ assign(this.element, 'withCredentials', v);
4254
+ }
4255
+ /** Stored URL(s). `string`, `string[]` when `multiple`, or `null`. Property only. */
4256
+ set value(v) {
4257
+ assign(this.element, 'value', v);
4258
+ }
4259
+ /** Visible label. */
4260
+ set label(v) {
4261
+ assign(this.element, 'label', v);
4262
+ }
4263
+ /** Helper text under the control. Defaults to the accept / size limits when set. */
4264
+ set hint(v) {
4265
+ assign(this.element, 'hint', v);
4266
+ }
4267
+ /** Native `accept` filter (`.pdf,image/*`). */
4268
+ set accept(v) {
4269
+ assign(this.element, 'accept', v);
4270
+ }
4271
+ /** Allow several files; the value becomes an array. */
4272
+ set multiple(v) {
4273
+ assign(this.element, 'multiple', v);
4274
+ }
4275
+ /** Reject files over this many bytes before sending. */
4276
+ set maxSize(v) {
4277
+ assign(this.element, 'maxSize', v);
4278
+ }
4279
+ set disabled(v) {
4280
+ assign(this.element, 'disabled', v);
4281
+ }
4282
+ set required(v) {
4283
+ assign(this.element, 'required', v);
4284
+ }
4285
+ /** Validation message to display (marks the control invalid). */
4286
+ set error(v) {
4287
+ assign(this.element, 'error', v);
4288
+ }
4289
+ constructor() {
4290
+ /** The element itself, for its methods. */
4291
+ this.element = hostElement();
4292
+ /** The uploaded files changed. */
4293
+ this.bahtChange = output();
4294
+ /** A file started uploading. */
4295
+ this.bahtUploadStart = output();
4296
+ /** Upload progress. */
4297
+ this.bahtUploadProgress = output();
4298
+ /** An upload failed. */
4299
+ this.bahtUploadError = output();
4300
+ relay(this.element, 'baht-change', this.bahtChange);
4301
+ relay(this.element, 'baht-upload-start', this.bahtUploadStart);
4302
+ relay(this.element, 'baht-upload-progress', this.bahtUploadProgress);
4303
+ relay(this.element, 'baht-upload-error', this.bahtUploadError);
4304
+ }
4305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtUploadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4306
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtUploadDirective, isStandalone: true, selector: "baht-upload", inputs: { url: "url", method: "method", fieldName: "fieldName", responseKey: "responseKey", headers: "headers", withCredentials: ["withCredentials", "withCredentials", booleanAttribute], value: "value", label: "label", hint: "hint", accept: "accept", multiple: ["multiple", "multiple", booleanAttribute], maxSize: ["maxSize", "maxSize", num], disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], error: "error" }, outputs: { bahtChange: "bahtChange", bahtUploadStart: "bahtUploadStart", bahtUploadProgress: "bahtUploadProgress", bahtUploadError: "bahtUploadError" }, exportAs: ["bahtUpload"], ngImport: i0 }); }
4307
+ }
4308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtUploadDirective, decorators: [{
4309
+ type: Directive,
4310
+ args: [{ selector: 'baht-upload', exportAs: 'bahtUpload' }]
4311
+ }], ctorParameters: () => [], propDecorators: { url: [{
4312
+ type: Input
4313
+ }], method: [{
4314
+ type: Input
4315
+ }], fieldName: [{
4316
+ type: Input
4317
+ }], responseKey: [{
4318
+ type: Input
4319
+ }], headers: [{
4320
+ type: Input
4321
+ }], withCredentials: [{
4322
+ type: Input,
4323
+ args: [{ transform: booleanAttribute }]
4324
+ }], value: [{
4325
+ type: Input
4326
+ }], label: [{
4327
+ type: Input
4328
+ }], hint: [{
4329
+ type: Input
4330
+ }], accept: [{
4331
+ type: Input
4332
+ }], multiple: [{
4333
+ type: Input,
4334
+ args: [{ transform: booleanAttribute }]
4335
+ }], maxSize: [{
4336
+ type: Input,
4337
+ args: [{ transform: num }]
4338
+ }], disabled: [{
4339
+ type: Input,
4340
+ args: [{ transform: booleanAttribute }]
4341
+ }], required: [{
4342
+ type: Input,
4343
+ args: [{ transform: booleanAttribute }]
4344
+ }], error: [{
4345
+ type: Input
4346
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtUploadStart: [{ type: i0.Output, args: ["bahtUploadStart"] }], bahtUploadProgress: [{ type: i0.Output, args: ["bahtUploadProgress"] }], bahtUploadError: [{ type: i0.Output, args: ["bahtUploadError"] }] } });
4347
+ /** `<baht-wizard>`: Pages filled in order, checked as you go */
4348
+ export class BahtWizardDirective {
4349
+ set steps(v) {
4350
+ assign(this.element, 'steps', v);
4351
+ }
4352
+ /** Key of the open page; the first when unset or unknown. */
4353
+ set value(v) {
4354
+ assign(this.element, 'value', v);
4355
+ }
4356
+ /** `chevron` shows a progress strip you read; `tabs` a strip you can click to go anywhere. */
4357
+ set variant(v) {
4358
+ assign(this.element, 'variant', v);
4359
+ }
4360
+ /** May this page be left? Unset: every page passes. */
4361
+ set validateStep(v) {
4362
+ assign(this.element, 'validateStep', v);
4363
+ }
4364
+ set backLabel(v) {
4365
+ assign(this.element, 'backLabel', v);
4366
+ }
4367
+ set nextLabel(v) {
4368
+ assign(this.element, 'nextLabel', v);
4369
+ }
4370
+ set finishLabel(v) {
4371
+ assign(this.element, 'finishLabel', v);
4372
+ }
4373
+ /** Keeps the buttons from running twice while the host is working. */
4374
+ set busy(v) {
4375
+ assign(this.element, 'busy', v);
4376
+ }
4377
+ constructor() {
4378
+ /** The element itself, for its methods. */
4379
+ this.element = hostElement();
4380
+ /** The page changed. `detail: { value }`. */
4381
+ this.bahtChange = output();
4382
+ /** Every page passed. */
4383
+ this.bahtFinish = output();
4384
+ /** The value the user picked or typed, for `[(value)]`. */
4385
+ this.valueChange = output();
4386
+ relay(this.element, 'baht-change', this.bahtChange);
4387
+ relay(this.element, 'baht-finish', this.bahtFinish);
4388
+ relay(this.element, 'baht-change', this.valueChange, (d) => d.value);
4389
+ }
4390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtWizardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4391
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtWizardDirective, isStandalone: true, selector: "baht-wizard", inputs: { steps: "steps", value: "value", variant: "variant", validateStep: "validateStep", backLabel: "backLabel", nextLabel: "nextLabel", finishLabel: "finishLabel", busy: ["busy", "busy", booleanAttribute] }, outputs: { bahtChange: "bahtChange", bahtFinish: "bahtFinish", valueChange: "valueChange" }, exportAs: ["bahtWizard"], ngImport: i0 }); }
4392
+ }
4393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtWizardDirective, decorators: [{
4394
+ type: Directive,
4395
+ args: [{ selector: 'baht-wizard', exportAs: 'bahtWizard' }]
4396
+ }], ctorParameters: () => [], propDecorators: { steps: [{
4397
+ type: Input
4398
+ }], value: [{
4399
+ type: Input
4400
+ }], variant: [{
4401
+ type: Input
4402
+ }], validateStep: [{
4403
+ type: Input
4404
+ }], backLabel: [{
4405
+ type: Input
4406
+ }], nextLabel: [{
4407
+ type: Input
4408
+ }], finishLabel: [{
4409
+ type: Input
4410
+ }], busy: [{
4411
+ type: Input,
4412
+ args: [{ transform: booleanAttribute }]
4413
+ }], bahtChange: [{ type: i0.Output, args: ["bahtChange"] }], bahtFinish: [{ type: i0.Output, args: ["bahtFinish"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
4414
+ /** `<baht-workflow>`: <baht-workflow> — the optional brain (spec 03) */
4415
+ export class BahtWorkflowDirective {
4416
+ set workflow(v) {
4417
+ assign(this.element, 'workflow', v);
4418
+ }
4419
+ set value(v) {
4420
+ assign(this.element, 'value', v);
4421
+ }
4422
+ set registry(v) {
4423
+ assign(this.element, 'registry', v);
4424
+ }
4425
+ set validateGate(v) {
4426
+ assign(this.element, 'validateGate', v);
4427
+ }
4428
+ /** Label attributes beat the i18n catalog; unset = t('next')/t('submit')/t('back'). */
4429
+ set nextLabel(v) {
4430
+ assign(this.element, 'nextLabel', v);
4431
+ }
4432
+ set submitLabel(v) {
4433
+ assign(this.element, 'submitLabel', v);
4434
+ }
4435
+ set backLabel(v) {
4436
+ assign(this.element, 'backLabel', v);
4437
+ }
4438
+ set showBack(v) {
4439
+ assign(this.element, 'showBack', v);
4440
+ }
4441
+ /** Feature-flag values (spec 01 §12): flag-off steps/fields/rules vanish. */
4442
+ set flags(v) {
4443
+ assign(this.element, 'flags', v);
4444
+ }
4445
+ /** Render a <baht-steps> progress indicator above the current form. */
4446
+ set showSteps(v) {
4447
+ assign(this.element, 'showSteps', v);
4448
+ }
4449
+ /** 'default' horizontal markers, or 'sidebar' vertical nav list — forwarded to <baht-steps>. */
4450
+ set stepsVariant(v) {
4451
+ assign(this.element, 'stepsVariant', v);
4452
+ }
4453
+ constructor() {
4454
+ /** The element itself, for its methods. */
4455
+ this.element = hostElement();
4456
+ /** Any value changed. */
4457
+ this.bahtDataChange = output();
4458
+ /** Moved forward to `form_name`. */
4459
+ this.bahtNext = output();
4460
+ /** The visible step changed. */
4461
+ this.bahtStepChange = output();
4462
+ /** Next resolved to no visible step. */
4463
+ this.bahtNavBlocked = output();
4464
+ /** The last step was submitted. */
4465
+ this.bahtSubmit = output();
4466
+ /** The workflow ended. */
4467
+ this.bahtComplete = output();
4468
+ /** An approval step was approved. */
4469
+ this.bahtApprove = output();
4470
+ /** An approval step was rejected. */
4471
+ this.bahtReject = output();
4472
+ relay(this.element, 'baht-data-change', this.bahtDataChange);
4473
+ relay(this.element, 'baht-next', this.bahtNext);
4474
+ relay(this.element, 'baht-step-change', this.bahtStepChange);
4475
+ relay(this.element, 'baht-nav-blocked', this.bahtNavBlocked);
4476
+ relay(this.element, 'baht-submit', this.bahtSubmit);
4477
+ relay(this.element, 'baht-complete', this.bahtComplete);
4478
+ relay(this.element, 'baht-approve', this.bahtApprove);
4479
+ relay(this.element, 'baht-reject', this.bahtReject);
4480
+ }
4481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtWorkflowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4482
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.2.5", type: BahtWorkflowDirective, isStandalone: true, selector: "baht-workflow", inputs: { workflow: "workflow", value: "value", registry: "registry", validateGate: ["validateGate", "validateGate", booleanAttribute], nextLabel: "nextLabel", submitLabel: "submitLabel", backLabel: "backLabel", showBack: ["showBack", "showBack", booleanAttribute], flags: "flags", showSteps: ["showSteps", "showSteps", booleanAttribute], stepsVariant: "stepsVariant" }, outputs: { bahtDataChange: "bahtDataChange", bahtNext: "bahtNext", bahtStepChange: "bahtStepChange", bahtNavBlocked: "bahtNavBlocked", bahtSubmit: "bahtSubmit", bahtComplete: "bahtComplete", bahtApprove: "bahtApprove", bahtReject: "bahtReject" }, exportAs: ["bahtWorkflow"], ngImport: i0 }); }
4483
+ }
4484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.5", ngImport: i0, type: BahtWorkflowDirective, decorators: [{
4485
+ type: Directive,
4486
+ args: [{ selector: 'baht-workflow', exportAs: 'bahtWorkflow' }]
4487
+ }], ctorParameters: () => [], propDecorators: { workflow: [{
4488
+ type: Input
4489
+ }], value: [{
4490
+ type: Input
4491
+ }], registry: [{
4492
+ type: Input
4493
+ }], validateGate: [{
4494
+ type: Input,
4495
+ args: [{ transform: booleanAttribute }]
4496
+ }], nextLabel: [{
4497
+ type: Input
4498
+ }], submitLabel: [{
4499
+ type: Input
4500
+ }], backLabel: [{
4501
+ type: Input
4502
+ }], showBack: [{
4503
+ type: Input,
4504
+ args: [{ transform: booleanAttribute }]
4505
+ }], flags: [{
4506
+ type: Input
4507
+ }], showSteps: [{
4508
+ type: Input,
4509
+ args: [{ transform: booleanAttribute }]
4510
+ }], stepsVariant: [{
4511
+ type: Input
4512
+ }], bahtDataChange: [{ type: i0.Output, args: ["bahtDataChange"] }], bahtNext: [{ type: i0.Output, args: ["bahtNext"] }], bahtStepChange: [{ type: i0.Output, args: ["bahtStepChange"] }], bahtNavBlocked: [{ type: i0.Output, args: ["bahtNavBlocked"] }], bahtSubmit: [{ type: i0.Output, args: ["bahtSubmit"] }], bahtComplete: [{ type: i0.Output, args: ["bahtComplete"] }], bahtApprove: [{ type: i0.Output, args: ["bahtApprove"] }], bahtReject: [{ type: i0.Output, args: ["bahtReject"] }] } });
4513
+ /** Every directive: `imports: [BAHT_UI]` in a standalone component. */
4514
+ export const BAHT_UI = [
4515
+ BahtAccordionDirective,
4516
+ BahtAlertDirective,
4517
+ BahtAppShellDirective,
4518
+ BahtApprovalChainDirective,
4519
+ BahtAvatarDirective,
4520
+ BahtBadgeDirective,
4521
+ BahtBarChartDirective,
4522
+ BahtBreadcrumbsDirective,
4523
+ BahtButtonDirective,
4524
+ BahtCardDirective,
4525
+ BahtCatalogCardDirective,
4526
+ BahtCheckboxDirective,
4527
+ BahtCodeDirective,
4528
+ BahtColumnPickerDirective,
4529
+ BahtCommentsDirective,
4530
+ BahtCurrencyDirective,
4531
+ BahtDatepickerDirective,
4532
+ BahtDonutChartDirective,
4533
+ BahtEditTableDirective,
4534
+ BahtEmptyStateDirective,
4535
+ BahtErrorStateDirective,
4536
+ BahtFieldsetDirective,
4537
+ BahtFileDirective,
4538
+ BahtFilterDirective,
4539
+ BahtFilterBuilderDirective,
4540
+ BahtFormDirective,
4541
+ BahtHeatmapDirective,
4542
+ BahtInputDirective,
4543
+ BahtKeyvalueEditorDirective,
4544
+ BahtLineChartDirective,
4545
+ BahtLinkDirective,
4546
+ BahtListDirective,
4547
+ BahtLoadingOverlayDirective,
4548
+ BahtMarkdownDirective,
4549
+ BahtMarkdownViewDirective,
4550
+ BahtMenuDirective,
4551
+ BahtMeterDirective,
4552
+ BahtModalDirective,
4553
+ BahtMultiselectDirective,
4554
+ BahtNotificationBellDirective,
4555
+ BahtNumberDirective,
4556
+ BahtOrderBoxDirective,
4557
+ BahtOtpDirective,
4558
+ BahtPageHeaderDirective,
4559
+ BahtPaginationDirective,
4560
+ BahtPopoverDirective,
4561
+ BahtProgressDirective,
4562
+ BahtProgressRingDirective,
4563
+ BahtRadioDirective,
4564
+ BahtRangeDirective,
4565
+ BahtRatingDirective,
4566
+ BahtRecordBarDirective,
4567
+ BahtReferenceDialogDirective,
4568
+ BahtReferencePickerDirective,
4569
+ BahtRepeaterDirective,
4570
+ BahtRuleBuilderDirective,
4571
+ BahtSavedFiltersDirective,
4572
+ BahtSectionDirective,
4573
+ BahtSelectDirective,
4574
+ BahtSkeletonDirective,
4575
+ BahtSparklineDirective,
4576
+ BahtSpinnerDirective,
4577
+ BahtSplitButtonDirective,
4578
+ BahtStatDirective,
4579
+ BahtStatChartDirective,
4580
+ BahtStepsDirective,
4581
+ BahtSwipeRowDirective,
4582
+ BahtTableDirective,
4583
+ BahtTabsDirective,
4584
+ BahtTagsDirective,
4585
+ BahtTextDirective,
4586
+ BahtTextareaDirective,
4587
+ BahtThemeToggleDirective,
4588
+ BahtTimelineDirective,
4589
+ BahtToastDirective,
4590
+ BahtToggleDirective,
4591
+ BahtTooltipDirective,
4592
+ BahtTypeaheadDirective,
4593
+ BahtUploadDirective,
4594
+ BahtWizardDirective,
4595
+ BahtWorkflowDirective,
4596
+ ];