mtrl-addons 0.2.2 → 0.2.4

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.
Files changed (129) hide show
  1. package/{src/components/index.ts → dist/components/index.d.ts} +0 -2
  2. package/dist/components/vlist/config.d.ts +86 -0
  3. package/{src/components/vlist/constants.ts → dist/components/vlist/constants.d.ts} +10 -11
  4. package/dist/components/vlist/features/api.d.ts +7 -0
  5. package/{src/components/vlist/features/index.ts → dist/components/vlist/features/index.d.ts} +0 -2
  6. package/dist/components/vlist/features/selection.d.ts +6 -0
  7. package/dist/components/vlist/features/viewport.d.ts +9 -0
  8. package/dist/components/vlist/features.d.ts +31 -0
  9. package/{src/components/vlist/index.ts → dist/components/vlist/index.d.ts} +1 -10
  10. package/dist/components/vlist/types.d.ts +596 -0
  11. package/dist/components/vlist/vlist.d.ts +29 -0
  12. package/dist/core/compose/features/gestures/index.d.ts +86 -0
  13. package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
  14. package/dist/core/compose/features/gestures/pan.d.ts +108 -0
  15. package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
  16. package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
  17. package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
  18. package/dist/core/compose/features/gestures/tap.d.ts +79 -0
  19. package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +1 -2
  20. package/{src/core/compose/index.ts → dist/core/compose/index.d.ts} +2 -11
  21. package/{src/core/gestures/index.ts → dist/core/gestures/index.d.ts} +1 -20
  22. package/dist/core/gestures/longpress.d.ts +23 -0
  23. package/dist/core/gestures/manager.d.ts +14 -0
  24. package/dist/core/gestures/pan.d.ts +12 -0
  25. package/dist/core/gestures/pinch.d.ts +14 -0
  26. package/dist/core/gestures/rotate.d.ts +14 -0
  27. package/dist/core/gestures/swipe.d.ts +20 -0
  28. package/dist/core/gestures/tap.d.ts +12 -0
  29. package/dist/core/gestures/types.d.ts +320 -0
  30. package/dist/core/gestures/utils.d.ts +57 -0
  31. package/dist/core/index.d.ts +13 -0
  32. package/dist/core/layout/config.d.ts +33 -0
  33. package/dist/core/layout/index.d.ts +51 -0
  34. package/dist/core/layout/jsx.d.ts +65 -0
  35. package/dist/core/layout/schema.d.ts +112 -0
  36. package/dist/core/layout/types.d.ts +69 -0
  37. package/dist/core/viewport/constants.d.ts +105 -0
  38. package/dist/core/viewport/features/base.d.ts +14 -0
  39. package/dist/core/viewport/features/collection.d.ts +41 -0
  40. package/dist/core/viewport/features/events.d.ts +13 -0
  41. package/{src/core/viewport/features/index.ts → dist/core/viewport/features/index.d.ts} +0 -7
  42. package/dist/core/viewport/features/item-size.d.ts +30 -0
  43. package/dist/core/viewport/features/loading.d.ts +34 -0
  44. package/dist/core/viewport/features/momentum.d.ts +17 -0
  45. package/dist/core/viewport/features/performance.d.ts +53 -0
  46. package/dist/core/viewport/features/placeholders.d.ts +38 -0
  47. package/dist/core/viewport/features/rendering.d.ts +16 -0
  48. package/dist/core/viewport/features/scrollbar.d.ts +26 -0
  49. package/dist/core/viewport/features/scrolling.d.ts +16 -0
  50. package/dist/core/viewport/features/utils.d.ts +43 -0
  51. package/dist/core/viewport/features/virtual.d.ts +18 -0
  52. package/{src/core/viewport/index.ts → dist/core/viewport/index.d.ts} +1 -17
  53. package/dist/core/viewport/types.d.ts +96 -0
  54. package/dist/core/viewport/utils/speed-tracker.d.ts +22 -0
  55. package/dist/core/viewport/viewport.d.ts +11 -0
  56. package/{src/index.ts → dist/index.d.ts} +0 -4
  57. package/dist/index.js +5143 -0
  58. package/dist/index.mjs +5111 -0
  59. package/dist/styles.css +254 -0
  60. package/dist/styles.css.map +1 -0
  61. package/package.json +16 -2
  62. package/.cursorrules +0 -117
  63. package/AI.md +0 -39
  64. package/CLAUDE.md +0 -882
  65. package/build.js +0 -377
  66. package/index.ts +0 -7
  67. package/scripts/analyze-orphaned-functions.ts +0 -387
  68. package/scripts/debug/vlist-selection.ts +0 -121
  69. package/src/components/vlist/config.ts +0 -323
  70. package/src/components/vlist/features/api.ts +0 -626
  71. package/src/components/vlist/features/selection.ts +0 -436
  72. package/src/components/vlist/features/viewport.ts +0 -59
  73. package/src/components/vlist/features.ts +0 -112
  74. package/src/components/vlist/types.ts +0 -723
  75. package/src/components/vlist/vlist.ts +0 -92
  76. package/src/core/compose/features/gestures/index.ts +0 -227
  77. package/src/core/compose/features/gestures/longpress.ts +0 -383
  78. package/src/core/compose/features/gestures/pan.ts +0 -424
  79. package/src/core/compose/features/gestures/pinch.ts +0 -475
  80. package/src/core/compose/features/gestures/rotate.ts +0 -485
  81. package/src/core/compose/features/gestures/swipe.ts +0 -492
  82. package/src/core/compose/features/gestures/tap.ts +0 -334
  83. package/src/core/gestures/longpress.ts +0 -68
  84. package/src/core/gestures/manager.ts +0 -418
  85. package/src/core/gestures/pan.ts +0 -48
  86. package/src/core/gestures/pinch.ts +0 -58
  87. package/src/core/gestures/rotate.ts +0 -58
  88. package/src/core/gestures/swipe.ts +0 -66
  89. package/src/core/gestures/tap.ts +0 -45
  90. package/src/core/gestures/types.ts +0 -387
  91. package/src/core/gestures/utils.ts +0 -128
  92. package/src/core/index.ts +0 -43
  93. package/src/core/layout/config.ts +0 -102
  94. package/src/core/layout/index.ts +0 -168
  95. package/src/core/layout/jsx.ts +0 -174
  96. package/src/core/layout/schema.ts +0 -1044
  97. package/src/core/layout/types.ts +0 -95
  98. package/src/core/viewport/constants.ts +0 -145
  99. package/src/core/viewport/features/base.ts +0 -73
  100. package/src/core/viewport/features/collection.ts +0 -1182
  101. package/src/core/viewport/features/events.ts +0 -130
  102. package/src/core/viewport/features/item-size.ts +0 -271
  103. package/src/core/viewport/features/loading.ts +0 -263
  104. package/src/core/viewport/features/momentum.ts +0 -269
  105. package/src/core/viewport/features/performance.ts +0 -161
  106. package/src/core/viewport/features/placeholders.ts +0 -335
  107. package/src/core/viewport/features/rendering.ts +0 -962
  108. package/src/core/viewport/features/scrollbar.ts +0 -434
  109. package/src/core/viewport/features/scrolling.ts +0 -634
  110. package/src/core/viewport/features/utils.ts +0 -94
  111. package/src/core/viewport/features/virtual.ts +0 -525
  112. package/src/core/viewport/types.ts +0 -133
  113. package/src/core/viewport/utils/speed-tracker.ts +0 -79
  114. package/src/core/viewport/viewport.ts +0 -265
  115. package/test/benchmarks/layout/advanced.test.ts +0 -656
  116. package/test/benchmarks/layout/comparison.test.ts +0 -519
  117. package/test/benchmarks/layout/performance-comparison.test.ts +0 -274
  118. package/test/benchmarks/layout/real-components.test.ts +0 -733
  119. package/test/benchmarks/layout/simple.test.ts +0 -321
  120. package/test/benchmarks/layout/stress.test.ts +0 -990
  121. package/test/collection/basic.test.ts +0 -304
  122. package/test/components/vlist-selection.test.ts +0 -240
  123. package/test/components/vlist.test.ts +0 -63
  124. package/test/core/collection/adapter.test.ts +0 -161
  125. package/test/core/collection/collection.test.ts +0 -394
  126. package/test/core/layout/layout.test.ts +0 -201
  127. package/test/utils/dom-helpers.ts +0 -275
  128. package/test/utils/performance-helpers.ts +0 -392
  129. package/tsconfig.json +0 -20
