@kouji-ui/core 0.6.2 → 0.7.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 +347 -40
- package/fesm2022/kouji-ui-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/kouji-ui-core.d.ts +127 -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
|
|
|
@@ -2438,10 +2492,22 @@ class KjListNavigator {
|
|
|
2438
2492
|
this.moveBy(-this.kjPageSize());
|
|
2439
2493
|
return;
|
|
2440
2494
|
case 'Enter':
|
|
2441
|
-
case ' ':
|
|
2442
2495
|
// Only preventDefault when we actually activate. Lets consumers
|
|
2443
|
-
// (e.g. combobox free-text Enter) fall through when nothing is
|
|
2444
|
-
|
|
2496
|
+
// (e.g. combobox free-text Enter) fall through when nothing is active.
|
|
2497
|
+
if (this.activeItem()) {
|
|
2498
|
+
e.preventDefault();
|
|
2499
|
+
this.activateCurrent();
|
|
2500
|
+
}
|
|
2501
|
+
return;
|
|
2502
|
+
case ' ':
|
|
2503
|
+
// Space activates a LIST — but in a text field it is a character the
|
|
2504
|
+
// user is typing, and the field owns it. A command palette highlights
|
|
2505
|
+
// a row for every query, so treating Space as activation there made
|
|
2506
|
+
// multi-word queries impossible: the space ran the highlighted command
|
|
2507
|
+
// instead of reaching the input. Enter remains the activation key from
|
|
2508
|
+
// a text field.
|
|
2509
|
+
if (isTextEntry(e.target))
|
|
2510
|
+
return;
|
|
2445
2511
|
if (this.activeItem()) {
|
|
2446
2512
|
e.preventDefault();
|
|
2447
2513
|
this.activateCurrent();
|
|
@@ -2488,6 +2554,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
2488
2554
|
},
|
|
2489
2555
|
}]
|
|
2490
2556
|
}], ctorParameters: () => [], propDecorators: { kjOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjOrientation", required: false }] }], kjWrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjWrap", required: false }] }], kjPageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjPageSize", required: false }] }], kjActivateOnHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjActivateOnHover", required: false }] }], kjFocusMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjFocusMode", required: false }] }], kjActiveChange: [{ type: i0.Output, args: ["kjActiveChange"] }] } });
|
|
2557
|
+
/** Types of `<input>` that hold text the user types (Space is a character). */
|
|
2558
|
+
const NON_TEXT_INPUT_TYPES = new Set([
|
|
2559
|
+
'button',
|
|
2560
|
+
'checkbox',
|
|
2561
|
+
'color',
|
|
2562
|
+
'file',
|
|
2563
|
+
'image',
|
|
2564
|
+
'radio',
|
|
2565
|
+
'range',
|
|
2566
|
+
'reset',
|
|
2567
|
+
'submit',
|
|
2568
|
+
]);
|
|
2569
|
+
/** Whether a key event landed in a field where Space types a character. */
|
|
2570
|
+
function isTextEntry(target) {
|
|
2571
|
+
const el = target;
|
|
2572
|
+
if (!el || typeof el.tagName !== 'string')
|
|
2573
|
+
return false;
|
|
2574
|
+
if (el.isContentEditable)
|
|
2575
|
+
return true;
|
|
2576
|
+
if (el.tagName === 'TEXTAREA')
|
|
2577
|
+
return true;
|
|
2578
|
+
if (el.tagName !== 'INPUT')
|
|
2579
|
+
return false;
|
|
2580
|
+
const type = el.type?.toLowerCase() ?? 'text';
|
|
2581
|
+
return !NON_TEXT_INPUT_TYPES.has(type);
|
|
2582
|
+
}
|
|
2491
2583
|
|
|
2492
2584
|
// packages/core/src/primitives/list/selection.ts
|
|
2493
2585
|
/**
|
|
@@ -4177,6 +4269,9 @@ const EN_CATALOG = {
|
|
|
4177
4269
|
// -- Overlays --
|
|
4178
4270
|
'toast.close': 'Close notification',
|
|
4179
4271
|
'dialog.close': 'Close dialog',
|
|
4272
|
+
// -- Collapsed groups (tag list / avatar group "+N" chip) --
|
|
4273
|
+
'overflow.more': '+{count}',
|
|
4274
|
+
'overflow.show': 'Show {count} more',
|
|
4180
4275
|
// -- Pagination --
|
|
4181
4276
|
'pagination.nav': 'Pagination',
|
|
4182
4277
|
'pagination.previous': 'Previous page',
|
|
@@ -4205,6 +4300,9 @@ const FR_CATALOG = {
|
|
|
4205
4300
|
// -- Overlays --
|
|
4206
4301
|
'toast.close': 'Fermer la notification',
|
|
4207
4302
|
'dialog.close': 'Fermer la boîte de dialogue',
|
|
4303
|
+
// -- Collapsed groups --
|
|
4304
|
+
'overflow.more': '+{count}',
|
|
4305
|
+
'overflow.show': 'Afficher {count} de plus',
|
|
4208
4306
|
// -- Pagination --
|
|
4209
4307
|
'pagination.nav': 'Pagination',
|
|
4210
4308
|
'pagination.previous': 'Page précédente',
|
|
@@ -12437,9 +12535,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12437
12535
|
|
|
12438
12536
|
/**
|
|
12439
12537
|
* Optional container that coordinates a group of `KjTag` chips. Provides
|
|
12440
|
-
* the chip-group keyboard story (roving tabindex via `KjRovingTabindex`)
|
|
12441
|
-
*
|
|
12442
|
-
*
|
|
12538
|
+
* the chip-group keyboard story (roving tabindex via `KjRovingTabindex`),
|
|
12539
|
+
* the ARIA wiring for the `listbox` / `grid` / `group` shapes, and — with
|
|
12540
|
+
* `kjMax` — collapses the chips past the cap: they get `[hidden]` and
|
|
12541
|
+
* `data-overflow`, and `overflowCount` / `hiddenLabels` let a wrapper render
|
|
12542
|
+
* a "+N" chip that reveals them.
|
|
12443
12543
|
*
|
|
12444
12544
|
* Standalone tags work fine without this container — the container is the
|
|
12445
12545
|
* opt-in surface that turns a pile of independent chips into a single
|
|
@@ -12457,6 +12557,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12457
12557
|
* @doc-name tag
|
|
12458
12558
|
*/
|
|
12459
12559
|
class KjTagList {
|
|
12560
|
+
platformId = inject(PLATFORM_ID);
|
|
12460
12561
|
/** Container ARIA role — drives chip role selection (option / row / none). */
|
|
12461
12562
|
kjTagListRole = input('group', /* @ts-ignore */
|
|
12462
12563
|
...(ngDevMode ? [{ debugName: "kjTagListRole" }] : /* istanbul ignore next */ []));
|
|
@@ -12469,19 +12570,50 @@ class KjTagList {
|
|
|
12469
12570
|
/** Cascading disabled flag. Each chip's effective disabled OR-merges this. */
|
|
12470
12571
|
kjTagListDisabled = input(false, /* @ts-ignore */
|
|
12471
12572
|
...(ngDevMode ? [{ debugName: "kjTagListDisabled" }] : /* istanbul ignore next */ []));
|
|
12573
|
+
/**
|
|
12574
|
+
* Maximum number of chips shown before the rest collapse. Chips past this
|
|
12575
|
+
* index are hidden (`[hidden]` + `data-overflow`) and counted in
|
|
12576
|
+
* `overflowCount`. `0` disables the cap (show everything).
|
|
12577
|
+
* @default 0
|
|
12578
|
+
*/
|
|
12579
|
+
kjMax = input(0, /* @ts-ignore */
|
|
12580
|
+
...(ngDevMode ? [{ debugName: "kjMax" }] : /* istanbul ignore next */ []));
|
|
12472
12581
|
/** Read-only role view used by `KjTag` to compute its own role. */
|
|
12473
12582
|
role = this.kjTagListRole;
|
|
12474
12583
|
/** Read-only disabled view used by `KjTag` to merge into its effective disabled. */
|
|
12475
12584
|
disabled = this.kjTagListDisabled;
|
|
12476
12585
|
/** Read-only multi-selectable view (listbox-only meaning). */
|
|
12477
12586
|
multiple = this.kjTagListMultiple;
|
|
12587
|
+
/**
|
|
12588
|
+
* Every projected `KjTag` (including those composed via `hostDirectives`
|
|
12589
|
+
* on a wrapper). `descendants: true` so a chip wrapped in an anchor or a
|
|
12590
|
+
* form control still counts.
|
|
12591
|
+
*/
|
|
12592
|
+
tags = contentChildren(KjTag, { ...(ngDevMode ? { debugName: "tags" } : /* istanbul ignore next */ {}), descendants: true });
|
|
12593
|
+
tagHosts = contentChildren(KjTag, { ...(ngDevMode ? { debugName: "tagHosts" } : /* istanbul ignore next */ {}), descendants: true, read: ElementRef });
|
|
12594
|
+
/** Projected chip count. */
|
|
12595
|
+
total = computed(() => this.tags().length, /* @ts-ignore */
|
|
12596
|
+
...(ngDevMode ? [{ debugName: "total" }] : /* istanbul ignore next */ []));
|
|
12597
|
+
/** Number of chips rendered visibly (the rest are `[hidden]`). */
|
|
12598
|
+
visibleCount = computed(() => {
|
|
12599
|
+
const max = this.kjMax();
|
|
12600
|
+
const count = this.tags().length;
|
|
12601
|
+
return max <= 0 ? count : Math.min(count, max);
|
|
12602
|
+
}, /* @ts-ignore */
|
|
12603
|
+
...(ngDevMode ? [{ debugName: "visibleCount" }] : /* istanbul ignore next */ []));
|
|
12604
|
+
/** Number of chips collapsed by the cap. `0` when nothing overflows. */
|
|
12605
|
+
overflowCount = computed(() => Math.max(0, this.total() - this.visibleCount()), /* @ts-ignore */
|
|
12606
|
+
...(ngDevMode ? [{ debugName: "overflowCount" }] : /* istanbul ignore next */ []));
|
|
12607
|
+
/** Labels of the collapsed chips, in order — the wrapper's default panel content. */
|
|
12608
|
+
hiddenLabels = computed(() => this.tags()
|
|
12609
|
+
.slice(this.visibleCount())
|
|
12610
|
+
.map((t) => t.textContent()), /* @ts-ignore */
|
|
12611
|
+
...(ngDevMode ? [{ debugName: "hiddenLabels" }] : /* istanbul ignore next */ []));
|
|
12478
12612
|
/** Only emit `aria-orientation` when the container has a real role. */
|
|
12479
12613
|
ariaOrientation = computed(() => {
|
|
12480
12614
|
if (this.kjTagListRole() === 'group')
|
|
12481
12615
|
return null;
|
|
12482
|
-
return this.kjTagListOrientation() === 'both'
|
|
12483
|
-
? 'horizontal'
|
|
12484
|
-
: this.kjTagListOrientation();
|
|
12616
|
+
return this.kjTagListOrientation() === 'both' ? 'horizontal' : this.kjTagListOrientation();
|
|
12485
12617
|
}, /* @ts-ignore */
|
|
12486
12618
|
...(ngDevMode ? [{ debugName: "ariaOrientation" }] : /* istanbul ignore next */ []));
|
|
12487
12619
|
/** `aria-multiselectable` only set in listbox mode. */
|
|
@@ -12491,8 +12623,32 @@ class KjTagList {
|
|
|
12491
12623
|
return this.kjTagListMultiple() ? 'true' : 'false';
|
|
12492
12624
|
}, /* @ts-ignore */
|
|
12493
12625
|
...(ngDevMode ? [{ debugName: "ariaMultiSelectable" }] : /* istanbul ignore next */ []));
|
|
12626
|
+
constructor() {
|
|
12627
|
+
// Same contract as `KjAvatarGroup`: the group owns the visibility of its
|
|
12628
|
+
// collapsed chips and writes it onto their host elements.
|
|
12629
|
+
effect(() => {
|
|
12630
|
+
const hosts = this.tagHosts();
|
|
12631
|
+
const cap = this.visibleCount();
|
|
12632
|
+
const capped = this.kjMax() > 0;
|
|
12633
|
+
if (!isPlatformBrowser(this.platformId))
|
|
12634
|
+
return;
|
|
12635
|
+
hosts.forEach((ref, index) => {
|
|
12636
|
+
const el = ref.nativeElement;
|
|
12637
|
+
if (!el)
|
|
12638
|
+
return;
|
|
12639
|
+
if (capped && index >= cap) {
|
|
12640
|
+
el.setAttribute('hidden', '');
|
|
12641
|
+
el.setAttribute('data-overflow', 'true');
|
|
12642
|
+
}
|
|
12643
|
+
else {
|
|
12644
|
+
el.removeAttribute('hidden');
|
|
12645
|
+
el.removeAttribute('data-overflow');
|
|
12646
|
+
}
|
|
12647
|
+
});
|
|
12648
|
+
});
|
|
12649
|
+
}
|
|
12494
12650
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTagList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12495
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.
|
|
12651
|
+
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 });
|
|
12496
12652
|
}
|
|
12497
12653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjTagList, decorators: [{
|
|
12498
12654
|
type: Directive,
|
|
@@ -12511,7 +12667,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12511
12667
|
'[attr.tabindex]': 'kjTagListRole() !== "group" ? "-1" : null',
|
|
12512
12668
|
},
|
|
12513
12669
|
}]
|
|
12514
|
-
}], 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 }] }] } });
|
|
12670
|
+
}], 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 }] }] } });
|
|
12671
|
+
|
|
12672
|
+
/**
|
|
12673
|
+
* Marks the template a collapsing group (`kj-tag-list`, `kj-avatar-group`)
|
|
12674
|
+
* renders inside the "+N" chip's panel instead of its default list of labels.
|
|
12675
|
+
* The context carries the collapsed range so the consumer slices its own
|
|
12676
|
+
* data and renders the hidden items with any layout or actions it needs.
|
|
12677
|
+
*
|
|
12678
|
+
* @example
|
|
12679
|
+
* ```html
|
|
12680
|
+
* <kj-tag-list [kjMax]="3">
|
|
12681
|
+
* @for (u of users(); track u.id) { <kj-tag>{{ u.name }}</kj-tag> }
|
|
12682
|
+
* <ng-template kjOverflowContent let-count let-start="start">
|
|
12683
|
+
* @for (u of users().slice(start); track u.id) {
|
|
12684
|
+
* <button (click)="remove(u)">Remove {{ u.name }}</button>
|
|
12685
|
+
* }
|
|
12686
|
+
* </ng-template>
|
|
12687
|
+
* </kj-tag-list>
|
|
12688
|
+
* ```
|
|
12689
|
+
* @doc-category Core/Data display
|
|
12690
|
+
* @doc
|
|
12691
|
+
* @doc-name overflow
|
|
12692
|
+
* @doc-is-main
|
|
12693
|
+
* @doc-description Provides the template a tag list or avatar group shows for the items collapsed behind its "+N" chip.
|
|
12694
|
+
*/
|
|
12695
|
+
class KjOverflowContent {
|
|
12696
|
+
template = inject(TemplateRef);
|
|
12697
|
+
/** Type guard for template type-checking (`*ngTemplateOutlet` context inference). */
|
|
12698
|
+
static ngTemplateContextGuard(_dir, _ctx) {
|
|
12699
|
+
return true;
|
|
12700
|
+
}
|
|
12701
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12702
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: KjOverflowContent, isStandalone: true, selector: "ng-template[kjOverflowContent]", ngImport: i0 });
|
|
12703
|
+
}
|
|
12704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjOverflowContent, decorators: [{
|
|
12705
|
+
type: Directive,
|
|
12706
|
+
args: [{
|
|
12707
|
+
selector: 'ng-template[kjOverflowContent]',
|
|
12708
|
+
standalone: true,
|
|
12709
|
+
}]
|
|
12710
|
+
}] });
|
|
12515
12711
|
|
|
12516
12712
|
/**
|
|
12517
12713
|
* Dialog body component. Composes `KjOverlayPanel` as a host directive so
|
|
@@ -13301,10 +13497,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
13301
13497
|
}]
|
|
13302
13498
|
}], propDecorators: { kjTooltipOpened: [{ type: i0.Output, args: ["kjTooltipOpened"] }], kjTooltipClosed: [{ type: i0.Output, args: ["kjTooltipClosed"] }] } });
|
|
13303
13499
|
|
|
13500
|
+
/**
|
|
13501
|
+
* Fans one trigger slot out to several event strategies — e.g. hover for
|
|
13502
|
+
* pointer users, focus for keyboard users and an open-only click for touch —
|
|
13503
|
+
* so a single overlay opens from whichever the user has. `ariaHasPopup` is
|
|
13504
|
+
* the first non-null value among the parts.
|
|
13505
|
+
*/
|
|
13506
|
+
function composeTriggerEvents(...parts) {
|
|
13507
|
+
return {
|
|
13508
|
+
ariaHasPopup: parts.find((p) => p.ariaHasPopup !== null)?.ariaHasPopup ?? null,
|
|
13509
|
+
attach(ctx) {
|
|
13510
|
+
for (const p of parts)
|
|
13511
|
+
p.attach(ctx);
|
|
13512
|
+
},
|
|
13513
|
+
bindToggle(toggle) {
|
|
13514
|
+
for (const p of parts)
|
|
13515
|
+
p.bindToggle(toggle);
|
|
13516
|
+
},
|
|
13517
|
+
onOpen() {
|
|
13518
|
+
for (const p of parts)
|
|
13519
|
+
p.onOpen?.();
|
|
13520
|
+
},
|
|
13521
|
+
onClose() {
|
|
13522
|
+
for (const p of parts)
|
|
13523
|
+
p.onClose?.();
|
|
13524
|
+
},
|
|
13525
|
+
detach() {
|
|
13526
|
+
for (const p of parts)
|
|
13527
|
+
p.detach();
|
|
13528
|
+
},
|
|
13529
|
+
};
|
|
13530
|
+
}
|
|
13531
|
+
/**
|
|
13532
|
+
* A trigger slot whose concrete strategy is chosen after construction. The
|
|
13533
|
+
* DI factory that provides a trigger strategy runs before the directive's
|
|
13534
|
+
* inputs are set, so a directive that offers `kjTrigger="click|hover"` cannot
|
|
13535
|
+
* pick the strategy in the factory; it provides this shell and calls `use()`
|
|
13536
|
+
* from an effect once the input is known (and again if it changes).
|
|
13537
|
+
*/
|
|
13538
|
+
function switchableTriggerEvent(opts = {}) {
|
|
13539
|
+
let ctx = null;
|
|
13540
|
+
let toggle = null;
|
|
13541
|
+
let current = null;
|
|
13542
|
+
return {
|
|
13543
|
+
// Fixed up front: the host reads it once, before `use()` picks a strategy.
|
|
13544
|
+
ariaHasPopup: opts.ariaHasPopup ?? null,
|
|
13545
|
+
attach(c) {
|
|
13546
|
+
ctx = c;
|
|
13547
|
+
current?.attach(c);
|
|
13548
|
+
},
|
|
13549
|
+
bindToggle(t) {
|
|
13550
|
+
toggle = t;
|
|
13551
|
+
current?.bindToggle(t);
|
|
13552
|
+
},
|
|
13553
|
+
onOpen() {
|
|
13554
|
+
current?.onOpen?.();
|
|
13555
|
+
},
|
|
13556
|
+
onClose() {
|
|
13557
|
+
current?.onClose?.();
|
|
13558
|
+
},
|
|
13559
|
+
detach() {
|
|
13560
|
+
current?.detach();
|
|
13561
|
+
current = null;
|
|
13562
|
+
ctx = null;
|
|
13563
|
+
toggle = null;
|
|
13564
|
+
},
|
|
13565
|
+
use(strategy) {
|
|
13566
|
+
current?.detach();
|
|
13567
|
+
current = strategy;
|
|
13568
|
+
if (ctx)
|
|
13569
|
+
strategy.attach(ctx);
|
|
13570
|
+
if (toggle)
|
|
13571
|
+
strategy.bindToggle(toggle);
|
|
13572
|
+
},
|
|
13573
|
+
};
|
|
13574
|
+
}
|
|
13575
|
+
|
|
13576
|
+
/**
|
|
13577
|
+
* Opens the sibling `<kj-popover-content [kjFor]>` panel. `kjTrigger="click"`
|
|
13578
|
+
* (default) toggles on click; `kjTrigger="hover"` opens on hover intent and
|
|
13579
|
+
* keeps the panel open while the pointer rests on it — and, because a hover
|
|
13580
|
+
* popover may hold controls, it also opens on keyboard focus and on click
|
|
13581
|
+
* (touch), so every input modality reaches the panel.
|
|
13582
|
+
*
|
|
13583
|
+
* @example
|
|
13584
|
+
* ```html
|
|
13585
|
+
* <button kjPopoverTrigger kjTrigger="hover" #t="kjPopoverTrigger">+3</button>
|
|
13586
|
+
* <kj-popover-content [kjFor]="t">…</kj-popover-content>
|
|
13587
|
+
* ```
|
|
13588
|
+
* @doc-category Core/Overlay
|
|
13589
|
+
* @doc
|
|
13590
|
+
* @doc-name popover
|
|
13591
|
+
*/
|
|
13304
13592
|
class KjPopoverTrigger {
|
|
13593
|
+
/** How the panel opens: `click` toggles; `hover` opens on hover intent, focus, or tap. */
|
|
13305
13594
|
kjTrigger = input('click', /* @ts-ignore */
|
|
13306
13595
|
...(ngDevMode ? [{ debugName: "kjTrigger" }] : /* istanbul ignore next */ []));
|
|
13307
13596
|
kjDisabled = input(false, { ...(ngDevMode ? { debugName: "kjDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
13597
|
+
/** Hover intent before opening, in ms (`hover` kind only). Default 150. */
|
|
13598
|
+
kjOpenDelay = input(150, { ...(ngDevMode ? { debugName: "kjOpenDelay" } : /* istanbul ignore next */ {}), transform: (v) => Number(v) || 0 });
|
|
13599
|
+
/** Grace period after the pointer leaves the trigger or the panel, in ms (`hover` kind only). Default 150. */
|
|
13600
|
+
kjCloseDelay = input(150, { ...(ngDevMode ? { debugName: "kjCloseDelay" } : /* istanbul ignore next */ {}), transform: (v) => Number(v) || 0 });
|
|
13308
13601
|
_overlayTrigger = inject(KjOverlayTrigger, { self: true });
|
|
13309
13602
|
/** The controller of the composed `KjOverlayTrigger`, exposed for sibling `[kjFor]` panels. */
|
|
13310
13603
|
get controller() {
|
|
@@ -13313,13 +13606,26 @@ class KjPopoverTrigger {
|
|
|
13313
13606
|
attachPanel(panel) {
|
|
13314
13607
|
this._overlayTrigger.attachPanel(panel);
|
|
13315
13608
|
}
|
|
13609
|
+
constructor() {
|
|
13610
|
+
const strategy = inject(KJ_OVERLAY_TRIGGER_EVENT_STRATEGY);
|
|
13611
|
+
effect(() => {
|
|
13612
|
+
strategy.use(this.kjTrigger() === 'hover'
|
|
13613
|
+
? composeTriggerEvents(onHover({
|
|
13614
|
+
openDelay: this.kjOpenDelay,
|
|
13615
|
+
closeDelay: this.kjCloseDelay,
|
|
13616
|
+
interactive: true,
|
|
13617
|
+
}), onFocus(), onClick({ openOnly: true }))
|
|
13618
|
+
: onClick());
|
|
13619
|
+
});
|
|
13620
|
+
}
|
|
13316
13621
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: KjPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13317
|
-
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: [
|
|
13622
|
+
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: [
|
|
13318
13623
|
KjOverlayController,
|
|
13319
|
-
//
|
|
13624
|
+
// The kind is an input, unknown when this factory runs — the shell is
|
|
13625
|
+
// filled from the effect below once inputs are set.
|
|
13320
13626
|
{
|
|
13321
13627
|
provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
|
|
13322
|
-
useFactory: () =>
|
|
13628
|
+
useFactory: () => switchableTriggerEvent({ ariaHasPopup: 'dialog' }),
|
|
13323
13629
|
},
|
|
13324
13630
|
{ provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' },
|
|
13325
13631
|
], exportAs: ["kjPopoverTrigger"], hostDirectives: [{ directive: KjOverlayTrigger, inputs: ["kjOpen", "kjOpen"] }], ngImport: i0 });
|
|
@@ -13333,15 +13639,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
13333
13639
|
hostDirectives: [{ directive: KjOverlayTrigger, inputs: ['kjOpen'] }],
|
|
13334
13640
|
providers: [
|
|
13335
13641
|
KjOverlayController,
|
|
13336
|
-
//
|
|
13642
|
+
// The kind is an input, unknown when this factory runs — the shell is
|
|
13643
|
+
// filled from the effect below once inputs are set.
|
|
13337
13644
|
{
|
|
13338
13645
|
provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
|
|
13339
|
-
useFactory: () =>
|
|
13646
|
+
useFactory: () => switchableTriggerEvent({ ariaHasPopup: 'dialog' }),
|
|
13340
13647
|
},
|
|
13341
13648
|
{ provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' },
|
|
13342
13649
|
],
|
|
13343
13650
|
}]
|
|
13344
|
-
}], propDecorators: { kjTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjTrigger", required: false }] }], kjDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "kjDisabled", required: false }] }] } });
|
|
13651
|
+
}], 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 }] }] } });
|
|
13345
13652
|
|
|
13346
13653
|
class KjPopoverContent {
|
|
13347
13654
|
kjSide = input('bottom', /* @ts-ignore */
|
|
@@ -30070,5 +30377,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
30070
30377
|
* Generated bundle index. Do not edit.
|
|
30071
30378
|
*/
|
|
30072
30379
|
|
|
30073
|
-
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 };
|
|
30380
|
+
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, 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, 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 };
|
|
30074
30381
|
//# sourceMappingURL=kouji-ui-core.mjs.map
|