mtrl-addons 0.2.2 → 0.2.3

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 (128) 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 +5 -1
  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/scripts/analyze-orphaned-functions.ts +0 -387
  67. package/scripts/debug/vlist-selection.ts +0 -121
  68. package/src/components/vlist/config.ts +0 -323
  69. package/src/components/vlist/features/api.ts +0 -626
  70. package/src/components/vlist/features/selection.ts +0 -436
  71. package/src/components/vlist/features/viewport.ts +0 -59
  72. package/src/components/vlist/features.ts +0 -112
  73. package/src/components/vlist/types.ts +0 -723
  74. package/src/components/vlist/vlist.ts +0 -92
  75. package/src/core/compose/features/gestures/index.ts +0 -227
  76. package/src/core/compose/features/gestures/longpress.ts +0 -383
  77. package/src/core/compose/features/gestures/pan.ts +0 -424
  78. package/src/core/compose/features/gestures/pinch.ts +0 -475
  79. package/src/core/compose/features/gestures/rotate.ts +0 -485
  80. package/src/core/compose/features/gestures/swipe.ts +0 -492
  81. package/src/core/compose/features/gestures/tap.ts +0 -334
  82. package/src/core/gestures/longpress.ts +0 -68
  83. package/src/core/gestures/manager.ts +0 -418
  84. package/src/core/gestures/pan.ts +0 -48
  85. package/src/core/gestures/pinch.ts +0 -58
  86. package/src/core/gestures/rotate.ts +0 -58
  87. package/src/core/gestures/swipe.ts +0 -66
  88. package/src/core/gestures/tap.ts +0 -45
  89. package/src/core/gestures/types.ts +0 -387
  90. package/src/core/gestures/utils.ts +0 -128
  91. package/src/core/index.ts +0 -43
  92. package/src/core/layout/config.ts +0 -102
  93. package/src/core/layout/index.ts +0 -168
  94. package/src/core/layout/jsx.ts +0 -174
  95. package/src/core/layout/schema.ts +0 -1044
  96. package/src/core/layout/types.ts +0 -95
  97. package/src/core/viewport/constants.ts +0 -145
  98. package/src/core/viewport/features/base.ts +0 -73
  99. package/src/core/viewport/features/collection.ts +0 -1182
  100. package/src/core/viewport/features/events.ts +0 -130
  101. package/src/core/viewport/features/item-size.ts +0 -271
  102. package/src/core/viewport/features/loading.ts +0 -263
  103. package/src/core/viewport/features/momentum.ts +0 -269
  104. package/src/core/viewport/features/performance.ts +0 -161
  105. package/src/core/viewport/features/placeholders.ts +0 -335
  106. package/src/core/viewport/features/rendering.ts +0 -962
  107. package/src/core/viewport/features/scrollbar.ts +0 -434
  108. package/src/core/viewport/features/scrolling.ts +0 -634
  109. package/src/core/viewport/features/utils.ts +0 -94
  110. package/src/core/viewport/features/virtual.ts +0 -525
  111. package/src/core/viewport/types.ts +0 -133
  112. package/src/core/viewport/utils/speed-tracker.ts +0 -79
  113. package/src/core/viewport/viewport.ts +0 -265
  114. package/test/benchmarks/layout/advanced.test.ts +0 -656
  115. package/test/benchmarks/layout/comparison.test.ts +0 -519
  116. package/test/benchmarks/layout/performance-comparison.test.ts +0 -274
  117. package/test/benchmarks/layout/real-components.test.ts +0 -733
  118. package/test/benchmarks/layout/simple.test.ts +0 -321
  119. package/test/benchmarks/layout/stress.test.ts +0 -990
  120. package/test/collection/basic.test.ts +0 -304
  121. package/test/components/vlist-selection.test.ts +0 -240
  122. package/test/components/vlist.test.ts +0 -63
  123. package/test/core/collection/adapter.test.ts +0 -161
  124. package/test/core/collection/collection.test.ts +0 -394
  125. package/test/core/layout/layout.test.ts +0 -201
  126. package/test/utils/dom-helpers.ts +0 -275
  127. package/test/utils/performance-helpers.ts +0 -392
  128. 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";