lyco 1.2.8 → 1.2.9

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 (51) hide show
  1. package/dist/types/index.d.ts +2 -1
  2. package/dist/types/src/components/Virtualizer.labs.d.ts +86 -0
  3. package/dist/types/src/index.d.ts +1 -0
  4. package/dist/types/stories/virtualizer-example.d.ts +12 -0
  5. package/dist/types/stories/virtualizer-example.stories.d.ts +10 -0
  6. package/package.json +13 -4
  7. /package/dist/types/{components → src/components}/AbsoluteBox.d.ts +0 -0
  8. /package/dist/types/{components → src/components}/AcrylicBar.d.ts +0 -0
  9. /package/dist/types/{components → src/components}/AspectRatio.d.ts +0 -0
  10. /package/dist/types/{components → src/components}/AutoFitGrid.d.ts +0 -0
  11. /package/dist/types/{components → src/components}/AvatarStack.d.ts +0 -0
  12. /package/dist/types/{components → src/components}/Badge.d.ts +0 -0
  13. /package/dist/types/{components → src/components}/Canvas.d.ts +0 -0
  14. /package/dist/types/{components → src/components}/Card.d.ts +0 -0
  15. /package/dist/types/{components → src/components}/Center.d.ts +0 -0
  16. /package/dist/types/{components → src/components}/Column.d.ts +0 -0
  17. /package/dist/types/{components → src/components}/ColumnSplit.d.ts +0 -0
  18. /package/dist/types/{components → src/components}/Container.d.ts +0 -0
  19. /package/dist/types/{components → src/components}/Divider.d.ts +0 -0
  20. /package/dist/types/{components → src/components}/Flex.d.ts +0 -0
  21. /package/dist/types/{components → src/components}/FlowItem.d.ts +0 -0
  22. /package/dist/types/{components → src/components}/FooterLayout.d.ts +0 -0
  23. /package/dist/types/{components → src/components}/ForEach.d.ts +0 -0
  24. /package/dist/types/{components → src/components}/Grid.d.ts +0 -0
  25. /package/dist/types/{components → src/components}/GridBreakpoint.d.ts +0 -0
  26. /package/dist/types/{components → src/components}/GridCol.d.ts +0 -0
  27. /package/dist/types/{components → src/components}/GridItem.d.ts +0 -0
  28. /package/dist/types/{components → src/components}/GridRow.d.ts +0 -0
  29. /package/dist/types/{components → src/components}/HeroSection.d.ts +0 -0
  30. /package/dist/types/{components → src/components}/Hidden.d.ts +0 -0
  31. /package/dist/types/{components → src/components}/LightboxContainer.d.ts +0 -0
  32. /package/dist/types/{components → src/components}/List.d.ts +0 -0
  33. /package/dist/types/{components → src/components}/ListGroup.d.ts +0 -0
  34. /package/dist/types/{components → src/components}/Overlay.d.ts +0 -0
  35. /package/dist/types/{components → src/components}/PositionContainer.d.ts +0 -0
  36. /package/dist/types/{components → src/components}/Row.d.ts +0 -0
  37. /package/dist/types/{components → src/components}/RowSplit.d.ts +0 -0
  38. /package/dist/types/{components → src/components}/ScrollBar.d.ts +0 -0
  39. /package/dist/types/{components → src/components}/SideBarContainer.d.ts +0 -0
  40. /package/dist/types/{components → src/components}/SizedBox.d.ts +0 -0
  41. /package/dist/types/{components → src/components}/SkeletonLoader.d.ts +0 -0
  42. /package/dist/types/{components → src/components}/Spacer.d.ts +0 -0
  43. /package/dist/types/{components → src/components}/Sticky.d.ts +0 -0
  44. /package/dist/types/{components → src/components}/Style.d.ts +0 -0
  45. /package/dist/types/{components → src/components}/Swiper.d.ts +0 -0
  46. /package/dist/types/{components → src/components}/Table.d.ts +0 -0
  47. /package/dist/types/{components → src/components}/WaterFlow.d.ts +0 -0
  48. /package/dist/types/{components → src/components}/Wrap.d.ts +0 -0
  49. /package/dist/types/{components → src/components}/ZStack.d.ts +0 -0
  50. /package/dist/types/{components → src/components}/core.d.ts +0 -0
  51. /package/dist/types/{components → src/components}/index.d.ts +0 -0