@@ -1,14 +1,8 @@
1
- // src/core/viewport/index.ts
2
-
3
1
  /**
4
2
  * Viewport Module - High-Performance Virtual Scrolling
5
3
  * A composable, feature-based virtual scrolling solution
6
4
  */
7
-
8
- // Main viewport creator
9
5
  export * from "./viewport";
10
-
11
- // Feature enhancers (for custom composition)
12
6
  export { withBase } from "./features/base";
13
7
  export { withVirtual } from "./features/virtual";
14
8
  export { withScrolling } from "./features/scrolling";
@@ -17,15 +11,5 @@ export { withRendering } from "./features/rendering";
17
11
  export { withCollection } from "./features/collection";
18
12
  export { withPlaceholders } from "./features/placeholders";
19
13
  export { withEvents } from "./features/events";
20
-
21
- // Types
22
- export type {
23
- ViewportConfig,
24
- ViewportComponent,
25
- ViewportContext,
26
- ItemRange,
27
- ViewportInfo,
28
- } from "./types";
29
-
30
- // Constants
14
+ export type { ViewportConfig, ViewportComponent, ViewportContext, ItemRange, ViewportInfo, } from "./types";
31
15
  export { VIEWPORT_CONSTANTS } from "./constants";
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Core type definitions for Viewport
3
+ * Virtual scrolling and rendering types
4
+ */
5
+ import type { CollectionComponent } from "./features/collection";
6
+ /**
7
+ * Core Range and Item Types
8
+ */
9
+ export interface ItemRange {
10
+ start: number;
11
+ end: number;
12
+ }
13
+ export interface ViewportInfo {
14
+ containerSize: number;
15
+ totalVirtualSize: number;
16
+ visibleRange: ItemRange;
17
+ virtualScrollPosition: number;
18
+ }
19
+ /**
20
+ * Viewport context interface - provides context for viewport features
21
+ */
22
+ export interface ViewportContext {
23
+ element: HTMLElement;
24
+ items: any[];
25
+ totalItems: number;
26
+ template?: (item: any, index: number) => string | HTMLElement;
27
+ emit?: (event: string, data?: any) => void;
28
+ on?: (event: string, handler: Function) => () => void;
29
+ once?: (event: string, handler: Function) => () => void;
30
+ off?: (event: string, handler: Function) => void;
31
+ getClass?: (name: string) => string;
32
+ }
33
+ /**
34
+ * Viewport configuration - Feature-oriented structure
35
+ */
36
+ export interface ViewportConfig {
37
+ element?: HTMLElement;
38
+ className?: string;
39
+ debug?: boolean;
40
+ template?: (item: any, index: number) => string | HTMLElement | any[] | Record<string, any>;
41
+ collection?: {
42
+ adapter?: any;
43
+ transform?: (item: any) => any;
44
+ };
45
+ pagination?: {
46
+ strategy?: "page" | "offset" | "cursor";
47
+ limit?: number;
48
+ };
49
+ virtual?: {
50
+ itemSize?: number;
51
+ overscan?: number;
52
+ autoDetectItemSize?: boolean;
53
+ };
54
+ scrolling?: {
55
+ orientation?: "vertical" | "horizontal";
56
+ animation?: boolean;
57
+ sensitivity?: number;
58
+ };
59
+ scrollbar?: {
60
+ enabled?: boolean;
61
+ autoHide?: boolean;
62
+ };
63
+ performance?: {
64
+ maxConcurrentRequests?: number;
65
+ cancelLoadThreshold?: number;
66
+ enableRequestQueue?: boolean;
67
+ recycleElements?: boolean;
68
+ bufferSize?: number;
69
+ renderDebounce?: number;
70
+ };
71
+ placeholders?: {
72
+ enabled?: boolean;
73
+ template?: (index: number) => string | HTMLElement;
74
+ maskCharacter?: string;
75
+ analyzeFirstLoad?: boolean;
76
+ };
77
+ }
78
+ /**
79
+ * Enhanced component after viewport is applied
80
+ */
81
+ export interface ViewportComponent extends ViewportContext {
82
+ viewport: {
83
+ initialize(): boolean | void;
84
+ destroy(): void;
85
+ updateViewport(): void;
86
+ scrollToIndex(index: number, alignment?: "start" | "center" | "end"): void;
87
+ scrollToPosition(position: number): void;
88
+ getScrollPosition(): number;
89
+ scrollBy(delta: number): void;
90
+ getVelocity(): number;
91
+ collection?: CollectionComponent["collection"];
92
+ getVisibleRange(): ItemRange;
93
+ getViewportInfo(): ViewportInfo;
94
+ renderItems(): void;
95
+ };
96
+ }
@@ -0,0 +1,22 @@
1
+ export interface SpeedTracker {
2
+ velocity: number;
3
+ direction: "forward" | "backward";
4
+ isAccelerating: boolean;
5
+ lastMeasurement: number;
6
+ }
7
+ /**
8
+ * Create a new speed tracker instance
9
+ */
10
+ export declare function createSpeedTracker(): SpeedTracker;
11
+ /**
12
+ * Update speed tracker with new scroll position
13
+ */
14
+ export declare function updateSpeedTracker(tracker: SpeedTracker, newPosition: number, previousPosition: number): SpeedTracker;
15
+ /**
16
+ * Determine if scroll speed is fast (should defer loading)
17
+ */
18
+ export declare function isFastScrolling(tracker: SpeedTracker): boolean;
19
+ /**
20
+ * Get loading strategy based on current speed
21
+ */
22
+ export declare function getLoadingStrategy(tracker: SpeedTracker): "defer" | "immediate";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Viewport - Core virtual scrolling engine
3
+ */
4
+ import type { ViewportConfig, ViewportContext, ViewportComponent } from "./types";
5
+ /**
6
+ * Creates a viewport-enhanced component using composition
7
+ *
8
+ * @param config - Viewport configuration
9
+ * @returns Function that enhances a component with viewport capabilities
10
+ */
11
+ export declare const createViewport: (config?: ViewportConfig) => <T extends ViewportContext>(component: T) => T & ViewportComponent;
@@ -2,9 +2,5 @@
2
2
  * mtrl-addons
3
3
  * Additional components and utilities for the mtrl system
4
4
  */
5
-
6
- // === Core System ===
7
5
  export * from "./core";
8
-
9
- // === Components ===
10
6
  export * from "./components";