@ng-json-render/primitives 0.0.2
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 @@
|
|
|
1
|
+
{"version":3,"file":"ng-json-render-primitives.mjs","sources":["../../../../libs/primitives/src/lib/layout.ts","../../../../libs/primitives/src/lib/content.ts","../../../../libs/primitives/src/lib/feedback.ts","../../../../libs/primitives/src/lib/charts.ts","../../../../libs/primitives/src/lib/table.ts","../../../../libs/primitives/src/lib/forms.ts","../../../../libs/primitives/src/lib/registry.ts","../../../../libs/primitives/src/index.ts","../../../../libs/primitives/src/ng-json-render-primitives.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/** Centered, max-width page container. */\n@Component({\n selector: 'jr-container',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block w-full',\n '[style.max-width]': 'maxWidthValue()',\n '[style.margin-inline]': '\"auto\"',\n },\n})\nexport class JrContainer {\n readonly maxWidth = input<number | string>(960);\n protected readonly maxWidthValue = computed(() => {\n const w = this.maxWidth();\n return typeof w === 'number' ? `${w}px` : w;\n });\n}\n\n/** Flexbox stack (row or column) with configurable gap and alignment. */\n@Component({\n selector: 'jr-stack',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: flex; box-sizing: border-box;',\n '[style.flex-direction]': 'direction()',\n '[style.gap]': 'gapValue()',\n '[style.align-items]': 'align()',\n '[style.justify-content]': 'justify()',\n '[style.flex-wrap]': 'wrap() ? \"wrap\" : null',\n },\n})\nexport class JrStack {\n readonly direction = input<'row' | 'column'>('column');\n readonly gap = input<number | string>(12);\n readonly align = input<string>();\n readonly justify = input<string>();\n readonly wrap = input(false);\n\n protected readonly gapValue = computed(() => {\n const g = this.gap();\n return typeof g === 'number' ? `${g}px` : g;\n });\n}\n\n/**\n * Responsive grid. `columns` is the target column count at full width; the grid\n * collapses to fewer columns as the container narrows (each column never shrinks\n * below `minItemWidth`), so specs stay responsive without media queries.\n */\n@Component({\n selector: 'jr-grid',\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: grid; box-sizing: border-box;',\n '[style.grid-template-columns]': 'templateColumns()',\n '[style.gap]': 'gapValue()',\n },\n})\nexport class JrGrid {\n readonly columns = input<number>(2);\n readonly gap = input<number | string>(16);\n /** Minimum width a column may shrink to before the grid drops a column. */\n readonly minItemWidth = input<number>(200);\n\n protected readonly gapValue = computed(() => {\n const g = this.gap();\n return typeof g === 'number' ? `${g}px` : g;\n });\n\n protected readonly templateColumns = computed(() => {\n const cols = Math.max(1, this.columns());\n if (cols === 1) return '1fr';\n const gap = this.gapValue();\n const min = this.minItemWidth();\n // Width of one column when `cols` fit; `auto-fit` drops columns once this\n // would fall below `minItemWidth`. `min(100%, …)` avoids overflow on tiny screens.\n const ideal = `calc((100% - (${cols} - 1) * ${gap}) / ${cols})`;\n return `repeat(auto-fit, minmax(min(100%, max(${min}px, ${ideal})), 1fr))`;\n });\n}\n\n/** Bordered surface with an optional title/subtitle. */\n@Component({\n selector: 'jr-card',\n template: `\n @if (title() || subtitle()) {\n <div class=\"mb-3\">\n @if (title()) {\n <div\n class=\"text-sm font-semibold text-zinc-900 dark:text-zinc-100\"\n >\n {{ title() }}\n </div>\n }\n @if (subtitle()) {\n <div class=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {{ subtitle() }}\n </div>\n }\n </div>\n }\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class:\n 'block rounded-xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900',\n },\n})\nexport class JrCard {\n readonly title = input<string>();\n readonly subtitle = input<string>();\n}\n\n/** Horizontal rule. */\n@Component({\n selector: 'jr-divider',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'block border-t border-zinc-200 dark:border-zinc-800',\n role: 'separator',\n },\n})\nexport class JrDivider {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/** Section heading (levels 1–4). */\n@Component({\n selector: 'jr-heading',\n template: `{{ value() }}<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'sizeClass()',\n },\n})\nexport class JrHeading {\n readonly value = input('');\n readonly level = input<1 | 2 | 3 | 4>(2);\n\n protected readonly sizeClass = computed(() => {\n const base =\n 'block font-semibold tracking-tight text-zinc-900 dark:text-zinc-50 ';\n return (\n base +\n { 1: 'text-3xl', 2: 'text-2xl', 3: 'text-lg', 4: 'text-base' }[\n this.level()\n ]\n );\n });\n}\n\n/** Body text. */\n@Component({\n selector: 'jr-text',\n template: `{{ value() }}<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'text-zinc-600 dark:text-zinc-300',\n '[class.font-medium]': 'weight() === \"medium\"',\n '[class.font-semibold]': 'weight() === \"bold\"',\n '[class.text-sm]': 'size() === \"sm\"',\n '[class.text-xs]': 'size() === \"xs\"',\n '[class.text-lg]': 'size() === \"lg\"',\n },\n})\nexport class JrText {\n readonly value = input('');\n readonly weight = input<'normal' | 'medium' | 'bold'>('normal');\n readonly size = input<'xs' | 'sm' | 'base' | 'lg'>('base');\n}\n\nconst BADGE_TONES: Record<string, string> = {\n neutral:\n 'bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300',\n success:\n 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-400',\n warning:\n 'bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-400',\n danger: 'bg-red-100 text-red-700 dark:bg-red-500/15 dark:text-red-400',\n info: 'bg-indigo-100 text-indigo-700 dark:bg-indigo-500/15 dark:text-indigo-300',\n};\n\n/** Small status pill. */\n@Component({\n selector: 'jr-badge',\n template: `{{ label() }}<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'toneClass()',\n },\n})\nexport class JrBadge {\n readonly label = input('');\n readonly tone = input<'neutral' | 'success' | 'warning' | 'danger' | 'info'>(\n 'neutral',\n );\n protected readonly toneClass = computed(\n () =>\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ' +\n (BADGE_TONES[this.tone()] ?? BADGE_TONES['neutral']),\n );\n}\n\n/** KPI tile: a big value with a label and an optional delta. */\n@Component({\n selector: 'jr-stat',\n template: `\n <div class=\"text-sm font-medium text-zinc-500 dark:text-zinc-400\">\n {{ label() }}\n </div>\n <div class=\"mt-1 flex items-baseline gap-2\">\n <span class=\"text-2xl font-semibold text-zinc-900 dark:text-zinc-50\">\n {{ value() }}\n </span>\n @if (delta() !== null) {\n <span\n class=\"text-xs font-medium\"\n [class.text-emerald-600]=\"(delta() ?? 0) >= 0\"\n [class.text-red-600]=\"(delta() ?? 0) < 0\"\n >\n {{ (delta() ?? 0) >= 0 ? '▲' : '▼' }} {{ absDelta() }}%\n </span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrStat {\n readonly label = input('');\n readonly value = input<string | number>('');\n readonly delta = input<number | null>(null);\n protected readonly absDelta = computed(() => Math.abs(this.delta() ?? 0));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\nconst ALERT_TONES: Record<string, string> = {\n info: 'border-indigo-200 bg-indigo-50 text-indigo-800 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-200',\n success:\n 'border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-200',\n warning:\n 'border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200',\n danger:\n 'border-red-200 bg-red-50 text-red-800 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200',\n};\n\n/** Inline callout / alert banner. */\n@Component({\n selector: 'jr-alert',\n template: `\n @if (title()) {\n <div class=\"font-medium\">{{ title() }}</div>\n }\n <div class=\"text-sm\" [class.mt-0.5]=\"!!title()\">\n {{ message() }}<ng-content />\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'alert',\n '[class]': 'toneClass()',\n },\n})\nexport class JrAlert {\n readonly title = input<string>();\n readonly message = input('');\n readonly tone = input<'info' | 'success' | 'warning' | 'danger'>('info');\n protected readonly toneClass = computed(\n () =>\n 'block rounded-lg border px-4 py-3 ' +\n (ALERT_TONES[this.tone()] ?? ALERT_TONES['info']),\n );\n}\n\n/** Determinate progress bar (0–100). */\n@Component({\n selector: 'jr-progress',\n template: `\n <div\n class=\"h-2 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800\"\n >\n <div\n class=\"h-full rounded-full bg-indigo-600 transition-[width] duration-300\"\n [style.width.%]=\"clamped()\"\n ></div>\n </div>\n @if (label()) {\n <div class=\"mt-1 text-xs text-zinc-500 dark:text-zinc-400\">\n {{ label() }} · {{ clamped() }}%\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrProgress {\n readonly value = input<number>(0);\n readonly label = input<string>();\n protected readonly clamped = computed(() =>\n Math.max(0, Math.min(100, Math.round(this.value()))),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/** A single {label, value} datum for charts. */\nexport interface ChartDatum {\n label: string;\n value: number;\n}\n\n/** Responsive CSS bar chart (no chart library). */\n@Component({\n selector: 'jr-bar-chart',\n template: `\n <div class=\"flex items-end gap-2\" [style.height.px]=\"height()\">\n @for (d of data(); track $index) {\n <div class=\"flex h-full flex-1 items-end\">\n <div\n class=\"w-full rounded-t-md bg-indigo-500 transition-[height] duration-300 dark:bg-indigo-400\"\n [style.height.%]=\"pct(d.value)\"\n [title]=\"d.label + ': ' + d.value\"\n ></div>\n </div>\n }\n </div>\n <div class=\"mt-1.5 flex gap-2\">\n @for (d of data(); track $index) {\n <div\n class=\"flex-1 truncate text-center text-xs text-zinc-500 dark:text-zinc-400\"\n >\n {{ d.label }}\n </div>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrBarChart {\n readonly data = input<ChartDatum[]>([]);\n readonly height = input(160);\n private readonly max = computed(() =>\n Math.max(1, ...this.data().map((d) => d.value)),\n );\n protected pct(value: number): number {\n return Math.max(2, (value / this.max()) * 100);\n }\n}\n\n/** Responsive SVG line/area chart (no chart library). */\n@Component({\n selector: 'jr-line-chart',\n template: `\n <svg\n viewBox=\"0 0 300 100\"\n preserveAspectRatio=\"none\"\n class=\"w-full\"\n [style.height.px]=\"height()\"\n aria-hidden=\"true\"\n >\n @if (geom().line) {\n <polygon\n [attr.points]=\"geom().area\"\n class=\"fill-indigo-500/10 dark:fill-indigo-400/10\"\n />\n <polyline\n [attr.points]=\"geom().line\"\n fill=\"none\"\n class=\"stroke-indigo-500 dark:stroke-indigo-400\"\n stroke-width=\"2\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n vector-effect=\"non-scaling-stroke\"\n />\n }\n </svg>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrLineChart {\n readonly data = input<number[]>([]);\n readonly height = input(120);\n\n protected readonly geom = computed(() => {\n const d = this.data();\n if (d.length < 2) return { line: '', area: '' };\n const w = 300;\n const h = 100;\n const max = Math.max(...d);\n const min = Math.min(...d);\n const range = max - min || 1;\n const step = w / (d.length - 1);\n const pts = d.map((v, i) => {\n const x = i * step;\n const y = h - ((v - min) / range) * (h * 0.9) - h * 0.05;\n return `${x.toFixed(1)},${y.toFixed(1)}`;\n });\n return { line: pts.join(' '), area: `0,${h} ${pts.join(' ')} ${w},${h}` };\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\n\n/** A table column, either a bare key or a key/label pair. */\nexport type JrTableColumn = string | { key: string; label?: string };\n\n/** Simple data table. */\n@Component({\n selector: 'jr-table',\n template: `\n <div\n class=\"overflow-x-auto rounded-xl border border-zinc-200 dark:border-zinc-800\"\n >\n <table class=\"w-full border-collapse text-sm\">\n <thead>\n <tr class=\"bg-zinc-50 dark:bg-zinc-800/50\">\n @for (col of cols(); track col.key) {\n <th\n class=\"px-4 py-2.5 text-left font-medium text-zinc-500 dark:text-zinc-400\"\n >\n {{ col.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track $index) {\n <tr\n class=\"border-t border-zinc-100 dark:border-zinc-800/70\"\n >\n @for (col of cols(); track col.key) {\n <td class=\"px-4 py-2.5 text-zinc-700 dark:text-zinc-300\">\n {{ cell(row, col.key) }}\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrTable {\n readonly columns = input<JrTableColumn[]>([]);\n readonly rows = input<Record<string, unknown>[]>([]);\n\n protected readonly cols = computed(() =>\n this.columns().map((c) =>\n typeof c === 'string'\n ? { key: c, label: c }\n : { key: c.key, label: c.label ?? c.key },\n ),\n );\n\n protected cell(row: Record<string, unknown>, key: string): string {\n const v = row[key];\n return v == null ? '' : String(v);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { JR_CONTEXT } from '@ng-json-render/core';\n\n// Note: these controls expose a `value` / `checked` model(), which *structurally*\n// satisfies Angular's Signal Forms `FormValueControl` / `FormCheckboxControl`\n// contracts — so on Angular 21 they work with the `[field]` directive — without\n// importing `@angular/forms/signals`, keeping the package usable on Angular 19+.\n\nconst FIELD_LABEL =\n 'text-sm font-medium text-zinc-700 dark:text-zinc-300';\nconst CONTROL =\n 'w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none placeholder:text-zinc-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100';\n\n/**\n * Text input. A Signal Forms Signal Forms value control — usable with the `[field]`\n * directive, or driven by `$bindState` through the renderer.\n */\n@Component({\n selector: 'jr-input',\n template: `\n <label class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <span [class]=\"labelClass\">{{ label() }}</span>\n }\n <input\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [class]=\"controlClass\"\n (input)=\"value.set(read($event))\"\n />\n @if (hint()) {\n <span class=\"text-xs text-zinc-500 dark:text-zinc-400\">{{\n hint()\n }}</span>\n }\n </label>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrInput {\n readonly value = model('');\n readonly label = input<string>();\n readonly placeholder = input('');\n readonly type = input<'text' | 'email' | 'password' | 'number'>('text');\n readonly hint = input<string>();\n protected readonly labelClass = FIELD_LABEL;\n protected readonly controlClass = CONTROL;\n protected read(e: Event): string {\n return (e.target as HTMLInputElement).value;\n }\n}\n\n/** Multi-line text input (Signal Forms value control). */\n@Component({\n selector: 'jr-textarea',\n template: `\n <label class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <span [class]=\"labelClass\">{{ label() }}</span>\n }\n <textarea\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [rows]=\"rows()\"\n [class]=\"controlClass\"\n (input)=\"value.set(read($event))\"\n ></textarea>\n </label>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrTextarea {\n readonly value = model('');\n readonly label = input<string>();\n readonly placeholder = input('');\n readonly rows = input(3);\n protected readonly labelClass = FIELD_LABEL;\n protected readonly controlClass = CONTROL;\n protected read(e: Event): string {\n return (e.target as HTMLTextAreaElement).value;\n }\n}\n\n/** An option for {@link JrSelect}. */\nexport type JrSelectOption = string | { value: string; label?: string };\n\n/** Dropdown select (Signal Forms value control). */\n@Component({\n selector: 'jr-select',\n template: `\n <label class=\"flex flex-col gap-1.5\">\n @if (label()) {\n <span [class]=\"labelClass\">{{ label() }}</span>\n }\n <select\n [value]=\"value()\"\n [class]=\"controlClass\"\n (change)=\"value.set(read($event))\"\n >\n @if (placeholder()) {\n <option value=\"\" disabled>{{ placeholder() }}</option>\n }\n @for (opt of normalized(); track opt.value) {\n <option [value]=\"opt.value\">{{ opt.label }}</option>\n }\n </select>\n </label>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrSelect {\n readonly value = model('');\n readonly label = input<string>();\n readonly placeholder = input<string>();\n readonly options = input<JrSelectOption[]>([]);\n protected readonly labelClass = FIELD_LABEL;\n protected readonly controlClass = CONTROL;\n protected readonly normalized = computed(() =>\n this.options().map((o) =>\n typeof o === 'string'\n ? { value: o, label: o }\n : { value: o.value, label: o.label ?? o.value },\n ),\n );\n protected read(e: Event): string {\n return (e.target as HTMLSelectElement).value;\n }\n}\n\n/** Checkbox (Signal Forms checkbox control). */\n@Component({\n selector: 'jr-checkbox',\n template: `\n <label class=\"flex cursor-pointer items-center gap-2.5\">\n <input\n type=\"checkbox\"\n class=\"h-4 w-4 rounded border-zinc-300 text-indigo-600 focus:ring-indigo-500/40 dark:border-zinc-600 dark:bg-zinc-800\"\n [checked]=\"checked()\"\n (change)=\"checked.set(read($event))\"\n />\n <span class=\"text-sm text-zinc-700 dark:text-zinc-300\">{{\n label()\n }}</span>\n </label>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrCheckbox {\n readonly checked = model(false);\n readonly label = input('');\n protected read(e: Event): boolean {\n return (e.target as HTMLInputElement).checked;\n }\n}\n\n/** Toggle switch (Signal Forms checkbox control). */\n@Component({\n selector: 'jr-switch',\n template: `\n <div class=\"flex cursor-pointer items-center justify-between gap-3\">\n <span class=\"text-sm text-zinc-700 dark:text-zinc-300\">{{\n label()\n }}</span>\n <button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n (click)=\"checked.set(!checked())\"\n class=\"relative inline-flex h-6 w-11 items-center rounded-full transition-colors\"\n [class.bg-indigo-600]=\"checked()\"\n [class.bg-zinc-300]=\"!checked()\"\n [class.dark:bg-zinc-700]=\"!checked()\"\n >\n <span\n class=\"inline-block h-4 w-4 transform rounded-full bg-white transition-transform\"\n [class.translate-x-6]=\"checked()\"\n [class.translate-x-1]=\"!checked()\"\n ></span>\n </button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'block' },\n})\nexport class JrSwitch {\n readonly checked = model(false);\n readonly label = input('');\n}\n\nconst BUTTON_VARIANTS: Record<string, string> = {\n primary:\n 'bg-indigo-600 text-white hover:bg-indigo-500 focus-visible:ring-indigo-500/40',\n secondary:\n 'border border-zinc-300 bg-white text-zinc-800 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100 dark:hover:bg-zinc-800',\n ghost:\n 'text-zinc-700 hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800',\n danger: 'bg-red-600 text-white hover:bg-red-500 focus-visible:ring-red-500/40',\n};\n\n/** Button that emits the `press` action. */\n@Component({\n selector: 'jr-button',\n template: `\n <button\n type=\"button\"\n [class]=\"buttonClass()\"\n [disabled]=\"disabled()\"\n (click)=\"ctx.emit('press')\"\n >\n {{ label() }}<ng-content />\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'inline-block' },\n})\nexport class JrButton {\n readonly label = input('');\n readonly variant = input<'primary' | 'secondary' | 'ghost' | 'danger'>(\n 'primary',\n );\n readonly disabled = input(false);\n protected readonly ctx = inject(JR_CONTEXT);\n protected readonly buttonClass = computed(\n () =>\n 'inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium transition-colors outline-none focus-visible:ring-2 disabled:opacity-50 disabled:pointer-events-none ' +\n (BUTTON_VARIANTS[this.variant()] ?? BUTTON_VARIANTS['primary']),\n );\n}\n","import { type JrRegistry, defineRegistry } from '@ng-json-render/core';\nimport { JrBarChart, JrLineChart } from './charts';\nimport { JrBadge, JrHeading, JrStat, JrText } from './content';\nimport {\n JrButton,\n JrCheckbox,\n JrInput,\n JrSelect,\n JrSwitch,\n JrTextarea,\n} from './forms';\nimport { JrAlert, JrProgress } from './feedback';\nimport { JrCard, JrContainer, JrDivider, JrGrid, JrStack } from './layout';\nimport { JrTable } from './table';\n\n/**\n * Registry of all built-in primitive components, keyed by catalog `type`.\n * Pass to `<jr-renderer [registry]=\"primitivesRegistry\">` or\n * `provideJsonRender({ registry: primitivesRegistry })`.\n */\nexport const primitivesRegistry: JrRegistry = defineRegistry({\n // layout\n Container: JrContainer,\n Stack: JrStack,\n Grid: JrGrid,\n Card: JrCard,\n Divider: JrDivider,\n // content\n Heading: JrHeading,\n Text: JrText,\n Badge: JrBadge,\n Stat: JrStat,\n // feedback\n Alert: JrAlert,\n Progress: JrProgress,\n // data\n Table: JrTable,\n BarChart: JrBarChart,\n LineChart: JrLineChart,\n // forms\n Input: JrInput,\n Textarea: JrTextarea,\n Select: JrSelect,\n Checkbox: JrCheckbox,\n Switch: JrSwitch,\n Button: JrButton,\n});\n","// layout\nexport { JrContainer, JrStack, JrGrid, JrCard, JrDivider } from './lib/layout';\n// content\nexport { JrHeading, JrText, JrBadge, JrStat } from './lib/content';\n// feedback\nexport { JrAlert, JrProgress } from './lib/feedback';\n// data-viz\nexport { JrBarChart, JrLineChart, type ChartDatum } from './lib/charts';\nexport { JrTable, type JrTableColumn } from './lib/table';\n// forms (Signal Forms controls)\nexport {\n JrInput,\n JrTextarea,\n JrSelect,\n type JrSelectOption,\n JrCheckbox,\n JrSwitch,\n JrButton,\n} from './lib/forms';\n// registry\nexport { primitivesRegistry } from './lib/registry';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAOA;MAWa,WAAW,CAAA;AACb,IAAA,QAAQ,GAAG,KAAK,CAAkB,GAAG,+EAAC;AAC5B,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,GAAG,CAAC;AAC7C,IAAA,CAAC,oFAAC;wGALS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,wVARZ,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAQf,WAAW,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,cAAc;AACrB,wBAAA,mBAAmB,EAAE,iBAAiB;AACtC,wBAAA,uBAAuB,EAAE,QAAQ;AAClC,qBAAA;AACF,iBAAA;;AASD;MAca,OAAO,CAAA;AACT,IAAA,SAAS,GAAG,KAAK,CAAmB,QAAQ,gFAAC;AAC7C,IAAA,GAAG,GAAG,KAAK,CAAkB,EAAE,0EAAC;IAChC,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IACvB,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACzB,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,2EAAC;AAET,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,GAAG,CAAC;AAC7C,IAAA,CAAC,+EAAC;wGAVS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,47BAXR,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAWf,OAAO,EAAA,UAAA,EAAA,CAAA;kBAbnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wCAAwC;AAC/C,wBAAA,wBAAwB,EAAE,aAAa;AACvC,wBAAA,aAAa,EAAE,YAAY;AAC3B,wBAAA,qBAAqB,EAAE,SAAS;AAChC,wBAAA,yBAAyB,EAAE,WAAW;AACtC,wBAAA,mBAAmB,EAAE,wBAAwB;AAC9C,qBAAA;AACF,iBAAA;;AAcD;;;;AAIG;MAWU,MAAM,CAAA;AACR,IAAA,OAAO,GAAG,KAAK,CAAS,CAAC,8EAAC;AAC1B,IAAA,GAAG,GAAG,KAAK,CAAkB,EAAE,0EAAC;;AAEhC,IAAA,YAAY,GAAG,KAAK,CAAS,GAAG,mFAAC;AAEvB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,GAAG,CAAC;AAC7C,IAAA,CAAC,+EAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE;;;QAG/B,MAAM,KAAK,GAAG,CAAA,cAAA,EAAiB,IAAI,WAAW,GAAG,CAAA,IAAA,EAAO,IAAI,CAAA,CAAA,CAAG;AAC/D,QAAA,OAAO,CAAA,sCAAA,EAAyC,GAAG,CAAA,IAAA,EAAO,KAAK,WAAW;AAC5E,IAAA,CAAC,sFAAC;wGApBS,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,+mBARP,CAAA,cAAA,CAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAQf,MAAM,EAAA,UAAA,EAAA,CAAA;kBAVlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,CAAA,cAAA,CAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wCAAwC;AAC/C,wBAAA,+BAA+B,EAAE,mBAAmB;AACpD,wBAAA,aAAa,EAAE,YAAY;AAC5B,qBAAA;AACF,iBAAA;;AAwBD;MA4Ba,MAAM,CAAA;IACR,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IACvB,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;wGAFxB,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sGAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBP;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAOU,MAAM,EAAA,UAAA,EAAA,CAAA;kBA3BlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EACH,sGAAsG;AACzG,qBAAA;AACF,iBAAA;;AAMD;MAUa,SAAS,CAAA;wGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,4LAPV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAOD,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,qDAAqD;AAC5D,wBAAA,IAAI,EAAE,WAAW;AAClB,qBAAA;AACF,iBAAA;;;AC9HD;MASa,SAAS,CAAA;AACX,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAgB,CAAC,4EAAC;AAErB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;QAC3C,MAAM,IAAI,GACR,qEAAqE;AACvE,QAAA,QACE,IAAI;YACJ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAC5D,IAAI,CAAC,KAAK,EAAE,CACb;AAEL,IAAA,CAAC,gFAAC;wGAbS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,oXANV,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM5B,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,aAAa;AACzB,qBAAA;AACF,iBAAA;;AAiBD;MAca,MAAM,CAAA;AACR,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,MAAM,GAAG,KAAK,CAA+B,QAAQ,6EAAC;AACtD,IAAA,IAAI,GAAG,KAAK,CAA8B,MAAM,2EAAC;wGAH/C,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,utBAXP,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAW5B,MAAM,EAAA,UAAA,EAAA,CAAA;kBAblB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kCAAkC;AACzC,wBAAA,qBAAqB,EAAE,uBAAuB;AAC9C,wBAAA,uBAAuB,EAAE,qBAAqB;AAC9C,wBAAA,iBAAiB,EAAE,iBAAiB;AACpC,wBAAA,iBAAiB,EAAE,iBAAiB;AACpC,wBAAA,iBAAiB,EAAE,iBAAiB;AACrC,qBAAA;AACF,iBAAA;;AAOD,MAAM,WAAW,GAA2B;AAC1C,IAAA,OAAO,EACL,+DAA+D;AACjE,IAAA,OAAO,EACL,8EAA8E;AAChF,IAAA,OAAO,EACL,sEAAsE;AACxE,IAAA,MAAM,EAAE,8DAA8D;AACtE,IAAA,IAAI,EAAE,0EAA0E;CACjF;AAED;MASa,OAAO,CAAA;AACT,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,IAAI,GAAG,KAAK,CACnB,SAAS,2EACV;AACkB,IAAA,SAAS,GAAG,QAAQ,CACrC,MACE,0EAA0E;AAC1E,SAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,gFACvD;wGATU,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,+WANR,CAAA,2BAAA,CAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM5B,OAAO,EAAA,UAAA,EAAA,CAAA;kBARnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA,2BAAA,CAA6B;oBACvC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,aAAa;AACzB,qBAAA;AACF,iBAAA;;AAaD;MAyBa,MAAM,CAAA;AACR,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAkB,EAAE,4EAAC;AAClC,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,4EAAC;AACxB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,+EAAC;wGAJ9D,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBP;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,MAAM,EAAA,UAAA,EAAA,CAAA;kBAxBlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;;ACrGD,MAAM,WAAW,GAA2B;AAC1C,IAAA,IAAI,EAAE,qHAAqH;AAC3H,IAAA,OAAO,EACL,2HAA2H;AAC7H,IAAA,OAAO,EACL,+GAA+G;AACjH,IAAA,MAAM,EACJ,mGAAmG;CACtG;AAED;MAiBa,OAAO,CAAA;IACT,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACvB,IAAA,OAAO,GAAG,KAAK,CAAC,EAAE,8EAAC;AACnB,IAAA,IAAI,GAAG,KAAK,CAA4C,MAAM,2EAAC;AACrD,IAAA,SAAS,GAAG,QAAQ,CACrC,MACE,oCAAoC;AACpC,SAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,gFACpD;wGARU,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdR;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAOU,OAAO,EAAA,UAAA,EAAA,CAAA;kBAhBnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE;;;;;;;AAOT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,SAAS,EAAE,aAAa;AACzB,qBAAA;AACF,iBAAA;;AAYD;MAqBa,UAAU,CAAA;AACZ,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,4EAAC;IACxB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACb,IAAA,OAAO,GAAG,QAAQ,CAAC,MACpC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,8EACrD;wGALU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBX;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,UAAU,EAAA,UAAA,EAAA,CAAA;kBApBtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;AAcT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;;ACpDD;MA4Ba,UAAU,CAAA;AACZ,IAAA,IAAI,GAAG,KAAK,CAAe,EAAE,2EAAC;AAC9B,IAAA,MAAM,GAAG,KAAK,CAAC,GAAG,6EAAC;AACX,IAAA,GAAG,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,0EAChD;AACS,IAAA,GAAG,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;IAChD;wGARW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBX;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,UAAU,EAAA,UAAA,EAAA,CAAA;kBA3BtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AAYD;MA+Ba,WAAW,CAAA;AACb,IAAA,IAAI,GAAG,KAAK,CAAW,EAAE,2EAAC;AAC1B,IAAA,MAAM,GAAG,KAAK,CAAC,GAAG,6EAAC;AAET,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/C,MAAM,CAAC,GAAG,GAAG;QACb,MAAM,CAAC,GAAG,GAAG;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACzB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;AACxD,YAAA,OAAO,CAAA,EAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1C,QAAA,CAAC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,EAAE;AAC3E,IAAA,CAAC,2EAAC;wGAnBS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5BZ;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,WAAW,EAAA,UAAA,EAAA,CAAA;kBA9BvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;;ACxED;MAsCa,OAAO,CAAA;AACT,IAAA,OAAO,GAAG,KAAK,CAAkB,EAAE,8EAAC;AACpC,IAAA,IAAI,GAAG,KAAK,CAA4B,EAAE,2EAAC;IAEjC,IAAI,GAAG,QAAQ,CAAC,MACjC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,KAAK;UACT,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;UAClB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,CAC5C,2EACF;IAES,IAAI,CAAC,GAA4B,EAAE,GAAW,EAAA;AACtD,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AAClB,QAAA,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACnC;wGAfW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnCR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,OAAO,EAAA,UAAA,EAAA,CAAA;kBArCnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;;ACrCD;AACA;AACA;AACA;AAEA,MAAM,WAAW,GACf,sDAAsD;AACxD,MAAM,OAAO,GACX,2PAA2P;AAE7P;;;AAGG;MAyBU,OAAO,CAAA;AACT,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;IACjB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACvB,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;AACvB,IAAA,IAAI,GAAG,KAAK,CAA2C,MAAM,2EAAC;IAC9D,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IACZ,UAAU,GAAG,WAAW;IACxB,YAAY,GAAG,OAAO;AAC/B,IAAA,IAAI,CAAC,CAAQ,EAAA;AACrB,QAAA,OAAQ,CAAC,CAAC,MAA2B,CAAC,KAAK;IAC7C;wGAVW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBR;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,OAAO,EAAA,UAAA,EAAA,CAAA;kBAxBnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AAcD;MAoBa,UAAU,CAAA;AACZ,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;IACjB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AACvB,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;AACvB,IAAA,IAAI,GAAG,KAAK,CAAC,CAAC,2EAAC;IACL,UAAU,GAAG,WAAW;IACxB,YAAY,GAAG,OAAO;AAC/B,IAAA,IAAI,CAAC,CAAQ,EAAA;AACrB,QAAA,OAAQ,CAAC,CAAC,MAA8B,CAAC,KAAK;IAChD;wGATW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBX;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAnBtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AAgBD;MAyBa,QAAQ,CAAA;AACV,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;IACjB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;IACvB,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAU;AAC7B,IAAA,OAAO,GAAG,KAAK,CAAmB,EAAE,8EAAC;IAC3B,UAAU,GAAG,WAAW;IACxB,YAAY,GAAG,OAAO;IACtB,UAAU,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,KAAK;UACT,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;UACpB,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAClD,iFACF;AACS,IAAA,IAAI,CAAC,CAAQ,EAAA;AACrB,QAAA,OAAQ,CAAC,CAAC,MAA4B,CAAC,KAAK;IAC9C;wGAhBW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBT;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAxBpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;AAkBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AAoBD;MAmBa,UAAU,CAAA;AACZ,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;AACtB,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AAChB,IAAA,IAAI,CAAC,CAAQ,EAAA;AACrB,QAAA,OAAQ,CAAC,CAAC,MAA2B,CAAC,OAAO;IAC/C;wGALW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBX;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAlBtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AASD;MA6Ba,QAAQ,CAAA;AACV,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,8EAAC;AACtB,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;wGAFf,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BT;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBA5BpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzB,iBAAA;;AAMD,MAAM,eAAe,GAA2B;AAC9C,IAAA,OAAO,EACL,+EAA+E;AACjF,IAAA,SAAS,EACP,gJAAgJ;AAClJ,IAAA,KAAK,EACH,2EAA2E;AAC7E,IAAA,MAAM,EAAE,sEAAsE;CAC/E;AAED;MAgBa,QAAQ,CAAA;AACV,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,OAAO,GAAG,KAAK,CACtB,SAAS,8EACV;AACQ,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;AACb,IAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AACxB,IAAA,WAAW,GAAG,QAAQ,CACvC,MACE,wLAAwL;AACxL,SAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC,kFAClE;wGAXU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAbT;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIU,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAfpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;AAChC,iBAAA;;;ACnND;;;;AAIG;AACI,MAAM,kBAAkB,GAAe,cAAc,CAAC;;AAE3D,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,OAAO,EAAE,SAAS;;AAElB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;;AAEZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAAU;;AAEpB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,SAAS,EAAE,WAAW;;AAEtB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AACjB,CAAA;;AC9CD;;ACAA;;AAEG;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ng-json-render/primitives",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Starter primitive component catalog (Tailwind + Signal Forms-compatible controls) for @ng-json-render/core.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"peerDependencies": {
|
|
7
|
+
"@angular/core": ">=19.0.0 <23.0.0",
|
|
8
|
+
"@ng-json-render/core": "^0.0.2"
|
|
9
|
+
},
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"module": "fesm2022/ng-json-render-primitives.mjs",
|
|
15
|
+
"typings": "types/ng-json-render-primitives.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
"./package.json": {
|
|
18
|
+
"default": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./types/ng-json-render-primitives.d.ts",
|
|
22
|
+
"default": "./fesm2022/ng-json-render-primitives.mjs"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"tslib": "^2.3.0"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _ng_json_render_core from '@ng-json-render/core';
|
|
3
|
+
import { JrRegistry } from '@ng-json-render/core';
|
|
4
|
+
|
|
5
|
+
/** Centered, max-width page container. */
|
|
6
|
+
declare class JrContainer {
|
|
7
|
+
readonly maxWidth: _angular_core.InputSignal<string | number>;
|
|
8
|
+
protected readonly maxWidthValue: _angular_core.Signal<string>;
|
|
9
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrContainer, never>;
|
|
10
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrContainer, "jr-container", never, { "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
11
|
+
}
|
|
12
|
+
/** Flexbox stack (row or column) with configurable gap and alignment. */
|
|
13
|
+
declare class JrStack {
|
|
14
|
+
readonly direction: _angular_core.InputSignal<"row" | "column">;
|
|
15
|
+
readonly gap: _angular_core.InputSignal<string | number>;
|
|
16
|
+
readonly align: _angular_core.InputSignal<string | undefined>;
|
|
17
|
+
readonly justify: _angular_core.InputSignal<string | undefined>;
|
|
18
|
+
readonly wrap: _angular_core.InputSignal<boolean>;
|
|
19
|
+
protected readonly gapValue: _angular_core.Signal<string>;
|
|
20
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrStack, never>;
|
|
21
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrStack, "jr-stack", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Responsive grid. `columns` is the target column count at full width; the grid
|
|
25
|
+
* collapses to fewer columns as the container narrows (each column never shrinks
|
|
26
|
+
* below `minItemWidth`), so specs stay responsive without media queries.
|
|
27
|
+
*/
|
|
28
|
+
declare class JrGrid {
|
|
29
|
+
readonly columns: _angular_core.InputSignal<number>;
|
|
30
|
+
readonly gap: _angular_core.InputSignal<string | number>;
|
|
31
|
+
/** Minimum width a column may shrink to before the grid drops a column. */
|
|
32
|
+
readonly minItemWidth: _angular_core.InputSignal<number>;
|
|
33
|
+
protected readonly gapValue: _angular_core.Signal<string>;
|
|
34
|
+
protected readonly templateColumns: _angular_core.Signal<string>;
|
|
35
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrGrid, never>;
|
|
36
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrGrid, "jr-grid", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "minItemWidth": { "alias": "minItemWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
37
|
+
}
|
|
38
|
+
/** Bordered surface with an optional title/subtitle. */
|
|
39
|
+
declare class JrCard {
|
|
40
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
41
|
+
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
42
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrCard, never>;
|
|
43
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrCard, "jr-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
44
|
+
}
|
|
45
|
+
/** Horizontal rule. */
|
|
46
|
+
declare class JrDivider {
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrDivider, never>;
|
|
48
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrDivider, "jr-divider", never, {}, {}, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Section heading (levels 1–4). */
|
|
52
|
+
declare class JrHeading {
|
|
53
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
54
|
+
readonly level: _angular_core.InputSignal<2 | 1 | 3 | 4>;
|
|
55
|
+
protected readonly sizeClass: _angular_core.Signal<string>;
|
|
56
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrHeading, never>;
|
|
57
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrHeading, "jr-heading", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
58
|
+
}
|
|
59
|
+
/** Body text. */
|
|
60
|
+
declare class JrText {
|
|
61
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
62
|
+
readonly weight: _angular_core.InputSignal<"normal" | "medium" | "bold">;
|
|
63
|
+
readonly size: _angular_core.InputSignal<"xs" | "sm" | "base" | "lg">;
|
|
64
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrText, never>;
|
|
65
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrText, "jr-text", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "weight": { "alias": "weight"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
66
|
+
}
|
|
67
|
+
/** Small status pill. */
|
|
68
|
+
declare class JrBadge {
|
|
69
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
70
|
+
readonly tone: _angular_core.InputSignal<"neutral" | "success" | "warning" | "danger" | "info">;
|
|
71
|
+
protected readonly toneClass: _angular_core.Signal<string>;
|
|
72
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrBadge, never>;
|
|
73
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrBadge, "jr-badge", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
74
|
+
}
|
|
75
|
+
/** KPI tile: a big value with a label and an optional delta. */
|
|
76
|
+
declare class JrStat {
|
|
77
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
78
|
+
readonly value: _angular_core.InputSignal<string | number>;
|
|
79
|
+
readonly delta: _angular_core.InputSignal<number | null>;
|
|
80
|
+
protected readonly absDelta: _angular_core.Signal<number>;
|
|
81
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrStat, never>;
|
|
82
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrStat, "jr-stat", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Inline callout / alert banner. */
|
|
86
|
+
declare class JrAlert {
|
|
87
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
88
|
+
readonly message: _angular_core.InputSignal<string>;
|
|
89
|
+
readonly tone: _angular_core.InputSignal<"success" | "warning" | "danger" | "info">;
|
|
90
|
+
protected readonly toneClass: _angular_core.Signal<string>;
|
|
91
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrAlert, never>;
|
|
92
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrAlert, "jr-alert", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
93
|
+
}
|
|
94
|
+
/** Determinate progress bar (0–100). */
|
|
95
|
+
declare class JrProgress {
|
|
96
|
+
readonly value: _angular_core.InputSignal<number>;
|
|
97
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
98
|
+
protected readonly clamped: _angular_core.Signal<number>;
|
|
99
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrProgress, never>;
|
|
100
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrProgress, "jr-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** A single {label, value} datum for charts. */
|
|
104
|
+
interface ChartDatum {
|
|
105
|
+
label: string;
|
|
106
|
+
value: number;
|
|
107
|
+
}
|
|
108
|
+
/** Responsive CSS bar chart (no chart library). */
|
|
109
|
+
declare class JrBarChart {
|
|
110
|
+
readonly data: _angular_core.InputSignal<ChartDatum[]>;
|
|
111
|
+
readonly height: _angular_core.InputSignal<number>;
|
|
112
|
+
private readonly max;
|
|
113
|
+
protected pct(value: number): number;
|
|
114
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrBarChart, never>;
|
|
115
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrBarChart, "jr-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
116
|
+
}
|
|
117
|
+
/** Responsive SVG line/area chart (no chart library). */
|
|
118
|
+
declare class JrLineChart {
|
|
119
|
+
readonly data: _angular_core.InputSignal<number[]>;
|
|
120
|
+
readonly height: _angular_core.InputSignal<number>;
|
|
121
|
+
protected readonly geom: _angular_core.Signal<{
|
|
122
|
+
line: string;
|
|
123
|
+
area: string;
|
|
124
|
+
}>;
|
|
125
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrLineChart, never>;
|
|
126
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrLineChart, "jr-line-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** A table column, either a bare key or a key/label pair. */
|
|
130
|
+
type JrTableColumn = string | {
|
|
131
|
+
key: string;
|
|
132
|
+
label?: string;
|
|
133
|
+
};
|
|
134
|
+
/** Simple data table. */
|
|
135
|
+
declare class JrTable {
|
|
136
|
+
readonly columns: _angular_core.InputSignal<JrTableColumn[]>;
|
|
137
|
+
readonly rows: _angular_core.InputSignal<Record<string, unknown>[]>;
|
|
138
|
+
protected readonly cols: _angular_core.Signal<{
|
|
139
|
+
key: string;
|
|
140
|
+
label: string;
|
|
141
|
+
}[]>;
|
|
142
|
+
protected cell(row: Record<string, unknown>, key: string): string;
|
|
143
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrTable, never>;
|
|
144
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrTable, "jr-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Text input. A Signal Forms Signal Forms value control — usable with the `[field]`
|
|
149
|
+
* directive, or driven by `$bindState` through the renderer.
|
|
150
|
+
*/
|
|
151
|
+
declare class JrInput {
|
|
152
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
153
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
154
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
155
|
+
readonly type: _angular_core.InputSignal<"number" | "text" | "email" | "password">;
|
|
156
|
+
readonly hint: _angular_core.InputSignal<string | undefined>;
|
|
157
|
+
protected readonly labelClass = "text-sm font-medium text-zinc-700 dark:text-zinc-300";
|
|
158
|
+
protected readonly controlClass = "w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none placeholder:text-zinc-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100";
|
|
159
|
+
protected read(e: Event): string;
|
|
160
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrInput, never>;
|
|
161
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrInput, "jr-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
162
|
+
}
|
|
163
|
+
/** Multi-line text input (Signal Forms value control). */
|
|
164
|
+
declare class JrTextarea {
|
|
165
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
166
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
167
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
168
|
+
readonly rows: _angular_core.InputSignal<number>;
|
|
169
|
+
protected readonly labelClass = "text-sm font-medium text-zinc-700 dark:text-zinc-300";
|
|
170
|
+
protected readonly controlClass = "w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none placeholder:text-zinc-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100";
|
|
171
|
+
protected read(e: Event): string;
|
|
172
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrTextarea, never>;
|
|
173
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrTextarea, "jr-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
174
|
+
}
|
|
175
|
+
/** An option for {@link JrSelect}. */
|
|
176
|
+
type JrSelectOption = string | {
|
|
177
|
+
value: string;
|
|
178
|
+
label?: string;
|
|
179
|
+
};
|
|
180
|
+
/** Dropdown select (Signal Forms value control). */
|
|
181
|
+
declare class JrSelect {
|
|
182
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
183
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
184
|
+
readonly placeholder: _angular_core.InputSignal<string | undefined>;
|
|
185
|
+
readonly options: _angular_core.InputSignal<JrSelectOption[]>;
|
|
186
|
+
protected readonly labelClass = "text-sm font-medium text-zinc-700 dark:text-zinc-300";
|
|
187
|
+
protected readonly controlClass = "w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none placeholder:text-zinc-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100";
|
|
188
|
+
protected readonly normalized: _angular_core.Signal<{
|
|
189
|
+
value: string;
|
|
190
|
+
label: string;
|
|
191
|
+
}[]>;
|
|
192
|
+
protected read(e: Event): string;
|
|
193
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrSelect, never>;
|
|
194
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrSelect, "jr-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
195
|
+
}
|
|
196
|
+
/** Checkbox (Signal Forms checkbox control). */
|
|
197
|
+
declare class JrCheckbox {
|
|
198
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
199
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
200
|
+
protected read(e: Event): boolean;
|
|
201
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrCheckbox, never>;
|
|
202
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrCheckbox, "jr-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
203
|
+
}
|
|
204
|
+
/** Toggle switch (Signal Forms checkbox control). */
|
|
205
|
+
declare class JrSwitch {
|
|
206
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
207
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
208
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrSwitch, never>;
|
|
209
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrSwitch, "jr-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
210
|
+
}
|
|
211
|
+
/** Button that emits the `press` action. */
|
|
212
|
+
declare class JrButton {
|
|
213
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
214
|
+
readonly variant: _angular_core.InputSignal<"danger" | "primary" | "secondary" | "ghost">;
|
|
215
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
216
|
+
protected readonly ctx: _ng_json_render_core.JrContext;
|
|
217
|
+
protected readonly buttonClass: _angular_core.Signal<string>;
|
|
218
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JrButton, never>;
|
|
219
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JrButton, "jr-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Registry of all built-in primitive components, keyed by catalog `type`.
|
|
224
|
+
* Pass to `<jr-renderer [registry]="primitivesRegistry">` or
|
|
225
|
+
* `provideJsonRender({ registry: primitivesRegistry })`.
|
|
226
|
+
*/
|
|
227
|
+
declare const primitivesRegistry: JrRegistry;
|
|
228
|
+
|
|
229
|
+
export { JrAlert, JrBadge, JrBarChart, JrButton, JrCard, JrCheckbox, JrContainer, JrDivider, JrGrid, JrHeading, JrInput, JrLineChart, JrProgress, JrSelect, JrStack, JrStat, JrSwitch, JrTable, JrText, JrTextarea, primitivesRegistry };
|
|
230
|
+
export type { ChartDatum, JrSelectOption, JrTableColumn };
|