react-window 2.1.2 → 2.2.0-alpha.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.
Files changed (152) hide show
  1. package/dist/react-window.cjs +1 -1
  2. package/dist/react-window.cjs.map +1 -1
  3. package/dist/react-window.d.ts +18 -2
  4. package/dist/react-window.js +540 -451
  5. package/dist/react-window.js.map +1 -1
  6. package/package.json +3 -4
  7. package/docs/assets/AriaRolesRoute-CioRrafx.js +0 -2
  8. package/docs/assets/AriaRolesRoute-CioRrafx.js.map +0 -1
  9. package/docs/assets/AriaRolesRoute-CjzrHhTE.js +0 -2
  10. package/docs/assets/AriaRolesRoute-CjzrHhTE.js.map +0 -1
  11. package/docs/assets/AriaRolesRoute-DILWjLTS.js +0 -2
  12. package/docs/assets/AriaRolesRoute-DILWjLTS.js.map +0 -1
  13. package/docs/assets/CellComponent.example-uUYIhpiW.js +0 -2
  14. package/docs/assets/CellComponent.example-uUYIhpiW.js.map +0 -1
  15. package/docs/assets/Code-nwWF-WcI.css +0 -1
  16. package/docs/assets/Code-r2plEB3N.js +0 -2
  17. package/docs/assets/Code-r2plEB3N.js.map +0 -1
  18. package/docs/assets/ComponentProps-CnDy_aV8.js +0 -2
  19. package/docs/assets/ComponentProps-CnDy_aV8.js.map +0 -1
  20. package/docs/assets/ContinueLink-BDXFlJ2t.js +0 -2
  21. package/docs/assets/ContinueLink-BDXFlJ2t.js.map +0 -1
  22. package/docs/assets/FixedRowHeightsRoute-CCpmgQDh.js +0 -2
  23. package/docs/assets/FixedRowHeightsRoute-CCpmgQDh.js.map +0 -1
  24. package/docs/assets/GettingStartedRoute-bLneovGd.js +0 -2
  25. package/docs/assets/GettingStartedRoute-bLneovGd.js.map +0 -1
  26. package/docs/assets/Grid-BjC_BndR.js +0 -2
  27. package/docs/assets/Grid-BjC_BndR.js.map +0 -1
  28. package/docs/assets/Header-CWpEkQSA.js +0 -2
  29. package/docs/assets/Header-CWpEkQSA.js.map +0 -1
  30. package/docs/assets/HorizontalListsRoute-CIfKb2Dg.js +0 -2
  31. package/docs/assets/HorizontalListsRoute-CIfKb2Dg.js.map +0 -1
  32. package/docs/assets/ImagesRoute-jiaLWXKV.js +0 -2
  33. package/docs/assets/ImagesRoute-jiaLWXKV.js.map +0 -1
  34. package/docs/assets/ImperativeApiRoute-DRVezybQ.js +0 -2
  35. package/docs/assets/ImperativeApiRoute-DRVezybQ.js.map +0 -1
  36. package/docs/assets/ImperativeApiRoute-DXzOo4Dn.js +0 -2
  37. package/docs/assets/ImperativeApiRoute-DXzOo4Dn.js.map +0 -1
  38. package/docs/assets/List-CB_lBMmJ.js +0 -2
  39. package/docs/assets/List-CB_lBMmJ.js.map +0 -1
  40. package/docs/assets/LoadingSpinner-D94ZhMZx.js +0 -2
  41. package/docs/assets/LoadingSpinner-D94ZhMZx.js.map +0 -1
  42. package/docs/assets/PageNotFound-CZublSHx.js +0 -2
  43. package/docs/assets/PageNotFound-CZublSHx.js.map +0 -1
  44. package/docs/assets/PlatformRequirementsRoute-Bq7s0cCu.js +0 -2
  45. package/docs/assets/PlatformRequirementsRoute-Bq7s0cCu.js.map +0 -1
  46. package/docs/assets/PropsRoute-DrhCHCJM.js +0 -2
  47. package/docs/assets/PropsRoute-DrhCHCJM.js.map +0 -1
  48. package/docs/assets/PropsRoute-Hhqv1kyZ.js +0 -2
  49. package/docs/assets/PropsRoute-Hhqv1kyZ.js.map +0 -1
  50. package/docs/assets/RTLGridsRoute-C7t1OLVr.js +0 -2
  51. package/docs/assets/RTLGridsRoute-C7t1OLVr.js.map +0 -1
  52. package/docs/assets/RenderingGridRoute-Cd7Z3aKa.js +0 -2
  53. package/docs/assets/RenderingGridRoute-Cd7Z3aKa.js.map +0 -1
  54. package/docs/assets/ScratchpadRoute-BE3BnYuC.js +0 -2
  55. package/docs/assets/ScratchpadRoute-BE3BnYuC.js.map +0 -1
  56. package/docs/assets/Select-D7Hzggtt.js +0 -2
  57. package/docs/assets/Select-D7Hzggtt.js.map +0 -1
  58. package/docs/assets/StickyRowsRoute-BFaLUY3R.js +0 -2
  59. package/docs/assets/StickyRowsRoute-BFaLUY3R.js.map +0 -1
  60. package/docs/assets/SupportRoute-DbxH2zGy.js +0 -2
  61. package/docs/assets/SupportRoute-DbxH2zGy.js.map +0 -1
  62. package/docs/assets/TabularDataRoute-DI0yJsDS.js +0 -2
  63. package/docs/assets/TabularDataRoute-DI0yJsDS.js.map +0 -1
  64. package/docs/assets/VariableRowHeightsRoute-cSpZuhJh.js +0 -2
  65. package/docs/assets/VariableRowHeightsRoute-cSpZuhJh.js.map +0 -1
  66. package/docs/assets/addresses-CDQyd4n9.js +0 -2
  67. package/docs/assets/addresses-CDQyd4n9.js.map +0 -1
  68. package/docs/assets/arePropsEqual-CaQN03VG.js +0 -2
  69. package/docs/assets/arePropsEqual-CaQN03VG.js.map +0 -1
  70. package/docs/assets/contacts-Bxrk2JS2.js +0 -2
  71. package/docs/assets/contacts-Bxrk2JS2.js.map +0 -1
  72. package/docs/assets/index-C1XSX8kr.css +0 -1
  73. package/docs/assets/index-Cnm6lMUF.js +0 -3
  74. package/docs/assets/index-Cnm6lMUF.js.map +0 -1
  75. package/docs/assets/useCitiesByState-DF2_rnmt.js +0 -2
  76. package/docs/assets/useCitiesByState-DF2_rnmt.js.map +0 -1
  77. package/docs/assets/useContacts-X0AOlpLx.js +0 -2
  78. package/docs/assets/useContacts-X0AOlpLx.js.map +0 -1
  79. package/docs/data/addresses.json +0 -23932
  80. package/docs/data/contacts.json +0 -4202
  81. package/docs/data/names.json +0 -1002
  82. package/docs/favicon.svg +0 -16
  83. package/docs/generated/README.md +0 -1
  84. package/docs/generated/code-snippets/CellComponent.json +0 -3
  85. package/docs/generated/code-snippets/CellComponentAriaRoles.json +0 -3
  86. package/docs/generated/code-snippets/FixedHeightList.json +0 -3
  87. package/docs/generated/code-snippets/FixedHeightRowComponent.json +0 -3
  88. package/docs/generated/code-snippets/FlexboxLayout.json +0 -3
  89. package/docs/generated/code-snippets/Grid.json +0 -3
  90. package/docs/generated/code-snippets/GridAriaRoles.json +0 -3
  91. package/docs/generated/code-snippets/HorizontalList.json +0 -3
  92. package/docs/generated/code-snippets/HorizontalListCellRenderer.json +0 -3
  93. package/docs/generated/code-snippets/ImageRow.json +0 -3
  94. package/docs/generated/code-snippets/Images.json +0 -3
  95. package/docs/generated/code-snippets/ListAriaRoles.json +0 -3
  96. package/docs/generated/code-snippets/ListVariableRowHeights.json +0 -3
  97. package/docs/generated/code-snippets/ListWithStickyRows.json +0 -3
  98. package/docs/generated/code-snippets/RowComponentAriaRoles.json +0 -3
  99. package/docs/generated/code-snippets/RtlGrid.json +0 -3
  100. package/docs/generated/code-snippets/TableAriaAttributes.json +0 -3
  101. package/docs/generated/code-snippets/TableAriaOverrideProps.json +0 -3
  102. package/docs/generated/code-snippets/columnWidth.json +0 -3
  103. package/docs/generated/code-snippets/gridRefClickEventHandler.json +0 -3
  104. package/docs/generated/code-snippets/listRefClickEventHandler.json +0 -3
  105. package/docs/generated/code-snippets/rowHeight.json +0 -3
  106. package/docs/generated/code-snippets/useGridCallbackRef.json +0 -3
  107. package/docs/generated/code-snippets/useGridRef.json +0 -3
  108. package/docs/generated/code-snippets/useGridRefImport.json +0 -3
  109. package/docs/generated/code-snippets/useImageSizeCache.json +0 -3
  110. package/docs/generated/code-snippets/useListCallbackRef.json +0 -3
  111. package/docs/generated/code-snippets/useListRef.json +0 -3
  112. package/docs/generated/code-snippets/useListRefImport.json +0 -3
  113. package/docs/generated/js-docs/Grid.json +0 -1030
  114. package/docs/generated/js-docs/List.json +0 -927
  115. package/docs/images/animal-3546613_1280.jpg +0 -0
  116. package/docs/images/ball-bearings-1958083_1280.jpg +0 -0
  117. package/docs/images/bourke-luck-potholes-163065_1280.jpg +0 -0
  118. package/docs/images/child-1439468_1280.jpg +0 -0
  119. package/docs/images/digiart-3405596_1280.jpg +0 -0
  120. package/docs/images/electrical-cable-mess-2654084_1280.jpg +0 -0
  121. package/docs/images/elephant-8608983_1280.jpg +0 -0
  122. package/docs/images/fema-4987740_1280.jpg +0 -0
  123. package/docs/images/log-3135150_1280.jpg +0 -0
  124. package/docs/images/man-1838330_1280.jpg +0 -0
  125. package/docs/images/manipulation-2735724_1280.jpg +0 -0
  126. package/docs/images/newborn-6467761_1280.jpg +0 -0
  127. package/docs/images/old-farm-house-2096642_1280.jpg +0 -0
  128. package/docs/images/people-2557534_1280.jpg +0 -0
  129. package/docs/images/photo-1516712109157-6a67f5d73fa1.jpg +0 -0
  130. package/docs/images/photo-1562123408-fbf8cbf92c03.jpg +0 -0
  131. package/docs/images/sculpture-99484_1280.jpg +0 -0
  132. package/docs/images/sport-4765008_1280.jpg +0 -0
  133. package/docs/images/styrofoam-19493_1280.jpg +0 -0
  134. package/docs/images/trabi-328402_1280.jpg +0 -0
  135. package/docs/images/trailers-5073244_1280.jpg +0 -0
  136. package/docs/images/tub-114349_1280.jpg +0 -0
  137. package/docs/images/venus-fly-trap-3684935_1280.jpg +0 -0
  138. package/docs/images/web-5013633_1280.jpg +0 -0
  139. package/docs/images/winter-1675197_1280.jpg +0 -0
  140. package/docs/images/woman-1838149_1280.jpg +0 -0
  141. package/docs/index.html +0 -39
  142. package/docs/og.html +0 -42
  143. package/docs/og.png +0 -0
  144. package/docs/robots.txt +0 -2
  145. package/docs/stats.html +0 -4949
  146. package/docs/svgs/checkbox-checked.svg +0 -1
  147. package/docs/svgs/checkbox-indeterminate.svg +0 -1
  148. package/docs/svgs/checkbox-unchecked.svg +0 -1
  149. package/docs/svgs/github.svg +0 -3
  150. package/docs/svgs/npm.svg +0 -1
  151. package/docs/svgs/radio-checked.svg +0 -1
  152. package/docs/svgs/radio-unchecked.svg +0 -1
