@dxos/react-ui-mosaic 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (50) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/browser/{chunk-TY4RYZ3H.mjs → chunk-3BMPGIWZ.mjs} +20 -10
  3. package/dist/lib/browser/chunk-3BMPGIWZ.mjs.map +7 -0
  4. package/dist/lib/browser/index.mjs +22 -24
  5. package/dist/lib/browser/index.mjs.map +3 -3
  6. package/dist/lib/browser/meta.json +1 -1
  7. package/dist/lib/browser/playwright/index.mjs +90 -7
  8. package/dist/lib/browser/playwright/index.mjs.map +3 -3
  9. package/dist/lib/browser/testing/index.mjs +1 -4
  10. package/dist/lib/browser/testing/index.mjs.map +2 -2
  11. package/dist/lib/node-esm/{chunk-25RXZ2RH.mjs → chunk-2UCLTU76.mjs} +20 -10
  12. package/dist/lib/node-esm/chunk-2UCLTU76.mjs.map +7 -0
  13. package/dist/lib/node-esm/index.mjs +22 -24
  14. package/dist/lib/node-esm/index.mjs.map +3 -3
  15. package/dist/lib/node-esm/meta.json +1 -1
  16. package/dist/lib/node-esm/playwright/index.mjs +90 -7
  17. package/dist/lib/node-esm/playwright/index.mjs.map +3 -3
  18. package/dist/lib/node-esm/testing/index.mjs +1 -4
  19. package/dist/lib/node-esm/testing/index.mjs.map +2 -2
  20. package/dist/types/src/components/Board/Board.d.ts +1 -1
  21. package/dist/types/src/components/Board/Column.d.ts +3 -3
  22. package/dist/types/src/components/Board/Column.d.ts.map +1 -1
  23. package/dist/types/src/components/Board/Item.d.ts +1 -1
  24. package/dist/types/src/components/Board/Item.d.ts.map +1 -1
  25. package/dist/types/src/components/Mosaic/Container.d.ts +8 -0
  26. package/dist/types/src/components/Mosaic/Container.d.ts.map +1 -1
  27. package/dist/types/src/components/Mosaic/Mosaic.d.ts +1 -0
  28. package/dist/types/src/components/Mosaic/Mosaic.d.ts.map +1 -1
  29. package/dist/types/src/components/Mosaic/Placeholder.d.ts.map +1 -1
  30. package/dist/types/src/components/Mosaic/Stack.d.ts.map +1 -1
  31. package/dist/types/src/components/Mosaic/Tile.d.ts +4 -0
  32. package/dist/types/src/components/Mosaic/Tile.d.ts.map +1 -1
  33. package/dist/types/src/playwright/board-manager.d.ts +12 -2
  34. package/dist/types/src/playwright/board-manager.d.ts.map +1 -1
  35. package/dist/types/src/testing/CardContainer.d.ts.map +1 -1
  36. package/dist/types/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +31 -30
  38. package/src/components/Board/Board.stories.tsx +1 -1
  39. package/src/components/Board/Column.tsx +17 -15
  40. package/src/components/Board/Item.tsx +10 -7
  41. package/src/components/Mosaic/Container.tsx +17 -0
  42. package/src/components/Mosaic/Placeholder.tsx +6 -0
  43. package/src/components/Mosaic/Stack.tsx +5 -1
  44. package/src/components/Mosaic/Tile.tsx +8 -4
  45. package/src/hooks/useContainerDebug.tsx +1 -1
  46. package/src/playwright/board-manager.ts +138 -10
  47. package/src/playwright/smoke.spec.ts +3 -3
  48. package/src/testing/CardContainer.tsx +2 -5
  49. package/dist/lib/browser/chunk-TY4RYZ3H.mjs.map +0 -7
  50. package/dist/lib/node-esm/chunk-25RXZ2RH.mjs.map +0 -7
