@proyecto-viviana/solidaria-components 0.3.2 → 0.4.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.
- package/dist/ActionBar.js +184 -0
- package/dist/ActionBar.js.map +1 -0
- package/dist/ActionBar.jsx +128 -0
- package/dist/ActionBar.jsx.map +1 -0
- package/dist/ActionGroup.js +179 -0
- package/dist/ActionGroup.js.map +1 -0
- package/dist/ActionGroup.jsx +129 -0
- package/dist/ActionGroup.jsx.map +1 -0
- package/dist/Alert.js +111 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Alert.jsx +82 -0
- package/dist/Alert.jsx.map +1 -0
- package/dist/Autocomplete.js +130 -0
- package/dist/Autocomplete.js.map +1 -0
- package/dist/Autocomplete.jsx +116 -0
- package/dist/Autocomplete.jsx.map +1 -0
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +334 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/Breadcrumbs.jsx +266 -0
- package/dist/Breadcrumbs.jsx.map +1 -0
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +348 -0
- package/dist/Button.js.map +1 -0
- package/dist/Button.jsx +314 -0
- package/dist/Button.jsx.map +1 -0
- package/dist/Calendar.d.ts +4 -4
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +538 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Calendar.jsx +333 -0
- package/dist/Calendar.jsx.map +1 -0
- package/dist/CalendarPicker.d.ts +33 -0
- package/dist/CalendarPicker.d.ts.map +1 -0
- package/dist/CalendarPicker.js +44 -0
- package/dist/CalendarPicker.js.map +1 -0
- package/dist/CalendarPicker.jsx +44 -0
- package/dist/CalendarPicker.jsx.map +1 -0
- package/dist/Checkbox.d.ts +83 -4
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +923 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Checkbox.jsx +707 -0
- package/dist/Checkbox.jsx.map +1 -0
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +202 -0
- package/dist/Collection.js.map +1 -0
- package/dist/Collection.jsx +152 -0
- package/dist/Collection.jsx.map +1 -0
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +1720 -0
- package/dist/Color.js.map +1 -0
- package/dist/Color.jsx +1344 -0
- package/dist/Color.jsx.map +1 -0
- package/dist/ColorEditor.js +208 -0
- package/dist/ColorEditor.js.map +1 -0
- package/dist/ColorEditor.jsx +120 -0
- package/dist/ColorEditor.jsx.map +1 -0
- package/dist/ComboBox.d.ts +4 -4
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +992 -0
- package/dist/ComboBox.js.map +1 -0
- package/dist/ComboBox.jsx +714 -0
- package/dist/ComboBox.jsx.map +1 -0
- package/dist/ContextualHelpTrigger.js +146 -0
- package/dist/ContextualHelpTrigger.js.map +1 -0
- package/dist/ContextualHelpTrigger.jsx +109 -0
- package/dist/ContextualHelpTrigger.jsx.map +1 -0
- package/dist/DateField.d.ts +3 -3
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +4 -0
- package/dist/DateField.jsx +4 -0
- package/dist/DateField2.js +499 -0
- package/dist/DateField2.js.map +1 -0
- package/dist/DateField2.jsx +317 -0
- package/dist/DateField2.jsx.map +1 -0
- package/dist/DatePicker.d.ts +4 -4
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +991 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/DatePicker.jsx +682 -0
- package/dist/DatePicker.jsx.map +1 -0
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +337 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/Dialog.jsx +192 -0
- package/dist/Dialog.jsx.map +1 -0
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +328 -0
- package/dist/Disclosure.js.map +1 -0
- package/dist/Disclosure.jsx +230 -0
- package/dist/Disclosure.jsx.map +1 -0
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +176 -0
- package/dist/DragAndDrop.js.map +1 -0
- package/dist/DragAndDrop.jsx +160 -0
- package/dist/DragAndDrop.jsx.map +1 -0
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +189 -0
- package/dist/DropZone.js.map +1 -0
- package/dist/DropZone.jsx +144 -0
- package/dist/DropZone.jsx.map +1 -0
- package/dist/FieldError.js +66 -0
- package/dist/FieldError.js.map +1 -0
- package/dist/FieldError.jsx +47 -0
- package/dist/FieldError.jsx.map +1 -0
- package/dist/FileTrigger.js +79 -0
- package/dist/FileTrigger.js.map +1 -0
- package/dist/FileTrigger.jsx +49 -0
- package/dist/FileTrigger.jsx.map +1 -0
- package/dist/Focusable.js +70 -0
- package/dist/Focusable.js.map +1 -0
- package/dist/Focusable.jsx +69 -0
- package/dist/Focusable.jsx.map +1 -0
- package/dist/Form.js +99 -0
- package/dist/Form.js.map +1 -0
- package/dist/Form.jsx +73 -0
- package/dist/Form.jsx.map +1 -0
- package/dist/GridList.d.ts +34 -2
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +723 -0
- package/dist/GridList.js.map +1 -0
- package/dist/GridList.jsx +552 -0
- package/dist/GridList.jsx.map +1 -0
- package/dist/HiddenTimeInput.js +104 -0
- package/dist/HiddenTimeInput.js.map +1 -0
- package/dist/HiddenTimeInput.jsx +69 -0
- package/dist/HiddenTimeInput.jsx.map +1 -0
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +127 -0
- package/dist/Icon.js.map +1 -0
- package/dist/Icon.jsx +72 -0
- package/dist/Icon.jsx.map +1 -0
- package/dist/Keyboard.js +30 -0
- package/dist/Keyboard.js.map +1 -0
- package/dist/Keyboard.jsx +24 -0
- package/dist/Keyboard.jsx.map +1 -0
- package/dist/Landmark.js +134 -0
- package/dist/Landmark.js.map +1 -0
- package/dist/Landmark.jsx +118 -0
- package/dist/Landmark.jsx.map +1 -0
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +219 -0
- package/dist/Link.js.map +1 -0
- package/dist/Link.jsx +189 -0
- package/dist/Link.jsx.map +1 -0
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +670 -0
- package/dist/ListBox.js.map +1 -0
- package/dist/ListBox.jsx +508 -0
- package/dist/ListBox.jsx.map +1 -0
- package/dist/Menu.d.ts +27 -9
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +1254 -0
- package/dist/Menu.js.map +1 -0
- package/dist/Menu.jsx +1042 -0
- package/dist/Menu.jsx.map +1 -0
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +123 -0
- package/dist/Meter.js.map +1 -0
- package/dist/Meter.jsx +107 -0
- package/dist/Meter.jsx.map +1 -0
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +380 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Modal.jsx +314 -0
- package/dist/Modal.jsx.map +1 -0
- package/dist/NumberField.d.ts +3 -3
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +573 -0
- package/dist/NumberField.js.map +1 -0
- package/dist/NumberField.jsx +443 -0
- package/dist/NumberField.jsx.map +1 -0
- package/dist/Popover.d.ts +10 -2
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +464 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Popover.jsx +333 -0
- package/dist/Popover.jsx.map +1 -0
- package/dist/Pressable.js +69 -0
- package/dist/Pressable.js.map +1 -0
- package/dist/Pressable.jsx +68 -0
- package/dist/Pressable.jsx.map +1 -0
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +130 -0
- package/dist/ProgressBar.js.map +1 -0
- package/dist/ProgressBar.jsx +114 -0
- package/dist/ProgressBar.jsx.map +1 -0
- package/dist/RadioGroup.d.ts +82 -4
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +931 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RadioGroup.jsx +681 -0
- package/dist/RadioGroup.jsx.map +1 -0
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +410 -0
- package/dist/RangeCalendar.js.map +1 -0
- package/dist/RangeCalendar.jsx +253 -0
- package/dist/RangeCalendar.jsx.map +1 -0
- package/dist/RouterProvider.js +118 -0
- package/dist/RouterProvider.js.map +1 -0
- package/dist/RouterProvider.jsx +112 -0
- package/dist/RouterProvider.jsx.map +1 -0
- package/dist/SearchField.d.ts +2 -2
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +643 -0
- package/dist/SearchField.js.map +1 -0
- package/dist/SearchField.jsx +526 -0
- package/dist/SearchField.jsx.map +1 -0
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +1031 -0
- package/dist/Select.js.map +1 -0
- package/dist/Select.jsx +744 -0
- package/dist/Select.jsx.map +1 -0
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +86 -0
- package/dist/SelectionIndicator.js.map +1 -0
- package/dist/SelectionIndicator.jsx +50 -0
- package/dist/SelectionIndicator.jsx.map +1 -0
- package/dist/Separator.js +97 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Separator.jsx +85 -0
- package/dist/Separator.jsx.map +1 -0
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +165 -0
- package/dist/SharedElementTransition.js.map +1 -0
- package/dist/SharedElementTransition.jsx +138 -0
- package/dist/SharedElementTransition.jsx.map +1 -0
- package/dist/Slider.d.ts +33 -1
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +515 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Slider.jsx +403 -0
- package/dist/Slider.jsx.map +1 -0
- package/dist/StepList.js +198 -0
- package/dist/StepList.js.map +1 -0
- package/dist/StepList.jsx +141 -0
- package/dist/StepList.jsx.map +1 -0
- package/dist/Switch.d.ts +65 -2
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +534 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Switch.jsx +393 -0
- package/dist/Switch.jsx.map +1 -0
- package/dist/Table.d.ts +48 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +1759 -0
- package/dist/Table.js.map +1 -0
- package/dist/Table.jsx +1348 -0
- package/dist/Table.jsx.map +1 -0
- package/dist/Tabs.d.ts +0 -4
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +595 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tabs.jsx +367 -0
- package/dist/Tabs.jsx.map +1 -0
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +378 -0
- package/dist/TagGroup.js.map +1 -0
- package/dist/TagGroup.jsx +270 -0
- package/dist/TagGroup.jsx.map +1 -0
- package/dist/Text.d.ts +18 -6
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +42 -0
- package/dist/Text.js.map +1 -0
- package/dist/Text.jsx +35 -0
- package/dist/Text.jsx.map +1 -0
- package/dist/TextField.d.ts +6 -6
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +436 -0
- package/dist/TextField.js.map +1 -0
- package/dist/TextField.jsx +403 -0
- package/dist/TextField.jsx.map +1 -0
- package/dist/TimeField.d.ts +3 -3
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +372 -0
- package/dist/TimeField.js.map +1 -0
- package/dist/TimeField.jsx +224 -0
- package/dist/TimeField.jsx.map +1 -0
- package/dist/Toast.d.ts +14 -0
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +551 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toast.jsx +361 -0
- package/dist/Toast.jsx.map +1 -0
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +123 -0
- package/dist/ToggleButton.js.map +1 -0
- package/dist/ToggleButton.jsx +88 -0
- package/dist/ToggleButton.jsx.map +1 -0
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +114 -0
- package/dist/ToggleButtonGroup.js.map +1 -0
- package/dist/ToggleButtonGroup.jsx +85 -0
- package/dist/ToggleButtonGroup.jsx.map +1 -0
- package/dist/Toolbar.js +112 -0
- package/dist/Toolbar.js.map +1 -0
- package/dist/Toolbar.jsx +92 -0
- package/dist/Toolbar.jsx.map +1 -0
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +539 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.jsx +465 -0
- package/dist/Tooltip.jsx.map +1 -0
- package/dist/Tree.d.ts +14 -2
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +1424 -0
- package/dist/Tree.js.map +1 -0
- package/dist/Tree.jsx +1172 -0
- package/dist/Tree.jsx.map +1 -0
- package/dist/Virtualizer.d.ts +16 -2
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -0
- package/dist/Virtualizer.jsx +2 -0
- package/dist/Virtualizer2.js +751 -0
- package/dist/Virtualizer2.js.map +1 -0
- package/dist/Virtualizer2.jsx +730 -0
- package/dist/Virtualizer2.jsx.map +1 -0
- package/dist/VirtualizerLayouts.d.ts +18 -0
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +42 -0
- package/dist/VisuallyHidden.js.map +1 -0
- package/dist/VisuallyHidden.jsx +35 -0
- package/dist/VisuallyHidden.jsx.map +1 -0
- package/dist/contexts.js +33 -0
- package/dist/contexts.js.map +1 -0
- package/dist/contexts.jsx +33 -0
- package/dist/contexts.jsx.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -23932
- package/dist/index.jsx +70 -18337
- package/dist/useDragAndDrop.js +2 -0
- package/dist/useDragAndDrop.jsx +2 -0
- package/dist/useDragAndDrop2.js +395 -0
- package/dist/useDragAndDrop2.js.map +1 -0
- package/dist/useDragAndDrop2.jsx +395 -0
- package/dist/useDragAndDrop2.jsx.map +1 -0
- package/dist/utils.d.ts +83 -11
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +285 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.jsx +277 -0
- package/dist/utils.jsx.map +1 -0
- package/dist/virtualizer/Layout.js +144 -0
- package/dist/virtualizer/Layout.js.map +1 -0
- package/dist/virtualizer/Layout.jsx +144 -0
- package/dist/virtualizer/Layout.jsx.map +1 -0
- package/package.json +401 -4
- package/src/Breadcrumbs.tsx +3 -1
- package/src/Button.tsx +22 -2
- package/src/Calendar.tsx +27 -10
- package/src/CalendarPicker.tsx +73 -0
- package/src/Checkbox.tsx +539 -3
- package/src/Collection.tsx +9 -3
- package/src/Color.tsx +42 -14
- package/src/ComboBox.tsx +50 -6
- package/src/DateField.tsx +20 -2
- package/src/DatePicker.tsx +57 -5
- package/src/Dialog.tsx +13 -5
- package/src/Disclosure.tsx +3 -1
- package/src/DragAndDrop.tsx +3 -1
- package/src/DropZone.tsx +3 -1
- package/src/GridList.tsx +125 -24
- package/src/Icon.tsx +3 -1
- package/src/Link.tsx +3 -1
- package/src/ListBox.tsx +31 -4
- package/src/Menu.tsx +252 -128
- package/src/Meter.tsx +3 -1
- package/src/Modal.tsx +100 -52
- package/src/NumberField.tsx +51 -8
- package/src/Popover.tsx +40 -10
- package/src/ProgressBar.tsx +3 -1
- package/src/RadioGroup.tsx +468 -4
- package/src/RangeCalendar.tsx +3 -1
- package/src/SearchField.tsx +27 -3
- package/src/Select.tsx +22 -7
- package/src/SelectionIndicator.tsx +3 -1
- package/src/SharedElementTransition.tsx +3 -1
- package/src/Slider.tsx +159 -13
- package/src/Switch.tsx +395 -2
- package/src/Table.tsx +409 -95
- package/src/Tabs.tsx +16 -45
- package/src/TagGroup.tsx +3 -1
- package/src/Text.tsx +31 -10
- package/src/TextField.tsx +43 -5
- package/src/TimeField.tsx +20 -2
- package/src/Toast.tsx +79 -14
- package/src/ToggleButton.tsx +3 -1
- package/src/ToggleButtonGroup.tsx +3 -1
- package/src/Tooltip.tsx +3 -1
- package/src/Tree.tsx +77 -9
- package/src/Virtualizer.tsx +180 -31
- package/src/VirtualizerLayouts.ts +45 -10
- package/src/index.ts +50 -0
- package/src/utils.tsx +243 -27
- package/dist/index.js.map +0 -1
- package/dist/index.jsx.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Virtualizer2.js","names":["JSX","createContext","createMemo","createSignal","onCleanup","onMount","splitProps","useContext","DragTypes","DropOperation","DropTarget","ItemDropTarget","CollectionRendererContext","CollectionRendererContextValue","filterDOMProps","GridLayout","ListLayout","TableLayout","WaterfallLayout","calculateLinearVisibleRange","DefaultVirtualizerLayoutOptions","GridLayoutOptions","LayoutInfo","Orientation","Point","Rect","Size","VirtualizerRangeContext","VirtualizerLayoutInfoContext","VirtualizerDropTarget","VirtualizerVisibleRange","WaterfallLayoutOptions","LayoutOptionsDelegate","useLayoutOptions","O","VirtualizerLayout","getVisibleRange","context","options","getLayoutInfo","index","getDropTargetFromPoint","point","itemCount","VirtualizerLayoutClass","VirtualizerKeyboardNavigationOverride","target","direction","isValidDropTarget","VirtualizerContextValue","layout","layoutOptions","isVirtualized","orientation","setDropTargetResolver","resolver","VirtualizerDropTargetResolver","setDropTargetItemCountResolver","setDropTargetIndexResolver","key","setDropOperationResolver","VirtualizerDropOperationResolver","setKeyboardNavigationOverride","override","getBaseKeyboardNavigationTarget","types","allowedOperations","VirtualizerContext","useVirtualizerContext","VirtualizerProps","Omit","HTMLAttributes","HTMLDivElement","children","Element","renderDropIndicator","position","getDropOperation","allowsWindowScrolling","class","style","CSSProperties","getObjectValue","T","value","K","isSameRange","a","b","start","end","offsetTop","offsetBottom","isSameLayoutInfo","rect","x","y","width","height","Virtualizer","props","local","domProps","scrollOffset","setScrollOffset","scrollOffsetX","setScrollOffsetX","viewportOffset","setViewportOffset","windowViewportSize","setWindowViewportSize","measuredViewportSize","setMeasuredViewportSize","measuredViewportWidth","setMeasuredViewportWidth","isScrolling","setIsScrolling","dropTargetResolver","undefined","dropTargetItemCountResolver","dropTargetIndexResolver","dropOperationResolver","keyboardNavigationOverride","containerRef","fallbackLayout","visibleRangeCache","Map","layoutInfoCache","resolvedLayout","resolvedLayoutOptions","fromLayout","virtualOptions","layoutOptionsWithViewport","Record","viewportWidth","itemSize","overscan","viewportSize","explicit","elementSize","Math","max","min","effectiveScrollOffset","mainScrollOffset","mainViewportSize","ctx","layoutResult","nextRange","cachedRange","get","set","viewportHeight","nextInfo","String","cachedInfo","assignDropTargetResolver","assignDropTargetItemCountResolver","assignDropTargetIndexResolver","assignDropOperationResolver","assignKeyboardNavigationOverride","toCollectionDropTarget","type","dropPosition","getCollectionDropTargetFromPoint","virtualTarget","mappedTarget","alternatePositions","Array","alternateTarget","rootTarget","getCollectionDropOperation","length","includes","find","operation","resolveCurrentIndex","currentTarget","fromResolver","getCurrentIndex","resolvedIndex","tryCurrentItemTransition","tryPosition","nextTarget","scanFromIndex","startIndex","step","directionForInsertion","onTarget","tryTarget","insertionOrder","insertionTarget","findNavigationTarget","currentIndex","delta","stepSize","nextStart","clampedStart","primaryTarget","oppositeDirection","oppositeTarget","layoutInfo","tryBoundaryTarget","boundaryDirection","boundaryIndex","boundaryOrder","candidate","directTransition","boundaryTarget","wrappedBoundary","getKeyboardNavigationTarget","getKeyboardPageNavigationTarget","pageSize","floor","endBoundaryTarget","backwardFallback","startBoundaryTarget","forwardFallback","contextValue","collectionRenderer","renderItem","item","layoutDelegate","dropTargetDelegate","filteredDomProps","global","updateViewportSize","nextHeight","clientHeight","nextWidth","clientWidth","updateWindowViewport","window","next","innerHeight","updateViewportOffset","getBoundingClientRect","scrollFrame","scrollEndTimeout","ReturnType","setTimeout","cancelAnimationFrame","clearTimeout","handleResize","addEventListener","resizeObserver","ResizeObserver","observe","handleDocumentScroll","e","Event","Node","isContainer","isAncestor","document","contains","requestAnimationFrame","scrollTop","nextX","scrollLeft","removeEventListener","disconnect","_$createComponent","Provider","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$use","el","_$spread","_$mergeProps","_$insert","_$effect","_$p","_$setStyleProperty","_$runHydrationEvents"],"sources":["../src/VirtualizerLayouts.ts","../src/Virtualizer.tsx"],"sourcesContent":["/**\n * Layout primitives for solidaria-components Virtualizer.\n *\n * These are lightweight parity contracts inspired by RAC virtualizer layout APIs.\n */\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface Size {\n width: number;\n height: number;\n}\n\n/**\n * The primary orientation of a linear layout — the axis items stack along, which\n * is usually the direction the collection scrolls. Mirrors React Spectrum's\n * `Orientation` and `ListLayout`'s `orientation` option.\n */\nexport type Orientation = \"horizontal\" | \"vertical\";\n\nexport interface LayoutInfo {\n key: string | number;\n index: number;\n rect: Rect;\n}\n\nexport interface VirtualizerVisibleRange {\n start: number;\n end: number;\n offsetTop: number;\n offsetBottom: number;\n}\n\nexport interface VirtualizerRangeContext {\n itemCount: number;\n scrollOffset: number;\n viewportSize: number;\n overscan: number;\n viewportWidth?: number;\n}\n\nexport interface DefaultVirtualizerLayoutOptions {\n itemSize?: number;\n overscan?: number;\n viewportSize?: number;\n /**\n * The primary orientation of the items. Items offset along `x`/`width` when\n * `horizontal`, and along `y`/`height` when `vertical`.\n *\n * @default 'vertical'\n */\n orientation?: Orientation;\n}\n\nexport interface GridLayoutOptions extends DefaultVirtualizerLayoutOptions {\n rowHeight?: number;\n columnCount?: number;\n viewportWidth?: number;\n}\n\nexport interface WaterfallLayoutOptions extends GridLayoutOptions {\n minColumnWidth?: number;\n viewportWidth?: number;\n gap?: number;\n}\n\nexport interface VirtualizerLayoutInfoContext {\n viewportWidth: number;\n /**\n * The viewport height, used as the cross-axis size for a `horizontal` layout\n * (the analogue of `viewportWidth` for the `vertical` default).\n */\n viewportHeight?: number;\n}\n\nexport interface VirtualizerDropTarget {\n type: \"item\" | \"root\";\n index: number;\n position: \"before\" | \"on\" | \"after\";\n key?: string | number;\n parentKey?: string | number | null;\n level?: number;\n}\n\nfunction clampRange(\n itemCount: number,\n start: number,\n end: number,\n itemSize: number,\n): VirtualizerVisibleRange {\n const safeStart = Math.max(0, Math.min(start, itemCount));\n const safeEnd = Math.max(safeStart, Math.min(end, itemCount));\n return {\n start: safeStart,\n end: safeEnd,\n offsetTop: safeStart * itemSize,\n offsetBottom: Math.max(0, (itemCount - safeEnd) * itemSize),\n };\n}\n\nexport function calculateLinearVisibleRange(\n itemCount: number,\n scrollOffset: number,\n viewportSize: number,\n itemSize: number,\n overscan: number,\n): VirtualizerVisibleRange {\n if (itemCount <= 0) return { start: 0, end: 0, offsetTop: 0, offsetBottom: 0 };\n const safeItemSize = Math.max(1, itemSize);\n const safeViewport = Math.max(1, viewportSize);\n const safeOverscan = Math.max(0, overscan);\n const start = Math.floor(scrollOffset / safeItemSize) - safeOverscan;\n const visibleCount = Math.ceil(safeViewport / safeItemSize) + safeOverscan * 2;\n return clampRange(itemCount, start, start + visibleCount, safeItemSize);\n}\n\nexport class ListLayout {\n getVisibleRange(\n ctx: VirtualizerRangeContext,\n options?: DefaultVirtualizerLayoutOptions,\n ): VirtualizerVisibleRange {\n return calculateLinearVisibleRange(\n ctx.itemCount,\n ctx.scrollOffset,\n ctx.viewportSize,\n options?.itemSize ?? 40,\n options?.overscan ?? ctx.overscan,\n );\n }\n\n getLayoutInfo(\n index: number,\n context: VirtualizerLayoutInfoContext,\n options?: DefaultVirtualizerLayoutOptions,\n ): LayoutInfo {\n const itemSize = Math.max(1, options?.itemSize ?? 40);\n if ((options?.orientation ?? \"vertical\") === \"horizontal\") {\n // Items stack along the x axis; the cross axis (height) fills the viewport.\n return {\n key: String(index),\n index,\n rect: {\n x: index * itemSize,\n y: 0,\n width: itemSize,\n height: Math.max(0, context.viewportHeight ?? 0),\n },\n };\n }\n // Items stack along the y axis; the cross axis (width) fills the viewport.\n return {\n key: String(index),\n index,\n rect: {\n x: 0,\n y: index * itemSize,\n width: Math.max(0, context.viewportWidth),\n height: itemSize,\n },\n };\n }\n\n getDropTargetFromPoint(\n point: Point,\n itemCount: number,\n options?: DefaultVirtualizerLayoutOptions,\n ): VirtualizerDropTarget | null {\n if (itemCount <= 0) return { type: \"root\", index: -1, position: \"on\" };\n const itemSize = Math.max(1, options?.itemSize ?? 40);\n // Measure the drop point along the primary (scroll) axis.\n const offset = (options?.orientation ?? \"vertical\") === \"horizontal\" ? point.x : point.y;\n if (offset < 0) {\n return { type: \"item\", index: 0, position: \"before\" };\n }\n const totalSize = itemCount * itemSize;\n if (offset >= totalSize) {\n return { type: \"item\", index: itemCount - 1, position: \"after\" };\n }\n const rawIndex = Math.floor(offset / itemSize);\n const index = Math.max(0, Math.min(rawIndex, itemCount - 1));\n const offsetWithinItem = Math.max(0, offset - index * itemSize);\n const threshold = itemSize / 3;\n const position: VirtualizerDropTarget[\"position\"] =\n offsetWithinItem < threshold ? \"before\" : offsetWithinItem > threshold * 2 ? \"after\" : \"on\";\n return { type: \"item\", index, position };\n }\n}\n\nexport class TableLayout extends ListLayout {}\n\nexport class GridLayout {\n getVisibleRange(\n ctx: VirtualizerRangeContext,\n options?: GridLayoutOptions,\n ): VirtualizerVisibleRange {\n if (ctx.itemCount <= 0) return { start: 0, end: 0, offsetTop: 0, offsetBottom: 0 };\n const rowHeight = Math.max(1, options?.rowHeight ?? options?.itemSize ?? 40);\n const columns = Math.max(1, options?.columnCount ?? 1);\n const safeViewport = Math.max(1, ctx.viewportSize);\n const safeOverscan = Math.max(0, options?.overscan ?? ctx.overscan);\n\n const startRow = Math.max(0, Math.floor(ctx.scrollOffset / rowHeight) - safeOverscan);\n const visibleRows = Math.ceil(safeViewport / rowHeight) + safeOverscan * 2;\n const endRow = startRow + visibleRows;\n\n const start = startRow * columns;\n const end = Math.min(ctx.itemCount, endRow * columns);\n\n const totalRows = Math.ceil(ctx.itemCount / columns);\n const clampedStartRow = Math.floor(start / columns);\n const renderedRows = Math.ceil((end - start) / columns);\n const offsetTop = clampedStartRow * rowHeight;\n const offsetBottom = Math.max(0, (totalRows - clampedStartRow - renderedRows) * rowHeight);\n\n return { start, end, offsetTop, offsetBottom };\n }\n\n getLayoutInfo(\n index: number,\n context: VirtualizerLayoutInfoContext,\n options?: GridLayoutOptions,\n ): LayoutInfo {\n const rowHeight = Math.max(1, options?.rowHeight ?? options?.itemSize ?? 40);\n const columns = Math.max(1, options?.columnCount ?? 1);\n const row = Math.floor(index / columns);\n const col = index % columns;\n const width = Math.max(1, context.viewportWidth);\n const cellWidth = Math.floor(width / columns);\n return {\n key: String(index),\n index,\n rect: {\n x: col * cellWidth,\n y: row * rowHeight,\n width: cellWidth,\n height: rowHeight,\n },\n };\n }\n\n getDropTargetFromPoint(\n point: Point,\n itemCount: number,\n options?: GridLayoutOptions,\n ): VirtualizerDropTarget | null {\n if (itemCount <= 0) return { type: \"root\", index: -1, position: \"on\" };\n const rowHeight = Math.max(1, options?.rowHeight ?? options?.itemSize ?? 40);\n const columns = Math.max(1, options?.columnCount ?? 1);\n const totalRows = Math.ceil(itemCount / columns);\n const totalHeight = totalRows * rowHeight;\n if (point.y < 0) {\n return { type: \"item\", index: 0, position: \"before\" };\n }\n if (point.y >= totalHeight) {\n return { type: \"item\", index: itemCount - 1, position: \"after\" };\n }\n const width = Math.max(1, options?.viewportWidth ?? 320);\n const cellWidth = width / columns;\n const row = Math.max(0, Math.floor(point.y / rowHeight));\n const col = Math.max(0, Math.min(columns - 1, Math.floor(Math.max(0, point.x) / cellWidth)));\n const index = Math.max(0, Math.min(itemCount - 1, row * columns + col));\n const withinRow = Math.max(0, point.y - row * rowHeight);\n const threshold = rowHeight / 3;\n const position: VirtualizerDropTarget[\"position\"] =\n withinRow < threshold ? \"before\" : withinRow > threshold * 2 ? \"after\" : \"on\";\n return { type: \"item\", index, position };\n }\n}\n\nexport class WaterfallLayout extends GridLayout {\n override getVisibleRange(\n ctx: VirtualizerRangeContext,\n options?: WaterfallLayoutOptions,\n ): VirtualizerVisibleRange {\n const width = Math.max(1, options?.viewportWidth ?? 320);\n const minColumnWidth = Math.max(1, options?.minColumnWidth ?? 200);\n const gap = Math.max(0, options?.gap ?? 0);\n const columnCount = Math.max(1, Math.floor((width + gap) / (minColumnWidth + gap)));\n return super.getVisibleRange(ctx, { ...options, columnCount });\n }\n\n override getLayoutInfo(\n index: number,\n context: VirtualizerLayoutInfoContext,\n options?: WaterfallLayoutOptions,\n ): LayoutInfo {\n const width = Math.max(1, options?.viewportWidth ?? context.viewportWidth);\n const minColumnWidth = Math.max(1, options?.minColumnWidth ?? 200);\n const gap = Math.max(0, options?.gap ?? 0);\n const columnCount = Math.max(1, Math.floor((width + gap) / (minColumnWidth + gap)));\n return super.getLayoutInfo(index, context, { ...options, columnCount });\n }\n\n override getDropTargetFromPoint(\n point: Point,\n itemCount: number,\n options?: WaterfallLayoutOptions,\n ): VirtualizerDropTarget | null {\n const width = Math.max(1, options?.viewportWidth ?? 320);\n const minColumnWidth = Math.max(1, options?.minColumnWidth ?? 200);\n const gap = Math.max(0, options?.gap ?? 0);\n const columnCount = Math.max(1, Math.floor((width + gap) / (minColumnWidth + gap)));\n return super.getDropTargetFromPoint(point, itemCount, { ...options, columnCount });\n }\n}\n","/**\n * Virtualizer primitive for solidaria-components.\n *\n * Phase 1 parity: provides RAC-like API and context contract with\n * a safe non-virtualized fallback render path.\n */\n\nimport {\n type JSX,\n createContext,\n createMemo,\n createSignal,\n onCleanup,\n onMount,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport type {\n DragTypes,\n DropOperation,\n DropTarget,\n ItemDropTarget,\n} from \"@proyecto-viviana/solid-stately\";\nimport { CollectionRendererContext, type CollectionRendererContextValue } from \"./Collection\";\nimport { filterDOMProps } from \"./utils\";\nimport {\n GridLayout,\n ListLayout,\n TableLayout,\n WaterfallLayout,\n calculateLinearVisibleRange,\n type DefaultVirtualizerLayoutOptions,\n type GridLayoutOptions,\n type LayoutInfo,\n type Orientation,\n type Point,\n type Rect,\n type Size,\n type VirtualizerRangeContext,\n type VirtualizerLayoutInfoContext,\n type VirtualizerDropTarget,\n type VirtualizerVisibleRange,\n type WaterfallLayoutOptions,\n} from \"./VirtualizerLayouts\";\n\nexport interface LayoutOptionsDelegate<O> {\n useLayoutOptions?(): O;\n}\n\nexport interface VirtualizerLayout<O = unknown> extends LayoutOptionsDelegate<O> {\n getVisibleRange?(context: VirtualizerRangeContext, options?: O): VirtualizerVisibleRange;\n getLayoutInfo?(index: number, context: VirtualizerLayoutInfoContext, options?: O): LayoutInfo;\n getDropTargetFromPoint?(\n point: Point,\n itemCount: number,\n options?: O,\n ): VirtualizerDropTarget | null;\n}\n\nexport interface VirtualizerLayoutClass<O> {\n new (): VirtualizerLayout<O>;\n}\n\nexport type VirtualizerKeyboardNavigationOverride = (\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n) => DropTarget | null;\n\nexport interface VirtualizerContextValue<O = unknown> {\n layout: VirtualizerLayout<O>;\n layoutOptions?: O;\n isVirtualized: boolean;\n /**\n * The resolved primary orientation of the layout. Consumers render their\n * windowing spacers along this axis (`width` when `horizontal`, `height`\n * when `vertical`) so the spacer size matches the offsets `getVisibleRange`\n * produced.\n */\n orientation: Orientation;\n getVisibleRange: (itemCount: number) => VirtualizerVisibleRange;\n getLayoutInfo: (index: number) => LayoutInfo;\n getDropTargetFromPoint: (point: Point, itemCount: number) => VirtualizerDropTarget | null;\n setDropTargetResolver: (resolver: VirtualizerDropTargetResolver | undefined) => void;\n setDropTargetItemCountResolver: (resolver: (() => number) | undefined) => void;\n setDropTargetIndexResolver: (\n resolver: ((key: string | number) => number | null) | undefined,\n ) => void;\n setDropOperationResolver: (resolver: VirtualizerDropOperationResolver | undefined) => void;\n setKeyboardNavigationOverride: (\n override: VirtualizerKeyboardNavigationOverride | undefined,\n ) => void;\n getBaseKeyboardNavigationTarget: VirtualizerKeyboardNavigationOverride;\n}\n\nexport type VirtualizerDropTargetResolver = (\n target: VirtualizerDropTarget,\n) => VirtualizerDropTarget;\nexport type VirtualizerDropOperationResolver = (\n target: DropTarget,\n types: DragTypes,\n allowedOperations: DropOperation[],\n) => DropOperation;\n\nexport const VirtualizerContext = createContext<VirtualizerContextValue<unknown> | null>(null);\n\nexport function useVirtualizerContext<O>(): VirtualizerContextValue<O> | null {\n return useContext(VirtualizerContext) as VirtualizerContextValue<O> | null;\n}\n\nexport interface VirtualizerProps<O> extends Omit<\n JSX.HTMLAttributes<HTMLDivElement>,\n \"children\" | \"class\" | \"style\"\n> {\n /** The child collection to virtualize (e.g. ListBox, GridList, or Table). */\n children: JSX.Element;\n /** Layout object or constructor for layout behavior and options delegation. */\n layout: VirtualizerLayoutClass<O> | VirtualizerLayout<O>;\n /** Layout options consumed by the layout implementation. */\n layoutOptions?: O;\n /** Optional renderer for collection drop indicators in virtualized flows. */\n renderDropIndicator?: (\n index: number,\n position: \"before\" | \"after\" | \"on\",\n ) => JSX.Element | undefined;\n /** Optional operation resolver for collection drop target operations. */\n getDropOperation?: VirtualizerDropOperationResolver;\n /**\n * Whether the collection may scroll with the page rather than only within its\n * own scroll container. When enabled (the default, matching react-aria-components),\n * the visible rect is the intersection of the window viewport with the scroll view,\n * so a virtualizer with unbounded height still virtualizes as the page scrolls.\n */\n allowsWindowScrolling?: boolean;\n class?: string;\n style?: string | JSX.CSSProperties;\n}\n\nfunction getObjectValue<T extends object, K extends keyof T>(\n value: T | undefined,\n key: K,\n): T[K] | undefined {\n return value?.[key];\n}\n\nfunction isSameRange(a: VirtualizerVisibleRange, b: VirtualizerVisibleRange): boolean {\n return (\n a.start === b.start &&\n a.end === b.end &&\n a.offsetTop === b.offsetTop &&\n a.offsetBottom === b.offsetBottom\n );\n}\n\nfunction isSameLayoutInfo(a: LayoutInfo, b: LayoutInfo): boolean {\n return (\n a.key === b.key &&\n a.index === b.index &&\n a.rect.x === b.rect.x &&\n a.rect.y === b.rect.y &&\n a.rect.width === b.rect.width &&\n a.rect.height === b.rect.height\n );\n}\n\n/**\n * A Virtualizer renders collection content under a virtualized layout contract.\n * Current implementation supports fixed-size visible range virtualization.\n */\nexport function Virtualizer<O>(props: VirtualizerProps<O>): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"children\",\n \"layout\",\n \"layoutOptions\",\n \"renderDropIndicator\",\n \"getDropOperation\",\n \"allowsWindowScrolling\",\n \"class\",\n \"style\",\n ]);\n // The scroll view's own scroll position (its scrollTop).\n const [scrollOffset, setScrollOffset] = createSignal(0);\n // The scroll view's horizontal scroll position (its scrollLeft), used as the\n // primary scroll axis when the layout's orientation is horizontal.\n const [scrollOffsetX, setScrollOffsetX] = createSignal(0);\n // How far the scroll view's top edge is above the window viewport, due to the\n // page (or an ancestor) being scrolled. Mirrors upstream ScrollView.viewportOffset.\n const [viewportOffset, setViewportOffset] = createSignal(0);\n // The window viewport height, used as the visible height cap when window scrolling.\n const [windowViewportSize, setWindowViewportSize] = createSignal(0);\n // The scroll view's own measured size (clientHeight/clientWidth).\n const [measuredViewportSize, setMeasuredViewportSize] = createSignal(0);\n const [measuredViewportWidth, setMeasuredViewportWidth] = createSignal(0);\n const allowsWindowScrolling = createMemo(() => local.allowsWindowScrolling ?? true);\n // Whether the scroll view is actively scrolling. Mirrors upstream ScrollView's\n // `isScrolling`: while scrolling, the content gets `pointer-events: none` so pointer\n // events don't hit rows recycling under a stationary cursor (avoiding hover-state\n // flicker and needless hit-testing). It flips back 300ms after the last scroll.\n const [isScrolling, setIsScrolling] = createSignal(false);\n const [dropTargetResolver, setDropTargetResolver] = createSignal<\n VirtualizerDropTargetResolver | undefined\n >(undefined);\n const [dropTargetItemCountResolver, setDropTargetItemCountResolver] = createSignal<\n (() => number) | undefined\n >(undefined);\n const [dropTargetIndexResolver, setDropTargetIndexResolver] = createSignal<\n ((key: string | number) => number | null) | undefined\n >(undefined);\n const [dropOperationResolver, setDropOperationResolver] = createSignal<\n VirtualizerDropOperationResolver | undefined\n >(undefined);\n const [keyboardNavigationOverride, setKeyboardNavigationOverride] = createSignal<\n VirtualizerKeyboardNavigationOverride | undefined\n >(undefined);\n let containerRef: HTMLDivElement | undefined;\n const fallbackLayout = new ListLayout();\n const visibleRangeCache = new Map<number, VirtualizerVisibleRange>();\n const layoutInfoCache = new Map<number, LayoutInfo>();\n\n const layout = createMemo<VirtualizerLayout<O>>(() => {\n if (typeof local.layout === \"function\") {\n return new local.layout();\n }\n return local.layout;\n });\n const resolvedLayout = createMemo<VirtualizerLayout<O>>(() => {\n return layout() ?? (new ListLayout() as VirtualizerLayout<O>);\n });\n\n const resolvedLayoutOptions = createMemo<O | undefined>(() => {\n const fromLayout = resolvedLayout().useLayoutOptions?.();\n if (local.layoutOptions && fromLayout) {\n return { ...local.layoutOptions, ...fromLayout };\n }\n return local.layoutOptions ?? fromLayout;\n });\n\n const virtualOptions = createMemo(\n () => resolvedLayoutOptions() as DefaultVirtualizerLayoutOptions | undefined,\n );\n const layoutOptionsWithViewport = createMemo(() => {\n const options = resolvedLayoutOptions();\n if (options && typeof options === \"object\") {\n return {\n ...(options as Record<string, unknown>),\n viewportWidth: measuredViewportWidth(),\n } as O;\n }\n return { viewportWidth: measuredViewportWidth() } as O;\n });\n const itemSize = createMemo(() => getObjectValue(virtualOptions(), \"itemSize\") ?? 40);\n const overscan = createMemo(() => getObjectValue(virtualOptions(), \"overscan\") ?? 2);\n const orientation = createMemo<Orientation>(\n () => getObjectValue(virtualOptions(), \"orientation\") ?? \"vertical\",\n );\n // The effective visible height. When window scrolling, this is the scroll view's\n // size intersected with the window viewport (capped to what is actually on screen),\n // mirroring upstream ScrollView.updateVisibleRect. Otherwise it is the scroll view's\n // own clientHeight. An explicit `viewportSize` layout option still takes precedence.\n const viewportSize = createMemo(() => {\n const explicit = getObjectValue(virtualOptions(), \"viewportSize\");\n if (explicit != null) return explicit;\n const elementSize = measuredViewportSize() ?? 0;\n if (allowsWindowScrolling()) {\n return Math.max(0, Math.min(elementSize - viewportOffset(), windowViewportSize()));\n }\n return elementSize;\n });\n // The top of the visible rect in content coordinates: the scroll view's own scroll\n // position plus how far it has been pushed above the window viewport by page scroll.\n const effectiveScrollOffset = createMemo(() =>\n allowsWindowScrolling() ? scrollOffset() + viewportOffset() : scrollOffset(),\n );\n // The primary-axis scroll offset and viewport size, selected by orientation.\n // A horizontal layout scrolls along x (scrollLeft / client width); the vertical\n // default scrolls along y (with the window-scrolling adjustments above).\n const mainScrollOffset = createMemo(() =>\n orientation() === \"horizontal\" ? scrollOffsetX() : effectiveScrollOffset(),\n );\n const mainViewportSize = createMemo(() => {\n if (orientation() !== \"horizontal\") return viewportSize();\n const explicit = getObjectValue(virtualOptions(), \"viewportSize\");\n return explicit != null ? explicit : measuredViewportWidth();\n });\n\n const getVisibleRange = (itemCount: number): VirtualizerVisibleRange => {\n const ctx: VirtualizerRangeContext = {\n itemCount,\n scrollOffset: mainScrollOffset(),\n viewportSize: mainViewportSize(),\n overscan: overscan(),\n viewportWidth: measuredViewportWidth(),\n };\n const layoutResult = resolvedLayout().getVisibleRange?.(ctx, layoutOptionsWithViewport());\n const nextRange =\n layoutResult ??\n calculateLinearVisibleRange(\n itemCount,\n ctx.scrollOffset,\n ctx.viewportSize,\n itemSize(),\n ctx.overscan,\n );\n const cachedRange = visibleRangeCache.get(itemCount);\n if (cachedRange && isSameRange(cachedRange, nextRange)) {\n return cachedRange;\n }\n visibleRangeCache.set(itemCount, nextRange);\n return nextRange;\n };\n const getLayoutInfo = (index: number): LayoutInfo => {\n const ctx: VirtualizerLayoutInfoContext = {\n viewportWidth: measuredViewportWidth(),\n viewportHeight: measuredViewportSize(),\n };\n const layoutResult = resolvedLayout().getLayoutInfo?.(index, ctx, layoutOptionsWithViewport());\n const nextInfo =\n layoutResult ??\n (orientation() === \"horizontal\"\n ? {\n key: String(index),\n index,\n rect: {\n x: index * itemSize(),\n y: 0,\n width: itemSize(),\n height: Math.max(0, measuredViewportSize()),\n },\n }\n : {\n key: String(index),\n index,\n rect: {\n x: 0,\n y: index * itemSize(),\n width: Math.max(0, measuredViewportWidth()),\n height: itemSize(),\n },\n });\n const cachedInfo = layoutInfoCache.get(index);\n if (cachedInfo && isSameLayoutInfo(cachedInfo, nextInfo)) {\n return cachedInfo;\n }\n layoutInfoCache.set(index, nextInfo);\n return nextInfo;\n };\n const getDropTargetFromPoint = (\n point: Point,\n itemCount: number,\n ): VirtualizerDropTarget | null => {\n const target =\n resolvedLayout().getDropTargetFromPoint?.(point, itemCount, layoutOptionsWithViewport()) ??\n fallbackLayout.getDropTargetFromPoint(point, itemCount, virtualOptions());\n if (!target) return null;\n const resolver = dropTargetResolver();\n return resolver ? resolver(target) : target;\n };\n const assignDropTargetResolver = (resolver: VirtualizerDropTargetResolver | undefined): void => {\n setDropTargetResolver(() => resolver);\n };\n const assignDropTargetItemCountResolver = (resolver: (() => number) | undefined): void => {\n setDropTargetItemCountResolver(() => resolver);\n };\n const assignDropTargetIndexResolver = (\n resolver: ((key: string | number) => number | null) | undefined,\n ): void => {\n setDropTargetIndexResolver(() => resolver);\n };\n const assignDropOperationResolver = (\n resolver: VirtualizerDropOperationResolver | undefined,\n ): void => {\n setDropOperationResolver(() => resolver);\n };\n const assignKeyboardNavigationOverride = (\n override: VirtualizerKeyboardNavigationOverride | undefined,\n ): void => {\n setKeyboardNavigationOverride(() => override);\n };\n const toCollectionDropTarget = (target: VirtualizerDropTarget): DropTarget => {\n if (target.type === \"root\") return { type: \"root\" };\n const key = target.key ?? target.index;\n return {\n type: \"item\",\n key,\n dropPosition: target.position,\n } as ItemDropTarget;\n };\n const getCollectionDropTargetFromPoint = (\n x: number,\n y: number,\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null => {\n const itemCount = dropTargetItemCountResolver()?.() ?? 0;\n const virtualTarget = getDropTargetFromPoint({ x, y }, itemCount);\n if (!virtualTarget) return null;\n const mappedTarget = toCollectionDropTarget(virtualTarget);\n if (isValidDropTarget(mappedTarget)) return mappedTarget;\n if (mappedTarget.type === \"item\") {\n const alternatePositions: Array<\"before\" | \"after\" | \"on\"> =\n mappedTarget.dropPosition === \"on\"\n ? [\"before\", \"after\"]\n : mappedTarget.dropPosition === \"before\"\n ? [\"on\", \"after\"]\n : [\"on\", \"before\"];\n for (const position of alternatePositions) {\n const alternateTarget: DropTarget = {\n ...mappedTarget,\n dropPosition: position,\n };\n if (isValidDropTarget(alternateTarget)) return alternateTarget;\n }\n const rootTarget: DropTarget = { type: \"root\" };\n if (isValidDropTarget(rootTarget)) return rootTarget;\n }\n return null;\n };\n const getCollectionDropOperation = (\n target: DropTarget,\n types: DragTypes,\n allowedOperations: DropOperation[],\n ): DropOperation => {\n const resolver = dropOperationResolver() ?? local.getDropOperation;\n if (resolver) return resolver(target, types, allowedOperations);\n if (allowedOperations.length === 0) return \"cancel\";\n if (target.type === \"root\") {\n if (allowedOperations.includes(\"copy\")) return \"copy\";\n if (allowedOperations.includes(\"move\")) return \"move\";\n } else if (target.dropPosition === \"on\") {\n if (allowedOperations.includes(\"copy\")) return \"copy\";\n if (allowedOperations.includes(\"move\")) return \"move\";\n } else {\n if (allowedOperations.includes(\"move\")) return \"move\";\n if (allowedOperations.includes(\"copy\")) return \"copy\";\n }\n if (allowedOperations.includes(\"link\")) return \"link\";\n return allowedOperations.find((operation) => operation !== \"cancel\") ?? \"cancel\";\n };\n const getBaseKeyboardNavigationTarget = (\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null => {\n const itemCount = dropTargetItemCountResolver()?.() ?? 0;\n if (itemCount <= 0) {\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n\n const resolveCurrentIndex = (currentTarget: DropTarget | null): number | null => {\n if (!currentTarget || currentTarget.type === \"root\") return null;\n const resolver = dropTargetIndexResolver();\n if (resolver) {\n const fromResolver = resolver(currentTarget.key);\n if (fromResolver != null && fromResolver >= 0 && fromResolver < itemCount)\n return fromResolver;\n return null;\n }\n if (\n typeof currentTarget.key === \"number\" &&\n currentTarget.key >= 0 &&\n currentTarget.key < itemCount\n ) {\n return currentTarget.key;\n }\n return null;\n };\n const getCurrentIndex = (currentTarget: DropTarget | null): number => {\n if (!currentTarget || currentTarget.type === \"root\") {\n return direction === \"next\" ? -1 : itemCount;\n }\n const resolvedIndex = resolveCurrentIndex(currentTarget);\n if (resolvedIndex != null) return resolvedIndex;\n return direction === \"next\" ? -1 : itemCount;\n };\n const tryCurrentItemTransition = (currentTarget: DropTarget | null): DropTarget | null => {\n if (!currentTarget || currentTarget.type !== \"item\") return null;\n const tryPosition = (position: \"before\" | \"on\" | \"after\"): DropTarget | null => {\n if (currentTarget.dropPosition === position) return null;\n const nextTarget: DropTarget = {\n type: \"item\",\n key: currentTarget.key,\n dropPosition: position,\n };\n return isValidDropTarget(nextTarget) ? nextTarget : null;\n };\n\n if (direction === \"next\") {\n if (currentTarget.dropPosition === \"before\") {\n return tryPosition(\"on\") ?? tryPosition(\"after\");\n }\n if (currentTarget.dropPosition === \"on\") {\n return tryPosition(\"after\");\n }\n } else {\n if (currentTarget.dropPosition === \"after\") {\n return tryPosition(\"on\") ?? tryPosition(\"before\");\n }\n if (currentTarget.dropPosition === \"on\") {\n return tryPosition(\"before\");\n }\n }\n\n return null;\n };\n const scanFromIndex = (\n startIndex: number,\n step: number,\n directionForInsertion: \"next\" | \"previous\",\n ): DropTarget | null => {\n for (let index = startIndex; index >= 0 && index < itemCount; index += step) {\n const onTarget = tryTarget(index, \"on\");\n if (onTarget) return onTarget;\n\n const insertionOrder: Array<\"before\" | \"after\"> =\n directionForInsertion === \"next\" ? [\"before\", \"after\"] : [\"after\", \"before\"];\n for (const position of insertionOrder) {\n const insertionTarget = tryTarget(index, position);\n if (insertionTarget) return insertionTarget;\n }\n }\n return null;\n };\n const findNavigationTarget = (currentIndex: number, step = 1): DropTarget | null => {\n const delta = direction === \"next\" ? 1 : -1;\n const stepSize = Math.max(1, step);\n const nextStart = currentIndex + delta * stepSize;\n const clampedStart = Math.max(0, Math.min(itemCount - 1, nextStart));\n if (nextStart < 0 || nextStart >= itemCount) {\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n const primaryTarget = scanFromIndex(clampedStart, delta, direction);\n if (primaryTarget) return primaryTarget;\n const oppositeDirection: \"next\" | \"previous\" = direction === \"next\" ? \"previous\" : \"next\";\n const oppositeTarget = scanFromIndex(clampedStart - delta, -delta, oppositeDirection);\n if (oppositeTarget) return oppositeTarget;\n\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n };\n const tryTarget = (index: number, position: \"on\" | \"before\" | \"after\"): DropTarget | null => {\n const layoutInfo = getLayoutInfo(index);\n const virtualTarget = getDropTargetFromPoint(\n {\n x: layoutInfo.rect.x + 1,\n y: layoutInfo.rect.y + layoutInfo.rect.height / 2,\n },\n itemCount,\n );\n if (!virtualTarget || virtualTarget.type === \"root\") return null;\n const nextTarget = toCollectionDropTarget({ ...virtualTarget, position });\n return isValidDropTarget(nextTarget) ? nextTarget : null;\n };\n const tryBoundaryTarget = (boundaryDirection: \"next\" | \"previous\"): DropTarget | null => {\n const boundaryIndex = boundaryDirection === \"next\" ? 0 : itemCount - 1;\n const boundaryOrder: Array<\"before\" | \"on\" | \"after\"> =\n boundaryDirection === \"next\" ? [\"before\", \"on\", \"after\"] : [\"after\", \"on\", \"before\"];\n for (const position of boundaryOrder) {\n const candidate = tryTarget(boundaryIndex, position);\n if (candidate) return candidate;\n }\n return null;\n };\n const directTransition =\n resolveCurrentIndex(target) != null ? tryCurrentItemTransition(target) : null;\n if (directTransition) return directTransition;\n if (!target || target.type === \"root\") {\n const boundaryTarget = tryBoundaryTarget(direction);\n if (boundaryTarget) return boundaryTarget;\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n const currentIndex = getCurrentIndex(target);\n const nextStart = currentIndex + (direction === \"next\" ? 1 : -1);\n if (nextStart < 0 || nextStart >= itemCount) {\n const rootTarget: DropTarget = { type: \"root\" };\n if (isValidDropTarget(rootTarget)) return rootTarget;\n const wrappedBoundary = tryBoundaryTarget(direction);\n if (wrappedBoundary) return wrappedBoundary;\n return null;\n }\n return findNavigationTarget(currentIndex, 1);\n };\n const getKeyboardNavigationTarget = (\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null => {\n // If a collection component (e.g. Tree) has installed a keyboard navigation override,\n // delegate to it. This enables collection-aware navigation (tree branch traversal, etc.).\n const override = keyboardNavigationOverride();\n if (override) {\n return override(target, direction, isValidDropTarget);\n }\n return getBaseKeyboardNavigationTarget(target, direction, isValidDropTarget);\n };\n const getKeyboardPageNavigationTarget = (\n target: DropTarget | null,\n direction: \"next\" | \"previous\",\n isValidDropTarget: (target: DropTarget) => boolean,\n ): DropTarget | null => {\n const itemCount = dropTargetItemCountResolver()?.() ?? 0;\n if (itemCount <= 0) {\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n if (!target || target.type === \"root\") {\n const startIndex = direction === \"next\" ? 0 : itemCount - 1;\n const delta = direction === \"next\" ? 1 : -1;\n const boundaryOrder: Array<\"before\" | \"on\" | \"after\"> =\n direction === \"next\" ? [\"before\", \"on\", \"after\"] : [\"after\", \"on\", \"before\"];\n for (let index = startIndex; index >= 0 && index < itemCount; index += delta) {\n const layoutInfo = getLayoutInfo(index);\n const virtualTarget = getDropTargetFromPoint(\n {\n x: layoutInfo.rect.x + 1,\n y: layoutInfo.rect.y + layoutInfo.rect.height / 2,\n },\n itemCount,\n );\n if (!virtualTarget || virtualTarget.type === \"root\") continue;\n for (const position of boundaryOrder) {\n const candidate = toCollectionDropTarget({ ...virtualTarget, position });\n if (isValidDropTarget(candidate)) return candidate;\n }\n }\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n const resolver = dropTargetIndexResolver();\n const resolvedIndex = resolver?.(target.key);\n const currentIndex =\n resolvedIndex != null\n ? resolvedIndex\n : resolver\n ? direction === \"next\"\n ? -1\n : itemCount\n : typeof target.key === \"number\"\n ? target.key\n : direction === \"next\"\n ? -1\n : itemCount;\n const pageSize = Math.max(1, Math.floor(mainViewportSize() / Math.max(1, itemSize())));\n const delta = direction === \"next\" ? 1 : -1;\n const nextStart = currentIndex + delta * pageSize;\n const clampedStart = Math.max(0, Math.min(itemCount - 1, nextStart));\n const tryTarget = (index: number, position: \"on\" | \"before\" | \"after\"): DropTarget | null => {\n const layoutInfo = getLayoutInfo(index);\n const virtualTarget = getDropTargetFromPoint(\n {\n x: layoutInfo.rect.x + 1,\n y: layoutInfo.rect.y + layoutInfo.rect.height / 2,\n },\n itemCount,\n );\n if (!virtualTarget || virtualTarget.type === \"root\") return null;\n const nextTarget = toCollectionDropTarget({ ...virtualTarget, position });\n return isValidDropTarget(nextTarget) ? nextTarget : null;\n };\n const scanFromIndex = (startIndex: number, step: number): DropTarget | null => {\n const insertionOrder: Array<\"before\" | \"after\"> =\n step > 0 ? [\"before\", \"after\"] : [\"after\", \"before\"];\n for (let index = startIndex; index >= 0 && index < itemCount; index += step) {\n const onTarget = tryTarget(index, \"on\");\n if (onTarget) return onTarget;\n for (const position of insertionOrder) {\n const insertionTarget = tryTarget(index, position);\n if (insertionTarget) return insertionTarget;\n }\n }\n return null;\n };\n if (nextStart < 0 || nextStart >= itemCount) {\n if (direction === \"next\") {\n const endBoundaryTarget =\n tryTarget(itemCount - 1, \"after\") ??\n tryTarget(itemCount - 1, \"on\") ??\n tryTarget(itemCount - 1, \"before\");\n if (endBoundaryTarget) return endBoundaryTarget;\n const backwardFallback = scanFromIndex(itemCount - 1, -1);\n if (backwardFallback) return backwardFallback;\n } else {\n if (currentIndex <= 0) {\n const rootTarget: DropTarget = { type: \"root\" };\n if (isValidDropTarget(rootTarget)) return rootTarget;\n }\n const startBoundaryTarget =\n tryTarget(0, \"before\") ?? tryTarget(0, \"on\") ?? tryTarget(0, \"after\");\n if (startBoundaryTarget) return startBoundaryTarget;\n const forwardFallback = scanFromIndex(0, 1);\n if (forwardFallback) return forwardFallback;\n }\n\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n }\n const primaryTarget = scanFromIndex(clampedStart, delta);\n if (primaryTarget) return primaryTarget;\n const oppositeTarget = scanFromIndex(clampedStart - delta, -delta);\n if (oppositeTarget) return oppositeTarget;\n\n const rootTarget: DropTarget = { type: \"root\" };\n return isValidDropTarget(rootTarget) ? rootTarget : null;\n };\n\n const contextValue = createMemo<VirtualizerContextValue<O>>(() => ({\n layout: resolvedLayout(),\n layoutOptions: resolvedLayoutOptions(),\n isVirtualized: true,\n orientation: orientation(),\n getVisibleRange,\n getLayoutInfo,\n getDropTargetFromPoint,\n setDropTargetResolver: assignDropTargetResolver,\n setDropTargetItemCountResolver: assignDropTargetItemCountResolver,\n setDropTargetIndexResolver: assignDropTargetIndexResolver,\n setDropOperationResolver: assignDropOperationResolver,\n setKeyboardNavigationOverride: assignKeyboardNavigationOverride,\n getBaseKeyboardNavigationTarget,\n }));\n const collectionRenderer = createMemo<CollectionRendererContextValue<unknown>>(() => ({\n renderItem: (item) => item as JSX.Element,\n isVirtualized: true,\n layoutDelegate: resolvedLayout(),\n dropTargetDelegate: {\n getDropTargetFromPoint: getCollectionDropTargetFromPoint,\n getDropOperation: getCollectionDropOperation,\n getKeyboardNavigationTarget,\n getKeyboardPageNavigationTarget,\n },\n renderDropIndicator: local.renderDropIndicator,\n }));\n\n const filteredDomProps = createMemo(() => filterDOMProps(domProps, { global: true }));\n\n const updateViewportSize = () => {\n if (!containerRef) return;\n const nextHeight = containerRef.clientHeight;\n const nextWidth = containerRef.clientWidth;\n if (nextHeight !== measuredViewportSize()) setMeasuredViewportSize(nextHeight);\n if (nextWidth !== measuredViewportWidth()) setMeasuredViewportWidth(nextWidth);\n };\n\n const updateWindowViewport = () => {\n if (typeof window === \"undefined\") return;\n const next = window.innerHeight;\n if (next !== windowViewportSize()) setWindowViewportSize(next);\n };\n\n // Recompute how far the scroll view's top edge sits above the window viewport.\n // A negative bounding-rect top means the scroll view has been pushed up by page\n // (or ancestor) scrolling; the offset is the amount scrolled past its top.\n const updateViewportOffset = () => {\n if (!containerRef || !allowsWindowScrolling()) return;\n const rect = containerRef.getBoundingClientRect();\n const next = rect.y < 0 ? -rect.y : 0;\n if (next !== viewportOffset()) setViewportOffset(next);\n };\n\n let scrollFrame: number | undefined;\n // Debounce handle that resets `isScrolling` after scrolling stops.\n let scrollEndTimeout: ReturnType<typeof setTimeout> | undefined;\n onCleanup(() => {\n if (scrollFrame != null) cancelAnimationFrame(scrollFrame);\n if (scrollEndTimeout != null) clearTimeout(scrollEndTimeout);\n });\n\n onMount(() => {\n updateViewportSize();\n updateWindowViewport();\n updateViewportOffset();\n\n const handleResize = () => {\n updateViewportSize();\n updateWindowViewport();\n updateViewportOffset();\n };\n window.addEventListener(\"resize\", handleResize);\n\n const resizeObserver =\n typeof ResizeObserver !== \"undefined\" ? new ResizeObserver(() => updateViewportSize()) : null;\n if (containerRef && resizeObserver) {\n resizeObserver.observe(containerRef);\n }\n\n // A capturing listener on the document sees scroll events on the scroll view\n // itself as well as on any ancestor (including the page), so a single handler\n // can update the local scroll position or the window offset as appropriate.\n const handleDocumentScroll = (e: Event) => {\n if (!containerRef) return;\n const target = e.target as Node | null;\n const isContainer = target === containerRef;\n const isAncestor =\n target === document ||\n target === (window as unknown as Node) ||\n (target instanceof Node && target.contains(containerRef));\n if (!isContainer && !isAncestor) return;\n // An ancestor/page scroll only matters when the collection scrolls with the page.\n if (!isContainer && !allowsWindowScrolling()) return;\n\n // Flag active scrolling and (re)arm the reset for 300ms after the last scroll.\n // Our handler is already rAF-throttled, so a plain clear/reset debounce matches\n // upstream's scrollEndTime bookkeeping without the extra accounting.\n if (!isScrolling()) setIsScrolling(true);\n if (scrollEndTimeout != null) clearTimeout(scrollEndTimeout);\n scrollEndTimeout = setTimeout(() => {\n scrollEndTimeout = undefined;\n setIsScrolling(false);\n }, 300);\n\n if (scrollFrame != null) cancelAnimationFrame(scrollFrame);\n scrollFrame = requestAnimationFrame(() => {\n scrollFrame = undefined;\n if (isContainer) {\n const next = Math.max(0, containerRef!.scrollTop);\n if (next !== scrollOffset()) setScrollOffset(next);\n const nextX = Math.max(0, containerRef!.scrollLeft);\n if (nextX !== scrollOffsetX()) setScrollOffsetX(nextX);\n } else {\n updateViewportOffset();\n }\n updateViewportSize();\n });\n };\n document.addEventListener(\"scroll\", handleDocumentScroll, true);\n\n onCleanup(() => {\n window.removeEventListener(\"resize\", handleResize);\n resizeObserver?.disconnect();\n document.removeEventListener(\"scroll\", handleDocumentScroll, true);\n });\n });\n\n return (\n <CollectionRendererContext.Provider value={collectionRenderer()}>\n <VirtualizerContext.Provider value={contextValue()}>\n <div\n {...filteredDomProps()}\n ref={(el) => {\n containerRef = el;\n }}\n class={local.class}\n style={local.style}\n data-virtualizer\n >\n {/*\n Content wrapper mirroring upstream ScrollView's inner content div. It\n carries the `pointer-events: none` while-scrolling optimization and is\n otherwise a layout-transparent passthrough (the outer div remains the\n scroll container we measure and read scroll offsets from).\n */}\n <div\n data-virtualizer-content\n style={{ \"pointer-events\": isScrolling() ? \"none\" : undefined }}\n >\n {local.children}\n </div>\n </div>\n </VirtualizerContext.Provider>\n </CollectionRendererContext.Provider>\n );\n}\n\nexport { ListLayout, GridLayout, WaterfallLayout, TableLayout };\n\nexport type {\n VirtualizerVisibleRange,\n VirtualizerRangeContext,\n DefaultVirtualizerLayoutOptions,\n GridLayoutOptions,\n WaterfallLayoutOptions,\n VirtualizerDropTarget,\n LayoutInfo,\n Orientation,\n Rect,\n Size,\n Point,\n};\n"],"mappings":"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"}
|