@@ -1 +1,2 @@
1
- export * from './components';
1
+ export * from './src/index'
2
+ export {}
@@ -0,0 +1,86 @@
1
+ import { ReactiveController, ReactiveControllerHost, TemplateResult } from 'lit';
2
+ import { Ref } from 'lit/directives/ref.js';
3
+ export type ItemsSource<T> = T[];
4
+ export interface VirtualizerConfig<T> {
5
+ items: ItemsSource<T>;
6
+ keyFunction?: (index: number) => string | number;
7
+ itemSize?: number | ((index: number) => number);
8
+ layout?: "vertical" | "horizontal";
9
+ padding?: number;
10
+ preloadCount?: number;
11
+ cacheSize?: number;
12
+ renderItem?: (item: T, index: number) => TemplateResult<1>;
13
+ pageSize?: number;
14
+ fetchMoreThreshold?: number;
15
+ onLoadMore?: () => Promise<void>;
16
+ }
17
+ export declare class VirtualizerController<T> implements ReactiveController {
18
+ host: ReactiveControllerHost;
19
+ private _items;
20
+ private _itemSize;
21
+ private _layout;
22
+ private _preloadCount;
23
+ private _cacheSize;
24
+ private _renderItem;
25
+ private _containerRef;
26
+ private _firstVisible;
27
+ private _lastVisible;
28
+ private _positionCache;
29
+ private _sizeCache;
30
+ private _cacheInitialized;
31
+ private _totalContentSize;
32
+ private _templateBuffer;
33
+ private _blockStore;
34
+ private _recycledNodes;
35
+ private readonly RECYCLE_POOL_SIZE;
36
+ private _intersectionObserver?;
37
+ private _mutationObserver?;
38
+ private _idleCallbackId?;
39
+ private _preRenderChunkSize;
40
+ private readonly CHUNK_SIZE;
41
+ private _chunks;
42
+ private _resizeObserver?;
43
+ private _visibleChunkIndexes;
44
+ private _loadedChunks;
45
+ private _estimatedItemHeight;
46
+ private _isLoading;
47
+ private _hasMore;
48
+ private _pageSize;
49
+ private _fetchMoreThreshold;
50
+ private _onLoadMore?;
51
+ constructor(host: ReactiveControllerHost, initialConfig: VirtualizerConfig<T>, initialRenderItem: (item: T, index: number) => TemplateResult<1>);
52
+ private _initializeItems;
53
+ private _updateMetricsForRange;
54
+ private _setupObservers;
55
+ private _setupResizeObserver;
56
+ private _initializeChunks;
57
+ private _updateChunkMetrics;
58
+ private _calculateVisibleChunks;
59
+ private _preloadAdjacentChunks;
60
+ private _loadChunk;
61
+ private _calculateMetricsForChunk;
62
+ private _preRenderChunk;
63
+ private _prerenderItem;
64
+ private _getItemStyle;
65
+ private _createItemTemplate;
66
+ hostConnected(): void;
67
+ hostDisconnected(): void;
68
+ hostUpdated(): void;
69
+ updateConfig(newConfig: VirtualizerConfig<T>, newRenderItem: (item: T, index: number) => TemplateResult<1>): Promise<void>;
70
+ private _checkAndLoadMore;
71
+ private _getItemSize;
72
+ private _calculateMetrics;
73
+ private _findItemIndexByOffset;
74
+ private _updateVisibleRange;
75
+ getRenderedItems(): TemplateResult[];
76
+ private _ticking;
77
+ private _lastUpdate;
78
+ private readonly FRAME_BUDGET;
79
+ private _scheduleUpdate;
80
+ getContainerRef(): Ref<HTMLElement>;
81
+ getTotalContentSize(): number;
82
+ getLayout(): "vertical" | "horizontal";
83
+ }
84
+ export declare function Virtualizer<T>(config: Omit<VirtualizerConfig<T>, "renderItem">): (renderItem: (item: T, index: number) => TemplateResult<1>) => TemplateResult<1>;
85
+ export declare function Virtualizer<T>(config: VirtualizerConfig<T>): TemplateResult<1>;
86
+ export declare function Virtualizer<T>(config: VirtualizerConfig<T>, renderItem: (item: T, index: number) => TemplateResult<1>): TemplateResult<1>;
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ interface MyDataItem {
3
+ id: number;
4
+ text: string;
5
+ }
6
+ export declare class VirtualizerExample extends LitElement {
7
+ items: MyDataItem[];
8
+ pageSize: number;
9
+ private _renderMyItem;
10
+ render(): import('lit').TemplateResult<1>;
11
+ }
12
+ export {};
@@ -0,0 +1,10 @@
1
+ declare const meta: {
2
+ readonly title: "Example/Virtualizer";
3
+ readonly tags: readonly ["autodocs"];
4
+ readonly render: () => import('lit').TemplateResult<1>;
5
+ };
6
+ export default meta;
7
+ export declare const WithCustomItemRenderer: {
8
+ name: string;
9
+ render: () => import('lit').TemplateResult<1>;
10
+ };
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "lyco",
3
- "version": "1.2.8",
4
- "description": "基于 Lit 的纯 CSS 布局渲染函数库,包含 Row/Column/Flex/Grid/拆分布局/滚动/轮播等常用渲染函数。",
3
+ "version": "1.2.9",
4
+ "description": "Lit-based pure layout rendering function library , including Row/Column/Flex/Grid and other commonly used rendering functions .",
5
5
  "scripts": {
6
- "build": "vite build"
6
+ "build": "vite build",
7
+ "storybook": "storybook dev -p 6006",
8
+ "build-storybook": "storybook build"
7
9
  },
8
10
  "keywords": [
9
11
  "lit",
@@ -39,6 +41,13 @@
39
41
  "vite-plugin-dts": "^4.5.4"
40
42
  },
41
43
  "devDependencies": {
42
- "@types/node": "^22.15.30"
44
+ "@chromatic-com/storybook": "3",
45
+ "@storybook/addon-essentials": "8.6.12",
46
+ "@storybook/blocks": "8.6.12",
47
+ "@storybook/experimental-addon-test": "8.6.12",
48
+ "@storybook/test": "8.6.12",
49
+ "@storybook/web-components": "8.6.12",
50
+ "@storybook/web-components-vite": "8.6.12",
51
+ "storybook": "8.6.12"
43
52
  }
44
53
  }