@@ -1 +1 @@
1
- {"inputs":{"src/hooks/useContainerDebug.tsx":{"bytes":5753,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/hooks/useEventHandlerAdapter.ts":{"bytes":8554,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useDefaultColumnEventHandler.ts":{"bytes":2681,"imports":[{"path":"src/hooks/useEventHandlerAdapter.ts","kind":"import-statement","original":"./useEventHandlerAdapter"}],"format":"esm"},"src/hooks/useVisibleItems.ts":{"bytes":3142,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/index.ts":{"bytes":766,"imports":[{"path":"src/hooks/useContainerDebug.tsx","kind":"import-statement","original":"./useContainerDebug"},{"path":"src/hooks/useDefaultColumnEventHandler.ts","kind":"import-statement","original":"./useDefaultColumnEventHandler"},{"path":"src/hooks/useEventHandlerAdapter.ts","kind":"import-statement","original":"./useEventHandlerAdapter"},{"path":"src/hooks/useVisibleItems.ts","kind":"import-statement","original":"./useVisibleItems"}],"format":"esm"},"src/components/Focus/Focus.tsx":{"bytes":640,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/components/Focus/index.ts":{"bytes":369,"imports":[{"path":"src/components/Focus/Focus.tsx","kind":"import-statement","original":"./Focus"}],"format":"esm"},"src/components/Mosaic/styles.ts":{"bytes":4298,"imports":[],"format":"esm"},"src/components/Mosaic/extension.ts":{"bytes":14307,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"src/components/Mosaic/types.ts":{"bytes":4019,"imports":[],"format":"esm"},"src/components/Mosaic/Root.tsx":{"bytes":29782,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/components/Mosaic/Container.tsx":{"bytes":29536,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"bind-event-listener","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/Root.tsx","kind":"import-statement","original":"./Root"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Tile.tsx":{"bytes":24465,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Placeholder.tsx":{"bytes":11814,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Tile.tsx","kind":"import-statement","original":"./Tile"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Stack.tsx":{"bytes":33088,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Placeholder.tsx","kind":"import-statement","original":"./Placeholder"},{"path":"src/components/Mosaic/styles.ts","kind":"import-statement","original":"./styles"}],"format":"esm"},"src/components/Mosaic/Mosaic.tsx":{"bytes":3665,"imports":[{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Placeholder.tsx","kind":"import-statement","original":"./Placeholder"},{"path":"src/components/Mosaic/Root.tsx","kind":"import-statement","original":"./Root"},{"path":"src/components/Mosaic/Stack.tsx","kind":"import-statement","original":"./Stack"},{"path":"src/components/Mosaic/Tile.tsx","kind":"import-statement","original":"./Tile"}],"format":"esm"},"src/components/Mosaic/index.ts":{"bytes":743,"imports":[{"path":"src/components/Mosaic/styles.ts","kind":"import-statement","original":"./styles"},{"path":"src/components/Mosaic/extension.ts","kind":"import-statement","original":"./extension"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"},{"path":"src/components/Mosaic/Mosaic.tsx","kind":"import-statement","original":"./Mosaic"}],"format":"esm"},"src/components/Board/Item.tsx":{"bytes":12456,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"},{"path":"src/components/Board/Column.tsx","kind":"import-statement","original":"./Column"}],"format":"esm"},"src/components/Board/Column.tsx":{"bytes":30111,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"},{"path":"src/components/Board/Item.tsx","kind":"import-statement","original":"./Item"}],"format":"esm"},"src/components/Board/Board.tsx":{"bytes":16286,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Column.tsx","kind":"import-statement","original":"./Column"},{"path":"src/components/Board/Item.tsx","kind":"import-statement","original":"./Item"}],"format":"esm"},"src/components/Board/index.ts":{"bytes":369,"imports":[{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"}],"format":"esm"},"src/components/SearchStack/SearchStack.tsx":{"bytes":13282,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/index.ts","kind":"import-statement","original":"../.."}],"format":"esm"},"src/components/SearchStack/index.ts":{"bytes":387,"imports":[{"path":"src/components/SearchStack/SearchStack.tsx","kind":"import-statement","original":"./SearchStack"}],"format":"esm"},"src/components/index.ts":{"bytes":631,"imports":[{"path":"src/components/Board/index.ts","kind":"import-statement","original":"./Board"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"./Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"./Mosaic"},{"path":"src/components/SearchStack/index.ts","kind":"import-statement","original":"./SearchStack"}],"format":"esm"},"src/index.ts":{"bytes":463,"imports":[{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"},"src/testing/decorator.tsx":{"bytes":1112,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/testing/types.ts":{"bytes":2959,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"src/testing/CardContainer.tsx":{"bytes":8494,"imports":[{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-dnd","kind":"import-statement","external":true}],"format":"esm"},"src/testing/DefaultStackTile.tsx":{"bytes":6970,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/testing/index.ts":{"bytes":675,"imports":[{"path":"src/testing/decorator.tsx","kind":"import-statement","original":"./decorator"},{"path":"src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"src/testing/CardContainer.tsx","kind":"import-statement","original":"./CardContainer"},{"path":"src/testing/DefaultStackTile.tsx","kind":"import-statement","original":"./DefaultStackTile"}],"format":"esm"},"src/playwright/board-manager.ts":{"bytes":19532,"imports":[],"format":"esm"},"src/playwright/index.ts":{"bytes":1254,"imports":[{"path":"src/playwright/board-manager.ts","kind":"import-statement","original":"./board-manager"}],"format":"esm"},"src/translations.ts":{"bytes":1355,"imports":[],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":55507},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-25RXZ2RH.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Board","BoardDebug","Focus","Mosaic","SearchStack","dropHandler","getSourceData","mosaicStyles","useBoard","useBoardColumn","useContainerDebug","useDefaultColumnEventHandler","useEventHandlerAdapter","useFocus","useMosaic","useMosaicContainer","useMosaicTile","useVisibleItems"],"entryPoint":"src/index.ts","inputs":{"src/components/Board/Board.tsx":{"bytesInOutput":3433},"src/hooks/useContainerDebug.tsx":{"bytesInOutput":1316},"src/hooks/useEventHandlerAdapter.ts":{"bytesInOutput":1697},"src/hooks/useDefaultColumnEventHandler.ts":{"bytesInOutput":235},"src/components/Mosaic/index.ts":{"bytesInOutput":0},"src/components/Mosaic/extension.ts":{"bytesInOutput":3260},"src/components/Board/Column.tsx":{"bytesInOutput":7351},"src/components/Board/Item.tsx":{"bytesInOutput":2996},"src/components/SearchStack/SearchStack.tsx":{"bytesInOutput":2958},"src/index.ts":{"bytesInOutput":0}},"bytes":24345},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10489},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-25RXZ2RH.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-dnd","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true}],"exports":["CardContainer","DefaultStackTile","IntrinsicCardContainer","PopoverCardContainer","TestColumn","TestItem","withMosaic"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/decorator.tsx":{"bytesInOutput":181},"src/testing/index.ts":{"bytesInOutput":0},"src/testing/types.ts":{"bytesInOutput":558},"src/testing/CardContainer.tsx":{"bytesInOutput":2231},"src/testing/DefaultStackTile.tsx":{"bytesInOutput":1771}},"bytes":5191},"dist/lib/node-esm/chunk-25RXZ2RH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":72434},"dist/lib/node-esm/chunk-25RXZ2RH.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"bind-event-listener","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Focus","Mosaic","getSourceData","styles","useFocus","useMosaicContainerContext","useMosaicRootContext","useMosaicTileContext","useVisibleItems"],"inputs":{"src/hooks/useVisibleItems.ts":{"bytesInOutput":529},"src/components/Focus/Focus.tsx":{"bytesInOutput":50},"src/components/Mosaic/styles.ts":{"bytesInOutput":1417},"src/components/Mosaic/types.ts":{"bytesInOutput":96},"src/components/Mosaic/Root.tsx":{"bytesInOutput":7272},"src/components/Mosaic/Container.tsx":{"bytesInOutput":6800},"src/components/Mosaic/Tile.tsx":{"bytesInOutput":5977},"src/components/Mosaic/Placeholder.tsx":{"bytesInOutput":2579},"src/components/Mosaic/Stack.tsx":{"bytesInOutput":7562},"src/components/Mosaic/Mosaic.tsx":{"bytesInOutput":217}},"bytes":33165},"dist/lib/node-esm/playwright/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9376},"dist/lib/node-esm/playwright/index.mjs":{"imports":[],"exports":["BoardManager","ColumnManager","ItemManager"],"entryPoint":"src/playwright/index.ts","inputs":{"src/playwright/board-manager.ts":{"bytesInOutput":4145},"src/playwright/index.ts":{"bytesInOutput":0}},"bytes":4367},"dist/lib/node-esm/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":694},"dist/lib/node-esm/translations.mjs":{"imports":[],"exports":["translationKey","translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":249}},"bytes":452}}}
1
+ {"inputs":{"src/hooks/useContainerDebug.tsx":{"bytes":5679,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/hooks/useEventHandlerAdapter.ts":{"bytes":8554,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/useDefaultColumnEventHandler.ts":{"bytes":2681,"imports":[{"path":"src/hooks/useEventHandlerAdapter.ts","kind":"import-statement","original":"./useEventHandlerAdapter"}],"format":"esm"},"src/hooks/useVisibleItems.ts":{"bytes":3142,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/index.ts":{"bytes":766,"imports":[{"path":"src/hooks/useContainerDebug.tsx","kind":"import-statement","original":"./useContainerDebug"},{"path":"src/hooks/useDefaultColumnEventHandler.ts","kind":"import-statement","original":"./useDefaultColumnEventHandler"},{"path":"src/hooks/useEventHandlerAdapter.ts","kind":"import-statement","original":"./useEventHandlerAdapter"},{"path":"src/hooks/useVisibleItems.ts","kind":"import-statement","original":"./useVisibleItems"}],"format":"esm"},"src/components/Focus/Focus.tsx":{"bytes":640,"imports":[{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"src/components/Focus/index.ts":{"bytes":369,"imports":[{"path":"src/components/Focus/Focus.tsx","kind":"import-statement","original":"./Focus"}],"format":"esm"},"src/components/Mosaic/styles.ts":{"bytes":4298,"imports":[],"format":"esm"},"src/components/Mosaic/extension.ts":{"bytes":14307,"imports":[{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"src/components/Mosaic/types.ts":{"bytes":4019,"imports":[],"format":"esm"},"src/components/Mosaic/Root.tsx":{"bytes":29782,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/components/Mosaic/Container.tsx":{"bytes":30947,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"bind-event-listener","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/Root.tsx","kind":"import-statement","original":"./Root"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Tile.tsx":{"bytes":24909,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Placeholder.tsx":{"bytes":12921,"imports":[{"path":"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Tile.tsx","kind":"import-statement","original":"./Tile"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/components/Mosaic/Stack.tsx":{"bytes":33604,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Placeholder.tsx","kind":"import-statement","original":"./Placeholder"},{"path":"src/components/Mosaic/styles.ts","kind":"import-statement","original":"./styles"}],"format":"esm"},"src/components/Mosaic/Mosaic.tsx":{"bytes":3665,"imports":[{"path":"src/components/Mosaic/Container.tsx","kind":"import-statement","original":"./Container"},{"path":"src/components/Mosaic/Placeholder.tsx","kind":"import-statement","original":"./Placeholder"},{"path":"src/components/Mosaic/Root.tsx","kind":"import-statement","original":"./Root"},{"path":"src/components/Mosaic/Stack.tsx","kind":"import-statement","original":"./Stack"},{"path":"src/components/Mosaic/Tile.tsx","kind":"import-statement","original":"./Tile"}],"format":"esm"},"src/components/Mosaic/index.ts":{"bytes":743,"imports":[{"path":"src/components/Mosaic/styles.ts","kind":"import-statement","original":"./styles"},{"path":"src/components/Mosaic/extension.ts","kind":"import-statement","original":"./extension"},{"path":"src/components/Mosaic/types.ts","kind":"import-statement","original":"./types"},{"path":"src/components/Mosaic/Mosaic.tsx","kind":"import-statement","original":"./Mosaic"}],"format":"esm"},"src/components/Board/Item.tsx":{"bytes":13098,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"},{"path":"src/components/Board/Column.tsx","kind":"import-statement","original":"./Column"}],"format":"esm"},"src/components/Board/Column.tsx":{"bytes":30039,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"},{"path":"src/components/Board/Item.tsx","kind":"import-statement","original":"./Item"}],"format":"esm"},"src/components/Board/Board.tsx":{"bytes":16286,"imports":[{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"../Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"../Mosaic"},{"path":"src/components/Board/Column.tsx","kind":"import-statement","original":"./Column"},{"path":"src/components/Board/Item.tsx","kind":"import-statement","original":"./Item"}],"format":"esm"},"src/components/Board/index.ts":{"bytes":369,"imports":[{"path":"src/components/Board/Board.tsx","kind":"import-statement","original":"./Board"}],"format":"esm"},"src/components/SearchStack/SearchStack.tsx":{"bytes":13282,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"src/index.ts","kind":"import-statement","original":"../.."}],"format":"esm"},"src/components/SearchStack/index.ts":{"bytes":387,"imports":[{"path":"src/components/SearchStack/SearchStack.tsx","kind":"import-statement","original":"./SearchStack"}],"format":"esm"},"src/components/index.ts":{"bytes":631,"imports":[{"path":"src/components/Board/index.ts","kind":"import-statement","original":"./Board"},{"path":"src/components/Focus/index.ts","kind":"import-statement","original":"./Focus"},{"path":"src/components/Mosaic/index.ts","kind":"import-statement","original":"./Mosaic"},{"path":"src/components/SearchStack/index.ts","kind":"import-statement","original":"./SearchStack"}],"format":"esm"},"src/index.ts":{"bytes":463,"imports":[{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"}],"format":"esm"},"src/testing/decorator.tsx":{"bytes":1112,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/testing/types.ts":{"bytes":2959,"imports":[{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"src/testing/CardContainer.tsx":{"bytes":8296,"imports":[{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-dnd","kind":"import-statement","external":true}],"format":"esm"},"src/testing/DefaultStackTile.tsx":{"bytes":6970,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"src/components/index.ts","kind":"import-statement","original":"../components"}],"format":"esm"},"src/testing/index.ts":{"bytes":675,"imports":[{"path":"src/testing/decorator.tsx","kind":"import-statement","original":"./decorator"},{"path":"src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"src/testing/CardContainer.tsx","kind":"import-statement","original":"./CardContainer"},{"path":"src/testing/DefaultStackTile.tsx","kind":"import-statement","original":"./DefaultStackTile"}],"format":"esm"},"src/playwright/board-manager.ts":{"bytes":38587,"imports":[{"path":"@playwright/test","kind":"import-statement","external":true}],"format":"esm"},"src/playwright/index.ts":{"bytes":1254,"imports":[{"path":"src/playwright/board-manager.ts","kind":"import-statement","original":"./board-manager"}],"format":"esm"},"src/translations.ts":{"bytes":1355,"imports":[],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":55784},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-2UCLTU76.mjs","kind":"import-statement"},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@effect-atom/atom-react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"#translations","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Board","BoardDebug","Focus","Mosaic","SearchStack","dropHandler","getSourceData","mosaicStyles","useBoard","useBoardColumn","useContainerDebug","useDefaultColumnEventHandler","useEventHandlerAdapter","useFocus","useMosaic","useMosaicContainer","useMosaicTile","useVisibleItems"],"entryPoint":"src/index.ts","inputs":{"src/components/Board/Board.tsx":{"bytesInOutput":3433},"src/hooks/useContainerDebug.tsx":{"bytesInOutput":1294},"src/hooks/useEventHandlerAdapter.ts":{"bytesInOutput":1697},"src/hooks/useDefaultColumnEventHandler.ts":{"bytesInOutput":235},"src/components/Mosaic/index.ts":{"bytesInOutput":0},"src/components/Mosaic/extension.ts":{"bytesInOutput":3260},"src/components/Board/Column.tsx":{"bytesInOutput":7268},"src/components/Board/Item.tsx":{"bytesInOutput":3006},"src/components/SearchStack/SearchStack.tsx":{"bytesInOutput":2958},"src/index.ts":{"bytesInOutput":0}},"bytes":24250},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10395},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-2UCLTU76.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"effect/Schema","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-dnd","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-syntax-highlighter","kind":"import-statement","external":true}],"exports":["CardContainer","DefaultStackTile","IntrinsicCardContainer","PopoverCardContainer","TestColumn","TestItem","withMosaic"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/decorator.tsx":{"bytesInOutput":181},"src/testing/index.ts":{"bytesInOutput":0},"src/testing/types.ts":{"bytesInOutput":558},"src/testing/CardContainer.tsx":{"bytesInOutput":2173},"src/testing/DefaultStackTile.tsx":{"bytesInOutput":1771}},"bytes":5133},"dist/lib/node-esm/chunk-2UCLTU76.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":74338},"dist/lib/node-esm/chunk-2UCLTU76.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-auto-scroll/element","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"bind-event-listener","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/combine","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/preserve-offset-on-source","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-dom","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop-react-drop-indicator/box","kind":"import-statement","external":true},{"path":"@atlaskit/pragmatic-drag-and-drop/element/adapter","kind":"import-statement","external":true},{"path":"@radix-ui/react-primitive","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/ui-theme","kind":"import-statement","external":true}],"exports":["Focus","Mosaic","getSourceData","styles","useFocus","useMosaicContainerContext","useMosaicRootContext","useMosaicTileContext","useVisibleItems"],"inputs":{"src/hooks/useVisibleItems.ts":{"bytesInOutput":529},"src/components/Focus/Focus.tsx":{"bytesInOutput":50},"src/components/Mosaic/styles.ts":{"bytesInOutput":1417},"src/components/Mosaic/types.ts":{"bytesInOutput":96},"src/components/Mosaic/Root.tsx":{"bytesInOutput":7272},"src/components/Mosaic/Container.tsx":{"bytesInOutput":6984},"src/components/Mosaic/Tile.tsx":{"bytesInOutput":6070},"src/components/Mosaic/Placeholder.tsx":{"bytesInOutput":2717},"src/components/Mosaic/Stack.tsx":{"bytesInOutput":7680},"src/components/Mosaic/Mosaic.tsx":{"bytesInOutput":217}},"bytes":33698},"dist/lib/node-esm/playwright/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18419},"dist/lib/node-esm/playwright/index.mjs":{"imports":[{"path":"@playwright/test","kind":"import-statement","external":true}],"exports":["BoardManager","ColumnManager","ItemManager"],"entryPoint":"src/playwright/index.ts","inputs":{"src/playwright/board-manager.ts":{"bytesInOutput":7484},"src/playwright/index.ts":{"bytesInOutput":0}},"bytes":7706},"dist/lib/node-esm/translations.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":694},"dist/lib/node-esm/translations.mjs":{"imports":[],"exports":["translationKey","translations"],"entryPoint":"src/translations.ts","inputs":{"src/translations.ts":{"bytesInOutput":249}},"bytes":452}}}
@@ -1,6 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/playwright/board-manager.ts
4
+ import { expect } from "@playwright/test";
4
5
  var BoardManager = class {
5
6
  locator;
6
7
  _page;
@@ -75,19 +76,101 @@ var ItemManager = class {
75
76
  async dragTo(target, offset = {
76
77
  x: 0,
77
78
  y: 0
78
- }) {
79
+ }, edge) {
79
80
  const handle = this.locator.getByTestId("mosaicBoard.cardDragHandle");
80
- const box = await target.boundingBox();
81
- if (box) {
82
- await handle.hover();
83
- await this._page.mouse.down();
84
- await this._page.waitForTimeout(100);
81
+ const handleBox = await handle.boundingBox();
82
+ if (!handleBox) {
83
+ return;
84
+ }
85
+ const targetHandle = await target.elementHandle();
86
+ const box = targetHandle ? await targetHandle.boundingBox() : null;
87
+ if (!targetHandle || !box) {
88
+ return;
89
+ }
90
+ const sourceHandle = await this.locator.elementHandle();
91
+ await handle.hover();
92
+ await this._page.mouse.down();
93
+ await this._page.waitForTimeout(100);
94
+ if (edge) {
95
+ await this._page.mouse.move(handleBox.x + handleBox.width / 2 + 1, handleBox.y + handleBox.height / 2, {
96
+ steps: 1
97
+ });
98
+ await this._page.mouse.move(box.x + box.width / 2, box.y + box.height / 2, {
99
+ steps: 4
100
+ });
101
+ await expect.poll(() => this._page.locator('[data-mosaic-container-state="active"]').count(), {
102
+ timeout: 2e3
103
+ }).toBeGreaterThan(0);
104
+ if (sourceHandle) {
105
+ await this._page.waitForFunction((el) => !el || !el.isConnected, sourceHandle, {
106
+ timeout: 2e3
107
+ });
108
+ }
109
+ const placeholderHandle = await this._adjacentPlaceholder(targetHandle, edge);
110
+ if (placeholderHandle) {
111
+ const phBox = await placeholderHandle.boundingBox();
112
+ if (phBox) {
113
+ const aimX = phBox.x + phBox.width / 2;
114
+ const aimY = phBox.y + Math.max(phBox.height / 2, 1);
115
+ await this._page.mouse.move(aimX, aimY, {
116
+ steps: 4
117
+ });
118
+ const isActive = () => placeholderHandle.evaluate((el) => el.getAttribute("data-mosaic-placeholder-state") === "active");
119
+ if (!await isActive()) {
120
+ const start = Date.now();
121
+ let nudge = 0;
122
+ while (Date.now() - start < 3e3) {
123
+ await this._page.waitForTimeout(100);
124
+ nudge = (nudge + 1) % 4;
125
+ const dx = nudge === 0 || nudge === 2 ? 1 : -1;
126
+ const dy = nudge === 1 || nudge === 2 ? 1 : -1;
127
+ await this._page.mouse.move(aimX + dx, aimY + dy, {
128
+ steps: 1
129
+ });
130
+ if (await isActive()) {
131
+ break;
132
+ }
133
+ }
134
+ await expect.poll(() => placeholderHandle.evaluate((el) => el.getAttribute("data-mosaic-placeholder-state")), {
135
+ timeout: 1e3
136
+ }).toBe("active");
137
+ }
138
+ const expanded = await placeholderHandle.boundingBox();
139
+ if (expanded) {
140
+ await this._page.mouse.move(expanded.x + expanded.width / 2, expanded.y + expanded.height / 2, {
141
+ steps: 2
142
+ });
143
+ }
144
+ }
145
+ }
146
+ } else {
85
147
  await this._page.mouse.move(offset.x + box.x + box.width / 2, offset.y + box.y + box.height / 2, {
86
148
  steps: 4
87
149
  });
88
150
  await this._page.waitForTimeout(100);
89
- await this._page.mouse.up();
90
151
  }
152
+ await this._page.mouse.up();
153
+ }
154
+ /**
155
+ * Find the placeholder element adjacent to `target` on the requested
156
+ * side via DOM walk. Returns `null` if the target has no matching
157
+ * sibling (e.g. when the caller passes a non-tile target).
158
+ */
159
+ async _adjacentPlaceholder(targetHandle, edge) {
160
+ const before = edge === "top" || edge === "left";
161
+ const result = await targetHandle.evaluateHandle((el, beforeArg) => {
162
+ let sibling = beforeArg ? el.previousElementSibling : el.nextElementSibling;
163
+ while (sibling && !sibling.hasAttribute("data-mosaic-placeholder-location")) {
164
+ sibling = beforeArg ? sibling.previousElementSibling : sibling.nextElementSibling;
165
+ }
166
+ return sibling;
167
+ }, before);
168
+ const handle = result.asElement();
169
+ if (!handle) {
170
+ return null;
171
+ }
172
+ const exists = await handle.evaluate((el) => el !== null);
173
+ return exists ? handle : null;
91
174
  }
92
175
  /**
93
176
  * Drag this item to a column's scroll bottom, hold to trigger auto-scroll,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/playwright/board-manager.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type { Locator, Page } from '@playwright/test';\n\nexport class BoardManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n columns(): Locator {\n return this.locator.getByTestId('board-column');\n }\n\n column(index: number): ColumnManager {\n return new ColumnManager(this.locator.getByTestId('board-column').nth(index));\n }\n}\n\nexport class ColumnManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n items(): Locator {\n return this.locator.getByTestId('board-item');\n }\n\n item(index: number): ItemManager {\n return new ItemManager(this.locator.getByTestId('board-item').nth(index));\n }\n\n async addItem(): Promise<void> {\n await this.locator.getByTestId('board-column-add-item').click();\n }\n\n header(): Locator {\n return this.locator.getByTestId('board-column-header');\n }\n\n title(): Locator {\n return this.locator.getByTestId('mosaicBoard.columnTitle');\n }\n\n async dragTo(target: Locator, offset = { x: 0, y: 0 }): Promise<void> {\n const handle = this.header().getByTestId('mosaicBoard.columnDragHandle');\n const handleBox = await handle.boundingBox();\n if (!handleBox) {\n return;\n }\n\n await handle.hover();\n await this._page.mouse.down();\n // Small initial movement to trigger the native drag start.\n await this._page.mouse.move(handleBox.x + handleBox.width / 2 + 1, handleBox.y + handleBox.height / 2, {\n steps: 1,\n });\n // Allow the drag monitor to register and the DOM to settle\n // (the dragged column is removed from visible items, shifting remaining columns).\n await this._page.waitForTimeout(200);\n const box = await target.boundingBox();\n if (box) {\n await this._page.mouse.move(offset.x + box.x + box.width / 2, offset.y + box.y + box.height / 2, { steps: 4 });\n // Allow the drop target to process the hover before releasing.\n await this._page.waitForTimeout(100);\n await this._page.mouse.up();\n }\n }\n}\n\nexport class ItemManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n title(): Locator {\n return this.locator.getByTestId('mosaicBoard.cardTitle');\n }\n\n async dragTo(target: Locator, offset = { x: 0, y: 0 }): Promise<void> {\n const handle = this.locator.getByTestId('mosaicBoard.cardDragHandle');\n const box = await target.boundingBox();\n if (box) {\n await handle.hover();\n await this._page.mouse.down();\n // Allow the drag monitor to register the grab before moving.\n await this._page.waitForTimeout(100);\n await this._page.mouse.move(offset.x + box.x + box.width / 2, offset.y + box.y + box.height / 2, { steps: 4 });\n // Allow the drop target to process the hover before releasing.\n await this._page.waitForTimeout(100);\n await this._page.mouse.up();\n }\n }\n\n /**\n * Drag this item to a column's scroll bottom, hold to trigger auto-scroll,\n * then wait for the drop target to become visible and drop on it.\n *\n * @param holdTarget - The footer element; mouse is held ~20px above it to trigger auto-scroll.\n * @param dropTarget - The element to drop on once it scrolls into view.\n * @param dropOffset - Offset from the drop target center.\n */\n async dragToEndWithAutoScroll(holdTarget: Locator, dropTarget: Locator, dropOffset = { x: 0, y: 0 }): Promise<void> {\n const handle = this.locator.getByTestId('mosaicBoard.cardDragHandle');\n const holdBox = await holdTarget.boundingBox();\n if (!holdBox) {\n return;\n }\n\n // The hold position is ~20px above the footer to trigger pragmatic auto-scroll.\n const holdX = holdBox.x + holdBox.width / 2;\n const holdY = holdBox.y - 20;\n\n await handle.hover();\n await this._page.mouse.down();\n // Allow the drag monitor to register the grab before moving.\n await this._page.waitForTimeout(100);\n\n // Move to hold position above the footer to trigger auto-scroll.\n await this._page.mouse.move(holdX, holdY, { steps: 4 });\n\n // Hold and nudge mouse periodically to keep auto-scroll active until drop target is visible.\n for (let i = 0; i < 40; i++) {\n // Wait between nudges to give auto-scroll time to advance.\n await this._page.waitForTimeout(200);\n // Small nudge to keep drag events firing (auto-scroll stalls without movement).\n await this._page.mouse.move(holdX + (i % 2), holdY, { steps: 1 });\n\n const dropBox = await dropTarget.boundingBox();\n if (dropBox && dropBox.y + dropBox.height < holdY) {\n // Drop target has scrolled into view. Re-read box so we use current position (scroll may have moved it).\n const finalBox = await dropTarget.boundingBox();\n if (!finalBox) {\n await this._page.mouse.up();\n return;\n }\n\n const dropX = dropOffset.x + finalBox.x + finalBox.width / 2;\n const dropY = dropOffset.y + finalBox.y + finalBox.height / 2;\n await this._page.mouse.move(dropX, dropY, { steps: 8 });\n // Let drop target receive dragOver and settle (headless is faster; needs a moment to register).\n await dropTarget.waitFor({ state: 'visible' });\n await this._page.waitForTimeout(200);\n await this._page.mouse.up();\n return;\n }\n }\n\n // Fallback: drop wherever we are.\n await this._page.mouse.up();\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["BoardManager", "_page", "locator", "page", "columns", "getByTestId", "column", "index", "ColumnManager", "nth", "items", "item", "ItemManager", "addItem", "click", "header", "title", "dragTo", "target", "offset", "x", "y", "handle", "handleBox", "boundingBox", "hover", "mouse", "down", "move", "width", "height", "steps", "waitForTimeout", "box", "up", "dragToEndWithAutoScroll", "holdTarget", "dropTarget", "dropOffset", "holdBox", "holdX", "holdY", "i", "dropBox", "finalBox", "dropX", "dropY", "waitFor", "state"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Locator, type Page, expect } from '@playwright/test';\n\n/**\n * Edge of the target tile to drop on. Pragmatic-dnd assigns the closest edge\n * based on cursor position; a stale (pre-layout-shift) cursor can land in the\n * wrong half. When `dragTo` is called with an `edge`, the helper waits for the\n * target tile to register the drag, re-measures the target after the\n * placeholder has expanded, repositions the cursor near the requested edge,\n * and confirms via `data-mosaic-tile-edge` before releasing.\n */\nexport type DragEdge = 'top' | 'bottom' | 'left' | 'right';\n\nexport class BoardManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n columns(): Locator {\n return this.locator.getByTestId('board-column');\n }\n\n column(index: number): ColumnManager {\n return new ColumnManager(this.locator.getByTestId('board-column').nth(index));\n }\n}\n\nexport class ColumnManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n items(): Locator {\n return this.locator.getByTestId('board-item');\n }\n\n item(index: number): ItemManager {\n return new ItemManager(this.locator.getByTestId('board-item').nth(index));\n }\n\n async addItem(): Promise<void> {\n await this.locator.getByTestId('board-column-add-item').click();\n }\n\n header(): Locator {\n return this.locator.getByTestId('board-column-header');\n }\n\n title(): Locator {\n return this.locator.getByTestId('mosaicBoard.columnTitle');\n }\n\n async dragTo(target: Locator, offset = { x: 0, y: 0 }): Promise<void> {\n const handle = this.header().getByTestId('mosaicBoard.columnDragHandle');\n const handleBox = await handle.boundingBox();\n if (!handleBox) {\n return;\n }\n\n await handle.hover();\n await this._page.mouse.down();\n // Small initial movement to trigger the native drag start.\n await this._page.mouse.move(handleBox.x + handleBox.width / 2 + 1, handleBox.y + handleBox.height / 2, {\n steps: 1,\n });\n // Allow the drag monitor to register and the DOM to settle\n // (the dragged column is removed from visible items, shifting remaining columns).\n await this._page.waitForTimeout(200);\n const box = await target.boundingBox();\n if (box) {\n await this._page.mouse.move(offset.x + box.x + box.width / 2, offset.y + box.y + box.height / 2, { steps: 4 });\n // Allow the drop target to process the hover before releasing.\n await this._page.waitForTimeout(100);\n await this._page.mouse.up();\n }\n }\n}\n\nexport class ItemManager {\n private readonly _page: Page;\n\n constructor(readonly locator: Locator) {\n this._page = locator.page();\n }\n\n title(): Locator {\n return this.locator.getByTestId('mosaicBoard.cardTitle');\n }\n\n async dragTo(target: Locator, offset: { x: number; y: number } = { x: 0, y: 0 }, edge?: DragEdge): Promise<void> {\n const handle = this.locator.getByTestId('mosaicBoard.cardDragHandle');\n const handleBox = await handle.boundingBox();\n if (!handleBox) {\n return;\n }\n\n // Capture stable ElementHandles to source and target before the drag\n // begins. Both `nth(N)` locators shift when `useVisibleItems` filters the\n // source out of its column, so we need raw DOM references that survive\n // the reconciliation.\n const targetHandle = await target.elementHandle();\n const box = targetHandle ? await targetHandle.boundingBox() : null;\n if (!targetHandle || !box) {\n return;\n }\n const sourceHandle = await this.locator.elementHandle();\n\n await handle.hover();\n await this._page.mouse.down();\n // Allow the drag monitor to register the grab before moving.\n await this._page.waitForTimeout(100);\n\n if (edge) {\n // Stage 1: trigger the dragstart. A 1-pixel nudge near the press\n // point primes pragmatic-dnd's HTML5 dragstart, then a long move\n // over the target tile commits the drag past every browser's\n // \"click vs drag\" threshold.\n await this._page.mouse.move(handleBox.x + handleBox.width / 2 + 1, handleBox.y + handleBox.height / 2, {\n steps: 1,\n });\n await this._page.mouse.move(box.x + box.width / 2, box.y + box.height / 2, { steps: 4 });\n\n // Wait for `data-mosaic-container-state=\"active\"` so we know the\n // dragstart has been processed. This alone is *not* enough: pragmatic-\n // dnd's `monitorForElements.onDragStart` (Root.tsx) and the\n // `dropTargetForElements.onDragStart` (Container.tsx) write into\n // independent React state, and only the latter drives the attribute.\n // The former drives `useVisibleItems` filtering, which is what\n // physically reflows the column. So we ALSO wait for the source tile\n // to detach from the DOM — that's the unambiguous signal that the\n // reflow has happened and any cached bbox is stale.\n await expect\n .poll(() => this._page.locator('[data-mosaic-container-state=\"active\"]').count(), { timeout: 2000 })\n .toBeGreaterThan(0);\n if (sourceHandle) {\n await this._page.waitForFunction((el) => !el || !el.isConnected, sourceHandle, { timeout: 2000 });\n }\n\n // Stage 2: walk siblings on the (now reflowed) drag-time DOM and aim\n // at the placeholder representing the requested edge. The Fragment\n // keying on item id keeps the target tile's adjacent placeholder DOM\n // node stable across reconciliation, but its `location` prop and bbox\n // both change once the source is filtered out — measure after the\n // reflow, never before.\n const placeholderHandle = await this._adjacentPlaceholder(targetHandle, edge);\n if (placeholderHandle) {\n const phBox = await placeholderHandle.boundingBox();\n if (phBox) {\n const aimX = phBox.x + phBox.width / 2;\n const aimY = phBox.y + Math.max(phBox.height / 2, 1);\n await this._page.mouse.move(aimX, aimY, { steps: 4 });\n\n // Some browser/CDP combinations need a follow-up nudge to push\n // the dragOver event through — re-aim with a 1px offset and poll.\n const isActive = () =>\n placeholderHandle.evaluate((el) => el.getAttribute('data-mosaic-placeholder-state') === 'active');\n if (!(await isActive())) {\n const start = Date.now();\n let nudge = 0;\n while (Date.now() - start < 3000) {\n await this._page.waitForTimeout(100);\n nudge = (nudge + 1) % 4;\n const dx = nudge === 0 || nudge === 2 ? 1 : -1;\n const dy = nudge === 1 || nudge === 2 ? 1 : -1;\n await this._page.mouse.move(aimX + dx, aimY + dy, { steps: 1 });\n if (await isActive()) {\n break;\n }\n }\n await expect\n .poll(() => placeholderHandle.evaluate((el) => el.getAttribute('data-mosaic-placeholder-state')), {\n timeout: 1000,\n })\n .toBe('active');\n }\n\n // Re-centre on the now-expanded placeholder so the drop lands\n // solidly inside it.\n const expanded = await placeholderHandle.boundingBox();\n if (expanded) {\n await this._page.mouse.move(expanded.x + expanded.width / 2, expanded.y + expanded.height / 2, {\n steps: 2,\n });\n }\n }\n }\n } else {\n // Legacy path: no explicit edge — rely on the offset placement and a\n // small settle delay before releasing.\n await this._page.mouse.move(offset.x + box.x + box.width / 2, offset.y + box.y + box.height / 2, { steps: 4 });\n await this._page.waitForTimeout(100);\n }\n await this._page.mouse.up();\n }\n\n /**\n * Find the placeholder element adjacent to `target` on the requested\n * side via DOM walk. Returns `null` if the target has no matching\n * sibling (e.g. when the caller passes a non-tile target).\n */\n private async _adjacentPlaceholder(\n targetHandle: import('@playwright/test').ElementHandle<Element | SVGElement | HTMLElement>,\n edge: DragEdge,\n ): Promise<import('@playwright/test').ElementHandle<HTMLElement> | null> {\n const before = edge === 'top' || edge === 'left';\n const result = await targetHandle.evaluateHandle((el, beforeArg) => {\n let sibling: Element | null = beforeArg ? el.previousElementSibling : el.nextElementSibling;\n while (sibling && !sibling.hasAttribute('data-mosaic-placeholder-location')) {\n sibling = beforeArg ? sibling.previousElementSibling : sibling.nextElementSibling;\n }\n return sibling as HTMLElement | null;\n }, before);\n const handle = result.asElement() as import('@playwright/test').ElementHandle<HTMLElement> | null;\n if (!handle) {\n return null;\n }\n // `evaluateHandle` returning `null` still produces a non-null JSHandle —\n // verify the underlying element actually exists.\n const exists = await handle.evaluate((el) => el !== null);\n return exists ? handle : null;\n }\n\n /**\n * Drag this item to a column's scroll bottom, hold to trigger auto-scroll,\n * then wait for the drop target to become visible and drop on it.\n *\n * @param holdTarget - The footer element; mouse is held ~20px above it to trigger auto-scroll.\n * @param dropTarget - The element to drop on once it scrolls into view.\n * @param dropOffset - Offset from the drop target center.\n */\n async dragToEndWithAutoScroll(holdTarget: Locator, dropTarget: Locator, dropOffset = { x: 0, y: 0 }): Promise<void> {\n const handle = this.locator.getByTestId('mosaicBoard.cardDragHandle');\n const holdBox = await holdTarget.boundingBox();\n if (!holdBox) {\n return;\n }\n\n // The hold position is ~20px above the footer to trigger pragmatic auto-scroll.\n const holdX = holdBox.x + holdBox.width / 2;\n const holdY = holdBox.y - 20;\n\n await handle.hover();\n await this._page.mouse.down();\n // Allow the drag monitor to register the grab before moving.\n await this._page.waitForTimeout(100);\n\n // Move to hold position above the footer to trigger auto-scroll.\n await this._page.mouse.move(holdX, holdY, { steps: 4 });\n\n // Hold and nudge mouse periodically to keep auto-scroll active until drop target is visible.\n for (let i = 0; i < 40; i++) {\n // Wait between nudges to give auto-scroll time to advance.\n await this._page.waitForTimeout(200);\n // Small nudge to keep drag events firing (auto-scroll stalls without movement).\n await this._page.mouse.move(holdX + (i % 2), holdY, { steps: 1 });\n\n const dropBox = await dropTarget.boundingBox();\n if (dropBox && dropBox.y + dropBox.height < holdY) {\n // Drop target has scrolled into view. Re-read box so we use current position (scroll may have moved it).\n const finalBox = await dropTarget.boundingBox();\n if (!finalBox) {\n await this._page.mouse.up();\n return;\n }\n\n const dropX = dropOffset.x + finalBox.x + finalBox.width / 2;\n const dropY = dropOffset.y + finalBox.y + finalBox.height / 2;\n await this._page.mouse.move(dropX, dropY, { steps: 8 });\n // Let drop target receive dragOver and settle (headless is faster; needs a moment to register).\n await dropTarget.waitFor({ state: 'visible' });\n await this._page.waitForTimeout(200);\n await this._page.mouse.up();\n return;\n }\n }\n\n // Fallback: drop wherever we are.\n await this._page.mouse.up();\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["expect", "BoardManager", "_page", "locator", "page", "columns", "getByTestId", "column", "index", "ColumnManager", "nth", "items", "item", "ItemManager", "addItem", "click", "header", "title", "dragTo", "target", "offset", "x", "y", "handle", "handleBox", "boundingBox", "hover", "mouse", "down", "move", "width", "height", "steps", "waitForTimeout", "box", "up", "edge", "targetHandle", "elementHandle", "sourceHandle", "poll", "count", "timeout", "toBeGreaterThan", "waitForFunction", "el", "isConnected", "placeholderHandle", "_adjacentPlaceholder", "phBox", "aimX", "aimY", "Math", "max", "isActive", "evaluate", "getAttribute", "start", "Date", "now", "nudge", "dx", "dy", "toBe", "expanded", "before", "result", "evaluateHandle", "beforeArg", "sibling", "previousElementSibling", "nextElementSibling", "hasAttribute", "asElement", "exists", "dragToEndWithAutoScroll", "holdTarget", "dropTarget", "dropOffset", "holdBox", "holdX", "holdY", "i", "dropBox", "finalBox", "dropX", "dropY", "waitFor", "state"]
7
7
  }
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  Focus,
4
4
  Mosaic
5
- } from "../chunk-25RXZ2RH.mjs";
5
+ } from "../chunk-2UCLTU76.mjs";
6
6
 
7
7
  // src/testing/decorator.tsx
8
8
  import React from "react";
@@ -42,7 +42,6 @@ var CardContainer = ({ children, role, icon = "ph--arrow-line-down--regular" })
42
42
  switch (role) {
43
43
  case "popover":
44
44
  return /* @__PURE__ */ React2.createElement("div", {
45
- role: "none",
46
45
  className: "flex justify-center"
47
46
  }, /* @__PURE__ */ React2.createElement(PopoverCardContainer, {
48
47
  icon
@@ -72,12 +71,10 @@ var IntrinsicCardContainer = ({ children, defaultSize, size: propSize, onSizeCha
72
71
  onChange: onSizeChange
73
72
  });
74
73
  return /* @__PURE__ */ React2.createElement("div", {
75
- role: "none",
76
74
  className: "relative p-2 grid overflow-hidden border-2 border-dashed border-green-500 rounded-lg",
77
75
  style: sizeStyle(size, "horizontal"),
78
76
  ...resizeAttributes
79
77
  }, /* @__PURE__ */ React2.createElement("div", {
80
- role: "none",
81
78
  className: "dx-container flex flex-col"
82
79
  }, children), /* @__PURE__ */ React2.createElement(ResizeHandle, {
83
80
  side: "inline-end",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/decorator.tsx", "../../../../src/testing/types.ts", "../../../../src/testing/CardContainer.tsx", "../../../../src/testing/DefaultStackTile.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react-vite';\nimport React from 'react';\n\nimport { Mosaic } from '../components';\n\nexport const withMosaic = (): Decorator => {\n return (Story) => (\n <Mosaic.Root>\n <Story />\n </Mosaic.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Ref, Type } from '@dxos/echo';\nimport { ObjectId } from '@dxos/keys';\n\n//\n// Test Data\n//\n\nexport const TestItem = Schema.Struct({\n name: Schema.String,\n description: Schema.optional(Schema.String),\n label: Schema.optional(Schema.String),\n}).pipe(\n Type.object({\n typename: 'com.example.type.item',\n version: '0.1.0',\n }),\n);\n\nexport interface TestItem extends Schema.Schema.Type<typeof TestItem> {}\n\nexport const TestColumn = Schema.Struct({\n id: ObjectId,\n name: Schema.String,\n items: Schema.mutable(Schema.Array(Ref.Ref(TestItem))),\n}).pipe(\n Type.object({\n typename: 'com.example.type.column',\n version: '0.1.0',\n }),\n);\n\nexport interface TestColumn extends Schema.Schema.Type<typeof TestColumn> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Icon, Popover } from '@dxos/react-ui';\nimport { ResizeHandle, type Size, resizeAttributes, sizeStyle } from '@dxos/react-ui-dnd';\n\nconst DEFAULT_BLOCK_SIZE = 22;\nconst MIN_BLOCK_SIZE = 8;\n\n//\n// Card container.\n//\n\nexport type CardContainerProps = PropsWithChildren<{ role?: 'popover' | 'intrinsic'; icon?: string }>;\n\nexport const CardContainer = ({ children, role, icon = 'ph--arrow-line-down--regular' }: CardContainerProps) => {\n switch (role) {\n case 'popover':\n return (\n <div role='none' className='flex justify-center'>\n <PopoverCardContainer icon={icon}>{children}</PopoverCardContainer>\n </div>\n );\n case 'intrinsic':\n default:\n return <IntrinsicCardContainer>{children}</IntrinsicCardContainer>;\n }\n};\n\n//\n// Popover\n//\n\nexport type PopoverCardContainerProps = PropsWithChildren<{ icon?: string }>;\n\nexport const PopoverCardContainer = ({\n children,\n icon = 'ph--arrow-line-down--regular',\n}: PopoverCardContainerProps) => {\n return (\n <Popover.Root open>\n <Popover.Trigger asChild>\n <Icon icon={icon} />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content onOpenAutoFocus={(event: Event) => event.preventDefault()}>\n <Popover.Viewport classNames='dx-card-popover'>{children}</Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\n//\n// Intrinsic card container (size constrained by card itself).\n//\n\nexport type IntrinsicCardContainerProps = PropsWithChildren<{\n defaultSize?: Size;\n size?: Size;\n onSizeChange?: (size: Size, commit?: boolean) => void;\n}>;\n\nexport const IntrinsicCardContainer = ({\n children,\n defaultSize,\n size: propSize,\n onSizeChange,\n}: IntrinsicCardContainerProps) => {\n const [size = DEFAULT_BLOCK_SIZE, setSize] = useControllableState<Size>({\n prop: propSize,\n defaultProp: defaultSize,\n onChange: onSizeChange,\n });\n\n return (\n <div\n role='none'\n className='relative p-2 grid overflow-hidden border-2 border-dashed border-green-500 rounded-lg'\n style={sizeStyle(size, 'horizontal')}\n {...resizeAttributes}\n >\n <div role='none' className='dx-container flex flex-col'>\n {children}\n </div>\n <ResizeHandle\n side='inline-end'\n fallbackSize={DEFAULT_BLOCK_SIZE}\n minSize={MIN_BLOCK_SIZE}\n size={size}\n onSizeChange={setSize}\n />\n </div>\n );\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport React, { useMemo, useRef, useState } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Card, Toolbar } from '@dxos/react-ui';\nimport { Menu, createMenuAction } from '@dxos/react-ui-menu';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nimport { Focus, Mosaic, type MosaicStackTileComponent } from '../components';\n\nexport const DefaultStackTile: MosaicStackTileComponent<Obj.Any> = (props) => {\n const dragHandleRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const menuItems = useMemo(\n () => [\n createMenuAction('toggle-details', () => setOpen((prev) => !prev), {\n label: open ? 'Hide details' : 'Show details',\n icon: 'ph--placeholder--regular',\n }),\n ],\n [open],\n );\n\n return (\n <Menu.Root>\n {/*\n * `Mosaic.Tile` sets `aria-current` from `props.current`, which the\n * Slot composition propagates down to `Card.Root`'s div. That's what\n * makes `dx-current` (an `aria-[current=true]:` utility) actually\n * fire here. See `ui-theme/src/css/components/selected.md`.\n */}\n <Mosaic.Tile {...props} asChild>\n <Focus.Item asChild>\n <Card.Root className='dx-current dx-hover'>\n <Card.Toolbar>\n <Card.DragHandle ref={dragHandleRef} />\n <Card.Title>{Obj.getLabel(props.data) ?? props.data.id}</Card.Title>\n <Menu.Trigger asChild disabled={!menuItems?.length}>\n <Toolbar.IconButton iconOnly variant='ghost' icon='ph--dots-three-vertical--regular' label='Menu' />\n </Menu.Trigger>\n <Menu.Content items={menuItems} />\n </Card.Toolbar>\n {open && (\n <Card.Row>\n <JsonHighlighter data={props.data} classNames='text-xs' />\n </Card.Row>\n )}\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n};\n\nDefaultStackTile.displayName = 'DefaultStackTile';\n"],
5
- "mappings": ";;;;;;;AAKA,OAAOA,WAAW;AAIX,IAAMC,aAAa,MAAA;AACxB,SAAO,CAACC,UACN,sBAAA,cAACC,OAAOC,MAAI,MACV,sBAAA,cAACF,OAAAA,IAAAA,CAAAA;AAGP;;;ACXA,YAAYG,YAAY;AAExB,SAASC,KAAKC,YAAY;AAC1B,SAASC,gBAAgB;AAMlB,IAAMC,WAAkBC,cAAO;EACpCC,MAAaC;EACbC,aAAoBC,gBAAgBF,aAAM;EAC1CG,OAAcD,gBAAgBF,aAAM;AACtC,CAAA,EAAGI,KACDT,KAAKU,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,CAAA;AAKK,IAAMC,aAAoBV,cAAO;EACtCW,IAAIb;EACJG,MAAaC;EACbU,OAAcC,eAAeC,aAAMlB,IAAIA,IAAIG,QAAAA,CAAAA,CAAAA;AAC7C,CAAA,EAAGO,KACDT,KAAKU,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,CAAA;;;AC9BF,SAASM,4BAA4B;AACrC,OAAOC,YAAuC;AAE9C,SAASC,MAAMC,eAAe;AAC9B,SAASC,cAAyBC,kBAAkBC,iBAAiB;AAErE,IAAMC,qBAAqB;AAC3B,IAAMC,iBAAiB;AAQhB,IAAMC,gBAAgB,CAAC,EAAEC,UAAUC,MAAMC,OAAO,+BAA8B,MAAsB;AACzG,UAAQD,MAAAA;IACN,KAAK;AACH,aACE,gBAAAV,OAAA,cAACY,OAAAA;QAAIF,MAAK;QAAOG,WAAU;SACzB,gBAAAb,OAAA,cAACc,sBAAAA;QAAqBH;SAAaF,QAAAA,CAAAA;IAGzC,KAAK;IACL;AACE,aAAO,gBAAAT,OAAA,cAACe,wBAAAA,MAAwBN,QAAAA;EACpC;AACF;AAQO,IAAMK,uBAAuB,CAAC,EACnCL,UACAE,OAAO,+BAA8B,MACX;AAC1B,SACE,gBAAAX,OAAA,cAACE,QAAQc,MAAI;IAACC,MAAAA;KACZ,gBAAAjB,OAAA,cAACE,QAAQgB,SAAO;IAACC,SAAAA;KACf,gBAAAnB,OAAA,cAACC,MAAAA;IAAKU;OAER,gBAAAX,OAAA,cAACE,QAAQkB,QAAM,MACb,gBAAApB,OAAA,cAACE,QAAQmB,SAAO;IAACC,iBAAiB,CAACC,UAAiBA,MAAMC,eAAc;KACtE,gBAAAxB,OAAA,cAACE,QAAQuB,UAAQ;IAACC,YAAW;KAAmBjB,QAAAA,GAChD,gBAAAT,OAAA,cAACE,QAAQyB,OAAK,IAAA,CAAA,CAAA,CAAA;AAKxB;AAYO,IAAMZ,yBAAyB,CAAC,EACrCN,UACAmB,aACAC,MAAMC,UACNC,aAAY,MACgB;AAC5B,QAAM,CAACF,OAAOvB,oBAAoB0B,OAAAA,IAAWjC,qBAA2B;IACtEkC,MAAMH;IACNI,aAAaN;IACbO,UAAUJ;EACZ,CAAA;AAEA,SACE,gBAAA/B,OAAA,cAACY,OAAAA;IACCF,MAAK;IACLG,WAAU;IACVuB,OAAO/B,UAAUwB,MAAM,YAAA;IACtB,GAAGzB;KAEJ,gBAAAJ,OAAA,cAACY,OAAAA;IAAIF,MAAK;IAAOG,WAAU;KACxBJ,QAAAA,GAEH,gBAAAT,OAAA,cAACG,cAAAA;IACCkC,MAAK;IACLC,cAAchC;IACdiC,SAAShC;IACTsB;IACAE,cAAcC;;AAItB;;;AC/FA,OAAOQ,UAASC,SAASC,QAAQC,gBAAgB;AAEjD,SAASC,WAAW;AACpB,SAASC,MAAMC,eAAe;AAC9B,SAASC,MAAMC,wBAAwB;AACvC,SAASC,uBAAuB;AAIzB,IAAMC,mBAAsD,CAACC,UAAAA;AAClE,QAAMC,gBAAgBC,OAA0B,IAAA;AAChD,QAAM,CAACC,MAAMC,OAAAA,IAAWC,SAAS,KAAA;AACjC,QAAMC,YAAYC,QAChB,MAAM;IACJC,iBAAiB,kBAAkB,MAAMJ,QAAQ,CAACK,SAAS,CAACA,IAAAA,GAAO;MACjEC,OAAOP,OAAO,iBAAiB;MAC/BQ,MAAM;IACR,CAAA;KAEF;IAACR;GAAK;AAGR,SACE,gBAAAS,OAAA,cAACC,KAAKC,MAAI,MAOR,gBAAAF,OAAA,cAACG,OAAOC,MAAI;IAAE,GAAGhB;IAAOiB,SAAAA;KACtB,gBAAAL,OAAA,cAACM,MAAMC,MAAI;IAACF,SAAAA;KACV,gBAAAL,OAAA,cAACQ,KAAKN,MAAI;IAACO,WAAU;KACnB,gBAAAT,OAAA,cAACQ,KAAKE,SAAO,MACX,gBAAAV,OAAA,cAACQ,KAAKG,YAAU;IAACC,KAAKvB;MACtB,gBAAAW,OAAA,cAACQ,KAAKK,OAAK,MAAEC,IAAIC,SAAS3B,MAAM4B,IAAI,KAAK5B,MAAM4B,KAAKC,EAAE,GACtD,gBAAAjB,OAAA,cAACC,KAAKiB,SAAO;IAACb,SAAAA;IAAQc,UAAU,CAACzB,WAAW0B;KAC1C,gBAAApB,OAAA,cAACU,QAAQW,YAAU;IAACC,UAAAA;IAASC,SAAQ;IAAQxB,MAAK;IAAmCD,OAAM;OAE7F,gBAAAE,OAAA,cAACC,KAAKuB,SAAO;IAACC,OAAO/B;OAEtBH,QACC,gBAAAS,OAAA,cAACQ,KAAKkB,KAAG,MACP,gBAAA1B,OAAA,cAAC2B,iBAAAA;IAAgBX,MAAM5B,MAAM4B;IAAMY,YAAW;;AAQ9D;AAEAzC,iBAAiB0C,cAAc;",
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react-vite';\nimport React from 'react';\n\nimport { Mosaic } from '../components';\n\nexport const withMosaic = (): Decorator => {\n return (Story) => (\n <Mosaic.Root>\n <Story />\n </Mosaic.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Ref, Type } from '@dxos/echo';\nimport { ObjectId } from '@dxos/keys';\n\n//\n// Test Data\n//\n\nexport const TestItem = Schema.Struct({\n name: Schema.String,\n description: Schema.optional(Schema.String),\n label: Schema.optional(Schema.String),\n}).pipe(\n Type.object({\n typename: 'com.example.type.item',\n version: '0.1.0',\n }),\n);\n\nexport interface TestItem extends Schema.Schema.Type<typeof TestItem> {}\n\nexport const TestColumn = Schema.Struct({\n id: ObjectId,\n name: Schema.String,\n items: Schema.mutable(Schema.Array(Ref.Ref(TestItem))),\n}).pipe(\n Type.object({\n typename: 'com.example.type.column',\n version: '0.1.0',\n }),\n);\n\nexport interface TestColumn extends Schema.Schema.Type<typeof TestColumn> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Icon, Popover } from '@dxos/react-ui';\nimport { ResizeHandle, type Size, resizeAttributes, sizeStyle } from '@dxos/react-ui-dnd';\n\nconst DEFAULT_BLOCK_SIZE = 22;\nconst MIN_BLOCK_SIZE = 8;\n\n//\n// Card container.\n//\n\nexport type CardContainerProps = PropsWithChildren<{ role?: 'popover' | 'intrinsic'; icon?: string }>;\n\nexport const CardContainer = ({ children, role, icon = 'ph--arrow-line-down--regular' }: CardContainerProps) => {\n switch (role) {\n case 'popover':\n return (\n <div className='flex justify-center'>\n <PopoverCardContainer icon={icon}>{children}</PopoverCardContainer>\n </div>\n );\n case 'intrinsic':\n default:\n return <IntrinsicCardContainer>{children}</IntrinsicCardContainer>;\n }\n};\n\n//\n// Popover\n//\n\nexport type PopoverCardContainerProps = PropsWithChildren<{ icon?: string }>;\n\nexport const PopoverCardContainer = ({\n children,\n icon = 'ph--arrow-line-down--regular',\n}: PopoverCardContainerProps) => {\n return (\n <Popover.Root open>\n <Popover.Trigger asChild>\n <Icon icon={icon} />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content onOpenAutoFocus={(event: Event) => event.preventDefault()}>\n <Popover.Viewport classNames='dx-card-popover'>{children}</Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\n//\n// Intrinsic card container (size constrained by card itself).\n//\n\nexport type IntrinsicCardContainerProps = PropsWithChildren<{\n defaultSize?: Size;\n size?: Size;\n onSizeChange?: (size: Size, commit?: boolean) => void;\n}>;\n\nexport const IntrinsicCardContainer = ({\n children,\n defaultSize,\n size: propSize,\n onSizeChange,\n}: IntrinsicCardContainerProps) => {\n const [size = DEFAULT_BLOCK_SIZE, setSize] = useControllableState<Size>({\n prop: propSize,\n defaultProp: defaultSize,\n onChange: onSizeChange,\n });\n\n return (\n <div\n className='relative p-2 grid overflow-hidden border-2 border-dashed border-green-500 rounded-lg'\n style={sizeStyle(size, 'horizontal')}\n {...resizeAttributes}\n >\n <div className='dx-container flex flex-col'>{children}</div>\n <ResizeHandle\n side='inline-end'\n fallbackSize={DEFAULT_BLOCK_SIZE}\n minSize={MIN_BLOCK_SIZE}\n size={size}\n onSizeChange={setSize}\n />\n </div>\n );\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport React, { useMemo, useRef, useState } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Card, Toolbar } from '@dxos/react-ui';\nimport { Menu, createMenuAction } from '@dxos/react-ui-menu';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nimport { Focus, Mosaic, type MosaicStackTileComponent } from '../components';\n\nexport const DefaultStackTile: MosaicStackTileComponent<Obj.Any> = (props) => {\n const dragHandleRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const menuItems = useMemo(\n () => [\n createMenuAction('toggle-details', () => setOpen((prev) => !prev), {\n label: open ? 'Hide details' : 'Show details',\n icon: 'ph--placeholder--regular',\n }),\n ],\n [open],\n );\n\n return (\n <Menu.Root>\n {/*\n * `Mosaic.Tile` sets `aria-current` from `props.current`, which the\n * Slot composition propagates down to `Card.Root`'s div. That's what\n * makes `dx-current` (an `aria-[current=true]:` utility) actually\n * fire here. See `ui-theme/src/css/components/selected.md`.\n */}\n <Mosaic.Tile {...props} asChild>\n <Focus.Item asChild>\n <Card.Root className='dx-current dx-hover'>\n <Card.Toolbar>\n <Card.DragHandle ref={dragHandleRef} />\n <Card.Title>{Obj.getLabel(props.data) ?? props.data.id}</Card.Title>\n <Menu.Trigger asChild disabled={!menuItems?.length}>\n <Toolbar.IconButton iconOnly variant='ghost' icon='ph--dots-three-vertical--regular' label='Menu' />\n </Menu.Trigger>\n <Menu.Content items={menuItems} />\n </Card.Toolbar>\n {open && (\n <Card.Row>\n <JsonHighlighter data={props.data} classNames='text-xs' />\n </Card.Row>\n )}\n </Card.Root>\n </Focus.Item>\n </Mosaic.Tile>\n </Menu.Root>\n );\n};\n\nDefaultStackTile.displayName = 'DefaultStackTile';\n"],
5
+ "mappings": "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",
6
6
  "names": ["React", "withMosaic", "Story", "Mosaic", "Root", "Schema", "Ref", "Type", "ObjectId", "TestItem", "Struct", "name", "String", "description", "optional", "label", "pipe", "object", "typename", "version", "TestColumn", "id", "items", "mutable", "Array", "useControllableState", "React", "Icon", "Popover", "ResizeHandle", "resizeAttributes", "sizeStyle", "DEFAULT_BLOCK_SIZE", "MIN_BLOCK_SIZE", "CardContainer", "children", "role", "icon", "div", "className", "PopoverCardContainer", "IntrinsicCardContainer", "Root", "open", "Trigger", "asChild", "Portal", "Content", "onOpenAutoFocus", "event", "preventDefault", "Viewport", "classNames", "Arrow", "defaultSize", "size", "propSize", "onSizeChange", "setSize", "prop", "defaultProp", "onChange", "style", "side", "fallbackSize", "minSize", "React", "useMemo", "useRef", "useState", "Obj", "Card", "Toolbar", "Menu", "createMenuAction", "JsonHighlighter", "DefaultStackTile", "props", "dragHandleRef", "useRef", "open", "setOpen", "useState", "menuItems", "useMemo", "createMenuAction", "prev", "label", "icon", "React", "Menu", "Root", "Mosaic", "Tile", "asChild", "Focus", "Item", "Card", "className", "Toolbar", "DragHandle", "ref", "Title", "Obj", "getLabel", "data", "id", "Trigger", "disabled", "length", "IconButton", "iconOnly", "variant", "Content", "items", "Row", "JsonHighlighter", "classNames", "displayName"]
7
7
  }
@@ -50,7 +50,7 @@ export declare const Board: {
50
50
  Root: <TColumn = unknown>(props: (BoardColumnProps<TColumn> & {
51
51
  children?: React.ReactNode | undefined;
52
52
  } & {
53
- dragHandleRef?: React.RefObject<HTMLButtonElement | null>;
53
+ dragHandle?: HTMLButtonElement | null;
54
54
  }) & {
55
55
  ref?: ReactRef<HTMLDivElement>;
56
56
  }) => ReactElement;
@@ -1,4 +1,4 @@
1
- import React, { type PropsWithChildren, type ReactElement, type Ref as ReactRef, type RefObject } from 'react';
1
+ import React, { type PropsWithChildren, type ReactElement, type Ref as ReactRef } from 'react';
2
2
  import { Obj } from '@dxos/echo';
3
3
  import { type MosaicContainerProps, type MosaicStackProps, type MosaicTileProps } from '../Mosaic';
4
4
  export type BoardColumnContextValue<TColumn = unknown> = {
@@ -6,9 +6,9 @@ export type BoardColumnContextValue<TColumn = unknown> = {
6
6
  };
7
7
  /** Returns the current column when rendered inside a board column (e.g., in column header or item tile). */
8
8
  export declare function useBoardColumn<TColumn = unknown>(): TColumn | undefined;
9
- type BoardColumnProps<TColumn = any> = Pick<MosaicTileProps<TColumn>, 'classNames' | 'location' | 'data' | 'debug'>;
9
+ type BoardColumnProps<TColumn = any> = Pick<MosaicTileProps<TColumn>, 'classNames' | 'location' | 'data' | 'debug' | 'draggable'>;
10
10
  type BoardColumnRootProps<TColumn = any> = PropsWithChildren<BoardColumnProps<TColumn>> & {
11
- dragHandleRef?: RefObject<HTMLButtonElement | null>;
11
+ dragHandle?: HTMLButtonElement | null;
12
12
  };
13
13
  type BoardColumnHeaderProps = {
14
14
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../../../../../src/components/Board/Column.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,GAAG,IAAI,QAAQ,EACpB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,GAAG,EAAO,MAAM,YAAY,CAAC;AAUtC,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAU3G,MAAM,MAAM,uBAAuB,CAAC,OAAO,GAAG,OAAO,IAAI;IACvD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAOF,4GAA4G;AAC5G,wBAAgB,cAAc,CAAC,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,SAAS,CAGvE;AAED,KAAK,gBAAgB,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAQpH,KAAK,oBAAoB,CAAC,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG;IACxF,aAAa,CAAC,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACrD,CAAC;AAkDF,KAAK,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAiD5F,KAAK,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GACxD,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG;IACrD,IAAI,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AA6EJ,QAAA,MAAM,kBAAkB,mIA2CvB,CAAC;AAQF,eAAO,MAAM,WAAW;IACtB,IAAI,GA/L2C,OAAO,mBAC/C,oBAAoB,CAAC,OAAO,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;KAAE,KACtE,YAAY;IA8Lf,MAAM;;;IACN,IAAI;;;IACJ,MAAM;;;eA9FC,GAAG;gBACF,MAAM,IAAI;;CA8FnB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../../../../../src/components/Board/Column.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,GAAG,IAAI,QAAQ,EAIrB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,GAAG,EAAO,MAAM,YAAY,CAAC;AAUtC,OAAO,EAAU,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAU3G,MAAM,MAAM,uBAAuB,CAAC,OAAO,GAAG,OAAO,IAAI;IACvD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAOF,4GAA4G;AAC5G,wBAAgB,cAAc,CAAC,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,SAAS,CAGvE;AAED,KAAK,gBAAgB,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CACzC,eAAe,CAAC,OAAO,CAAC,EACxB,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAC3D,CAAC;AAQF,KAAK,oBAAoB,CAAC,OAAO,GAAG,GAAG,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG;IAIxF,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvC,CAAC;AA+CF,KAAK,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAiD5F,KAAK,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GACxD,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG;IACrD,IAAI,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AA6EJ,QAAA,MAAM,kBAAkB,mIA4CvB,CAAC;AAQF,eAAO,MAAM,WAAW;IACtB,IAAI,GAhM2C,OAAO,mBAC/C,oBAAoB,CAAC,OAAO,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;KAAE,KACtE,YAAY;IA+Lf,MAAM;;;IACN,IAAI;;;IACJ,MAAM;;;eA/FC,GAAG;gBACF,MAAM,IAAI;;CA+FnB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type ReactElement, type Ref as ReactRef } from 'react';
2
2
  import { Obj } from '@dxos/echo';
3
3
  import { type MosaicTileProps } from '../Mosaic';
4
- type BoardItemProps<TItem extends Obj.Unknown = any> = Pick<MosaicTileProps<TItem>, 'classNames' | 'location' | 'data' | 'debug'>;
4
+ type BoardItemProps<TItem extends Obj.Unknown = any> = Pick<MosaicTileProps<TItem>, 'classNames' | 'location' | 'data' | 'debug' | 'draggable'>;
5
5
  /**
6
6
  * Default board tile.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../../src/components/Board/Item.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,IAAI,QAAQ,EAA+B,MAAM,OAAO,CAAC;AAEpG,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAQjC,OAAO,EAAU,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAMzD,KAAK,cAAc,CAAC,KAAK,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CACzD,eAAe,CAAC,KAAK,CAAC,EACtB,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAC7C,CAAC;AAoFF;;GAEG;AACH,QAAA,MAAM,SAAS,EAAqB,CAAC,KAAK,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,EAClE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;CAAE,KAC9D,YAAY,CAAC;AAElB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../../src/components/Board/Item.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,IAAI,QAAQ,EAAyC,MAAM,OAAO,CAAC;AAE9G,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAQjC,OAAO,EAAU,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAMzD,KAAK,cAAc,CAAC,KAAK,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CACzD,eAAe,CAAC,KAAK,CAAC,EACtB,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAC3D,CAAC;AAuFF;;GAEG;AACH,QAAA,MAAM,SAAS,EAAqB,CAAC,KAAK,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,EAClE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;CAAE,KAC9D,YAAY,CAAC;AAElB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
@@ -22,6 +22,10 @@ type MosaicContainerContextValue<TData = any, Location = LocationType> = {
22
22
  currentId?: string;
23
23
  /** Set the current item by ID. */
24
24
  setCurrentId: (id: string | undefined) => void;
25
+ /** IDs of selected (aria-selected) items. */
26
+ selectedIds?: ReadonlySet<string>;
27
+ /** Request to set or unset selection on an item by ID. */
28
+ setSelected: (id: string, selected: boolean) => void;
25
29
  /** Register a scroll-to-item callback (provided by Stack/VirtualStack). */
26
30
  registerScrollTo: (fn: ((id: string) => void) | undefined) => void;
27
31
  };
@@ -35,6 +39,10 @@ type MosaicContainerProps = PropsWithChildren<Partial<Pick<MosaicContainerContex
35
39
  currentId?: string;
36
40
  /** Called when a tile requests to become current. */
37
41
  onCurrentChange?: (id: string | undefined) => void;
42
+ /** Controlled set of selected item IDs. */
43
+ selectedIds?: ReadonlySet<string>;
44
+ /** Called when a tile requests to toggle selection. */
45
+ onSelectionChange?: (id: string, selected: boolean) => void;
38
46
  debug?: () => ReactNode;
39
47
  }>;
40
48
  declare const MosaicContainer: React.ForwardRefExoticComponent<Omit<MosaicContainerProps, "className"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../../src/components/Mosaic/Container.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAEZ,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD,OAAO,EAAE,KAAK,mBAAmB,EAAwB,MAAM,QAAQ,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAQjB,KAAK,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,KAAK,2BAA2B,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,YAAY,IAAI;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,oBAAoB,CAAC;IAE5B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IAE5D,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE/C,2EAA2E;IAC3E,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CACpE,CAAC;AAEF,QAAA,MAAuC,yBAAyB,0EACD,CAAC;AAWhE,KAAK,oBAAoB,GAAG,iBAAiB,CAC3C,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,GAAG;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,UAAU,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;CACzB,CACF,CAAC;AAGF,QAAA,MAAM,eAAe;;2HAuNpB,CAAC;AAIF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;AAEtD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../../src/components/Mosaic/Container.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAEZ,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD,OAAO,EAAE,KAAK,mBAAmB,EAAwB,MAAM,QAAQ,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAGxB,MAAM,SAAS,CAAC;AAQjB,KAAK,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,KAAK,2BAA2B,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,YAAY,IAAI;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,oBAAoB,CAAC;IAE5B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IAE5D,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE/C,6CAA6C;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,0DAA0D;IAC1D,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAErD,2EAA2E;IAC3E,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;CACpE,CAAC;AAEF,QAAA,MAAuC,yBAAyB,0EACD,CAAC;AAWhE,KAAK,oBAAoB,GAAG,iBAAiB,CAC3C,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,GAAG;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,UAAU,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,2CAA2C;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;CACzB,CACF,CAAC;AAGF,QAAA,MAAM,eAAe;;2HA+NpB,CAAC;AAIF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;AAEtD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -22,6 +22,7 @@ export declare const Mosaic: {
22
22
  location: import("./types").LocationType;
23
23
  draggable?: boolean;
24
24
  current?: boolean;
25
+ selected?: boolean;
25
26
  debug?: boolean;
26
27
  }>, "className"> & {
27
28
  classNames?: import("@dxos/ui-types").ClassNameValue;
@@ -1 +1 @@
1
- {"version":3,"file":"Mosaic.d.ts","sourceRoot":"","sources":["../../../../../src/components/Mosaic/Mosaic.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,wBAAwB,EAE7B,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAc,KAAK,eAAe,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAe,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAsB,MAAM,SAAS,CAAC;AAChH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAMtG,eAAO,MAAM,MAAM;IACjB,IAAI;;;;;;IACJ,SAAS;;;IACT,IAAI;;;;;;;;;;;;;;;;;IACJ,WAAW;;;;IACX,aAAa;;;;IACb,KAAK;;;IACL,YAAY;;;CACb,CAAC;AAEF,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,GACzB,CAAC;AAEF,OAAO,EACL,oBAAoB,IAAI,SAAS,EACjC,yBAAyB,IAAI,kBAAkB,EAC/C,oBAAoB,IAAI,aAAa,GACtC,CAAC"}
1
+ {"version":3,"file":"Mosaic.d.ts","sourceRoot":"","sources":["../../../../../src/components/Mosaic/Mosaic.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,wBAAwB,EAE7B,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAc,KAAK,eAAe,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAe,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAsB,MAAM,SAAS,CAAC;AAChH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAMtG,eAAO,MAAM,MAAM;IACjB,IAAI;;;;;;IACJ,SAAS;;;IACT,IAAI;;;;;;;;;;;;;;;;;;IACJ,WAAW;;;;IACX,aAAa;;;;IACb,KAAK;;;IACL,YAAY;;;CACb,CAAC;AAEF,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,GACzB,CAAC;AAEF,OAAO,EACL,oBAAoB,IAAI,SAAS,EACjC,yBAAyB,IAAI,kBAAkB,EAC/C,oBAAoB,IAAI,aAAa,GACtC,CAAC"}