@kouji-ui/core 0.6.3 → 0.8.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.
- package/fesm2022/kouji-ui-core.mjs +358 -38
- package/fesm2022/kouji-ui-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/kouji-ui-core.d.ts +208 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, booleanAttribute, Directive, inject, ElementRef, DestroyRef, PLATFORM_ID, signal, afterNextRender, forwardRef, InjectionToken, Injectable, computed, viewChild, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, Component, ApplicationRef, EnvironmentInjector, Injector, createComponent, model, effect, untracked, isSignal, DOCUMENT, output, contentChildren, makeEnvironmentProviders, LOCALE_ID, provideEnvironmentInitializer, isDevMode, numberAttribute, contentChild, runInInjectionContext, HostListener, linkedSignal,
|
|
2
|
+
import { input, booleanAttribute, Directive, inject, ElementRef, DestroyRef, PLATFORM_ID, signal, afterNextRender, forwardRef, InjectionToken, Injectable, computed, viewChild, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, Component, ApplicationRef, EnvironmentInjector, Injector, createComponent, model, effect, untracked, isSignal, DOCUMENT, output, contentChildren, makeEnvironmentProviders, LOCALE_ID, provideEnvironmentInitializer, isDevMode, numberAttribute, contentChild, TemplateRef, runInInjectionContext, HostListener, linkedSignal, resource, EventEmitter, Output, afterEveryRender } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser, DOCUMENT as DOCUMENT$1 } from '@angular/common';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgForm, FormGroupDirective, FormGroup, FormArray } from '@angular/forms';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
@@ -1761,7 +1761,7 @@ function silent() {
|
|
|
1761
1761
|
return { attach() { }, onOpen() { }, onClose() { }, detach() { }, announce() { } };
|
|
1762
1762
|
}
|
|
1763
1763
|
|
|
1764
|
-
function onClick() {
|
|
1764
|
+
function onClick(opts = {}) {
|
|
1765
1765
|
let ctx = null;
|
|
1766
1766
|
let toggle = null;
|
|
1767
1767
|
let listener = null;
|
|
@@ -1771,14 +1771,25 @@ function onClick() {
|
|
|
1771
1771
|
const trigger = ctx.triggerEl();
|
|
1772
1772
|
if (!trigger || listener)
|
|
1773
1773
|
return;
|
|
1774
|
-
listener = () =>
|
|
1774
|
+
listener = () => {
|
|
1775
|
+
if (opts.openOnly && ctx?.isOpen())
|
|
1776
|
+
return;
|
|
1777
|
+
toggle?.();
|
|
1778
|
+
};
|
|
1775
1779
|
trigger.addEventListener('click', listener);
|
|
1776
1780
|
};
|
|
1777
1781
|
return {
|
|
1778
1782
|
ariaHasPopup: null,
|
|
1779
|
-
attach(c) {
|
|
1780
|
-
|
|
1781
|
-
|
|
1783
|
+
attach(c) {
|
|
1784
|
+
ctx = c;
|
|
1785
|
+
wireListener();
|
|
1786
|
+
},
|
|
1787
|
+
bindToggle(t) {
|
|
1788
|
+
toggle = t;
|
|
1789
|
+
wireListener();
|
|
1790
|
+
},
|
|
1791
|
+
onOpen() { },
|
|
1792
|
+
onClose() { },
|
|
1782
1793
|
detach() {
|
|
1783
1794
|
const trigger = ctx?.triggerEl();
|
|
1784
1795
|
if (trigger && listener)
|
|
@@ -1831,6 +1842,39 @@ function onHover(initialOpts = {}) {
|
|
|
1831
1842
|
let onEnter = null;
|
|
1832
1843
|
let onLeave = null;
|
|
1833
1844
|
let listenTarget = null;
|
|
1845
|
+
let panelTarget = null;
|
|
1846
|
+
const cancelClose = () => {
|
|
1847
|
+
if (closeTimer) {
|
|
1848
|
+
clearTimeout(closeTimer);
|
|
1849
|
+
closeTimer = 0;
|
|
1850
|
+
}
|
|
1851
|
+
};
|
|
1852
|
+
const scheduleClose = () => {
|
|
1853
|
+
if (openTimer) {
|
|
1854
|
+
clearTimeout(openTimer);
|
|
1855
|
+
openTimer = 0;
|
|
1856
|
+
}
|
|
1857
|
+
if (!ctx?.isOpen())
|
|
1858
|
+
return;
|
|
1859
|
+
cancelClose();
|
|
1860
|
+
closeTimer = setTimeout(() => {
|
|
1861
|
+
toggle?.();
|
|
1862
|
+
closeTimer = 0;
|
|
1863
|
+
}, read$2(opts.closeDelay, 0));
|
|
1864
|
+
};
|
|
1865
|
+
// The panel is bound to the controller after the trigger attaches (a
|
|
1866
|
+
// `[kjFor]` panel registers itself later), so its listeners are wired
|
|
1867
|
+
// lazily — on the first hover intent, once the panel element exists.
|
|
1868
|
+
const wirePanel = () => {
|
|
1869
|
+
if (panelTarget || !read$2(opts.interactive, false))
|
|
1870
|
+
return;
|
|
1871
|
+
const panel = ctx?.panelEl();
|
|
1872
|
+
if (!panel)
|
|
1873
|
+
return;
|
|
1874
|
+
panelTarget = panel;
|
|
1875
|
+
panel.addEventListener('pointerenter', cancelClose);
|
|
1876
|
+
panel.addEventListener('pointerleave', scheduleClose);
|
|
1877
|
+
};
|
|
1834
1878
|
const wire = () => {
|
|
1835
1879
|
if (!ctx?.platform.isBrowser)
|
|
1836
1880
|
return;
|
|
@@ -1839,47 +1883,57 @@ function onHover(initialOpts = {}) {
|
|
|
1839
1883
|
return;
|
|
1840
1884
|
listenTarget = effectiveHoverTarget(trigger);
|
|
1841
1885
|
onEnter = () => {
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
closeTimer = 0;
|
|
1845
|
-
}
|
|
1886
|
+
cancelClose();
|
|
1887
|
+
wirePanel();
|
|
1846
1888
|
if (ctx?.isOpen())
|
|
1847
1889
|
return;
|
|
1848
|
-
openTimer = setTimeout(() => {
|
|
1890
|
+
openTimer = setTimeout(() => {
|
|
1891
|
+
toggle?.();
|
|
1892
|
+
openTimer = 0;
|
|
1893
|
+
}, read$2(opts.openDelay, 0));
|
|
1849
1894
|
};
|
|
1850
1895
|
onLeave = () => {
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
openTimer = 0;
|
|
1854
|
-
}
|
|
1855
|
-
if (!ctx?.isOpen())
|
|
1856
|
-
return;
|
|
1857
|
-
closeTimer = setTimeout(() => { toggle?.(); closeTimer = 0; }, read$2(opts.closeDelay, 0));
|
|
1896
|
+
wirePanel();
|
|
1897
|
+
scheduleClose();
|
|
1858
1898
|
};
|
|
1859
1899
|
listenTarget.addEventListener('pointerenter', onEnter);
|
|
1860
1900
|
listenTarget.addEventListener('pointerleave', onLeave);
|
|
1861
1901
|
};
|
|
1862
1902
|
return {
|
|
1863
1903
|
ariaHasPopup: null,
|
|
1864
|
-
attach(c) {
|
|
1865
|
-
|
|
1866
|
-
|
|
1904
|
+
attach(c) {
|
|
1905
|
+
ctx = c;
|
|
1906
|
+
wire();
|
|
1907
|
+
},
|
|
1908
|
+
bindToggle(t) {
|
|
1909
|
+
toggle = t;
|
|
1910
|
+
wire();
|
|
1911
|
+
},
|
|
1912
|
+
onOpen() { },
|
|
1913
|
+
onClose() { },
|
|
1867
1914
|
detach() {
|
|
1868
1915
|
if (listenTarget && onEnter)
|
|
1869
1916
|
listenTarget.removeEventListener('pointerenter', onEnter);
|
|
1870
1917
|
if (listenTarget && onLeave)
|
|
1871
1918
|
listenTarget.removeEventListener('pointerleave', onLeave);
|
|
1919
|
+
if (panelTarget) {
|
|
1920
|
+
panelTarget.removeEventListener('pointerenter', cancelClose);
|
|
1921
|
+
panelTarget.removeEventListener('pointerleave', scheduleClose);
|
|
1922
|
+
}
|
|
1872
1923
|
if (openTimer)
|
|
1873
1924
|
clearTimeout(openTimer);
|
|
1874
1925
|
if (closeTimer)
|
|
1875
1926
|
clearTimeout(closeTimer);
|
|
1876
1927
|
onEnter = onLeave = null;
|
|
1877
1928
|
listenTarget = null;
|
|
1929
|
+
panelTarget = null;
|
|
1878
1930
|
openTimer = closeTimer = 0;
|
|
1879
1931
|
toggle = null;
|
|
1880
1932
|
ctx = null;
|
|
1881
1933
|
},
|
|
1882
|
-
configure(newOpts) {
|
|
1934
|
+
configure(newOpts) {
|
|
1935
|
+
opts = { ...opts, ...newOpts };
|
|
1936
|
+
},
|
|
1883
1937
|
};
|
|
1884
1938
|
}
|
|
1885
1939
|
|
|
@@ -4215,6 +4269,9 @@ const EN_CATALOG = {
|
|
|
4215
4269
|
// -- Overlays --
|
|
4216
4270
|
'toast.close': 'Close notification',
|
|
4217
4271
|
'dialog.close': 'Close dialog',
|
|
4272
|
+
// -- Collapsed groups (tag list / avatar group "+N" chip) --
|
|
4273
|
+
'overflow.more': '+{count}',
|
|
4274
|
+
'overflow.show': 'Show {count} more',
|
|
4218
4275
|
// -- Pagination --
|
|
4219
4276
|
'pagination.nav': 'Pagination',
|
|
4220
4277
|
'pagination.previous': 'Previous page',
|
|
@@ -4243,6 +4300,9 @@ const FR_CATALOG = {
|
|
|
4243
4300
|
// -- Overlays --
|
|
4244
4301
|
'toast.close': 'Fermer la notification',
|
|
4245
4302
|
'dialog.close': 'Fermer la boîte de dialogue',
|
|
4303
|
+
// -- Collapsed groups --
|
|
4304
|
+
'overflow.more': '+{count}',
|
|
4305
|
+
'overflow.show': 'Afficher {count} de plus',
|
|
4246
4306
|
// -- Pagination --
|
|
4247
4307
|
'pagination.nav': 'Pagination',
|
|
4248
4308
|
'pagination.previous': 'Page précédente',
|
|
@@ -4926,7 +4986,7 @@ class KjButtonGroup {
|
|
|
4926
4986
|
return this.kjDisabled;
|
|
4927
4987
|
}
|
|
4928
4988
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4929
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: KjButtonGroup, isStandalone: true, selector: "[kjButtonGroup]", inputs: { kjOrientation: { classPropertyName: "kjOrientation", publicName: "kjOrientation", isSignal: true, isRequired: false, transformFunction: null }, kjVariant: { classPropertyName: "kjVariant", publicName: "kjVariant", isSignal: true, isRequired: false, transformFunction: null }, kjSize: { classPropertyName: "kjSize", publicName: "kjSize", isSignal: true, isRequired: false, transformFunction: null }, kjDisabled: { classPropertyName: "kjDisabled", publicName: "kjDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "\"group\"", "attr.data-orientation": "kjOrientation()", "attr.data-disabled": "kjDisabled() ? \"\" : null" } }, providers: [{ provide: KJ_BUTTON_GROUP, useExisting: KjButtonGroup }], exportAs: ["kjButtonGroup"], ngImport: i0 });
|
|
4989
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: KjButtonGroup, isStandalone: true, selector: "[kjButtonGroup]", inputs: { kjOrientation: { classPropertyName: "kjOrientation", publicName: "kjOrientation", isSignal: true, isRequired: false, transformFunction: null }, kjVariant: { classPropertyName: "kjVariant", publicName: "kjVariant", isSignal: true, isRequired: false, transformFunction: null }, kjSize: { classPropertyName: "kjSize", publicName: "kjSize", isSignal: true, isRequired: false, transformFunction: null }, kjDisabled: { classPropertyName: "kjDisabled", publicName: "kjDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "\"group\"", "attr.data-orientation": "kjOrientation()", "attr.data-disabled": "kjDisabled() ? \"\" : null", "attr.data-variant": "kjVariant() ?? null" } }, providers: [{ provide: KJ_BUTTON_GROUP, useExisting: KjButtonGroup }], exportAs: ["kjButtonGroup"], ngImport: i0 });
|
|
4930
4990
|
}
|
|
4931
4991
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjButtonGroup, decorators: [{
|
|
4932
4992
|
type: Directive,
|
|
@@ -4944,6 +5004,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
4944
5004
|
// dedicated toolbar/radiogroup variants.
|
|
4945
5005
|
'[attr.data-orientation]': 'kjOrientation()',
|
|
4946
5006
|
'[attr.data-disabled]': 'kjDisabled() ? "" : null',
|
|
5007
|
+
// Styling hook for group-level looks that the children alone cannot
|
|
5008
|
+
// draw — a segmented control's shared shell and dividers, for one.
|
|
5009
|
+
'[attr.data-variant]': 'kjVariant() ?? null',
|
|
4947
5010
|
},
|
|
4948
5011
|
}]
|
|
4949
5012
|
}], propDecorators: { kjOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjOrientation", required: false }] }], kjVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjVariant", required: false }] }], kjSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjSize", required: false }] }], kjDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDisabled", required: false }] }] } });
|
|
@@ -11569,6 +11632,27 @@ class KjChatStore {
|
|
|
11569
11632
|
this.append({ id, role: 'user', content, createdAt: Date.now() });
|
|
11570
11633
|
return id;
|
|
11571
11634
|
}
|
|
11635
|
+
/**
|
|
11636
|
+
* Append an item drawn by a registered renderer rather than the built-in
|
|
11637
|
+
* message body — a chart, a diff, a form. `type` must match a key passed to
|
|
11638
|
+
* `provideKjChat`; `data` is handed to that component untouched.
|
|
11639
|
+
*
|
|
11640
|
+
* `content` is the item's plain-text equivalent. It is what the live region
|
|
11641
|
+
* announces and what a fallback renderer shows, so give it something a
|
|
11642
|
+
* screen-reader user can act on rather than leaving it empty.
|
|
11643
|
+
*/
|
|
11644
|
+
addItem(options) {
|
|
11645
|
+
const id = nextChatMessageId();
|
|
11646
|
+
this.append({
|
|
11647
|
+
id,
|
|
11648
|
+
role: options.role ?? 'assistant',
|
|
11649
|
+
type: options.type,
|
|
11650
|
+
data: options.data,
|
|
11651
|
+
content: options.content ?? '',
|
|
11652
|
+
createdAt: Date.now(),
|
|
11653
|
+
});
|
|
11654
|
+
return id;
|
|
11655
|
+
}
|
|
11572
11656
|
/** Append a system message; returns its id. */
|
|
11573
11657
|
addSystem(content) {
|
|
11574
11658
|
const id = nextChatMessageId();
|
|
@@ -11683,6 +11767,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
11683
11767
|
type: Injectable
|
|
11684
11768
|
}] });
|
|
11685
11769
|
|
|
11770
|
+
/**
|
|
11771
|
+
* The resolved chat configuration. Read by the thread; written by
|
|
11772
|
+
* {@link provideKjChat}. Defaults to an empty registry so the thread works
|
|
11773
|
+
* with no provider at all.
|
|
11774
|
+
*/
|
|
11775
|
+
const KJ_CHAT_CONFIG = new InjectionToken('KJ_CHAT_CONFIG', {
|
|
11776
|
+
providedIn: 'root',
|
|
11777
|
+
factory: () => ({ renderers: {} }),
|
|
11778
|
+
});
|
|
11779
|
+
/**
|
|
11780
|
+
* Register thread-item renderers.
|
|
11781
|
+
*
|
|
11782
|
+
* ```ts
|
|
11783
|
+
* provideKjChat({
|
|
11784
|
+
* renderers: { chart: ChartBubble, markdown: MyMarkdown },
|
|
11785
|
+
* fallback: UnknownItem,
|
|
11786
|
+
* })
|
|
11787
|
+
* ```
|
|
11788
|
+
*
|
|
11789
|
+
* Provide it at the application root for app-wide renderers, or on a route /
|
|
11790
|
+
* component for a chat that draws its own item kinds — the nearest injector
|
|
11791
|
+
* wins, exactly like any other Angular provider.
|
|
11792
|
+
*/
|
|
11793
|
+
function provideKjChat(config) {
|
|
11794
|
+
return { provide: KJ_CHAT_CONFIG, useValue: config };
|
|
11795
|
+
}
|
|
11796
|
+
|
|
11686
11797
|
/** Sentence-ending punctuation we flush on. */
|
|
11687
11798
|
const SENTENCE_END = /[.!?\n]/g;
|
|
11688
11799
|
/**
|
|
@@ -12475,9 +12586,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12475
12586
|
|
|
12476
12587
|
/**
|
|
12477
12588
|
* Optional container that coordinates a group of `KjTag` chips. Provides
|
|
12478
|
-
* the chip-group keyboard story (roving tabindex via `KjRovingTabindex`)
|
|
12479
|
-
*
|
|
12480
|
-
*
|
|
12589
|
+
* the chip-group keyboard story (roving tabindex via `KjRovingTabindex`),
|
|
12590
|
+
* the ARIA wiring for the `listbox` / `grid` / `group` shapes, and — with
|
|
12591
|
+
* `kjMax` — collapses the chips past the cap: they get `[hidden]` and
|
|
12592
|
+
* `data-overflow`, and `overflowCount` / `hiddenLabels` let a wrapper render
|
|
12593
|
+
* a "+N" chip that reveals them.
|
|
12481
12594
|
*
|
|
12482
12595
|
* Standalone tags work fine without this container — the container is the
|
|
12483
12596
|
* opt-in surface that turns a pile of independent chips into a single
|
|
@@ -12495,6 +12608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12495
12608
|
* @doc-name tag
|
|
12496
12609
|
*/
|
|
12497
12610
|
class KjTagList {
|
|
12611
|
+
platformId = inject(PLATFORM_ID);
|
|
12498
12612
|
/** Container ARIA role — drives chip role selection (option / row / none). */
|
|
12499
12613
|
kjTagListRole = input('group', /* @ts-ignore */
|
|
12500
12614
|
...(ngDevMode ? [{ debugName: "kjTagListRole" }] : /* istanbul ignore next */ []));
|
|
@@ -12507,19 +12621,50 @@ class KjTagList {
|
|
|
12507
12621
|
/** Cascading disabled flag. Each chip's effective disabled OR-merges this. */
|
|
12508
12622
|
kjTagListDisabled = input(false, /* @ts-ignore */
|
|
12509
12623
|
...(ngDevMode ? [{ debugName: "kjTagListDisabled" }] : /* istanbul ignore next */ []));
|
|
12624
|
+
/**
|
|
12625
|
+
* Maximum number of chips shown before the rest collapse. Chips past this
|
|
12626
|
+
* index are hidden (`[hidden]` + `data-overflow`) and counted in
|
|
12627
|
+
* `overflowCount`. `0` disables the cap (show everything).
|
|
12628
|
+
* @default 0
|
|
12629
|
+
*/
|
|
12630
|
+
kjMax = input(0, /* @ts-ignore */
|
|
12631
|
+
...(ngDevMode ? [{ debugName: "kjMax" }] : /* istanbul ignore next */ []));
|
|
12510
12632
|
/** Read-only role view used by `KjTag` to compute its own role. */
|
|
12511
12633
|
role = this.kjTagListRole;
|
|
12512
12634
|
/** Read-only disabled view used by `KjTag` to merge into its effective disabled. */
|
|
12513
12635
|
disabled = this.kjTagListDisabled;
|
|
12514
12636
|
/** Read-only multi-selectable view (listbox-only meaning). */
|
|
12515
12637
|
multiple = this.kjTagListMultiple;
|
|
12638
|
+
/**
|
|
12639
|
+
* Every projected `KjTag` (including those composed via `hostDirectives`
|
|
12640
|
+
* on a wrapper). `descendants: true` so a chip wrapped in an anchor or a
|
|
12641
|
+
* form control still counts.
|
|
12642
|
+
*/
|
|
12643
|
+
tags = contentChildren(KjTag, { ...(ngDevMode ? { debugName: "tags" } : /* istanbul ignore next */ {}), descendants: true });
|
|
12644
|
+
tagHosts = contentChildren(KjTag, { ...(ngDevMode ? { debugName: "tagHosts" } : /* istanbul ignore next */ {}), descendants: true, read: ElementRef });
|
|
12645
|
+
/** Projected chip count. */
|
|
12646
|
+
total = computed(() => this.tags().length, /* @ts-ignore */
|
|
12647
|
+
...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
|
|
12648
|
+
/** Number of chips rendered visibly (the rest are `[hidden]`). */
|
|
12649
|
+
visibleCount = computed(() => {
|
|
12650
|
+
const max = this.kjMax();
|
|
12651
|
+
const count = this.tags().length;
|
|
12652
|
+
return max <= 0 ? count : Math.min(count, max);
|
|
12653
|
+
}, /* @ts-ignore */
|
|
12654
|
+
...(ngDevMode ? [{ debugName: "visibleCount" }] : /* istanbul ignore next */ []));
|
|
12655
|
+
/** Number of chips collapsed by the cap. `0` when nothing overflows. */
|
|
12656
|
+
overflowCount = computed(() => Math.max(0, this.total() - this.visibleCount()), /* @ts-ignore */
|
|
12657
|
+
...(ngDevMode ? [{ debugName: "overflowCount" }] : /* istanbul ignore next */ []));
|
|
12658
|
+
/** Labels of the collapsed chips, in order — the wrapper's default panel content. */
|
|
12659
|
+
hiddenLabels = computed(() => this.tags()
|
|
12660
|
+
.slice(this.visibleCount())
|
|
12661
|
+
.map((t) => t.textContent()), /* @ts-ignore */
|
|
12662
|
+
...(ngDevMode ? [{ debugName: "hiddenLabels" }] : /* istanbul ignore next */ []));
|
|
12516
12663
|
/** Only emit `aria-orientation` when the container has a real role. */
|
|
12517
12664
|
ariaOrientation = computed(() => {
|
|
12518
12665
|
if (this.kjTagListRole() === 'group')
|
|
12519
12666
|
return null;
|
|
12520
|
-
return this.kjTagListOrientation() === 'both'
|
|
12521
|
-
? 'horizontal'
|
|
12522
|
-
: this.kjTagListOrientation();
|
|
12667
|
+
return this.kjTagListOrientation() === 'both' ? 'horizontal' : this.kjTagListOrientation();
|
|
12523
12668
|
}, /* @ts-ignore */
|
|
12524
12669
|
...(ngDevMode ? [{ debugName: "ariaOrientation" }] : /* istanbul ignore next */ []));
|
|
12525
12670
|
/** `aria-multiselectable` only set in listbox mode. */
|
|
@@ -12529,8 +12674,32 @@ class KjTagList {
|
|
|
12529
12674
|
return this.kjTagListMultiple() ? 'true' : 'false';
|
|
12530
12675
|
}, /* @ts-ignore */
|
|
12531
12676
|
...(ngDevMode ? [{ debugName: "ariaMultiSelectable" }] : /* istanbul ignore next */ []));
|
|
12677
|
+
constructor() {
|
|
12678
|
+
// Same contract as `KjAvatarGroup`: the group owns the visibility of its
|
|
12679
|
+
// collapsed chips and writes it onto their host elements.
|
|
12680
|
+
effect(() => {
|
|
12681
|
+
const hosts = this.tagHosts();
|
|
12682
|
+
const cap = this.visibleCount();
|
|
12683
|
+
const capped = this.kjMax() > 0;
|
|
12684
|
+
if (!isPlatformBrowser(this.platformId))
|
|
12685
|
+
return;
|
|
12686
|
+
hosts.forEach((ref, index) => {
|
|
12687
|
+
const el = ref.nativeElement;
|
|
12688
|
+
if (!el)
|
|
12689
|
+
return;
|
|
12690
|
+
if (capped && index >= cap) {
|
|
12691
|
+
el.setAttribute('hidden', '');
|
|
12692
|
+
el.setAttribute('data-overflow', 'true');
|
|
12693
|
+
}
|
|
12694
|
+
else {
|
|
12695
|
+
el.removeAttribute('hidden');
|
|
12696
|
+
el.removeAttribute('data-overflow');
|
|
12697
|
+
}
|
|
12698
|
+
});
|
|
12699
|
+
});
|
|
12700
|
+
}
|
|
12532
12701
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTagList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12533
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.
|
|
12702
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: KjTagList, isStandalone: true, selector: "[kjTagList]", inputs: { kjTagListRole: { classPropertyName: "kjTagListRole", publicName: "kjTagListRole", isSignal: true, isRequired: false, transformFunction: null }, kjTagListOrientation: { classPropertyName: "kjTagListOrientation", publicName: "kjTagListOrientation", isSignal: true, isRequired: false, transformFunction: null }, kjTagListMultiple: { classPropertyName: "kjTagListMultiple", publicName: "kjTagListMultiple", isSignal: true, isRequired: false, transformFunction: null }, kjTagListDisabled: { classPropertyName: "kjTagListDisabled", publicName: "kjTagListDisabled", isSignal: true, isRequired: false, transformFunction: null }, kjMax: { classPropertyName: "kjMax", publicName: "kjMax", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "kjTagListRole()", "attr.aria-orientation": "ariaOrientation()", "attr.aria-multiselectable": "ariaMultiSelectable()", "attr.aria-disabled": "kjTagListDisabled() ? \"true\" : null", "attr.tabindex": "kjTagListRole() !== \"group\" ? \"-1\" : null" } }, providers: [{ provide: KJ_TAG_LIST, useExisting: KjTagList }], queries: [{ propertyName: "tags", predicate: KjTag, descendants: true, isSignal: true }, { propertyName: "tagHosts", predicate: KjTag, descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: KjRovingTabindex, inputs: ["kjRovingOrientation", "kjTagListOrientation"] }], ngImport: i0 });
|
|
12534
12703
|
}
|
|
12535
12704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTagList, decorators: [{
|
|
12536
12705
|
type: Directive,
|
|
@@ -12549,7 +12718,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12549
12718
|
'[attr.tabindex]': 'kjTagListRole() !== "group" ? "-1" : null',
|
|
12550
12719
|
},
|
|
12551
12720
|
}]
|
|
12552
|
-
}], propDecorators: { kjTagListRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListRole", required: false }] }], kjTagListOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListOrientation", required: false }] }], kjTagListMultiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListMultiple", required: false }] }], kjTagListDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListDisabled", required: false }] }] } });
|
|
12721
|
+
}], ctorParameters: () => [], propDecorators: { kjTagListRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListRole", required: false }] }], kjTagListOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListOrientation", required: false }] }], kjTagListMultiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListMultiple", required: false }] }], kjTagListDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTagListDisabled", required: false }] }], kjMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjMax", required: false }] }], tags: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjTag), { ...{ descendants: true }, isSignal: true }] }], tagHosts: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KjTag), { ...{ descendants: true, read: ElementRef }, isSignal: true }] }] } });
|
|
12722
|
+
|
|
12723
|
+
/**
|
|
12724
|
+
* Marks the template a collapsing group (`kj-tag-list`, `kj-avatar-group`)
|
|
12725
|
+
* renders inside the "+N" chip's panel instead of its default list of labels.
|
|
12726
|
+
* The context carries the collapsed range so the consumer slices its own
|
|
12727
|
+
* data and renders the hidden items with any layout or actions it needs.
|
|
12728
|
+
*
|
|
12729
|
+
* @example
|
|
12730
|
+
* ```html
|
|
12731
|
+
* <kj-tag-list [kjMax]="3">
|
|
12732
|
+
* @for (u of users(); track u.id) { <kj-tag>{{ u.name }}</kj-tag> }
|
|
12733
|
+
* <ng-template kjOverflowContent let-count let-start="start">
|
|
12734
|
+
* @for (u of users().slice(start); track u.id) {
|
|
12735
|
+
* <button (click)="remove(u)">Remove {{ u.name }}</button>
|
|
12736
|
+
* }
|
|
12737
|
+
* </ng-template>
|
|
12738
|
+
* </kj-tag-list>
|
|
12739
|
+
* ```
|
|
12740
|
+
* @doc-category Core/Data display
|
|
12741
|
+
* @doc
|
|
12742
|
+
* @doc-name overflow
|
|
12743
|
+
* @doc-is-main
|
|
12744
|
+
* @doc-description Provides the template a tag list or avatar group shows for the items collapsed behind its "+N" chip.
|
|
12745
|
+
*/
|
|
12746
|
+
class KjOverflowContent {
|
|
12747
|
+
template = inject(TemplateRef);
|
|
12748
|
+
/** Type guard for template type-checking (`*ngTemplateOutlet` context inference). */
|
|
12749
|
+
static ngTemplateContextGuard(_dir, _ctx) {
|
|
12750
|
+
return true;
|
|
12751
|
+
}
|
|
12752
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12753
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: KjOverflowContent, isStandalone: true, selector: "ng-template[kjOverflowContent]", ngImport: i0 });
|
|
12754
|
+
}
|
|
12755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjOverflowContent, decorators: [{
|
|
12756
|
+
type: Directive,
|
|
12757
|
+
args: [{
|
|
12758
|
+
selector: 'ng-template[kjOverflowContent]',
|
|
12759
|
+
standalone: true,
|
|
12760
|
+
}]
|
|
12761
|
+
}] });
|
|
12553
12762
|
|
|
12554
12763
|
/**
|
|
12555
12764
|
* Dialog body component. Composes `KjOverlayPanel` as a host directive so
|
|
@@ -13339,10 +13548,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
13339
13548
|
}]
|
|
13340
13549
|
}], propDecorators: { kjTooltipOpened: [{ type: i0.Output, args: ["kjTooltipOpened"] }], kjTooltipClosed: [{ type: i0.Output, args: ["kjTooltipClosed"] }] } });
|
|
13341
13550
|
|
|
13551
|
+
/**
|
|
13552
|
+
* Fans one trigger slot out to several event strategies — e.g. hover for
|
|
13553
|
+
* pointer users, focus for keyboard users and an open-only click for touch —
|
|
13554
|
+
* so a single overlay opens from whichever the user has. `ariaHasPopup` is
|
|
13555
|
+
* the first non-null value among the parts.
|
|
13556
|
+
*/
|
|
13557
|
+
function composeTriggerEvents(...parts) {
|
|
13558
|
+
return {
|
|
13559
|
+
ariaHasPopup: parts.find((p) => p.ariaHasPopup !== null)?.ariaHasPopup ?? null,
|
|
13560
|
+
attach(ctx) {
|
|
13561
|
+
for (const p of parts)
|
|
13562
|
+
p.attach(ctx);
|
|
13563
|
+
},
|
|
13564
|
+
bindToggle(toggle) {
|
|
13565
|
+
for (const p of parts)
|
|
13566
|
+
p.bindToggle(toggle);
|
|
13567
|
+
},
|
|
13568
|
+
onOpen() {
|
|
13569
|
+
for (const p of parts)
|
|
13570
|
+
p.onOpen?.();
|
|
13571
|
+
},
|
|
13572
|
+
onClose() {
|
|
13573
|
+
for (const p of parts)
|
|
13574
|
+
p.onClose?.();
|
|
13575
|
+
},
|
|
13576
|
+
detach() {
|
|
13577
|
+
for (const p of parts)
|
|
13578
|
+
p.detach();
|
|
13579
|
+
},
|
|
13580
|
+
};
|
|
13581
|
+
}
|
|
13582
|
+
/**
|
|
13583
|
+
* A trigger slot whose concrete strategy is chosen after construction. The
|
|
13584
|
+
* DI factory that provides a trigger strategy runs before the directive's
|
|
13585
|
+
* inputs are set, so a directive that offers `kjTrigger="click|hover"` cannot
|
|
13586
|
+
* pick the strategy in the factory; it provides this shell and calls `use()`
|
|
13587
|
+
* from an effect once the input is known (and again if it changes).
|
|
13588
|
+
*/
|
|
13589
|
+
function switchableTriggerEvent(opts = {}) {
|
|
13590
|
+
let ctx = null;
|
|
13591
|
+
let toggle = null;
|
|
13592
|
+
let current = null;
|
|
13593
|
+
return {
|
|
13594
|
+
// Fixed up front: the host reads it once, before `use()` picks a strategy.
|
|
13595
|
+
ariaHasPopup: opts.ariaHasPopup ?? null,
|
|
13596
|
+
attach(c) {
|
|
13597
|
+
ctx = c;
|
|
13598
|
+
current?.attach(c);
|
|
13599
|
+
},
|
|
13600
|
+
bindToggle(t) {
|
|
13601
|
+
toggle = t;
|
|
13602
|
+
current?.bindToggle(t);
|
|
13603
|
+
},
|
|
13604
|
+
onOpen() {
|
|
13605
|
+
current?.onOpen?.();
|
|
13606
|
+
},
|
|
13607
|
+
onClose() {
|
|
13608
|
+
current?.onClose?.();
|
|
13609
|
+
},
|
|
13610
|
+
detach() {
|
|
13611
|
+
current?.detach();
|
|
13612
|
+
current = null;
|
|
13613
|
+
ctx = null;
|
|
13614
|
+
toggle = null;
|
|
13615
|
+
},
|
|
13616
|
+
use(strategy) {
|
|
13617
|
+
current?.detach();
|
|
13618
|
+
current = strategy;
|
|
13619
|
+
if (ctx)
|
|
13620
|
+
strategy.attach(ctx);
|
|
13621
|
+
if (toggle)
|
|
13622
|
+
strategy.bindToggle(toggle);
|
|
13623
|
+
},
|
|
13624
|
+
};
|
|
13625
|
+
}
|
|
13626
|
+
|
|
13627
|
+
/**
|
|
13628
|
+
* Opens the sibling `<kj-popover-content [kjFor]>` panel. `kjTrigger="click"`
|
|
13629
|
+
* (default) toggles on click; `kjTrigger="hover"` opens on hover intent and
|
|
13630
|
+
* keeps the panel open while the pointer rests on it — and, because a hover
|
|
13631
|
+
* popover may hold controls, it also opens on keyboard focus and on click
|
|
13632
|
+
* (touch), so every input modality reaches the panel.
|
|
13633
|
+
*
|
|
13634
|
+
* @example
|
|
13635
|
+
* ```html
|
|
13636
|
+
* <button kjPopoverTrigger kjTrigger="hover" #t="kjPopoverTrigger">+3</button>
|
|
13637
|
+
* <kj-popover-content [kjFor]="t">…</kj-popover-content>
|
|
13638
|
+
* ```
|
|
13639
|
+
* @doc-category Core/Overlay
|
|
13640
|
+
* @doc
|
|
13641
|
+
* @doc-name popover
|
|
13642
|
+
*/
|
|
13342
13643
|
class KjPopoverTrigger {
|
|
13644
|
+
/** How the panel opens: `click` toggles; `hover` opens on hover intent, focus, or tap. */
|
|
13343
13645
|
kjTrigger = input('click', /* @ts-ignore */
|
|
13344
13646
|
...(ngDevMode ? [{ debugName: "kjTrigger" }] : /* istanbul ignore next */ []));
|
|
13345
13647
|
kjDisabled = input(false, { ...(ngDevMode ? { debugName: "kjDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
13648
|
+
/** Hover intent before opening, in ms (`hover` kind only). Default 150. */
|
|
13649
|
+
kjOpenDelay = input(150, { ...(ngDevMode ? { debugName: "kjOpenDelay" } : /* istanbul ignore next */ {}), transform: (v) => Number(v) || 0 });
|
|
13650
|
+
/** Grace period after the pointer leaves the trigger or the panel, in ms (`hover` kind only). Default 150. */
|
|
13651
|
+
kjCloseDelay = input(150, { ...(ngDevMode ? { debugName: "kjCloseDelay" } : /* istanbul ignore next */ {}), transform: (v) => Number(v) || 0 });
|
|
13346
13652
|
_overlayTrigger = inject(KjOverlayTrigger, { self: true });
|
|
13347
13653
|
/** The controller of the composed `KjOverlayTrigger`, exposed for sibling `[kjFor]` panels. */
|
|
13348
13654
|
get controller() {
|
|
@@ -13351,13 +13657,26 @@ class KjPopoverTrigger {
|
|
|
13351
13657
|
attachPanel(panel) {
|
|
13352
13658
|
this._overlayTrigger.attachPanel(panel);
|
|
13353
13659
|
}
|
|
13660
|
+
constructor() {
|
|
13661
|
+
const strategy = inject(KJ_OVERLAY_TRIGGER_EVENT_STRATEGY);
|
|
13662
|
+
effect(() => {
|
|
13663
|
+
strategy.use(this.kjTrigger() === 'hover'
|
|
13664
|
+
? composeTriggerEvents(onHover({
|
|
13665
|
+
openDelay: this.kjOpenDelay,
|
|
13666
|
+
closeDelay: this.kjCloseDelay,
|
|
13667
|
+
interactive: true,
|
|
13668
|
+
}), onFocus(), onClick({ openOnly: true }))
|
|
13669
|
+
: onClick());
|
|
13670
|
+
});
|
|
13671
|
+
}
|
|
13354
13672
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13355
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: KjPopoverTrigger, isStandalone: true, selector: "[kjPopoverTrigger]", inputs: { kjTrigger: { classPropertyName: "kjTrigger", publicName: "kjTrigger", isSignal: true, isRequired: false, transformFunction: null }, kjDisabled: { classPropertyName: "kjDisabled", publicName: "kjDisabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
13673
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: KjPopoverTrigger, isStandalone: true, selector: "[kjPopoverTrigger]", inputs: { kjTrigger: { classPropertyName: "kjTrigger", publicName: "kjTrigger", isSignal: true, isRequired: false, transformFunction: null }, kjDisabled: { classPropertyName: "kjDisabled", publicName: "kjDisabled", isSignal: true, isRequired: false, transformFunction: null }, kjOpenDelay: { classPropertyName: "kjOpenDelay", publicName: "kjOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, kjCloseDelay: { classPropertyName: "kjCloseDelay", publicName: "kjCloseDelay", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
13356
13674
|
KjOverlayController,
|
|
13357
|
-
//
|
|
13675
|
+
// The kind is an input, unknown when this factory runs — the shell is
|
|
13676
|
+
// filled from the effect below once inputs are set.
|
|
13358
13677
|
{
|
|
13359
13678
|
provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
|
|
13360
|
-
useFactory: () =>
|
|
13679
|
+
useFactory: () => switchableTriggerEvent({ ariaHasPopup: 'dialog' }),
|
|
13361
13680
|
},
|
|
13362
13681
|
{ provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' },
|
|
13363
13682
|
], exportAs: ["kjPopoverTrigger"], hostDirectives: [{ directive: KjOverlayTrigger, inputs: ["kjOpen", "kjOpen"] }], ngImport: i0 });
|
|
@@ -13371,15 +13690,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
13371
13690
|
hostDirectives: [{ directive: KjOverlayTrigger, inputs: ['kjOpen'] }],
|
|
13372
13691
|
providers: [
|
|
13373
13692
|
KjOverlayController,
|
|
13374
|
-
//
|
|
13693
|
+
// The kind is an input, unknown when this factory runs — the shell is
|
|
13694
|
+
// filled from the effect below once inputs are set.
|
|
13375
13695
|
{
|
|
13376
13696
|
provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
|
|
13377
|
-
useFactory: () =>
|
|
13697
|
+
useFactory: () => switchableTriggerEvent({ ariaHasPopup: 'dialog' }),
|
|
13378
13698
|
},
|
|
13379
13699
|
{ provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' },
|
|
13380
13700
|
],
|
|
13381
13701
|
}]
|
|
13382
|
-
}], propDecorators: { kjTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTrigger", required: false }] }], kjDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDisabled", required: false }] }] } });
|
|
13702
|
+
}], ctorParameters: () => [], propDecorators: { kjTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTrigger", required: false }] }], kjDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDisabled", required: false }] }], kjOpenDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjOpenDelay", required: false }] }], kjCloseDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjCloseDelay", required: false }] }] } });
|
|
13383
13703
|
|
|
13384
13704
|
class KjPopoverContent {
|
|
13385
13705
|
kjSide = input('bottom', /* @ts-ignore */
|
|
@@ -30108,5 +30428,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
30108
30428
|
* Generated bundle index. Do not edit.
|
|
30109
30429
|
*/
|
|
30110
30430
|
|
|
30111
|
-
export { DRAWER_DATA, DRAWER_DRAG, DRAWER_SIDE, EN_CATALOG, FR_CATALOG, KJ_ACCORDION, KJ_ACCORDION_ITEM, KJ_ALERT, KJ_ALERT_CONFIG, KJ_ALERT_DEFAULTS, KJ_AVATAR, KJ_AVATAR_GROUP, KJ_BREADCRUMB, KJ_BREADCRUMB_CONFIG, KJ_BREADCRUMB_DEFAULTS, KJ_BUTTON_CONFIG, KJ_BUTTON_DEFAULTS, KJ_BUTTON_GROUP, KJ_CALENDAR, KJ_CAROUSEL, KJ_CAROUSEL_INDICATORS, KJ_CAROUSEL_SLIDE, KJ_CASCADE_SELECT, KJ_CHAT, KJ_CHAT_BUBBLE_CONFIG, KJ_CHAT_BUBBLE_DEFAULTS, KJ_CHAT_LOG, KJ_COLOR_PICKER, KJ_CONFIRM_POPUP, KJ_DATE_PICKER, KJ_DATE_RANGE_PRESETS, KJ_DROPDOWN_MENU, KJ_ECHARTS, KJ_FIELD, KJ_FILE_UPLOAD, KJ_FILE_UPLOAD_DEFAULT_MESSAGES, KJ_FILE_UPLOAD_ITEM, KJ_FORM, KJ_FORM_FIELD, KJ_ICON_CSS_PATH, KJ_ICON_ENTRIES, KJ_ICON_LOADER, KJ_ICON_REGISTRY, KJ_ICON_RESOLVER, KJ_INPUT_GROUP, KJ_INPUT_MASK_PRESETS, KJ_INPUT_MASK_TOKENS, KJ_INPUT_OTP, KJ_KBD_SIZE_PRESET, KJ_LINK_CONFIG, KJ_LINK_DEFAULTS, KJ_LIST, KJ_LIST_FOCUS_MODE, KJ_LIST_NAVIGATOR_CONFIG, KJ_LIST_ROW, KJ_LOCALE_CONFIG, KJ_MENUBAR, KJ_MONACO_CONFIG, KJ_MONACO_LANGUAGE_LOADERS, KJ_NUMBER_INPUT, KJ_OVERLAY_BACKDROP_STRATEGY, KJ_OVERLAY_BADGE, KJ_OVERLAY_FOCUS_TRAP_STRATEGY, KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY, KJ_OVERLAY_MOUNT_STRATEGY, KJ_OVERLAY_PANEL_ROLE, KJ_OVERLAY_POSITION_STRATEGY, KJ_OVERLAY_SCROLL_LOCK_STRATEGY, KJ_OVERLAY_TRIGGER_EVENT_STRATEGY, KJ_PAGINATION, KJ_PAGINATION_CONFIG, KJ_PAGINATION_DEFAULTS, KJ_PASSWORD_INPUT, KJ_PROGRESS_BAR, KJ_PROGRESS_BAR_CONFIG, KJ_PROGRESS_BAR_DEFAULTS, KJ_PROSE_CSS_PATH, KJ_RADIO_GROUP, KJ_RICH_TEXT, KJ_RICH_TEXT_EXTENSIONS, KJ_RICH_TEXT_FEATURES, KJ_RICH_TEXT_NODE, KJ_ROVING_TABINDEX, KJ_RTE_OVERLAY_DATA, KJ_SELECT, KJ_SIZE_FALLBACK, KJ_SIZE_PRESET, KJ_SLIDER, KJ_SPEED_DIAL, KJ_SPINNER_CONFIG, KJ_SPINNER_DEFAULTS, KJ_STEP, KJ_STEPPER, KJ_TABLE, KJ_TABLE_STORAGE, KJ_TABS, KJ_TABS_CONFIG, KJ_TABS_DEFAULTS, KJ_TAG, KJ_TAG_CONFIG, KJ_TAG_DEFAULTS, KJ_TAG_LIST, KJ_TEXTAREA_CONFIG, KJ_TEXTAREA_DEFAULTS, KJ_TIME_PICKER, KJ_TOAST_LIST_STRATEGY, KJ_TOAST_SONNER_STRATEGY, KJ_TOAST_STRATEGY, KJ_TRANSLATION_CATALOGS, KJ_TREE_SELECT, KJ_VARIANT_FALLBACK, KJ_VARIANT_PRESET, KjAccordion, KjAccordionContent, KjAccordionItem, KjAccordionTrigger, KjAlert, KjAlertActions, KjAlertDescription, KjAlertDismiss, KjAlertIcon, KjAlertTitle, KjAriaDescribedBy, KjAriaLabelledBy, KjAvatar, KjAvatarFallback, KjAvatarGroup, KjAvatarImage, KjBackdrop, KjBadge, KjBlockquote, KjBreadcrumb, KjBreadcrumbCurrent, KjBreadcrumbEllipsis, KjBreadcrumbItem, KjBreadcrumbLink, KjBreadcrumbList, KjBreadcrumbSeparator, KjButton, KjButtonGroup, KjCalendar, KjCalendarDay, KjCalendarGrid, KjCalendarHeader, KjCarousel, KjCarouselAutoplay, KjCarouselIndicator, KjCarouselIndicators, KjCarouselNext, KjCarouselPauseToggle, KjCarouselPrevious, KjCarouselSlide, KjCarouselViewport, KjCascadeSelect, KjCascadeSelectOption, KjCascadeSelectPanel, KjCascadeSelectSubPanel, KjCascadeSelectTrigger, KjChart, KjChartTableFallback, KjChat, KjChatAnnouncer, KjChatAvatar, KjChatBubble, KjChatFooter, KjChatHeader, KjChatLog, KjChatStore, KjCheckbox, KjCode, KjColorPicker, KjColorPickerAlphaSlider, KjColorPickerArea, KjColorPickerHueSlider, KjColorPickerInput, KjColorPickerPanel, KjColorPickerTrigger, KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption, KjCommandEmpty, KjCommandGroup, KjCommandInput, KjCommandItem, KjCommandList, KjCommandPalette, KjCommandPaletteDialog, KjCommandPaletteTrigger, KjCommandSeparator, KjConfirmPopup, KjConfirmPopupAction, KjConfirmPopupCancel, KjConfirmPopupContent, KjConfirmPopupMessage, KjConfirmPopupTrigger, KjDatePicker, KjDatePickerCalendar, KjDatePickerTrigger, KjDateRangePresetOption, KjDateRangePresets, KjDialog$1 as KjDialog, KjDialogRef, KjDialog as KjDialogService, KjDirectionality, KjDisabled, KjDivider, KjDrawer, KjDrawerRef, KjDrawerService, KjDropdownMenu, KjDropdownMenuContent, KjDropdownMenuGroup, KjDropdownMenuItem, KjDropdownMenuLabel, KjDropdownMenuSeparator, KjDropdownMenuTrigger, KjEditor, KjEditorLoader, KjField, KjFieldError, KjFieldGroup, KjFieldHelp, KjFieldLabel, KjFileUpload, KjFileUploadDropzone, KjFileUploadItem, KjFileUploadList, KjFileUploadTrigger, KjFilterableList, KjFocusRing, KjFocusTrap, KjForm, KjFormControl, KjFormError, KjFormErrorSummary, KjFormField, KjFormLabel, KjIconDirective, KjId, KjInput, KjInputGroup, KjInputGroupAddon, KjInputMask, KjInputOtp, KjInputOtpCell, KjKbd, KjLead, KjLink, KjList, KjListGroup, KjListGroupLabel, KjListItem, KjListNavigator, KjListRow, KjListSeparator, KjLiveRegion, KjLocale, KjMenubar, KjMenubarItem, KjMotion, KjMuted, KjNumberInput, KjNumberInputGroup, KjNumberStepper, KjOption, KjOverlayBadge, KjOverlayBadgeContent, KjOverlayBuilder, KjOverlayController, KjOverlayHandle, KjOverlayPanel, KjOverlayStack, KjOverlayTrigger, KjOverlayWrapper, KjPagination, KjPaginationEllipsis, KjPaginationFirst, KjPaginationInfo, KjPaginationItem, KjPaginationLast, KjPaginationNext, KjPaginationPrevious, KjPasswordCapsLockWarning, KjPasswordInput, KjPasswordInputScope, KjPasswordStrength, KjPasswordToggle, KjPopoverArrow, KjPopoverClose, KjPopoverContent, KjPopoverTitle, KjPopoverTrigger, KjProgressBar, KjProgressBarFill, KjRadio, KjRadioGroup, KjReducedMotion, KjRichTextEditor, KjRichTextExtensionDirective, KjRovingTabindex, KjRovingTabindexItemDirective, KjSelect, KjSelectContent, KjSelectTrigger, KjSelectionModel, KjSheet, KjSheetRef, KjSheetService, KjSize, KjSkeleton, KjSkipLink, KjSlider, KjSliderRange, KjSliderThumb, KjSliderTrack, KjSpeedDial, KjSpeedDialAction, KjSpeedDialActions, KjSpeedDialTrigger, KjSpinner, KjStep, KjStepContent, KjStepLabel, KjStepper, KjStepperNext, KjStepperPrevious, KjStepperReset, KjTab, KjTabList, KjTabPanel, KjTable, KjTableCell, KjTableFilterOutlet, KjTableHeader, KjTableKeyboardNav, KjTableRow, KjTabs, KjTag, KjTagList, KjTagRemove, KjTextarea, KjTimePicker, KjTimePickerHours, KjTimePickerMeridiem, KjTimePickerMinutes, KjTimePickerSeconds, KjToast, KjToastClose, KjToastPanel, KjToastRef, KjToastService, KjToastViewport, KjToggle, KjTooltipArrow, KjTooltipContent, KjTooltipGroup, KjTooltipTrigger, KjTranslate, KjTranslateService, KjTreeSelect, KjTreeSelectContent, KjTreeSelectNode, KjTreeSelectToggle, KjTreeSelectTrigger, KjTruncate, KjTypeAhead, KjVariant, KjVisuallyHidden, MaskEngine, SHEET_ARIA_LABEL, SHEET_DATA, SHEET_DETENT, SHEET_DISMISSIBLE, addDays, addMonths, addYears, anchoredTo, assertive, bindPresets, blurredBackdrop, bodyPortal, buildMonthMatrix, coalesceAnnouncement, compareDay, compileMask, corner, createKjDecoratorNode, createKjImageNode, cssClip, defaultDateRangePresets, defaultMaskTokens, defaultPasswordScorer, edgeSheet, endOfMonth, firstDayOfWeek, formatDateLong, formatDateShort, formatMonthYear, getIconMode, htmlOverflow, inContainer, inMemoryAdapter, inPlace, inPlaceSibling, inertBased, injectFilterableList, injectKjFilterParams, injectKjIconResolver, injectListItem, injectRichTextNode, injectRteOverlayData, injectSelectionModel, isInRange, isKjFilterModel, isSameDay, isSameMonth, kjColumn, kjColumnGroup, kjContainsFilter, kjDateFilterFn, kjFileMatchesAccept, kjFuzzyFilter, kjHsvToHsl, kjHsvToRgb, kjMultiFilterFn, kjNumberFilterFn, kjParseHex, kjRgbToHex, kjRgbToHsv, kjSetFilterFn, kjStartsWithFilter, kjSubstringFilter, kjTableResource, kjTextFilterFn, localStorageAdapter, matchSlashCommands, nextCascadeId, nextChatMessageId, nextDropdownMenuLabelId, nextPopoverTitleId, noBackdrop, noScrollLock, noTrap, normalizeLanguage, onClick, onContextMenu, onFocus, onFocusOrInput, onHotkey, onHover, parseDate, parseSlash, pointAt, polite, programmatic, provideECharts, provideIconLoader, provideIconResolver, provideIcons, provideKjAlert, provideKjBreadcrumb, provideKjButton, provideKjChatBubble, provideKjDocumentDirection, provideKjFilterParams, provideKjInputMaskTokens, provideKjLink, provideKjLocale, provideKjPagination, provideKjProgressBar, provideKjRichText, provideKjSpinner, provideKjTableStorage, provideKjTabs, provideKjTag, provideKjTextarea, provideKjToastListStrategy, provideKjToastSonnerStrategy, provideKjToastStrategy, provideKjTranslations, provideMonaco, provideMonacoLanguages, resolveChartPalette, resolveDateRangePreset, sessionStorageAdapter, silent, solidBackdrop, startOfDay, startOfMonth, stripDiacritics, tabCycle, toDeepSignal, viewportCentered, weekdayLongNames, weekdayShortNames };
|
|
30431
|
+
export { DRAWER_DATA, DRAWER_DRAG, DRAWER_SIDE, EN_CATALOG, FR_CATALOG, KJ_ACCORDION, KJ_ACCORDION_ITEM, KJ_ALERT, KJ_ALERT_CONFIG, KJ_ALERT_DEFAULTS, KJ_AVATAR, KJ_AVATAR_GROUP, KJ_BREADCRUMB, KJ_BREADCRUMB_CONFIG, KJ_BREADCRUMB_DEFAULTS, KJ_BUTTON_CONFIG, KJ_BUTTON_DEFAULTS, KJ_BUTTON_GROUP, KJ_CALENDAR, KJ_CAROUSEL, KJ_CAROUSEL_INDICATORS, KJ_CAROUSEL_SLIDE, KJ_CASCADE_SELECT, KJ_CHAT, KJ_CHAT_BUBBLE_CONFIG, KJ_CHAT_BUBBLE_DEFAULTS, KJ_CHAT_CONFIG, KJ_CHAT_LOG, KJ_COLOR_PICKER, KJ_CONFIRM_POPUP, KJ_DATE_PICKER, KJ_DATE_RANGE_PRESETS, KJ_DROPDOWN_MENU, KJ_ECHARTS, KJ_FIELD, KJ_FILE_UPLOAD, KJ_FILE_UPLOAD_DEFAULT_MESSAGES, KJ_FILE_UPLOAD_ITEM, KJ_FORM, KJ_FORM_FIELD, KJ_ICON_CSS_PATH, KJ_ICON_ENTRIES, KJ_ICON_LOADER, KJ_ICON_REGISTRY, KJ_ICON_RESOLVER, KJ_INPUT_GROUP, KJ_INPUT_MASK_PRESETS, KJ_INPUT_MASK_TOKENS, KJ_INPUT_OTP, KJ_KBD_SIZE_PRESET, KJ_LINK_CONFIG, KJ_LINK_DEFAULTS, KJ_LIST, KJ_LIST_FOCUS_MODE, KJ_LIST_NAVIGATOR_CONFIG, KJ_LIST_ROW, KJ_LOCALE_CONFIG, KJ_MENUBAR, KJ_MONACO_CONFIG, KJ_MONACO_LANGUAGE_LOADERS, KJ_NUMBER_INPUT, KJ_OVERLAY_BACKDROP_STRATEGY, KJ_OVERLAY_BADGE, KJ_OVERLAY_FOCUS_TRAP_STRATEGY, KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY, KJ_OVERLAY_MOUNT_STRATEGY, KJ_OVERLAY_PANEL_ROLE, KJ_OVERLAY_POSITION_STRATEGY, KJ_OVERLAY_SCROLL_LOCK_STRATEGY, KJ_OVERLAY_TRIGGER_EVENT_STRATEGY, KJ_PAGINATION, KJ_PAGINATION_CONFIG, KJ_PAGINATION_DEFAULTS, KJ_PASSWORD_INPUT, KJ_PROGRESS_BAR, KJ_PROGRESS_BAR_CONFIG, KJ_PROGRESS_BAR_DEFAULTS, KJ_PROSE_CSS_PATH, KJ_RADIO_GROUP, KJ_RICH_TEXT, KJ_RICH_TEXT_EXTENSIONS, KJ_RICH_TEXT_FEATURES, KJ_RICH_TEXT_NODE, KJ_ROVING_TABINDEX, KJ_RTE_OVERLAY_DATA, KJ_SELECT, KJ_SIZE_FALLBACK, KJ_SIZE_PRESET, KJ_SLIDER, KJ_SPEED_DIAL, KJ_SPINNER_CONFIG, KJ_SPINNER_DEFAULTS, KJ_STEP, KJ_STEPPER, KJ_TABLE, KJ_TABLE_STORAGE, KJ_TABS, KJ_TABS_CONFIG, KJ_TABS_DEFAULTS, KJ_TAG, KJ_TAG_CONFIG, KJ_TAG_DEFAULTS, KJ_TAG_LIST, KJ_TEXTAREA_CONFIG, KJ_TEXTAREA_DEFAULTS, KJ_TIME_PICKER, KJ_TOAST_LIST_STRATEGY, KJ_TOAST_SONNER_STRATEGY, KJ_TOAST_STRATEGY, KJ_TRANSLATION_CATALOGS, KJ_TREE_SELECT, KJ_VARIANT_FALLBACK, KJ_VARIANT_PRESET, KjAccordion, KjAccordionContent, KjAccordionItem, KjAccordionTrigger, KjAlert, KjAlertActions, KjAlertDescription, KjAlertDismiss, KjAlertIcon, KjAlertTitle, KjAriaDescribedBy, KjAriaLabelledBy, KjAvatar, KjAvatarFallback, KjAvatarGroup, KjAvatarImage, KjBackdrop, KjBadge, KjBlockquote, KjBreadcrumb, KjBreadcrumbCurrent, KjBreadcrumbEllipsis, KjBreadcrumbItem, KjBreadcrumbLink, KjBreadcrumbList, KjBreadcrumbSeparator, KjButton, KjButtonGroup, KjCalendar, KjCalendarDay, KjCalendarGrid, KjCalendarHeader, KjCarousel, KjCarouselAutoplay, KjCarouselIndicator, KjCarouselIndicators, KjCarouselNext, KjCarouselPauseToggle, KjCarouselPrevious, KjCarouselSlide, KjCarouselViewport, KjCascadeSelect, KjCascadeSelectOption, KjCascadeSelectPanel, KjCascadeSelectSubPanel, KjCascadeSelectTrigger, KjChart, KjChartTableFallback, KjChat, KjChatAnnouncer, KjChatAvatar, KjChatBubble, KjChatFooter, KjChatHeader, KjChatLog, KjChatStore, KjCheckbox, KjCode, KjColorPicker, KjColorPickerAlphaSlider, KjColorPickerArea, KjColorPickerHueSlider, KjColorPickerInput, KjColorPickerPanel, KjColorPickerTrigger, KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption, KjCommandEmpty, KjCommandGroup, KjCommandInput, KjCommandItem, KjCommandList, KjCommandPalette, KjCommandPaletteDialog, KjCommandPaletteTrigger, KjCommandSeparator, KjConfirmPopup, KjConfirmPopupAction, KjConfirmPopupCancel, KjConfirmPopupContent, KjConfirmPopupMessage, KjConfirmPopupTrigger, KjDatePicker, KjDatePickerCalendar, KjDatePickerTrigger, KjDateRangePresetOption, KjDateRangePresets, KjDialog$1 as KjDialog, KjDialogRef, KjDialog as KjDialogService, KjDirectionality, KjDisabled, KjDivider, KjDrawer, KjDrawerRef, KjDrawerService, KjDropdownMenu, KjDropdownMenuContent, KjDropdownMenuGroup, KjDropdownMenuItem, KjDropdownMenuLabel, KjDropdownMenuSeparator, KjDropdownMenuTrigger, KjEditor, KjEditorLoader, KjField, KjFieldError, KjFieldGroup, KjFieldHelp, KjFieldLabel, KjFileUpload, KjFileUploadDropzone, KjFileUploadItem, KjFileUploadList, KjFileUploadTrigger, KjFilterableList, KjFocusRing, KjFocusTrap, KjForm, KjFormControl, KjFormError, KjFormErrorSummary, KjFormField, KjFormLabel, KjIconDirective, KjId, KjInput, KjInputGroup, KjInputGroupAddon, KjInputMask, KjInputOtp, KjInputOtpCell, KjKbd, KjLead, KjLink, KjList, KjListGroup, KjListGroupLabel, KjListItem, KjListNavigator, KjListRow, KjListSeparator, KjLiveRegion, KjLocale, KjMenubar, KjMenubarItem, KjMotion, KjMuted, KjNumberInput, KjNumberInputGroup, KjNumberStepper, KjOption, KjOverflowContent, KjOverlayBadge, KjOverlayBadgeContent, KjOverlayBuilder, KjOverlayController, KjOverlayHandle, KjOverlayPanel, KjOverlayStack, KjOverlayTrigger, KjOverlayWrapper, KjPagination, KjPaginationEllipsis, KjPaginationFirst, KjPaginationInfo, KjPaginationItem, KjPaginationLast, KjPaginationNext, KjPaginationPrevious, KjPasswordCapsLockWarning, KjPasswordInput, KjPasswordInputScope, KjPasswordStrength, KjPasswordToggle, KjPopoverArrow, KjPopoverClose, KjPopoverContent, KjPopoverTitle, KjPopoverTrigger, KjProgressBar, KjProgressBarFill, KjRadio, KjRadioGroup, KjReducedMotion, KjRichTextEditor, KjRichTextExtensionDirective, KjRovingTabindex, KjRovingTabindexItemDirective, KjSelect, KjSelectContent, KjSelectTrigger, KjSelectionModel, KjSheet, KjSheetRef, KjSheetService, KjSize, KjSkeleton, KjSkipLink, KjSlider, KjSliderRange, KjSliderThumb, KjSliderTrack, KjSpeedDial, KjSpeedDialAction, KjSpeedDialActions, KjSpeedDialTrigger, KjSpinner, KjStep, KjStepContent, KjStepLabel, KjStepper, KjStepperNext, KjStepperPrevious, KjStepperReset, KjTab, KjTabList, KjTabPanel, KjTable, KjTableCell, KjTableFilterOutlet, KjTableHeader, KjTableKeyboardNav, KjTableRow, KjTabs, KjTag, KjTagList, KjTagRemove, KjTextarea, KjTimePicker, KjTimePickerHours, KjTimePickerMeridiem, KjTimePickerMinutes, KjTimePickerSeconds, KjToast, KjToastClose, KjToastPanel, KjToastRef, KjToastService, KjToastViewport, KjToggle, KjTooltipArrow, KjTooltipContent, KjTooltipGroup, KjTooltipTrigger, KjTranslate, KjTranslateService, KjTreeSelect, KjTreeSelectContent, KjTreeSelectNode, KjTreeSelectToggle, KjTreeSelectTrigger, KjTruncate, KjTypeAhead, KjVariant, KjVisuallyHidden, MaskEngine, SHEET_ARIA_LABEL, SHEET_DATA, SHEET_DETENT, SHEET_DISMISSIBLE, addDays, addMonths, addYears, anchoredTo, assertive, bindPresets, blurredBackdrop, bodyPortal, buildMonthMatrix, coalesceAnnouncement, compareDay, compileMask, corner, createKjDecoratorNode, createKjImageNode, cssClip, defaultDateRangePresets, defaultMaskTokens, defaultPasswordScorer, edgeSheet, endOfMonth, firstDayOfWeek, formatDateLong, formatDateShort, formatMonthYear, getIconMode, htmlOverflow, inContainer, inMemoryAdapter, inPlace, inPlaceSibling, inertBased, injectFilterableList, injectKjFilterParams, injectKjIconResolver, injectListItem, injectRichTextNode, injectRteOverlayData, injectSelectionModel, isInRange, isKjFilterModel, isSameDay, isSameMonth, kjColumn, kjColumnGroup, kjContainsFilter, kjDateFilterFn, kjFileMatchesAccept, kjFuzzyFilter, kjHsvToHsl, kjHsvToRgb, kjMultiFilterFn, kjNumberFilterFn, kjParseHex, kjRgbToHex, kjRgbToHsv, kjSetFilterFn, kjStartsWithFilter, kjSubstringFilter, kjTableResource, kjTextFilterFn, localStorageAdapter, matchSlashCommands, nextCascadeId, nextChatMessageId, nextDropdownMenuLabelId, nextPopoverTitleId, noBackdrop, noScrollLock, noTrap, normalizeLanguage, onClick, onContextMenu, onFocus, onFocusOrInput, onHotkey, onHover, parseDate, parseSlash, pointAt, polite, programmatic, provideECharts, provideIconLoader, provideIconResolver, provideIcons, provideKjAlert, provideKjBreadcrumb, provideKjButton, provideKjChat, provideKjChatBubble, provideKjDocumentDirection, provideKjFilterParams, provideKjInputMaskTokens, provideKjLink, provideKjLocale, provideKjPagination, provideKjProgressBar, provideKjRichText, provideKjSpinner, provideKjTableStorage, provideKjTabs, provideKjTag, provideKjTextarea, provideKjToastListStrategy, provideKjToastSonnerStrategy, provideKjToastStrategy, provideKjTranslations, provideMonaco, provideMonacoLanguages, resolveChartPalette, resolveDateRangePreset, sessionStorageAdapter, silent, solidBackdrop, startOfDay, startOfMonth, stripDiacritics, tabCycle, toDeepSignal, viewportCentered, weekdayLongNames, weekdayShortNames };
|
|
30112
30432
|
//# sourceMappingURL=kouji-ui-core.mjs.map
|