@@ -1,2 +0,0 @@
1
- import{j as t,c as e,r as s}from"./index-Cnm6lMUF.js";import{L as i}from"./List-CB_lBMmJ.js";import{j as a}from"./addresses-CDQyd4n9.js";function r({items:e}){return t.jsx(i,{rowComponent:o,rowCount:e.length,rowHeight:n,rowProps:{items:e}})}function n(t,{items:e}){switch(e[t].type){case"state":return 30;case"zip":return 25}}function o({index:s,items:i,style:a}){const r=i[s],n=function(t){return e("flex items-center justify-between gap-2",{"text-3xl text-sky-300":"state"===t.type})}(r);return t.jsxs("div",{className:n,style:a,children:["state"===r.type?t.jsx("span",{children:r.state}):t.jsxs("span",{children:[r.city,", ",r.zip]}),t.jsx("div",{className:"text-slate-500 text-xs",children:`${s+1} of ${i.length}`})]})}function c(){return s.useMemo(()=>{const t=[];if(a){let e="";a.sort((t,e)=>t.state!==e.state?t.state.localeCompare(e.state):t.city!==e.city?t.city.localeCompare(e.city):t.zip.localeCompare(e.zip)).forEach(s=>{s.state!==e&&(e=s.state,t.push({type:"state",state:s.state})),t.push({type:"zip",city:s.city,zip:s.zip})})}return t},[])}export{r as E,o as R,c as u};
2
- //# sourceMappingURL=useCitiesByState-DF2_rnmt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCitiesByState-DF2_rnmt.js","sources":["../../src/routes/list/examples/ListVariableRowHeights.example.tsx","../../src/routes/list/hooks/useCitiesByState.ts"],"sourcesContent":["import { type Ref } from \"react\";\nimport { cn } from \"../../../utils/cn\";\n\n// <begin>\n\nimport {\n List,\n type ListImperativeAPI,\n type RowComponentProps\n} from \"react-window\";\n\ntype Item =\n | { type: \"state\"; state: string }\n | { type: \"zip\"; city: string; zip: string };\n\ntype RowProps = {\n items: Item[];\n};\n\nfunction Example({ items }: { items: Item[] }) {\n return (\n <List<RowProps>\n rowComponent={RowComponent}\n rowCount={items.length}\n rowHeight={rowHeight}\n rowProps={{ items }}\n />\n );\n}\n\nfunction rowHeight(index: number, { items }: RowProps) {\n switch (items[index].type) {\n case \"state\": {\n return 30;\n }\n case \"zip\": {\n return 25;\n }\n }\n}\n\nfunction RowComponent({ index, items, style }: RowComponentProps<RowProps>) {\n const item = items[index];\n\n const className = getClassName(item);\n\n return (\n <div className={className} style={style}>\n {item.type === \"state\" ? (\n <span>{item.state}</span>\n ) : (\n <span>\n {item.city}, {item.zip}\n </span>\n )}\n <div className=\"text-slate-500 text-xs\">{`${index + 1} of ${items.length}`}</div>\n </div>\n );\n}\n\n// <end>\n\nfunction ExampleWithRef({\n items,\n listRef\n}: {\n items: Item[];\n listRef: Ref<ListImperativeAPI>;\n}) {\n return (\n <List\n listRef={listRef}\n rowComponent={RowComponent}\n rowCount={items.length}\n rowHeight={rowHeight}\n rowProps={{ items }}\n />\n );\n}\n\nfunction getClassName(item: Item) {\n return cn(\"flex items-center justify-between gap-2\", {\n \"text-3xl text-sky-300\": item.type === \"state\"\n });\n}\n\nexport { Example, ExampleWithRef, RowComponent };\nexport type { Item, RowProps };\n","import { useMemo } from \"react\";\nimport json from \"../../../../public/data/addresses.json\";\n\ntype Item =\n | { type: \"state\"; state: string }\n | { type: \"zip\"; city: string; zip: string };\n\nexport function useCitiesByState(): Item[] {\n return useMemo(() => {\n const items: Item[] = [];\n\n if (json) {\n let currentState: string = \"\";\n\n json\n .sort((a, b) => {\n if (a.state !== b.state) {\n return a.state.localeCompare(b.state);\n } else if (a.city !== b.city) {\n return a.city.localeCompare(b.city);\n } else {\n return a.zip.localeCompare(b.zip);\n }\n })\n .forEach((address) => {\n if (address.state !== currentState) {\n currentState = address.state;\n\n items.push({\n type: \"state\",\n state: address.state\n });\n }\n\n items.push({\n type: \"zip\",\n city: address.city,\n zip: address.zip\n });\n });\n }\n\n return items;\n }, []);\n}\n"],"names":["Example","items","jsx","List","rowComponent","RowComponent","rowCount","length","rowHeight","rowProps","index","type","style","item","className","cn","getClassName","jsxs","children","state","city","zip","useCitiesByState","useMemo","json","currentState","sort","a","b","localeCompare","forEach","address","push"],"mappings":"yIAmBA,SAASA,GAAQC,MAAEA,IACjB,OACEC,EAAAA,IAACC,EAAA,CACCC,aAAcC,EACdC,SAAUL,EAAMM,OAChBC,YACAC,SAAU,CAAER,UAGlB,CAEA,SAASO,EAAUE,GAAeT,MAAEA,IAClC,OAAQA,EAAMS,GAAOC,MACnB,IAAK,QACH,OAAO,GAET,IAAK,MACH,OAAO,GAGb,CAEA,SAASN,GAAaK,MAAEA,EAAAT,MAAOA,EAAAW,MAAOA,IACpC,MAAMC,EAAOZ,EAAMS,GAEbI,EAoCR,SAAsBD,GACpB,OAAOE,EAAG,0CAA2C,CACnD,wBAAuC,UAAdF,EAAKF,MAElC,CAxCoBK,CAAaH,GAE/B,SACEI,KAAC,MAAA,CAAIH,YAAsBF,QACxBM,SAAA,CAAc,UAAdL,EAAKF,KACJT,EAAAA,IAAC,OAAA,CAAMgB,WAAKC,eAEX,OAAA,CACED,SAAA,CAAAL,EAAKO,KAAK,KAAGP,EAAKQ,OAGvBnB,EAAAA,IAAC,MAAA,CAAIY,UAAU,yBAA0BI,SAAA,GAAGR,EAAQ,QAAQT,EAAMM,aAGxE,CCnDO,SAASe,IACd,OAAOC,EAAAA,QAAQ,KACb,MAAMtB,EAAgB,GAEtB,GAAIuB,EAAM,CACR,IAAIC,EAAuB,GAE3BD,EACGE,KAAK,CAACC,EAAGC,IACJD,EAAER,QAAUS,EAAET,MACTQ,EAAER,MAAMU,cAAcD,EAAET,OACtBQ,EAAEP,OAASQ,EAAER,KACfO,EAAEP,KAAKS,cAAcD,EAAER,MAEvBO,EAAEN,IAAIQ,cAAcD,EAAEP,MAGhCS,QAASC,IACJA,EAAQZ,QAAUM,IACpBA,EAAeM,EAAQZ,MAEvBlB,EAAM+B,KAAK,CACTrB,KAAM,QACNQ,MAAOY,EAAQZ,SAInBlB,EAAM+B,KAAK,CACTrB,KAAM,MACNS,KAAMW,EAAQX,KACdC,IAAKU,EAAQV,OAGrB,CAEA,OAAOpB,GACN,GACL"}
@@ -1,2 +0,0 @@
1
- import{r as e}from"./index-Cnm6lMUF.js";import{j as t}from"./contacts-Bxrk2JS2.js";const a=["title","first_name","last_name","email","gender","address","city","state","zip","timezone","company","job_title"];function r(e){return a[e]}function s(e){switch(r(e)){case"address":return 250;case"email":return 300;case"job_title":return 150;case"timezone":return 200;case"zip":return 75;default:return 100}}function n(){return e.useMemo(()=>t?t.sort((e,t)=>e.title!==t.title?e.title.localeCompare(t.title):e.first_name!==t.first_name?e.first_name.localeCompare(t.first_name):e.last_name.localeCompare(t.last_name)):[],[])}export{a as C,s as c,r as i,n as u};
2
- //# sourceMappingURL=useContacts-X0AOlpLx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useContacts-X0AOlpLx.js","sources":["../../src/routes/grid/examples/shared.ts","../../src/routes/grid/examples/columnWidth.example.ts","../../src/routes/grid/hooks/useContacts.ts"],"sourcesContent":["import type { Contact } from \"./Grid.example\";\n\nexport const COLUMN_KEYS: (keyof Contact)[] = [\n \"title\",\n \"first_name\",\n \"last_name\",\n \"email\",\n \"gender\",\n \"address\",\n \"city\",\n \"state\",\n \"zip\",\n \"timezone\",\n \"company\",\n \"job_title\"\n];\n\nexport function indexToColumn(columnIndex: number): keyof Contact {\n return COLUMN_KEYS[columnIndex];\n}\n","import { indexToColumn } from \"./shared\";\n\n// <begin>\n\nfunction columnWidth(index: number) {\n switch (indexToColumn(index)) {\n case \"address\": {\n return 250;\n }\n case \"email\": {\n return 300;\n }\n case \"job_title\": {\n return 150;\n }\n case \"timezone\": {\n return 200;\n }\n case \"zip\": {\n return 75;\n }\n default: {\n return 100;\n }\n }\n}\n\n// <end>\n\nexport { columnWidth };\n","import { useMemo } from \"react\";\nimport json from \"../../../../public/data/contacts.json\";\n\ntype Contact = (typeof json)[0];\n\nexport function useContacts(): Contact[] {\n return useMemo(() => {\n if (json) {\n return json.sort((a, b) => {\n if (a.title !== b.title) {\n return a.title.localeCompare(b.title);\n } else if (a.first_name !== b.first_name) {\n return a.first_name.localeCompare(b.first_name);\n } else {\n return a.last_name.localeCompare(b.last_name);\n }\n });\n }\n\n return [];\n }, []);\n}\n"],"names":["COLUMN_KEYS","indexToColumn","columnIndex","columnWidth","index","useContacts","useMemo","json","sort","a","b","title","localeCompare","first_name","last_name"],"mappings":"mFAEO,MAAMA,EAAiC,CAC5C,QACA,aACA,YACA,QACA,SACA,UACA,OACA,QACA,MACA,WACA,UACA,aAGK,SAASC,EAAcC,GAC5B,OAAOF,EAAYE,EACrB,CCfA,SAASC,EAAYC,GACnB,OAAQH,EAAcG,IACpB,IAAK,UACH,OAAO,IAET,IAAK,QACH,OAAO,IAET,IAAK,YACH,OAAO,IAET,IAAK,WACH,OAAO,IAET,IAAK,MACH,OAAO,GAET,QACE,OAAO,IAGb,CCpBO,SAASC,IACd,OAAOC,EAAAA,QAAQ,IACTC,EACKA,EAAKC,KAAK,CAACC,EAAGC,IACfD,EAAEE,QAAUD,EAAEC,MACTF,EAAEE,MAAMC,cAAcF,EAAEC,OACtBF,EAAEI,aAAeH,EAAEG,WACrBJ,EAAEI,WAAWD,cAAcF,EAAEG,YAE7BJ,EAAEK,UAAUF,cAAcF,EAAEI,YAKlC,GACN,GACL"}