tyrell-components 1.0.0-RC11 → 1.0.0-RC13
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/README.md +1 -0
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +1454 -0
- package/css/tyrell.css +112 -420
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +1454 -0
- package/dist/tyrell.css +112 -420
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +7 -0
- package/lib/base/ty-component.d.ts.map +1 -1
- package/lib/base/ty-component.js +27 -0
- package/lib/base/ty-component.js.map +1 -1
- package/lib/components/button.d.ts +16 -1
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +34 -4
- package/lib/components/button.js.map +1 -1
- package/lib/components/calendar-month.d.ts +23 -0
- package/lib/components/calendar-month.d.ts.map +1 -1
- package/lib/components/calendar-month.js +168 -11
- package/lib/components/calendar-month.js.map +1 -1
- package/lib/components/calendar-navigation.d.ts +31 -5
- package/lib/components/calendar-navigation.d.ts.map +1 -1
- package/lib/components/calendar-navigation.js +71 -31
- package/lib/components/calendar-navigation.js.map +1 -1
- package/lib/components/calendar.d.ts +17 -2
- package/lib/components/calendar.d.ts.map +1 -1
- package/lib/components/calendar.js +83 -12
- package/lib/components/calendar.js.map +1 -1
- package/lib/components/checkbox.d.ts +14 -3
- package/lib/components/checkbox.d.ts.map +1 -1
- package/lib/components/checkbox.js +86 -57
- package/lib/components/checkbox.js.map +1 -1
- package/lib/components/copy.d.ts +14 -3
- package/lib/components/copy.d.ts.map +1 -1
- package/lib/components/copy.js +47 -25
- package/lib/components/copy.js.map +1 -1
- package/lib/components/date-picker.d.ts +26 -1
- package/lib/components/date-picker.d.ts.map +1 -1
- package/lib/components/date-picker.js +151 -32
- package/lib/components/date-picker.js.map +1 -1
- package/lib/components/input.d.ts +17 -2
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.js +104 -25
- package/lib/components/input.js.map +1 -1
- package/lib/components/modal.d.ts.map +1 -1
- package/lib/components/modal.js +28 -3
- package/lib/components/modal.js.map +1 -1
- package/lib/components/option.d.ts +0 -27
- package/lib/components/option.d.ts.map +1 -1
- package/lib/components/option.js +11 -102
- package/lib/components/option.js.map +1 -1
- package/lib/components/popup.d.ts.map +1 -1
- package/lib/components/popup.js +36 -2
- package/lib/components/popup.js.map +1 -1
- package/lib/components/radio.d.ts +6 -2
- package/lib/components/radio.d.ts.map +1 -1
- package/lib/components/radio.js +55 -13
- package/lib/components/radio.js.map +1 -1
- package/lib/components/scroll-container.d.ts +16 -0
- package/lib/components/scroll-container.d.ts.map +1 -1
- package/lib/components/scroll-container.js +105 -1
- package/lib/components/scroll-container.js.map +1 -1
- package/lib/components/select.d.ts +550 -0
- package/lib/components/select.d.ts.map +1 -0
- package/lib/components/select.js +2115 -0
- package/lib/components/select.js.map +1 -0
- package/lib/components/selected-tags.d.ts +93 -0
- package/lib/components/selected-tags.d.ts.map +1 -0
- package/lib/components/selected-tags.js +286 -0
- package/lib/components/selected-tags.js.map +1 -0
- package/lib/components/switch.d.ts +6 -3
- package/lib/components/switch.d.ts.map +1 -1
- package/lib/components/switch.js +54 -36
- package/lib/components/switch.js.map +1 -1
- package/lib/components/tabs.d.ts.map +1 -1
- package/lib/components/tabs.js +190 -25
- package/lib/components/tabs.js.map +1 -1
- package/lib/components/tag.d.ts +9 -1
- package/lib/components/tag.d.ts.map +1 -1
- package/lib/components/tag.js +41 -5
- package/lib/components/tag.js.map +1 -1
- package/lib/components/textarea.d.ts +3 -0
- package/lib/components/textarea.d.ts.map +1 -1
- package/lib/components/textarea.js +61 -6
- package/lib/components/textarea.js.map +1 -1
- package/lib/components/tooltip.d.ts +4 -2
- package/lib/components/tooltip.d.ts.map +1 -1
- package/lib/components/tooltip.js +109 -70
- package/lib/components/tooltip.js.map +1 -1
- package/lib/components/wizard.d.ts.map +1 -1
- package/lib/components/wizard.js +22 -3
- package/lib/components/wizard.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/lib/styles/button.d.ts +41 -6
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +294 -254
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/calendar-month.d.ts +3 -1
- package/lib/styles/calendar-month.d.ts.map +1 -1
- package/lib/styles/calendar-month.js +100 -67
- package/lib/styles/calendar-month.js.map +1 -1
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.d.ts.map +1 -1
- package/lib/styles/calendar-navigation.js +20 -28
- package/lib/styles/calendar-navigation.js.map +1 -1
- package/lib/styles/checkbox.d.ts +7 -5
- package/lib/styles/checkbox.d.ts.map +1 -1
- package/lib/styles/checkbox.js +125 -8
- package/lib/styles/checkbox.js.map +1 -1
- package/lib/styles/copy.d.ts +3 -1
- package/lib/styles/copy.d.ts.map +1 -1
- package/lib/styles/copy.js +61 -6
- package/lib/styles/copy.js.map +1 -1
- package/lib/styles/custom-scrollbar.d.ts +1 -1
- package/lib/styles/custom-scrollbar.d.ts.map +1 -1
- package/lib/styles/custom-scrollbar.js +2 -2
- package/lib/styles/date-picker.d.ts +3 -1
- package/lib/styles/date-picker.d.ts.map +1 -1
- package/lib/styles/date-picker.js +65 -103
- package/lib/styles/date-picker.js.map +1 -1
- package/lib/styles/file-upload.d.ts +1 -1
- package/lib/styles/file-upload.d.ts.map +1 -1
- package/lib/styles/file-upload.js +3 -3
- package/lib/styles/input.d.ts +3 -1
- package/lib/styles/input.d.ts.map +1 -1
- package/lib/styles/input.js +93 -419
- package/lib/styles/input.js.map +1 -1
- package/lib/styles/multiselect.d.ts +3 -1
- package/lib/styles/multiselect.d.ts.map +1 -1
- package/lib/styles/multiselect.js +26 -2
- package/lib/styles/multiselect.js.map +1 -1
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.d.ts.map +1 -1
- package/lib/styles/option.js +20 -47
- package/lib/styles/option.js.map +1 -1
- package/lib/styles/radio.d.ts +3 -1
- package/lib/styles/radio.d.ts.map +1 -1
- package/lib/styles/radio.js +24 -21
- package/lib/styles/radio.js.map +1 -1
- package/lib/styles/scroll-container.d.ts +1 -1
- package/lib/styles/scroll-container.d.ts.map +1 -1
- package/lib/styles/scroll-container.js +6 -0
- package/lib/styles/scroll-container.js.map +1 -1
- package/lib/styles/select-base.d.ts +9 -0
- package/lib/styles/select-base.d.ts.map +1 -0
- package/lib/styles/select-base.js +973 -0
- package/lib/styles/select-base.js.map +1 -0
- package/lib/styles/select.d.ts +12 -0
- package/lib/styles/select.d.ts.map +1 -0
- package/lib/styles/select.js +308 -0
- package/lib/styles/select.js.map +1 -0
- package/lib/styles/step.d.ts +1 -1
- package/lib/styles/step.d.ts.map +1 -1
- package/lib/styles/switch.d.ts +3 -1
- package/lib/styles/switch.d.ts.map +1 -1
- package/lib/styles/switch.js +25 -10
- package/lib/styles/switch.js.map +1 -1
- package/lib/styles/tab.d.ts +1 -1
- package/lib/styles/tab.d.ts.map +1 -1
- package/lib/styles/tabs.d.ts +1 -1
- package/lib/styles/tabs.d.ts.map +1 -1
- package/lib/styles/tabs.js +71 -1
- package/lib/styles/tabs.js.map +1 -1
- package/lib/styles/tag.d.ts +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +40 -141
- package/lib/styles/tag.js.map +1 -1
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.d.ts.map +1 -1
- package/lib/styles/textarea.js +71 -37
- package/lib/styles/textarea.js.map +1 -1
- package/lib/styles/tooltip.d.ts +4 -2
- package/lib/styles/tooltip.d.ts.map +1 -1
- package/lib/styles/tooltip.js +4 -119
- package/lib/styles/tooltip.js.map +1 -1
- package/lib/styles/wizard.d.ts +1 -1
- package/lib/styles/wizard.d.ts.map +1 -1
- package/lib/styles/wizard.js +18 -6
- package/lib/styles/wizard.js.map +1 -1
- package/lib/types/common.d.ts +2 -1
- package/lib/types/common.d.ts.map +1 -1
- package/lib/types/common.js +15 -1
- package/lib/types/common.js.map +1 -1
- package/lib/utils/calendar-utils.d.ts +0 -48
- package/lib/utils/calendar-utils.d.ts.map +1 -1
- package/lib/utils/calendar-utils.js +0 -69
- package/lib/utils/calendar-utils.js.map +1 -1
- package/lib/utils/flavor-sheet.d.ts +32 -0
- package/lib/utils/flavor-sheet.d.ts.map +1 -0
- package/lib/utils/flavor-sheet.js +40 -0
- package/lib/utils/flavor-sheet.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +0 -13
- package/lib/utils/icon-registry.d.ts.map +1 -1
- package/lib/utils/icon-registry.js +0 -35
- package/lib/utils/icon-registry.js.map +1 -1
- package/lib/utils/icons.d.ts +10 -0
- package/lib/utils/icons.d.ts.map +1 -0
- package/lib/utils/icons.js +10 -0
- package/lib/utils/icons.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +2 -2
- package/lib/utils/loader-registry.js +2 -2
- package/lib/utils/locale.d.ts +0 -57
- package/lib/utils/locale.d.ts.map +1 -1
- package/lib/utils/locale.js +0 -89
- package/lib/utils/locale.js.map +1 -1
- package/lib/utils/number-format.d.ts +0 -21
- package/lib/utils/number-format.d.ts.map +1 -1
- package/lib/utils/number-format.js +0 -27
- package/lib/utils/number-format.js.map +1 -1
- package/lib/utils/positioning.d.ts +29 -22
- package/lib/utils/positioning.d.ts.map +1 -1
- package/lib/utils/positioning.js +23 -87
- package/lib/utils/positioning.js.map +1 -1
- package/lib/utils/scroll-lock.d.ts.map +1 -1
- package/lib/utils/scroll-lock.js +0 -1
- package/lib/utils/scroll-lock.js.map +1 -1
- package/lib/utils/styles.d.ts +0 -5
- package/lib/utils/styles.d.ts.map +1 -1
- package/lib/utils/styles.js +0 -7
- package/lib/utils/styles.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +22 -11
- package/css/tyrell-brand.css +0 -913
- package/dist/tyrell-brand.css +0 -913
- package/lib/components/dropdown.d.ts +0 -424
- package/lib/components/dropdown.d.ts.map +0 -1
- package/lib/components/dropdown.js +0 -1640
- package/lib/components/dropdown.js.map +0 -1
- package/lib/components/multiselect.d.ts +0 -397
- package/lib/components/multiselect.d.ts.map +0 -1
- package/lib/components/multiselect.js +0 -1595
- package/lib/components/multiselect.js.map +0 -1
- package/lib/styles/dropdown.d.ts +0 -12
- package/lib/styles/dropdown.d.ts.map +0 -1
- package/lib/styles/dropdown.js +0 -1081
- package/lib/styles/dropdown.js.map +0 -1
|
@@ -19,7 +19,10 @@ export declare class TyScrollContainer extends HTMLElement {
|
|
|
19
19
|
private _shadowRight;
|
|
20
20
|
private _scrollbar;
|
|
21
21
|
private _resizeObserver;
|
|
22
|
+
private _contentObserver;
|
|
22
23
|
private _rafId;
|
|
24
|
+
private _nearStartFired;
|
|
25
|
+
private _nearEndFired;
|
|
23
26
|
static get observedAttributes(): string[];
|
|
24
27
|
get shadow(): boolean;
|
|
25
28
|
set shadow(value: boolean);
|
|
@@ -31,21 +34,34 @@ export declare class TyScrollContainer extends HTMLElement {
|
|
|
31
34
|
set customScrollbar(value: boolean);
|
|
32
35
|
get overflowX(): boolean;
|
|
33
36
|
set overflowX(value: boolean);
|
|
37
|
+
/** Distance (px) from an edge at which nearstart/nearend fire. Default 100. */
|
|
38
|
+
get nearEdgeThreshold(): number;
|
|
39
|
+
set nearEdgeThreshold(value: number | null);
|
|
40
|
+
/** Preserve visual position when content is added above the viewport
|
|
41
|
+
* (e.g. prepending older messages in a chat). Opt-in. */
|
|
42
|
+
get scrollAnchoring(): boolean;
|
|
43
|
+
set scrollAnchoring(value: boolean);
|
|
34
44
|
constructor();
|
|
35
45
|
connectedCallback(): void;
|
|
36
46
|
disconnectedCallback(): void;
|
|
37
47
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
48
|
+
private _setupAnchoring;
|
|
49
|
+
private _teardownAnchoring;
|
|
38
50
|
private _setupScrollbar;
|
|
39
51
|
private _destroyScrollbar;
|
|
40
52
|
private _updateMaxHeight;
|
|
41
53
|
private _onScroll;
|
|
42
54
|
private _onSlotChange;
|
|
43
55
|
private _updateShadowState;
|
|
56
|
+
/** Edge-trigger one near-edge event; returns the new "fired" state. */
|
|
57
|
+
private _maybeEmitEdge;
|
|
44
58
|
updateShadows(): void;
|
|
45
59
|
scrollToTop(smooth?: boolean): void;
|
|
46
60
|
scrollToBottom(smooth?: boolean): void;
|
|
47
61
|
scrollToLeft(smooth?: boolean): void;
|
|
48
62
|
scrollToRight(smooth?: boolean): void;
|
|
63
|
+
/** Scroll a slotted descendant (element or CSS selector) into view. */
|
|
64
|
+
scrollToElement(target: Element | string, smooth?: boolean): void;
|
|
49
65
|
get scrollElement(): HTMLElement | null;
|
|
50
66
|
}
|
|
51
67
|
//# sourceMappingURL=scroll-container.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-container.d.ts","sourceRoot":"","sources":["../../src/components/scroll-container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAsB;IAEpC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAID,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIjC;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAGjC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAG3B;;IA2BD,iBAAiB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"scroll-container.d.ts","sourceRoot":"","sources":["../../src/components/scroll-container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,aAAa,CAAQ;IAE7B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAID,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAIjC;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAGjC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAG3B;IAED,+EAA+E;IAC/E,IAAI,iBAAiB,IAAI,MAAM,CAG9B;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAGzC;IAED;8DAC0D;IAC1D,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAGjC;;IA2BD,iBAAiB,IAAI,IAAI;IAuBzB,oBAAoB,IAAI,IAAI;IAgB5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IA4B9F,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,SAAS,CAOhB;IAED,OAAO,CAAC,aAAa,CAGpB;IAID,OAAO,CAAC,kBAAkB;IA0C1B,uEAAuE;IACvE,OAAO,CAAC,cAAc;IAYtB,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,UAAO,GAAG,IAAI;IAIhC,cAAc,CAAC,MAAM,UAAO,GAAG,IAAI;IAMnC,YAAY,CAAC,MAAM,UAAO,GAAG,IAAI;IAIjC,aAAa,CAAC,MAAM,UAAO,GAAG,IAAI;IAMlC,uEAAuE;IACvE,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;IAK9D,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;CACF"}
|
|
@@ -16,7 +16,7 @@ import { scrollContainerStyles } from '../styles/scroll-container.js';
|
|
|
16
16
|
import { CustomScrollbar } from '../utils/custom-scrollbar.js';
|
|
17
17
|
export class TyScrollContainer extends HTMLElement {
|
|
18
18
|
static get observedAttributes() {
|
|
19
|
-
return ['shadow', 'max-height', 'hide-scrollbar', 'custom-scrollbar', 'overflow-x'];
|
|
19
|
+
return ['shadow', 'max-height', 'hide-scrollbar', 'custom-scrollbar', 'overflow-x', 'scroll-anchoring'];
|
|
20
20
|
}
|
|
21
21
|
// ============ Property Accessors ============
|
|
22
22
|
get shadow() {
|
|
@@ -65,6 +65,28 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
65
65
|
else
|
|
66
66
|
this.removeAttribute('overflow-x');
|
|
67
67
|
}
|
|
68
|
+
/** Distance (px) from an edge at which nearstart/nearend fire. Default 100. */
|
|
69
|
+
get nearEdgeThreshold() {
|
|
70
|
+
const v = parseInt(this.getAttribute('near-edge-threshold') || '', 10);
|
|
71
|
+
return Number.isFinite(v) ? v : 100;
|
|
72
|
+
}
|
|
73
|
+
set nearEdgeThreshold(value) {
|
|
74
|
+
if (value == null)
|
|
75
|
+
this.removeAttribute('near-edge-threshold');
|
|
76
|
+
else
|
|
77
|
+
this.setAttribute('near-edge-threshold', String(value));
|
|
78
|
+
}
|
|
79
|
+
/** Preserve visual position when content is added above the viewport
|
|
80
|
+
* (e.g. prepending older messages in a chat). Opt-in. */
|
|
81
|
+
get scrollAnchoring() {
|
|
82
|
+
return this.hasAttribute('scroll-anchoring');
|
|
83
|
+
}
|
|
84
|
+
set scrollAnchoring(value) {
|
|
85
|
+
if (value)
|
|
86
|
+
this.setAttribute('scroll-anchoring', '');
|
|
87
|
+
else
|
|
88
|
+
this.removeAttribute('scroll-anchoring');
|
|
89
|
+
}
|
|
68
90
|
constructor() {
|
|
69
91
|
super();
|
|
70
92
|
this._scrollWrapper = null;
|
|
@@ -74,7 +96,11 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
74
96
|
this._shadowRight = null;
|
|
75
97
|
this._scrollbar = null;
|
|
76
98
|
this._resizeObserver = null;
|
|
99
|
+
this._contentObserver = null;
|
|
77
100
|
this._rafId = null;
|
|
101
|
+
// Edge-trigger state for nearstart/nearend (fire once on entering the zone).
|
|
102
|
+
this._nearStartFired = false;
|
|
103
|
+
this._nearEndFired = false;
|
|
78
104
|
// ============ Private: Scroll Handling ============
|
|
79
105
|
this._onScroll = () => {
|
|
80
106
|
if (this._rafId !== null)
|
|
@@ -123,10 +149,12 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
123
149
|
this._updateMaxHeight();
|
|
124
150
|
this._updateShadowState();
|
|
125
151
|
this._setupScrollbar();
|
|
152
|
+
this._setupAnchoring();
|
|
126
153
|
}
|
|
127
154
|
disconnectedCallback() {
|
|
128
155
|
this._scrollWrapper?.removeEventListener('scroll', this._onScroll);
|
|
129
156
|
this._destroyScrollbar();
|
|
157
|
+
this._teardownAnchoring();
|
|
130
158
|
if (this._resizeObserver) {
|
|
131
159
|
this._resizeObserver.disconnect();
|
|
132
160
|
this._resizeObserver = null;
|
|
@@ -149,9 +177,55 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
149
177
|
this._setupScrollbar();
|
|
150
178
|
this._updateShadowState();
|
|
151
179
|
}
|
|
180
|
+
if (name === 'scroll-anchoring') {
|
|
181
|
+
this._teardownAnchoring();
|
|
182
|
+
this._setupAnchoring();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// ============ Private: Scroll Anchoring ============
|
|
186
|
+
// Preserve visual position when content is added ABOVE the viewport (chat
|
|
187
|
+
// "load older" prepends). A MutationObserver watches the host's children;
|
|
188
|
+
// any added node sitting above the visible area shifts everything down, so we
|
|
189
|
+
// add its (above-the-fold) height back to scrollTop. Append-at-bottom is
|
|
190
|
+
// untouched. CSS sets overflow-anchor:none so native anchoring doesn't fight us.
|
|
191
|
+
_setupAnchoring() {
|
|
192
|
+
if (this._contentObserver || !this.scrollAnchoring)
|
|
193
|
+
return;
|
|
194
|
+
this._contentObserver = new MutationObserver((records) => {
|
|
195
|
+
const wrap = this._scrollWrapper;
|
|
196
|
+
if (!wrap)
|
|
197
|
+
return;
|
|
198
|
+
const wrapTop = wrap.getBoundingClientRect().top;
|
|
199
|
+
let addedAbove = 0;
|
|
200
|
+
for (const r of records) {
|
|
201
|
+
r.addedNodes.forEach((n) => {
|
|
202
|
+
if (n.nodeType !== Node.ELEMENT_NODE)
|
|
203
|
+
return;
|
|
204
|
+
const rect = n.getBoundingClientRect();
|
|
205
|
+
if (rect.bottom <= wrapTop)
|
|
206
|
+
addedAbove += rect.height; // fully above
|
|
207
|
+
else if (rect.top < wrapTop)
|
|
208
|
+
addedAbove += wrapTop - rect.top; // partly above
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (addedAbove > 0) {
|
|
212
|
+
wrap.scrollTop += addedAbove;
|
|
213
|
+
this._scrollbar?.update();
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
this._contentObserver.observe(this, { childList: true });
|
|
217
|
+
}
|
|
218
|
+
_teardownAnchoring() {
|
|
219
|
+
this._contentObserver?.disconnect();
|
|
220
|
+
this._contentObserver = null;
|
|
152
221
|
}
|
|
153
222
|
// ============ Private: Scrollbar Setup ============
|
|
154
223
|
_setupScrollbar() {
|
|
224
|
+
// Idempotent: attributeChangedCallback (attrs set before insertion) and
|
|
225
|
+
// connectedCallback can both call this. Without the guard a second
|
|
226
|
+
// CustomScrollbar + track is created → two thumbs.
|
|
227
|
+
if (this._scrollbar)
|
|
228
|
+
return;
|
|
155
229
|
if (!this._scrollWrapper || !this.customScrollbar)
|
|
156
230
|
return;
|
|
157
231
|
this._scrollbar = new CustomScrollbar(this._scrollWrapper, {
|
|
@@ -208,6 +282,31 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
208
282
|
this._shadowRight.classList.toggle('visible', scrollLeft + clientWidth < scrollWidth - threshold);
|
|
209
283
|
}
|
|
210
284
|
}
|
|
285
|
+
// Near-edge events for infinite scroll (vertical). Edge-triggered: fire once
|
|
286
|
+
// when entering the zone, re-arm only after leaving it. Runs on scroll,
|
|
287
|
+
// slotchange and resize (all route through here), so loading more content
|
|
288
|
+
// re-arms naturally once it grows the scroll distance.
|
|
289
|
+
const scrollable = scrollHeight - clientHeight;
|
|
290
|
+
if (scrollable > 0) {
|
|
291
|
+
const t = this.nearEdgeThreshold;
|
|
292
|
+
const distEnd = scrollable - scrollTop;
|
|
293
|
+
this._nearEndFired = this._maybeEmitEdge('nearend', distEnd, t, this._nearEndFired, { distance: distEnd, scrollTop, scrollHeight, clientHeight });
|
|
294
|
+
this._nearStartFired = this._maybeEmitEdge('nearstart', scrollTop, t, this._nearStartFired, { distance: scrollTop, scrollTop, scrollHeight, clientHeight });
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
// Not scrollable → re-arm both so they fire fresh once content overflows.
|
|
298
|
+
this._nearStartFired = false;
|
|
299
|
+
this._nearEndFired = false;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/** Edge-trigger one near-edge event; returns the new "fired" state. */
|
|
303
|
+
_maybeEmitEdge(name, distance, threshold, fired, detail) {
|
|
304
|
+
if (distance > threshold)
|
|
305
|
+
return false; // out of zone → re-arm
|
|
306
|
+
if (!fired) {
|
|
307
|
+
this.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));
|
|
308
|
+
}
|
|
309
|
+
return true;
|
|
211
310
|
}
|
|
212
311
|
// ============ Public API ============
|
|
213
312
|
updateShadows() {
|
|
@@ -230,6 +329,11 @@ export class TyScrollContainer extends HTMLElement {
|
|
|
230
329
|
this._scrollWrapper.scrollTo({ left: this._scrollWrapper.scrollWidth, behavior: smooth ? 'smooth' : 'auto' });
|
|
231
330
|
}
|
|
232
331
|
}
|
|
332
|
+
/** Scroll a slotted descendant (element or CSS selector) into view. */
|
|
333
|
+
scrollToElement(target, smooth = true) {
|
|
334
|
+
const el = typeof target === 'string' ? this.querySelector(target) : target;
|
|
335
|
+
el?.scrollIntoView({ behavior: smooth ? 'smooth' : 'auto', block: 'nearest' });
|
|
336
|
+
}
|
|
233
337
|
get scrollElement() {
|
|
234
338
|
return this._scrollWrapper;
|
|
235
339
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-container.js","sourceRoot":"","sources":["../../src/components/scroll-container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scroll-container.js","sourceRoot":"","sources":["../../src/components/scroll-container.ts"],"names":[],"mappings":"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"}
|