cursedbelt 0.0.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/dist/client/contextSyncBroker.d.ts +58 -0
- package/dist/client/contextSyncBroker.d.ts.map +1 -0
- package/dist/client/contextSyncBroker.js +88 -0
- package/dist/client/contextSyncBroker.js.map +1 -0
- package/dist/client/ctgrGuard.d.ts.map +1 -1
- package/dist/client/ctgrGuard.js +31 -19
- package/dist/client/ctgrGuard.js.map +1 -1
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +30 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/router/ccRouter.d.ts +66 -0
- package/dist/client/router/ccRouter.d.ts.map +1 -0
- package/dist/client/router/ccRouter.js +113 -0
- package/dist/client/router/ccRouter.js.map +1 -0
- package/dist/client/router/index.d.ts +11 -0
- package/dist/client/router/index.d.ts.map +1 -0
- package/dist/client/router/index.js +11 -0
- package/dist/client/router/index.js.map +1 -0
- package/dist/client/router/locator.d.ts +78 -0
- package/dist/client/router/locator.d.ts.map +1 -0
- package/dist/client/router/locator.js +119 -0
- package/dist/client/router/locator.js.map +1 -0
- package/dist/client/router/routeTable.d.ts +75 -0
- package/dist/client/router/routeTable.d.ts.map +1 -0
- package/dist/client/router/routeTable.js +140 -0
- package/dist/client/router/routeTable.js.map +1 -0
- package/dist/client/stream/appStream.d.ts +133 -0
- package/dist/client/stream/appStream.d.ts.map +1 -0
- package/dist/client/stream/appStream.js +184 -0
- package/dist/client/stream/appStream.js.map +1 -0
- package/dist/client/stream/ccEventSource.d.ts +98 -0
- package/dist/client/stream/ccEventSource.d.ts.map +1 -0
- package/dist/client/stream/ccEventSource.js +188 -0
- package/dist/client/stream/ccEventSource.js.map +1 -0
- package/dist/client/stream/index.d.ts +4 -0
- package/dist/client/stream/index.d.ts.map +1 -0
- package/dist/client/stream/index.js +7 -0
- package/dist/client/stream/index.js.map +1 -0
- package/dist/client/stream/instanceStream.d.ts +127 -0
- package/dist/client/stream/instanceStream.d.ts.map +1 -0
- package/dist/client/stream/instanceStream.js +125 -0
- package/dist/client/stream/instanceStream.js.map +1 -0
- package/dist/client/ws.d.ts +2 -21
- package/dist/client/ws.d.ts.map +1 -1
- package/dist/client/ws.js +21 -31
- package/dist/client/ws.js.map +1 -1
- package/dist/client/wsWire.d.ts +50 -0
- package/dist/client/wsWire.d.ts.map +1 -0
- package/dist/client/wsWire.js +58 -0
- package/dist/client/wsWire.js.map +1 -0
- package/dist/config/appConfig.d.ts +362 -0
- package/dist/config/appConfig.d.ts.map +1 -0
- package/dist/config/appConfig.js +309 -0
- package/dist/config/appConfig.js.map +1 -0
- package/dist/core/activity/index.d.ts +9 -0
- package/dist/core/activity/index.d.ts.map +1 -0
- package/dist/core/activity/index.js +8 -0
- package/dist/core/activity/index.js.map +1 -0
- package/dist/core/activity/model.d.ts +116 -0
- package/dist/core/activity/model.d.ts.map +1 -0
- package/dist/core/activity/model.js +64 -0
- package/dist/core/activity/model.js.map +1 -0
- package/dist/core/analytics/index.d.ts +19 -0
- package/dist/core/analytics/index.d.ts.map +1 -0
- package/dist/core/analytics/index.js +19 -0
- package/dist/core/analytics/index.js.map +1 -0
- package/dist/core/analytics/range.d.ts +187 -0
- package/dist/core/analytics/range.d.ts.map +1 -0
- package/dist/core/analytics/range.js +272 -0
- package/dist/core/analytics/range.js.map +1 -0
- package/dist/core/analytics/schedule.d.ts +302 -0
- package/dist/core/analytics/schedule.d.ts.map +1 -0
- package/dist/core/analytics/schedule.js +373 -0
- package/dist/core/analytics/schedule.js.map +1 -0
- package/dist/core/category/index.d.ts +4 -0
- package/dist/core/category/index.d.ts.map +1 -0
- package/dist/core/category/index.js +7 -0
- package/dist/core/category/index.js.map +1 -0
- package/dist/core/category/memoryStore.d.ts +22 -0
- package/dist/core/category/memoryStore.d.ts.map +1 -0
- package/dist/core/category/memoryStore.js +98 -0
- package/dist/core/category/memoryStore.js.map +1 -0
- package/dist/core/category/tree.d.ts +27 -0
- package/dist/core/category/tree.d.ts.map +1 -0
- package/dist/core/category/tree.js +114 -0
- package/dist/core/category/tree.js.map +1 -0
- package/dist/core/category/types.d.ts +49 -0
- package/dist/core/category/types.d.ts.map +1 -0
- package/dist/core/category/types.js +9 -0
- package/dist/core/category/types.js.map +1 -0
- package/dist/core/colorScheme/colorSchemeStore.d.ts +71 -0
- package/dist/core/colorScheme/colorSchemeStore.d.ts.map +1 -0
- package/dist/core/colorScheme/colorSchemeStore.js +124 -0
- package/dist/core/colorScheme/colorSchemeStore.js.map +1 -0
- package/dist/core/colorScheme/index.d.ts +8 -0
- package/dist/core/colorScheme/index.d.ts.map +1 -0
- package/dist/core/colorScheme/index.js +8 -0
- package/dist/core/colorScheme/index.js.map +1 -0
- package/dist/core/domainOwners.d.ts +20 -0
- package/dist/core/domainOwners.d.ts.map +1 -0
- package/dist/core/domainOwners.js +16 -0
- package/dist/core/domainOwners.js.map +1 -0
- package/dist/core/download.d.ts +15 -0
- package/dist/core/download.d.ts.map +1 -0
- package/dist/core/download.js +38 -0
- package/dist/core/download.js.map +1 -0
- package/dist/core/events/ccEventBus.d.ts +45 -0
- package/dist/core/events/ccEventBus.d.ts.map +1 -0
- package/dist/core/events/ccEventBus.js +71 -0
- package/dist/core/events/ccEventBus.js.map +1 -0
- package/dist/core/file-tree/fileTreeModel.d.ts +277 -0
- package/dist/core/file-tree/fileTreeModel.d.ts.map +1 -0
- package/dist/core/file-tree/fileTreeModel.js +313 -0
- package/dist/core/file-tree/fileTreeModel.js.map +1 -0
- package/dist/core/folder-tree/actions.d.ts +85 -0
- package/dist/core/folder-tree/actions.d.ts.map +1 -0
- package/dist/core/folder-tree/actions.js +120 -0
- package/dist/core/folder-tree/actions.js.map +1 -0
- package/dist/core/folder-tree/index.d.ts +4 -0
- package/dist/core/folder-tree/index.d.ts.map +1 -0
- package/dist/core/folder-tree/index.js +21 -0
- package/dist/core/folder-tree/index.js.map +1 -0
- package/dist/core/folder-tree/path.d.ts +77 -0
- package/dist/core/folder-tree/path.d.ts.map +1 -0
- package/dist/core/folder-tree/path.js +147 -0
- package/dist/core/folder-tree/path.js.map +1 -0
- package/dist/core/folder-tree/tree.d.ts +87 -0
- package/dist/core/folder-tree/tree.d.ts.map +1 -0
- package/dist/core/folder-tree/tree.js +185 -0
- package/dist/core/folder-tree/tree.js.map +1 -0
- package/dist/core/layout/index.d.ts +1 -9
- package/dist/core/layout/index.d.ts.map +1 -1
- package/dist/core/layout/index.js +7 -17
- package/dist/core/layout/index.js.map +1 -1
- package/dist/core/master-lock/index.d.ts +15 -0
- package/dist/core/master-lock/index.d.ts.map +1 -0
- package/dist/core/master-lock/index.js +15 -0
- package/dist/core/master-lock/index.js.map +1 -0
- package/dist/core/master-lock/kdf.d.ts +64 -0
- package/dist/core/master-lock/kdf.d.ts.map +1 -0
- package/dist/core/master-lock/kdf.js +118 -0
- package/dist/core/master-lock/kdf.js.map +1 -0
- package/dist/core/master-lock/policy.d.ts +33 -0
- package/dist/core/master-lock/policy.d.ts.map +1 -0
- package/dist/core/master-lock/policy.js +53 -0
- package/dist/core/master-lock/policy.js.map +1 -0
- package/dist/core/master-lock/presence.d.ts +53 -0
- package/dist/core/master-lock/presence.d.ts.map +1 -0
- package/dist/core/master-lock/presence.js +62 -0
- package/dist/core/master-lock/presence.js.map +1 -0
- package/dist/core/master-lock/wire.d.ts +140 -0
- package/dist/core/master-lock/wire.d.ts.map +1 -0
- package/dist/core/master-lock/wire.js +82 -0
- package/dist/core/master-lock/wire.js.map +1 -0
- package/dist/core/media/bgRemoval.d.ts +5 -5
- package/dist/core/media/bgRemoval.js +4 -4
- package/dist/core/media/bgRemoval.js.map +1 -1
- package/dist/core/media/ffmpeg.d.ts +58 -0
- package/dist/core/media/ffmpeg.d.ts.map +1 -0
- package/dist/core/media/ffmpeg.js +127 -0
- package/dist/core/media/ffmpeg.js.map +1 -0
- package/dist/core/media/index.d.ts +6 -1
- package/dist/core/media/index.d.ts.map +1 -1
- package/dist/core/media/index.js +9 -1
- package/dist/core/media/index.js.map +1 -1
- package/dist/core/media/renderPlan.d.ts +64 -0
- package/dist/core/media/renderPlan.d.ts.map +1 -0
- package/dist/core/media/renderPlan.js +233 -0
- package/dist/core/media/renderPlan.js.map +1 -0
- package/dist/core/media/segment.d.ts +5 -5
- package/dist/core/media/segment.d.ts.map +1 -1
- package/dist/core/media/segment.js +8 -8
- package/dist/core/media/segment.js.map +1 -1
- package/dist/core/media/size.d.ts +2 -0
- package/dist/core/media/size.d.ts.map +1 -0
- package/dist/core/media/size.js +4 -0
- package/dist/core/media/size.js.map +1 -0
- package/dist/core/media/trim.d.ts +2 -9
- package/dist/core/media/trim.d.ts.map +1 -1
- package/dist/core/media/trim.js +3 -20
- package/dist/core/media/trim.js.map +1 -1
- package/dist/core/media/types.d.ts +56 -1
- package/dist/core/media/types.d.ts.map +1 -1
- package/dist/core/media/types.js +1 -1
- package/dist/core/media/types.js.map +1 -1
- package/dist/core/media/uploadLimits.d.ts +8 -0
- package/dist/core/media/uploadLimits.d.ts.map +1 -0
- package/dist/core/media/uploadLimits.js +17 -0
- package/dist/core/media/uploadLimits.js.map +1 -0
- package/dist/core/media/videoCuts.d.ts +153 -0
- package/dist/core/media/videoCuts.d.ts.map +1 -0
- package/dist/core/media/videoCuts.js +285 -0
- package/dist/core/media/videoCuts.js.map +1 -0
- package/dist/core/navigation/index.d.ts +1 -1
- package/dist/core/navigation/index.d.ts.map +1 -1
- package/dist/core/navigation/index.js.map +1 -1
- package/dist/core/navigation/migrateNavPreferences.d.ts +2 -0
- package/dist/core/navigation/migrateNavPreferences.d.ts.map +1 -1
- package/dist/core/navigation/migrateNavPreferences.js.map +1 -1
- package/dist/core/navigation/navigationModel.d.ts +73 -0
- package/dist/core/navigation/navigationModel.d.ts.map +1 -1
- package/dist/core/navigation/navigationModel.js.map +1 -1
- package/dist/core/navigation/navigationSelectors.d.ts.map +1 -1
- package/dist/core/navigation/navigationSelectors.js +5 -0
- package/dist/core/navigation/navigationSelectors.js.map +1 -1
- package/dist/core/navigation/searchCatalogue.js +1 -1
- package/dist/core/net/reconnectSchedule.d.ts +47 -0
- package/dist/core/net/reconnectSchedule.d.ts.map +1 -0
- package/dist/core/net/reconnectSchedule.js +39 -0
- package/dist/core/net/reconnectSchedule.js.map +1 -0
- package/dist/core/schema/projection.d.ts +85 -0
- package/dist/core/schema/projection.d.ts.map +1 -0
- package/dist/core/schema/projection.js +185 -0
- package/dist/core/schema/projection.js.map +1 -0
- package/dist/core/session/claims.d.ts +146 -0
- package/dist/core/session/claims.d.ts.map +1 -0
- package/dist/core/session/claims.js +158 -0
- package/dist/core/session/claims.js.map +1 -0
- package/dist/core/sharing/index.d.ts +6 -0
- package/dist/core/sharing/index.d.ts.map +1 -0
- package/dist/core/sharing/index.js +5 -0
- package/dist/core/sharing/index.js.map +1 -0
- package/dist/core/sharing/model.d.ts +196 -0
- package/dist/core/sharing/model.d.ts.map +1 -0
- package/dist/core/sharing/model.js +151 -0
- package/dist/core/sharing/model.js.map +1 -0
- package/dist/core/site/siteCopy.d.ts +93 -0
- package/dist/core/site/siteCopy.d.ts.map +1 -0
- package/dist/core/site/siteCopy.js +92 -0
- package/dist/core/site/siteCopy.js.map +1 -0
- package/dist/core/slots.d.ts +23 -0
- package/dist/core/slots.d.ts.map +1 -0
- package/dist/core/slots.js +32 -0
- package/dist/core/slots.js.map +1 -0
- package/dist/core/styles/constructableSheet.d.ts +52 -0
- package/dist/core/styles/constructableSheet.d.ts.map +1 -0
- package/dist/core/styles/constructableSheet.js +81 -0
- package/dist/core/styles/constructableSheet.js.map +1 -0
- package/dist/core/tokens/registry.d.ts +120 -0
- package/dist/core/tokens/registry.d.ts.map +1 -0
- package/dist/core/tokens/registry.js +448 -0
- package/dist/core/tokens/registry.js.map +1 -0
- package/dist/core/wire/__fixtures__/rowsMarshalWorker.d.ts +2 -0
- package/dist/core/wire/__fixtures__/rowsMarshalWorker.d.ts.map +1 -0
- package/dist/core/wire/__fixtures__/rowsMarshalWorker.js +24 -0
- package/dist/core/wire/__fixtures__/rowsMarshalWorker.js.map +1 -0
- package/dist/core/wire/index.d.ts +18 -0
- package/dist/core/wire/index.d.ts.map +1 -0
- package/dist/core/wire/index.js +18 -0
- package/dist/core/wire/index.js.map +1 -0
- package/dist/core/wire/ingress.d.ts +45 -0
- package/dist/core/wire/ingress.d.ts.map +1 -0
- package/dist/core/wire/ingress.js +135 -0
- package/dist/core/wire/ingress.js.map +1 -0
- package/dist/core/wire/marshalWorker.d.ts +71 -0
- package/dist/core/wire/marshalWorker.d.ts.map +1 -0
- package/dist/core/wire/marshalWorker.js +274 -0
- package/dist/core/wire/marshalWorker.js.map +1 -0
- package/dist/core/wire/marshalling.d.ts +123 -0
- package/dist/core/wire/marshalling.d.ts.map +1 -0
- package/dist/core/wire/marshalling.js +127 -0
- package/dist/core/wire/marshalling.js.map +1 -0
- package/dist/core/wire/wireHub.d.ts +81 -0
- package/dist/core/wire/wireHub.d.ts.map +1 -0
- package/dist/core/wire/wireHub.js +117 -0
- package/dist/core/wire/wireHub.js.map +1 -0
- package/dist/ctgr/base64url.js +1 -1
- package/dist/ctgr/chunkAccumulator.d.ts +215 -0
- package/dist/ctgr/chunkAccumulator.d.ts.map +1 -0
- package/dist/ctgr/chunkAccumulator.js +308 -0
- package/dist/ctgr/chunkAccumulator.js.map +1 -0
- package/dist/ctgr/index.d.ts +1 -0
- package/dist/ctgr/index.d.ts.map +1 -1
- package/dist/ctgr/index.js +5 -1
- package/dist/ctgr/index.js.map +1 -1
- package/dist/index.d.ts +25 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -4
- package/dist/index.js.map +1 -1
- package/dist/react/AuthGate.d.ts +31 -0
- package/dist/react/AuthGate.d.ts.map +1 -0
- package/dist/react/AuthGate.js +72 -0
- package/dist/react/AuthGate.js.map +1 -0
- package/dist/react/VirtualCardGrid.d.ts +71 -0
- package/dist/react/VirtualCardGrid.d.ts.map +1 -0
- package/dist/react/VirtualCardGrid.js +269 -0
- package/dist/react/VirtualCardGrid.js.map +1 -0
- package/dist/react/VirtualList.d.ts +66 -0
- package/dist/react/VirtualList.d.ts.map +1 -0
- package/dist/react/VirtualList.js +123 -0
- package/dist/react/VirtualList.js.map +1 -0
- package/dist/react/activity-bar/ActivityBar.d.ts +127 -0
- package/dist/react/activity-bar/ActivityBar.d.ts.map +1 -0
- package/dist/react/activity-bar/ActivityBar.js +22 -0
- package/dist/react/activity-bar/ActivityBar.js.map +1 -0
- package/dist/react/activity-bar/activityBar.css +164 -0
- package/dist/react/activity-bar/index.d.ts +2 -0
- package/dist/react/activity-bar/index.d.ts.map +1 -0
- package/dist/react/activity-bar/index.js +9 -0
- package/dist/react/activity-bar/index.js.map +1 -0
- package/dist/react/analytics/AnalyticsPanel.d.ts +54 -0
- package/dist/react/analytics/AnalyticsPanel.d.ts.map +1 -0
- package/dist/react/analytics/AnalyticsPanel.js +24 -0
- package/dist/react/analytics/AnalyticsPanel.js.map +1 -0
- package/dist/react/analytics/MetricDrilldown.d.ts +69 -0
- package/dist/react/analytics/MetricDrilldown.d.ts.map +1 -0
- package/dist/react/analytics/MetricDrilldown.js +53 -0
- package/dist/react/analytics/MetricDrilldown.js.map +1 -0
- package/dist/react/analytics/RangeTabs.d.ts +56 -0
- package/dist/react/analytics/RangeTabs.d.ts.map +1 -0
- package/dist/react/analytics/RangeTabs.js +83 -0
- package/dist/react/analytics/RangeTabs.js.map +1 -0
- package/dist/react/analytics/index.d.ts +24 -0
- package/dist/react/analytics/index.d.ts.map +1 -0
- package/dist/react/analytics/index.js +30 -0
- package/dist/react/analytics/index.js.map +1 -0
- package/dist/react/authSignal.d.ts +27 -0
- package/dist/react/authSignal.d.ts.map +1 -0
- package/dist/react/authSignal.js +36 -0
- package/dist/react/authSignal.js.map +1 -0
- package/dist/react/charts/ChartLegend.d.ts.map +1 -1
- package/dist/react/charts/ChartLegend.js +3 -1
- package/dist/react/charts/ChartLegend.js.map +1 -1
- package/dist/react/charts/ChartTooltip.d.ts.map +1 -1
- package/dist/react/charts/ChartTooltip.js +1 -1
- package/dist/react/charts/ChartTooltip.js.map +1 -1
- package/dist/react/charts/HeatmapChart.d.ts +71 -0
- package/dist/react/charts/HeatmapChart.d.ts.map +1 -0
- package/dist/react/charts/HeatmapChart.js +89 -0
- package/dist/react/charts/HeatmapChart.js.map +1 -0
- package/dist/react/charts/IntervalTimeline.d.ts +113 -0
- package/dist/react/charts/IntervalTimeline.d.ts.map +1 -0
- package/dist/react/charts/IntervalTimeline.js +135 -0
- package/dist/react/charts/IntervalTimeline.js.map +1 -0
- package/dist/react/charts/PieChart.d.ts +14 -0
- package/dist/react/charts/PieChart.d.ts.map +1 -1
- package/dist/react/charts/PieChart.js +31 -1
- package/dist/react/charts/PieChart.js.map +1 -1
- package/dist/react/charts/TimeSeriesChart.d.ts +67 -15
- package/dist/react/charts/TimeSeriesChart.d.ts.map +1 -1
- package/dist/react/charts/TimeSeriesChart.js +49 -25
- package/dist/react/charts/TimeSeriesChart.js.map +1 -1
- package/dist/react/charts/Treemap.d.ts +46 -0
- package/dist/react/charts/Treemap.d.ts.map +1 -0
- package/dist/react/charts/Treemap.js +67 -0
- package/dist/react/charts/Treemap.js.map +1 -0
- package/dist/react/charts/categorical.d.ts +98 -0
- package/dist/react/charts/categorical.d.ts.map +1 -0
- package/dist/react/charts/categorical.js +78 -0
- package/dist/react/charts/categorical.js.map +1 -0
- package/dist/react/charts/format.d.ts +34 -1
- package/dist/react/charts/format.d.ts.map +1 -1
- package/dist/react/charts/format.js +64 -12
- package/dist/react/charts/format.js.map +1 -1
- package/dist/react/charts/index.d.ts +5 -0
- package/dist/react/charts/index.d.ts.map +1 -1
- package/dist/react/charts/index.js +5 -0
- package/dist/react/charts/index.js.map +1 -1
- package/dist/react/chat/Bubble.d.ts +50 -0
- package/dist/react/chat/Bubble.d.ts.map +1 -0
- package/dist/react/chat/Bubble.js +55 -0
- package/dist/react/chat/Bubble.js.map +1 -0
- package/dist/react/chat/DateMarker.d.ts +10 -0
- package/dist/react/chat/DateMarker.d.ts.map +1 -0
- package/dist/react/chat/DateMarker.js +28 -0
- package/dist/react/chat/DateMarker.js.map +1 -0
- package/dist/react/chat/MessageComposer.d.ts +32 -0
- package/dist/react/chat/MessageComposer.d.ts.map +1 -0
- package/dist/react/chat/MessageComposer.js +79 -0
- package/dist/react/chat/MessageComposer.js.map +1 -0
- package/dist/react/chat/MessageRow.d.ts +35 -0
- package/dist/react/chat/MessageRow.d.ts.map +1 -0
- package/dist/react/chat/MessageRow.js +32 -0
- package/dist/react/chat/MessageRow.js.map +1 -0
- package/dist/react/chat/MessageScroller.d.ts +54 -0
- package/dist/react/chat/MessageScroller.d.ts.map +1 -0
- package/dist/react/chat/MessageScroller.js +96 -0
- package/dist/react/chat/MessageScroller.js.map +1 -0
- package/dist/react/chat/MessageThread.d.ts +60 -0
- package/dist/react/chat/MessageThread.d.ts.map +1 -0
- package/dist/react/chat/MessageThread.js +68 -0
- package/dist/react/chat/MessageThread.js.map +1 -0
- package/dist/react/chat/PresenceRoster.d.ts +15 -0
- package/dist/react/chat/PresenceRoster.d.ts.map +1 -0
- package/dist/react/chat/PresenceRoster.js +42 -0
- package/dist/react/chat/PresenceRoster.js.map +1 -0
- package/dist/react/chat/StatusMarker.d.ts +14 -0
- package/dist/react/chat/StatusMarker.d.ts.map +1 -0
- package/dist/react/chat/StatusMarker.js +10 -0
- package/dist/react/chat/StatusMarker.js.map +1 -0
- package/dist/react/chat/index.d.ts +10 -0
- package/dist/react/chat/index.d.ts.map +1 -0
- package/dist/react/chat/index.js +9 -0
- package/dist/react/chat/index.js.map +1 -0
- package/dist/react/chat/types.d.ts +56 -0
- package/dist/react/chat/types.d.ts.map +1 -0
- package/dist/react/chat/types.js.map +1 -0
- package/dist/react/clipboard/copyRich.d.ts +21 -0
- package/dist/react/clipboard/copyRich.d.ts.map +1 -0
- package/dist/react/clipboard/copyRich.js +47 -0
- package/dist/react/clipboard/copyRich.js.map +1 -0
- package/dist/react/clipboard/domToMarkdown.d.ts +8 -0
- package/dist/react/clipboard/domToMarkdown.d.ts.map +1 -0
- package/dist/react/clipboard/domToMarkdown.js +214 -0
- package/dist/react/clipboard/domToMarkdown.js.map +1 -0
- package/dist/react/clipboard/index.d.ts +4 -0
- package/dist/react/clipboard/index.d.ts.map +1 -0
- package/dist/react/clipboard/index.js +13 -0
- package/dist/react/clipboard/index.js.map +1 -0
- package/dist/react/clipboard/useSelectionMarkdown.d.ts +13 -0
- package/dist/react/clipboard/useSelectionMarkdown.d.ts.map +1 -0
- package/dist/react/clipboard/useSelectionMarkdown.js +41 -0
- package/dist/react/clipboard/useSelectionMarkdown.js.map +1 -0
- package/dist/react/code-editor/CodeEditor.d.ts +30 -0
- package/dist/react/code-editor/CodeEditor.d.ts.map +1 -0
- package/dist/react/code-editor/CodeEditor.js +127 -0
- package/dist/react/code-editor/CodeEditor.js.map +1 -0
- package/dist/react/code-editor/CodeViewer.d.ts +4 -0
- package/dist/react/code-editor/CodeViewer.d.ts.map +1 -0
- package/dist/react/code-editor/CodeViewer.js +22 -0
- package/dist/react/code-editor/CodeViewer.js.map +1 -0
- package/dist/react/code-editor/index.d.ts +4 -0
- package/dist/react/code-editor/index.d.ts.map +1 -0
- package/dist/react/code-editor/index.js +10 -0
- package/dist/react/code-editor/index.js.map +1 -0
- package/dist/react/code-editor/languages.d.ts +35 -0
- package/dist/react/code-editor/languages.d.ts.map +1 -0
- package/dist/react/code-editor/languages.js +300 -0
- package/dist/react/code-editor/languages.js.map +1 -0
- package/dist/react/code-editor/theme.d.ts +3 -0
- package/dist/react/code-editor/theme.d.ts.map +1 -0
- package/dist/react/code-editor/theme.js +186 -0
- package/dist/react/code-editor/theme.js.map +1 -0
- package/dist/react/colorScheme/ThemeToggle.d.ts +16 -0
- package/dist/react/colorScheme/ThemeToggle.d.ts.map +1 -0
- package/dist/react/colorScheme/ThemeToggle.js +17 -0
- package/dist/react/colorScheme/ThemeToggle.js.map +1 -0
- package/dist/react/colorScheme/useColorScheme.d.ts +22 -0
- package/dist/react/colorScheme/useColorScheme.d.ts.map +1 -0
- package/dist/react/colorScheme/useColorScheme.js +18 -0
- package/dist/react/colorScheme/useColorScheme.js.map +1 -0
- package/dist/react/companion-link/CompanionLinkBar.d.ts +15 -0
- package/dist/react/companion-link/CompanionLinkBar.d.ts.map +1 -0
- package/dist/react/companion-link/CompanionLinkBar.js +21 -0
- package/dist/react/companion-link/CompanionLinkBar.js.map +1 -0
- package/dist/react/companion-link/CompanionLinkStatus.d.ts +19 -0
- package/dist/react/companion-link/CompanionLinkStatus.d.ts.map +1 -0
- package/dist/react/companion-link/CompanionLinkStatus.js +44 -0
- package/dist/react/companion-link/CompanionLinkStatus.js.map +1 -0
- package/dist/react/companion-link/StaleMirrorBanner.d.ts +15 -0
- package/dist/react/companion-link/StaleMirrorBanner.d.ts.map +1 -0
- package/dist/react/companion-link/StaleMirrorBanner.js +16 -0
- package/dist/react/companion-link/StaleMirrorBanner.js.map +1 -0
- package/dist/react/companion-link/index.d.ts +17 -0
- package/dist/react/companion-link/index.d.ts.map +1 -0
- package/dist/react/companion-link/index.js +17 -0
- package/dist/react/companion-link/index.js.map +1 -0
- package/dist/react/companion-link/logic.d.ts +53 -0
- package/dist/react/companion-link/logic.d.ts.map +1 -0
- package/dist/react/companion-link/logic.js +88 -0
- package/dist/react/companion-link/logic.js.map +1 -0
- package/dist/react/companion-link/store.d.ts +36 -0
- package/dist/react/companion-link/store.d.ts.map +1 -0
- package/dist/react/companion-link/store.js +70 -0
- package/dist/react/companion-link/store.js.map +1 -0
- package/dist/react/companion-link/types.d.ts +92 -0
- package/dist/react/companion-link/types.d.ts.map +1 -0
- package/dist/react/companion-link/types.js +13 -0
- package/dist/react/companion-link/types.js.map +1 -0
- package/dist/react/companion-link/useCompanionLink.d.ts +33 -0
- package/dist/react/companion-link/useCompanionLink.d.ts.map +1 -0
- package/dist/react/companion-link/useCompanionLink.js +69 -0
- package/dist/react/companion-link/useCompanionLink.js.map +1 -0
- package/dist/react/components/Accordion.d.ts +40 -0
- package/dist/react/components/Accordion.d.ts.map +1 -0
- package/dist/react/components/Accordion.js +20 -0
- package/dist/react/components/Accordion.js.map +1 -0
- package/dist/react/components/ActionBar.d.ts +34 -1
- package/dist/react/components/ActionBar.d.ts.map +1 -1
- package/dist/react/components/ActionBar.js +63 -4
- package/dist/react/components/ActionBar.js.map +1 -1
- package/dist/react/components/ActionGroup.d.ts +42 -0
- package/dist/react/components/ActionGroup.d.ts.map +1 -0
- package/dist/react/components/ActionGroup.js +33 -0
- package/dist/react/components/ActionGroup.js.map +1 -0
- package/dist/react/components/AddItemsMenu.d.ts.map +1 -1
- package/dist/react/components/AddItemsMenu.js +7 -1
- package/dist/react/components/AddItemsMenu.js.map +1 -1
- package/dist/react/components/Alert.d.ts.map +1 -1
- package/dist/react/components/Alert.js +2 -1
- package/dist/react/components/Alert.js.map +1 -1
- package/dist/react/components/AmbientBackdrop.d.ts +49 -0
- package/dist/react/components/AmbientBackdrop.d.ts.map +1 -0
- package/dist/react/components/AmbientBackdrop.js +41 -0
- package/dist/react/components/AmbientBackdrop.js.map +1 -0
- package/dist/react/components/AppShell.d.ts +27 -4
- package/dist/react/components/AppShell.d.ts.map +1 -1
- package/dist/react/components/AppShell.js +14 -5
- package/dist/react/components/AppShell.js.map +1 -1
- package/dist/react/components/AsyncPanel.d.ts +39 -0
- package/dist/react/components/AsyncPanel.d.ts.map +1 -0
- package/dist/react/components/AsyncPanel.js +40 -0
- package/dist/react/components/AsyncPanel.js.map +1 -0
- package/dist/react/components/AutoGrowTextarea.d.ts.map +1 -1
- package/dist/react/components/AutoGrowTextarea.js +5 -1
- package/dist/react/components/AutoGrowTextarea.js.map +1 -1
- package/dist/react/components/Autocomplete.d.ts +47 -0
- package/dist/react/components/Autocomplete.d.ts.map +1 -0
- package/dist/react/components/Autocomplete.js +55 -0
- package/dist/react/components/Autocomplete.js.map +1 -0
- package/dist/react/components/Avatar.d.ts +23 -0
- package/dist/react/components/Avatar.d.ts.map +1 -0
- package/dist/react/components/Avatar.js +36 -0
- package/dist/react/components/Avatar.js.map +1 -0
- package/dist/react/components/AvatarStack.d.ts +20 -0
- package/dist/react/components/AvatarStack.d.ts.map +1 -0
- package/dist/react/components/AvatarStack.js +14 -0
- package/dist/react/components/AvatarStack.js.map +1 -0
- package/dist/react/components/Badge.d.ts +19 -14
- package/dist/react/components/Badge.d.ts.map +1 -1
- package/dist/react/components/Badge.js +56 -15
- package/dist/react/components/Badge.js.map +1 -1
- package/dist/react/components/BuildFreshness.d.ts +81 -0
- package/dist/react/components/BuildFreshness.d.ts.map +1 -0
- package/dist/react/components/BuildFreshness.js +120 -0
- package/dist/react/components/BuildFreshness.js.map +1 -0
- package/dist/react/components/Button.d.ts +44 -5
- package/dist/react/components/Button.d.ts.map +1 -1
- package/dist/react/components/Button.js +102 -15
- package/dist/react/components/Button.js.map +1 -1
- package/dist/react/components/ButtonGroup.d.ts +2 -2
- package/dist/react/components/ButtonGroup.d.ts.map +1 -1
- package/dist/react/components/ButtonGroup.js +7 -3
- package/dist/react/components/ButtonGroup.js.map +1 -1
- package/dist/react/components/ButtonLink.d.ts +2 -2
- package/dist/react/components/ButtonLink.d.ts.map +1 -1
- package/dist/react/components/ButtonLink.js +2 -2
- package/dist/react/components/ButtonLink.js.map +1 -1
- package/dist/react/components/CardTapTarget.d.ts +40 -0
- package/dist/react/components/CardTapTarget.d.ts.map +1 -0
- package/dist/react/components/CardTapTarget.js +40 -0
- package/dist/react/components/CardTapTarget.js.map +1 -0
- package/dist/react/components/ChartTablePanel.d.ts +56 -0
- package/dist/react/components/ChartTablePanel.d.ts.map +1 -0
- package/dist/react/components/ChartTablePanel.js +71 -0
- package/dist/react/components/ChartTablePanel.js.map +1 -0
- package/dist/react/components/Checkbox.d.ts +19 -3
- package/dist/react/components/Checkbox.d.ts.map +1 -1
- package/dist/react/components/Checkbox.js +28 -8
- package/dist/react/components/Checkbox.js.map +1 -1
- package/dist/react/components/ChipFilterStrip.d.ts +30 -0
- package/dist/react/components/ChipFilterStrip.d.ts.map +1 -0
- package/dist/react/components/ChipFilterStrip.js +61 -0
- package/dist/react/components/ChipFilterStrip.js.map +1 -0
- package/dist/react/components/ChoiceMenu.d.ts +55 -0
- package/dist/react/components/ChoiceMenu.d.ts.map +1 -0
- package/dist/react/components/ChoiceMenu.js +90 -0
- package/dist/react/components/ChoiceMenu.js.map +1 -0
- package/dist/react/components/CodeArea.d.ts +58 -0
- package/dist/react/components/CodeArea.d.ts.map +1 -0
- package/dist/react/components/CodeArea.js +52 -0
- package/dist/react/components/CodeArea.js.map +1 -0
- package/dist/react/components/CodeChip.d.ts +37 -0
- package/dist/react/components/CodeChip.d.ts.map +1 -0
- package/dist/react/components/CodeChip.js +35 -0
- package/dist/react/components/CodeChip.js.map +1 -0
- package/dist/react/components/CodeFieldInput.d.ts.map +1 -1
- package/dist/react/components/CodeFieldInput.js +6 -16
- package/dist/react/components/CodeFieldInput.js.map +1 -1
- package/dist/react/components/Collapsible.d.ts.map +1 -1
- package/dist/react/components/Collapsible.js +5 -1
- package/dist/react/components/Collapsible.js.map +1 -1
- package/dist/react/components/ColorField.d.ts +5 -1
- package/dist/react/components/ColorField.d.ts.map +1 -1
- package/dist/react/components/ColorField.js +14 -2
- package/dist/react/components/ColorField.js.map +1 -1
- package/dist/react/components/ComboboxField.d.ts +53 -0
- package/dist/react/components/ComboboxField.d.ts.map +1 -0
- package/dist/react/components/ComboboxField.js +109 -0
- package/dist/react/components/ComboboxField.js.map +1 -0
- package/dist/react/components/CommentThread.d.ts +50 -0
- package/dist/react/components/CommentThread.d.ts.map +1 -0
- package/dist/react/components/CommentThread.js +83 -0
- package/dist/react/components/CommentThread.js.map +1 -0
- package/dist/react/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/react/components/ConfirmDialog.js +5 -1
- package/dist/react/components/ConfirmDialog.js.map +1 -1
- package/dist/react/components/ConnectionHealer.d.ts +51 -0
- package/dist/react/components/ConnectionHealer.d.ts.map +1 -0
- package/dist/react/components/ConnectionHealer.js +107 -0
- package/dist/react/components/ConnectionHealer.js.map +1 -0
- package/dist/react/components/CopyButton.d.ts +1 -1
- package/dist/react/components/CopyButton.d.ts.map +1 -1
- package/dist/react/components/CopyButton.js +3 -3
- package/dist/react/components/CopyButton.js.map +1 -1
- package/dist/react/components/CopyableText.d.ts +29 -0
- package/dist/react/components/CopyableText.d.ts.map +1 -0
- package/dist/react/components/CopyableText.js +28 -0
- package/dist/react/components/CopyableText.js.map +1 -0
- package/dist/react/components/DataTable/CardView.d.ts +9 -1
- package/dist/react/components/DataTable/CardView.d.ts.map +1 -1
- package/dist/react/components/DataTable/CardView.js +7 -2
- package/dist/react/components/DataTable/CardView.js.map +1 -1
- package/dist/react/components/DataTable/ColumnChecklist.d.ts +37 -0
- package/dist/react/components/DataTable/ColumnChecklist.d.ts.map +1 -0
- package/dist/react/components/DataTable/ColumnChecklist.js +34 -0
- package/dist/react/components/DataTable/ColumnChecklist.js.map +1 -0
- package/dist/react/components/DataTable/DataTable.d.ts +374 -2
- package/dist/react/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/react/components/DataTable/DataTable.js +561 -36
- package/dist/react/components/DataTable/DataTable.js.map +1 -1
- package/dist/react/components/DataTable/Pagination.d.ts.map +1 -1
- package/dist/react/components/DataTable/Pagination.js +2 -1
- package/dist/react/components/DataTable/Pagination.js.map +1 -1
- package/dist/react/components/DataTable/RowActions.d.ts +10 -5
- package/dist/react/components/DataTable/RowActions.d.ts.map +1 -1
- package/dist/react/components/DataTable/RowActions.js +13 -8
- package/dist/react/components/DataTable/RowActions.js.map +1 -1
- package/dist/react/components/DataTable/SearchBox.d.ts +46 -0
- package/dist/react/components/DataTable/SearchBox.d.ts.map +1 -0
- package/dist/react/components/DataTable/SearchBox.js +67 -0
- package/dist/react/components/DataTable/SearchBox.js.map +1 -0
- package/dist/react/components/DataTable/SortHeader.d.ts +18 -1
- package/dist/react/components/DataTable/SortHeader.d.ts.map +1 -1
- package/dist/react/components/DataTable/SortHeader.js +40 -3
- package/dist/react/components/DataTable/SortHeader.js.map +1 -1
- package/dist/react/components/DataTable/SortStack.d.ts +30 -0
- package/dist/react/components/DataTable/SortStack.d.ts.map +1 -0
- package/dist/react/components/DataTable/SortStack.js +31 -0
- package/dist/react/components/DataTable/SortStack.js.map +1 -0
- package/dist/react/components/DataTable/TableFilterBuilder.d.ts +61 -0
- package/dist/react/components/DataTable/TableFilterBuilder.d.ts.map +1 -0
- package/dist/react/components/DataTable/TableFilterBuilder.js +92 -0
- package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -0
- package/dist/react/components/DataTable/TableViewToggle.d.ts +22 -0
- package/dist/react/components/DataTable/TableViewToggle.d.ts.map +1 -0
- package/dist/react/components/DataTable/TableViewToggle.js +30 -0
- package/dist/react/components/DataTable/TableViewToggle.js.map +1 -0
- package/dist/react/components/DataTable/Toolbar.d.ts +25 -6
- package/dist/react/components/DataTable/Toolbar.d.ts.map +1 -1
- package/dist/react/components/DataTable/Toolbar.js +33 -9
- package/dist/react/components/DataTable/Toolbar.js.map +1 -1
- package/dist/react/components/DataTable/ViewOptionsMenu.d.ts +14 -3
- package/dist/react/components/DataTable/ViewOptionsMenu.d.ts.map +1 -1
- package/dist/react/components/DataTable/ViewOptionsMenu.js +32 -11
- package/dist/react/components/DataTable/ViewOptionsMenu.js.map +1 -1
- package/dist/react/components/DataTable/cells/CellRenderer.d.ts.map +1 -1
- package/dist/react/components/DataTable/cells/CellRenderer.js +109 -8
- package/dist/react/components/DataTable/cells/CellRenderer.js.map +1 -1
- package/dist/react/components/DataTable/cells/CodeCell.d.ts.map +1 -1
- package/dist/react/components/DataTable/cells/CodeCell.js +2 -1
- package/dist/react/components/DataTable/cells/CodeCell.js.map +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.d.ts +8 -1
- package/dist/react/components/DataTable/cells/LinkCell.d.ts.map +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.js +10 -3
- package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
- package/dist/react/components/DataTable/filterQuery.d.ts +104 -0
- package/dist/react/components/DataTable/filterQuery.d.ts.map +1 -0
- package/dist/react/components/DataTable/filterQuery.js +221 -0
- package/dist/react/components/DataTable/filterQuery.js.map +1 -0
- package/dist/react/components/DataTable/index.d.ts +10 -1
- package/dist/react/components/DataTable/index.d.ts.map +1 -1
- package/dist/react/components/DataTable/index.js +21 -1
- package/dist/react/components/DataTable/index.js.map +1 -1
- package/dist/react/components/DataTable/rowDrag.d.ts +83 -0
- package/dist/react/components/DataTable/rowDrag.d.ts.map +1 -0
- package/dist/react/components/DataTable/rowDrag.js +129 -0
- package/dist/react/components/DataTable/rowDrag.js.map +1 -0
- package/dist/react/components/DataTable/types.d.ts +27 -2
- package/dist/react/components/DataTable/types.d.ts.map +1 -1
- package/dist/react/components/DataTable/types.js +34 -1
- package/dist/react/components/DataTable/types.js.map +1 -1
- package/dist/react/components/DataTable/useTableViewMode.d.ts +69 -0
- package/dist/react/components/DataTable/useTableViewMode.d.ts.map +1 -0
- package/dist/react/components/DataTable/useTableViewMode.js +89 -0
- package/dist/react/components/DataTable/useTableViewMode.js.map +1 -0
- package/dist/react/components/DatePicker.d.ts +31 -0
- package/dist/react/components/DatePicker.d.ts.map +1 -0
- package/dist/react/components/DatePicker.js +53 -0
- package/dist/react/components/DatePicker.js.map +1 -0
- package/dist/react/components/DateRangePicker.d.ts +29 -0
- package/dist/react/components/DateRangePicker.d.ts.map +1 -0
- package/dist/react/components/DateRangePicker.js +60 -0
- package/dist/react/components/DateRangePicker.js.map +1 -0
- package/dist/react/components/DateTimeField.d.ts +24 -0
- package/dist/react/components/DateTimeField.d.ts.map +1 -0
- package/dist/react/components/DateTimeField.js +33 -0
- package/dist/react/components/DateTimeField.js.map +1 -0
- package/dist/react/components/DeleteButton.d.ts +41 -0
- package/dist/react/components/DeleteButton.d.ts.map +1 -0
- package/dist/react/components/DeleteButton.js +40 -0
- package/dist/react/components/DeleteButton.js.map +1 -0
- package/dist/react/components/DiscardConfirmDialog.d.ts.map +1 -1
- package/dist/react/components/DiscardConfirmDialog.js +1 -1
- package/dist/react/components/DiscardConfirmDialog.js.map +1 -1
- package/dist/react/components/DisclosureButton.d.ts.map +1 -1
- package/dist/react/components/DisclosureButton.js +4 -1
- package/dist/react/components/DisclosureButton.js.map +1 -1
- package/dist/react/components/DismissButton.d.ts +4 -2
- package/dist/react/components/DismissButton.d.ts.map +1 -1
- package/dist/react/components/DismissButton.js +2 -1
- package/dist/react/components/DismissButton.js.map +1 -1
- package/dist/react/components/DragHandle.d.ts.map +1 -1
- package/dist/react/components/DragHandle.js +7 -1
- package/dist/react/components/DragHandle.js.map +1 -1
- package/dist/react/components/Drawer.d.ts +17 -6
- package/dist/react/components/Drawer.d.ts.map +1 -1
- package/dist/react/components/Drawer.js +25 -6
- package/dist/react/components/Drawer.js.map +1 -1
- package/dist/react/components/DropSlot.d.ts +38 -0
- package/dist/react/components/DropSlot.d.ts.map +1 -0
- package/dist/react/components/DropSlot.js +30 -0
- package/dist/react/components/DropSlot.js.map +1 -0
- package/dist/react/components/DropdownMenu.d.ts +34 -2
- package/dist/react/components/DropdownMenu.d.ts.map +1 -1
- package/dist/react/components/DropdownMenu.js +8 -5
- package/dist/react/components/DropdownMenu.js.map +1 -1
- package/dist/react/components/ElsewhereNotice.d.ts +57 -0
- package/dist/react/components/ElsewhereNotice.d.ts.map +1 -0
- package/dist/react/components/ElsewhereNotice.js +18 -0
- package/dist/react/components/ElsewhereNotice.js.map +1 -0
- package/dist/react/components/EmojiField.d.ts.map +1 -1
- package/dist/react/components/EmojiField.js +5 -1
- package/dist/react/components/EmojiField.js.map +1 -1
- package/dist/react/components/EmptyState.d.ts +23 -5
- package/dist/react/components/EmptyState.d.ts.map +1 -1
- package/dist/react/components/EmptyState.js +13 -4
- package/dist/react/components/EmptyState.js.map +1 -1
- package/dist/react/components/EnvCompare.d.ts +1 -1
- package/dist/react/components/EnvCompare.d.ts.map +1 -1
- package/dist/react/components/EnvCompare.js +2 -2
- package/dist/react/components/EnvCompare.js.map +1 -1
- package/dist/react/components/EnvEditor.d.ts.map +1 -1
- package/dist/react/components/EnvEditor.js +6 -5
- package/dist/react/components/EnvEditor.js.map +1 -1
- package/dist/react/components/ErrorBoundary.d.ts +62 -0
- package/dist/react/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/react/components/ErrorBoundary.js +156 -0
- package/dist/react/components/ErrorBoundary.js.map +1 -0
- package/dist/react/components/ErrorCard.d.ts +46 -0
- package/dist/react/components/ErrorCard.d.ts.map +1 -0
- package/dist/react/components/ErrorCard.js +33 -0
- package/dist/react/components/ErrorCard.js.map +1 -0
- package/dist/react/components/EventTimeline.d.ts +37 -0
- package/dist/react/components/EventTimeline.d.ts.map +1 -0
- package/dist/react/components/EventTimeline.js +30 -0
- package/dist/react/components/EventTimeline.js.map +1 -0
- package/dist/react/components/ExternalLink.d.ts +63 -0
- package/dist/react/components/ExternalLink.d.ts.map +1 -0
- package/dist/react/components/ExternalLink.js +64 -0
- package/dist/react/components/ExternalLink.js.map +1 -0
- package/dist/react/components/Field.d.ts +15 -1
- package/dist/react/components/Field.d.ts.map +1 -1
- package/dist/react/components/Field.js +2 -2
- package/dist/react/components/Field.js.map +1 -1
- package/dist/react/components/FieldInput.d.ts +1 -1
- package/dist/react/components/FieldInput.d.ts.map +1 -1
- package/dist/react/components/FieldInput.js +33 -4
- package/dist/react/components/FieldInput.js.map +1 -1
- package/dist/react/components/FileActions.d.ts +25 -0
- package/dist/react/components/FileActions.d.ts.map +1 -0
- package/dist/react/components/FileActions.js +59 -0
- package/dist/react/components/FileActions.js.map +1 -0
- package/dist/react/components/FileDropZone.d.ts +107 -0
- package/dist/react/components/FileDropZone.d.ts.map +1 -0
- package/dist/react/components/FileDropZone.js +139 -0
- package/dist/react/components/FileDropZone.js.map +1 -0
- package/dist/react/components/FileLocation.d.ts +49 -0
- package/dist/react/components/FileLocation.d.ts.map +1 -0
- package/dist/react/components/FileLocation.js +32 -0
- package/dist/react/components/FileLocation.js.map +1 -0
- package/dist/react/components/FileTypeIcon.d.ts +19 -0
- package/dist/react/components/FileTypeIcon.d.ts.map +1 -0
- package/dist/react/components/FileTypeIcon.js +81 -0
- package/dist/react/components/FileTypeIcon.js.map +1 -0
- package/dist/react/components/FindingsList.d.ts +47 -0
- package/dist/react/components/FindingsList.d.ts.map +1 -0
- package/dist/react/components/FindingsList.js +41 -0
- package/dist/react/components/FindingsList.js.map +1 -0
- package/dist/react/components/HoverCard.d.ts +2 -0
- package/dist/react/components/HoverCard.d.ts.map +1 -1
- package/dist/react/components/HoverCard.js +7 -3
- package/dist/react/components/HoverCard.js.map +1 -1
- package/dist/react/components/HudPill.d.ts +21 -0
- package/dist/react/components/HudPill.d.ts.map +1 -0
- package/dist/react/components/HudPill.js +23 -0
- package/dist/react/components/HudPill.js.map +1 -0
- package/dist/react/components/IconButton.d.ts +22 -7
- package/dist/react/components/IconButton.d.ts.map +1 -1
- package/dist/react/components/IconButton.js +12 -6
- package/dist/react/components/IconButton.js.map +1 -1
- package/dist/react/components/ImpactDialog.d.ts +81 -0
- package/dist/react/components/ImpactDialog.d.ts.map +1 -0
- package/dist/react/components/ImpactDialog.js +80 -0
- package/dist/react/components/ImpactDialog.js.map +1 -0
- package/dist/react/components/InfoHint.d.ts.map +1 -1
- package/dist/react/components/InfoHint.js +22 -2
- package/dist/react/components/InfoHint.js.map +1 -1
- package/dist/react/components/InheritBadge.d.ts +65 -0
- package/dist/react/components/InheritBadge.d.ts.map +1 -0
- package/dist/react/components/InheritBadge.js +70 -0
- package/dist/react/components/InheritBadge.js.map +1 -0
- package/dist/react/components/InlineEditableText.d.ts +14 -1
- package/dist/react/components/InlineEditableText.d.ts.map +1 -1
- package/dist/react/components/InlineEditableText.js +52 -13
- package/dist/react/components/InlineEditableText.js.map +1 -1
- package/dist/react/components/Input.d.ts +14 -7
- package/dist/react/components/Input.d.ts.map +1 -1
- package/dist/react/components/Input.js +13 -9
- package/dist/react/components/Input.js.map +1 -1
- package/dist/react/components/IsolatedFrame.d.ts +59 -0
- package/dist/react/components/IsolatedFrame.d.ts.map +1 -0
- package/dist/react/components/IsolatedFrame.js +54 -0
- package/dist/react/components/IsolatedFrame.js.map +1 -0
- package/dist/react/components/JsonEditor.d.ts +1 -1
- package/dist/react/components/JsonEditor.d.ts.map +1 -1
- package/dist/react/components/JsonEditor.js +10 -3
- package/dist/react/components/JsonEditor.js.map +1 -1
- package/dist/react/components/Lightbox.d.ts.map +1 -1
- package/dist/react/components/Lightbox.js +2 -1
- package/dist/react/components/Lightbox.js.map +1 -1
- package/dist/react/components/LogViewer.d.ts +71 -0
- package/dist/react/components/LogViewer.d.ts.map +1 -0
- package/dist/react/components/LogViewer.js +105 -0
- package/dist/react/components/LogViewer.js.map +1 -0
- package/dist/react/components/MeterList.d.ts +64 -0
- package/dist/react/components/MeterList.d.ts.map +1 -0
- package/dist/react/components/MeterList.js +51 -0
- package/dist/react/components/MeterList.js.map +1 -0
- package/dist/react/components/Modal.d.ts +70 -7
- package/dist/react/components/Modal.d.ts.map +1 -1
- package/dist/react/components/Modal.js +28 -10
- package/dist/react/components/Modal.js.map +1 -1
- package/dist/react/components/MultiSelectField.d.ts +16 -13
- package/dist/react/components/MultiSelectField.d.ts.map +1 -1
- package/dist/react/components/MultiSelectField.js +11 -21
- package/dist/react/components/MultiSelectField.js.map +1 -1
- package/dist/react/components/NativeSelect.d.ts +72 -0
- package/dist/react/components/NativeSelect.d.ts.map +1 -0
- package/dist/react/components/NativeSelect.js +87 -0
- package/dist/react/components/NativeSelect.js.map +1 -0
- package/dist/react/components/OnlineDot.d.ts +13 -0
- package/dist/react/components/OnlineDot.d.ts.map +1 -0
- package/dist/react/components/OnlineDot.js +12 -0
- package/dist/react/components/OnlineDot.js.map +1 -0
- package/dist/react/components/OtpInput.d.ts +34 -0
- package/dist/react/components/OtpInput.d.ts.map +1 -0
- package/dist/react/components/OtpInput.js +84 -0
- package/dist/react/components/OtpInput.js.map +1 -0
- package/dist/react/components/Page.d.ts +44 -5
- package/dist/react/components/Page.d.ts.map +1 -1
- package/dist/react/components/Page.js +31 -6
- package/dist/react/components/Page.js.map +1 -1
- package/dist/react/components/PanelGrid.d.ts +103 -0
- package/dist/react/components/PanelGrid.d.ts.map +1 -0
- package/dist/react/components/PanelGrid.js +77 -0
- package/dist/react/components/PanelGrid.js.map +1 -0
- package/dist/react/components/PanelSeparator.d.ts +35 -0
- package/dist/react/components/PanelSeparator.d.ts.map +1 -0
- package/dist/react/components/PanelSeparator.js +31 -0
- package/dist/react/components/PanelSeparator.js.map +1 -0
- package/dist/react/components/PathText.d.ts +62 -0
- package/dist/react/components/PathText.d.ts.map +1 -0
- package/dist/react/components/PathText.js +37 -0
- package/dist/react/components/PathText.js.map +1 -0
- package/dist/react/components/PluginCard.d.ts +35 -0
- package/dist/react/components/PluginCard.d.ts.map +1 -0
- package/dist/react/components/PluginCard.js +110 -0
- package/dist/react/components/PluginCard.js.map +1 -0
- package/dist/react/components/Popover.d.ts.map +1 -1
- package/dist/react/components/Popover.js +2 -2
- package/dist/react/components/Popover.js.map +1 -1
- package/dist/react/components/Progress.d.ts +46 -0
- package/dist/react/components/Progress.d.ts.map +1 -0
- package/dist/react/components/Progress.js +27 -0
- package/dist/react/components/Progress.js.map +1 -0
- package/dist/react/components/PromptDialog.d.ts +24 -0
- package/dist/react/components/PromptDialog.d.ts.map +1 -0
- package/dist/react/components/PromptDialog.js +31 -0
- package/dist/react/components/PromptDialog.js.map +1 -0
- package/dist/react/components/QueryBoundary.d.ts +8 -1
- package/dist/react/components/QueryBoundary.d.ts.map +1 -1
- package/dist/react/components/QueryBoundary.js +4 -1
- package/dist/react/components/QueryBoundary.js.map +1 -1
- package/dist/react/components/RatingField.d.ts.map +1 -1
- package/dist/react/components/RatingField.js +5 -1
- package/dist/react/components/RatingField.js.map +1 -1
- package/dist/react/components/ReactionBar.d.ts +25 -0
- package/dist/react/components/ReactionBar.d.ts.map +1 -0
- package/dist/react/components/ReactionBar.js +28 -0
- package/dist/react/components/ReactionBar.js.map +1 -0
- package/dist/react/components/ReactionPicker.d.ts +20 -0
- package/dist/react/components/ReactionPicker.d.ts.map +1 -0
- package/dist/react/components/ReactionPicker.js +18 -0
- package/dist/react/components/ReactionPicker.js.map +1 -0
- package/dist/react/components/ResponsiveWorkbench.d.ts +62 -0
- package/dist/react/components/ResponsiveWorkbench.d.ts.map +1 -0
- package/dist/react/components/ResponsiveWorkbench.js +44 -0
- package/dist/react/components/ResponsiveWorkbench.js.map +1 -0
- package/dist/react/components/ScrollArea.d.ts +17 -3
- package/dist/react/components/ScrollArea.d.ts.map +1 -1
- package/dist/react/components/ScrollArea.js +42 -8
- package/dist/react/components/ScrollArea.js.map +1 -1
- package/dist/react/components/ScrollToTopButton.d.ts.map +1 -1
- package/dist/react/components/ScrollToTopButton.js +6 -1
- package/dist/react/components/ScrollToTopButton.js.map +1 -1
- package/dist/react/components/SecretInput.d.ts +32 -2
- package/dist/react/components/SecretInput.d.ts.map +1 -1
- package/dist/react/components/SecretInput.js +25 -5
- package/dist/react/components/SecretInput.js.map +1 -1
- package/dist/react/components/Section.d.ts +18 -2
- package/dist/react/components/Section.d.ts.map +1 -1
- package/dist/react/components/Section.js +6 -3
- package/dist/react/components/Section.js.map +1 -1
- package/dist/react/components/SegmentedControl.d.ts +13 -2
- package/dist/react/components/SegmentedControl.d.ts.map +1 -1
- package/dist/react/components/SegmentedControl.js +12 -3
- package/dist/react/components/SegmentedControl.js.map +1 -1
- package/dist/react/components/SelectField.d.ts +21 -5
- package/dist/react/components/SelectField.d.ts.map +1 -1
- package/dist/react/components/SelectField.js +9 -7
- package/dist/react/components/SelectField.js.map +1 -1
- package/dist/react/components/SelectableRow.d.ts +41 -0
- package/dist/react/components/SelectableRow.d.ts.map +1 -0
- package/dist/react/components/SelectableRow.js +39 -0
- package/dist/react/components/SelectableRow.js.map +1 -0
- package/dist/react/components/Skeleton.d.ts.map +1 -1
- package/dist/react/components/Skeleton.js.map +1 -1
- package/dist/react/components/Slider.d.ts +46 -0
- package/dist/react/components/Slider.d.ts.map +1 -0
- package/dist/react/components/Slider.js +27 -0
- package/dist/react/components/Slider.js.map +1 -0
- package/dist/react/components/SliderField.d.ts +43 -0
- package/dist/react/components/SliderField.d.ts.map +1 -0
- package/dist/react/components/SliderField.js +43 -0
- package/dist/react/components/SliderField.js.map +1 -0
- package/dist/react/components/Sparkline.d.ts +12 -0
- package/dist/react/components/Sparkline.d.ts.map +1 -0
- package/dist/react/components/Sparkline.js +19 -0
- package/dist/react/components/Sparkline.js.map +1 -0
- package/dist/react/components/SplitButton.d.ts +3 -1
- package/dist/react/components/SplitButton.d.ts.map +1 -1
- package/dist/react/components/SplitButton.js +2 -2
- package/dist/react/components/SplitButton.js.map +1 -1
- package/dist/react/components/SplitPane.d.ts +56 -0
- package/dist/react/components/SplitPane.d.ts.map +1 -0
- package/dist/react/components/SplitPane.js +25 -0
- package/dist/react/components/SplitPane.js.map +1 -0
- package/dist/react/components/StarRating.d.ts +63 -0
- package/dist/react/components/StarRating.d.ts.map +1 -0
- package/dist/react/components/StarRating.js +116 -0
- package/dist/react/components/StarRating.js.map +1 -0
- package/dist/react/components/StatStrip.d.ts +47 -0
- package/dist/react/components/StatStrip.d.ts.map +1 -0
- package/dist/react/components/StatStrip.js +59 -0
- package/dist/react/components/StatStrip.js.map +1 -0
- package/dist/react/components/StatTile.d.ts +84 -2
- package/dist/react/components/StatTile.d.ts.map +1 -1
- package/dist/react/components/StatTile.js +63 -16
- package/dist/react/components/StatTile.js.map +1 -1
- package/dist/react/components/StatTileGrid.d.ts +42 -0
- package/dist/react/components/StatTileGrid.d.ts.map +1 -0
- package/dist/react/components/StatTileGrid.js +57 -0
- package/dist/react/components/StatTileGrid.js.map +1 -0
- package/dist/react/components/StatusPill.d.ts +73 -0
- package/dist/react/components/StatusPill.d.ts.map +1 -0
- package/dist/react/components/StatusPill.js +101 -0
- package/dist/react/components/StatusPill.js.map +1 -0
- package/dist/react/components/Surface.d.ts +9 -3
- package/dist/react/components/Surface.d.ts.map +1 -1
- package/dist/react/components/Surface.js +14 -2
- package/dist/react/components/Surface.js.map +1 -1
- package/dist/react/components/SwatchPicker.d.ts +31 -0
- package/dist/react/components/SwatchPicker.d.ts.map +1 -0
- package/dist/react/components/SwatchPicker.js +19 -0
- package/dist/react/components/SwatchPicker.js.map +1 -0
- package/dist/react/components/Switch.d.ts.map +1 -1
- package/dist/react/components/Switch.js +10 -1
- package/dist/react/components/Switch.js.map +1 -1
- package/dist/react/components/Tabs.d.ts +65 -0
- package/dist/react/components/Tabs.d.ts.map +1 -0
- package/dist/react/components/Tabs.js +72 -0
- package/dist/react/components/Tabs.js.map +1 -0
- package/dist/react/components/TagStrip.d.ts +33 -0
- package/dist/react/components/TagStrip.d.ts.map +1 -0
- package/dist/react/components/TagStrip.js +30 -0
- package/dist/react/components/TagStrip.js.map +1 -0
- package/dist/react/components/TagsInput.d.ts +8 -1
- package/dist/react/components/TagsInput.d.ts.map +1 -1
- package/dist/react/components/TagsInput.js +9 -2
- package/dist/react/components/TagsInput.js.map +1 -1
- package/dist/react/components/ThresholdMeter.d.ts +42 -0
- package/dist/react/components/ThresholdMeter.d.ts.map +1 -0
- package/dist/react/components/ThresholdMeter.js +39 -0
- package/dist/react/components/ThresholdMeter.js.map +1 -0
- package/dist/react/components/Tooltip.d.ts +56 -6
- package/dist/react/components/Tooltip.d.ts.map +1 -1
- package/dist/react/components/Tooltip.js +239 -24
- package/dist/react/components/Tooltip.js.map +1 -1
- package/dist/react/components/TooltipImpl.d.ts +23 -0
- package/dist/react/components/TooltipImpl.d.ts.map +1 -0
- package/dist/react/components/TooltipImpl.js +222 -0
- package/dist/react/components/TooltipImpl.js.map +1 -0
- package/dist/react/components/TreeView.d.ts +41 -0
- package/dist/react/components/TreeView.d.ts.map +1 -0
- package/dist/react/components/TreeView.js +339 -0
- package/dist/react/components/TreeView.js.map +1 -0
- package/dist/react/components/TruncatedText.d.ts +53 -0
- package/dist/react/components/TruncatedText.d.ts.map +1 -0
- package/dist/react/components/TruncatedText.js +55 -0
- package/dist/react/components/TruncatedText.js.map +1 -0
- package/dist/react/components/WidgetHeader.d.ts +33 -0
- package/dist/react/components/WidgetHeader.d.ts.map +1 -0
- package/dist/react/components/WidgetHeader.js +26 -0
- package/dist/react/components/WidgetHeader.js.map +1 -0
- package/dist/react/components/Wizard/Stepper.d.ts +22 -4
- package/dist/react/components/Wizard/Stepper.d.ts.map +1 -1
- package/dist/react/components/Wizard/Stepper.js +29 -5
- package/dist/react/components/Wizard/Stepper.js.map +1 -1
- package/dist/react/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/react/components/Wizard/Wizard.js +2 -1
- package/dist/react/components/Wizard/Wizard.js.map +1 -1
- package/dist/react/components/auth/AuthCard.d.ts +42 -0
- package/dist/react/components/auth/AuthCard.d.ts.map +1 -0
- package/dist/react/components/auth/AuthCard.js +16 -0
- package/dist/react/components/auth/AuthCard.js.map +1 -0
- package/dist/react/components/auth/AuthForm.d.ts +38 -0
- package/dist/react/components/auth/AuthForm.d.ts.map +1 -0
- package/dist/react/components/auth/AuthForm.js +36 -0
- package/dist/react/components/auth/AuthForm.js.map +1 -0
- package/dist/react/components/auth/LoginForm.d.ts +52 -0
- package/dist/react/components/auth/LoginForm.d.ts.map +1 -0
- package/dist/react/components/auth/LoginForm.js +29 -0
- package/dist/react/components/auth/LoginForm.js.map +1 -0
- package/dist/react/components/auth/PasswordResetConfirm.d.ts +24 -0
- package/dist/react/components/auth/PasswordResetConfirm.d.ts.map +1 -0
- package/dist/react/components/auth/PasswordResetConfirm.js +29 -0
- package/dist/react/components/auth/PasswordResetConfirm.js.map +1 -0
- package/dist/react/components/auth/PasswordResetRequest.d.ts +24 -0
- package/dist/react/components/auth/PasswordResetRequest.d.ts.map +1 -0
- package/dist/react/components/auth/PasswordResetRequest.js +32 -0
- package/dist/react/components/auth/PasswordResetRequest.js.map +1 -0
- package/dist/react/components/auth/PasswordSetFields.d.ts +20 -0
- package/dist/react/components/auth/PasswordSetFields.d.ts.map +1 -0
- package/dist/react/components/auth/PasswordSetFields.js +17 -0
- package/dist/react/components/auth/PasswordSetFields.js.map +1 -0
- package/dist/react/components/auth/PasswordStrengthMeter.d.ts +15 -0
- package/dist/react/components/auth/PasswordStrengthMeter.d.ts.map +1 -0
- package/dist/react/components/auth/PasswordStrengthMeter.js +31 -0
- package/dist/react/components/auth/PasswordStrengthMeter.js.map +1 -0
- package/dist/react/components/auth/RegisterForm.d.ts +32 -0
- package/dist/react/components/auth/RegisterForm.d.ts.map +1 -0
- package/dist/react/components/auth/RegisterForm.js +33 -0
- package/dist/react/components/auth/RegisterForm.js.map +1 -0
- package/dist/react/components/auth/SetInitialPassword.d.ts +30 -0
- package/dist/react/components/auth/SetInitialPassword.d.ts.map +1 -0
- package/dist/react/components/auth/SetInitialPassword.js +44 -0
- package/dist/react/components/auth/SetInitialPassword.js.map +1 -0
- package/dist/react/components/auth/SignupForm.d.ts +40 -0
- package/dist/react/components/auth/SignupForm.d.ts.map +1 -0
- package/dist/react/components/auth/SignupForm.js +44 -0
- package/dist/react/components/auth/SignupForm.js.map +1 -0
- package/dist/react/components/auth/TotpEntry.d.ts +30 -0
- package/dist/react/components/auth/TotpEntry.d.ts.map +1 -0
- package/dist/react/components/auth/TotpEntry.js +36 -0
- package/dist/react/components/auth/TotpEntry.js.map +1 -0
- package/dist/react/components/auth/fields.d.ts +35 -0
- package/dist/react/components/auth/fields.d.ts.map +1 -0
- package/dist/react/components/auth/fields.js +25 -0
- package/dist/react/components/auth/fields.js.map +1 -0
- package/dist/react/components/auth/index.d.ts +16 -0
- package/dist/react/components/auth/index.d.ts.map +1 -0
- package/dist/react/components/auth/index.js +15 -0
- package/dist/react/components/auth/index.js.map +1 -0
- package/dist/react/components/auth/mapAuthError.d.ts +12 -0
- package/dist/react/components/auth/mapAuthError.d.ts.map +1 -0
- package/dist/react/components/auth/mapAuthError.js +55 -0
- package/dist/react/components/auth/mapAuthError.js.map +1 -0
- package/dist/react/components/auth/passwordStrength.d.ts +23 -0
- package/dist/react/components/auth/passwordStrength.d.ts.map +1 -0
- package/dist/react/components/auth/passwordStrength.js +31 -0
- package/dist/react/components/auth/passwordStrength.js.map +1 -0
- package/dist/react/components/auth/types.d.ts +38 -0
- package/dist/react/components/auth/types.d.ts.map +1 -0
- package/dist/react/components/auth/types.js +2 -0
- package/dist/react/components/auth/types.js.map +1 -0
- package/dist/react/components/buildFreshness.css +64 -0
- package/dist/react/components/calendar/CalendarLegend.d.ts +25 -0
- package/dist/react/components/calendar/CalendarLegend.d.ts.map +1 -0
- package/dist/react/components/calendar/CalendarLegend.js +20 -0
- package/dist/react/components/calendar/CalendarLegend.js.map +1 -0
- package/dist/react/components/calendar/DayAgenda.d.ts +29 -0
- package/dist/react/components/calendar/DayAgenda.d.ts.map +1 -0
- package/dist/react/components/calendar/DayAgenda.js +27 -0
- package/dist/react/components/calendar/DayAgenda.js.map +1 -0
- package/dist/react/components/calendar/EventChip.d.ts +15 -0
- package/dist/react/components/calendar/EventChip.d.ts.map +1 -0
- package/dist/react/components/calendar/EventChip.js +28 -0
- package/dist/react/components/calendar/EventChip.js.map +1 -0
- package/dist/react/components/calendar/MonthGrid.d.ts +54 -0
- package/dist/react/components/calendar/MonthGrid.d.ts.map +1 -0
- package/dist/react/components/calendar/MonthGrid.js +51 -0
- package/dist/react/components/calendar/MonthGrid.js.map +1 -0
- package/dist/react/components/calendar/WeekView.d.ts +22 -0
- package/dist/react/components/calendar/WeekView.d.ts.map +1 -0
- package/dist/react/components/calendar/WeekView.js +37 -0
- package/dist/react/components/calendar/WeekView.js.map +1 -0
- package/dist/react/components/calendar/colorUtils.d.ts +15 -0
- package/dist/react/components/calendar/colorUtils.d.ts.map +1 -0
- package/dist/react/components/calendar/colorUtils.js +96 -0
- package/dist/react/components/calendar/colorUtils.js.map +1 -0
- package/dist/react/components/calendar/index.d.ts +9 -0
- package/dist/react/components/calendar/index.d.ts.map +1 -0
- package/dist/react/components/calendar/index.js +8 -0
- package/dist/react/components/calendar/index.js.map +1 -0
- package/dist/react/components/calendar/occurrences.d.ts +9 -0
- package/dist/react/components/calendar/occurrences.d.ts.map +1 -0
- package/dist/react/components/calendar/occurrences.js +18 -0
- package/dist/react/components/calendar/occurrences.js.map +1 -0
- package/dist/react/components/calendar/types.d.ts +46 -0
- package/dist/react/components/calendar/types.d.ts.map +1 -0
- package/dist/react/components/calendar/types.js +2 -0
- package/dist/react/components/calendar/types.js.map +1 -0
- package/dist/react/components/revealOnHover.d.ts.map +1 -1
- package/dist/react/components/revealOnHover.js +2 -1
- package/dist/react/components/revealOnHover.js.map +1 -1
- package/dist/react/components/sharing/RecipientAvatar.d.ts +13 -0
- package/dist/react/components/sharing/RecipientAvatar.d.ts.map +1 -0
- package/dist/react/components/sharing/RecipientAvatar.js +31 -0
- package/dist/react/components/sharing/RecipientAvatar.js.map +1 -0
- package/dist/react/components/sharing/RecipientPicker.d.ts +26 -0
- package/dist/react/components/sharing/RecipientPicker.d.ts.map +1 -0
- package/dist/react/components/sharing/RecipientPicker.js +66 -0
- package/dist/react/components/sharing/RecipientPicker.js.map +1 -0
- package/dist/react/components/sharing/ShareControl.d.ts +26 -0
- package/dist/react/components/sharing/ShareControl.d.ts.map +1 -0
- package/dist/react/components/sharing/ShareControl.js +37 -0
- package/dist/react/components/sharing/ShareControl.js.map +1 -0
- package/dist/react/components/sharing/ShareDialog.d.ts +26 -0
- package/dist/react/components/sharing/ShareDialog.d.ts.map +1 -0
- package/dist/react/components/sharing/ShareDialog.js +42 -0
- package/dist/react/components/sharing/ShareDialog.js.map +1 -0
- package/dist/react/components/sharing/ShareEditor.d.ts +31 -0
- package/dist/react/components/sharing/ShareEditor.d.ts.map +1 -0
- package/dist/react/components/sharing/ShareEditor.js +50 -0
- package/dist/react/components/sharing/ShareEditor.js.map +1 -0
- package/dist/react/components/sharing/SharedWithUserDialog.d.ts +34 -0
- package/dist/react/components/sharing/SharedWithUserDialog.d.ts.map +1 -0
- package/dist/react/components/sharing/SharedWithUserDialog.js +28 -0
- package/dist/react/components/sharing/SharedWithUserDialog.js.map +1 -0
- package/dist/react/components/sharing/types.d.ts +84 -0
- package/dist/react/components/sharing/types.d.ts.map +1 -0
- package/dist/react/components/sharing/types.js +43 -0
- package/dist/react/components/sharing/types.js.map +1 -0
- package/dist/react/constants/viewport.d.ts +1 -1
- package/dist/react/constants/viewport.js +1 -1
- package/dist/react/createApiHooks.d.ts +11 -1
- package/dist/react/createApiHooks.d.ts.map +1 -1
- package/dist/react/createApiHooks.js +6 -2
- package/dist/react/createApiHooks.js.map +1 -1
- package/dist/react/dashboard-grid/DashboardGrid.d.ts +77 -0
- package/dist/react/dashboard-grid/DashboardGrid.d.ts.map +1 -0
- package/dist/react/dashboard-grid/DashboardGrid.js +218 -0
- package/dist/react/dashboard-grid/DashboardGrid.js.map +1 -0
- package/dist/react/dashboard-grid/WidgetFrame.d.ts +38 -0
- package/dist/react/dashboard-grid/WidgetFrame.d.ts.map +1 -0
- package/dist/react/dashboard-grid/WidgetFrame.js +36 -0
- package/dist/react/dashboard-grid/WidgetFrame.js.map +1 -0
- package/dist/react/dashboard-grid/index.d.ts +4 -0
- package/dist/react/dashboard-grid/index.d.ts.map +1 -0
- package/dist/react/dashboard-grid/index.js +12 -0
- package/dist/react/dashboard-grid/index.js.map +1 -0
- package/dist/react/dashboard-grid/widgetRegistry.d.ts +62 -0
- package/dist/react/dashboard-grid/widgetRegistry.d.ts.map +1 -0
- package/dist/react/dashboard-grid/widgetRegistry.js +42 -0
- package/dist/react/dashboard-grid/widgetRegistry.js.map +1 -0
- package/dist/react/data/AppErrorOverlay.d.ts +23 -0
- package/dist/react/data/AppErrorOverlay.d.ts.map +1 -0
- package/dist/react/data/AppErrorOverlay.js +78 -0
- package/dist/react/data/AppErrorOverlay.js.map +1 -0
- package/dist/react/data/EngineDataProvider.d.ts +43 -0
- package/dist/react/data/EngineDataProvider.d.ts.map +1 -0
- package/dist/react/data/EngineDataProvider.js +109 -0
- package/dist/react/data/EngineDataProvider.js.map +1 -0
- package/dist/react/data/accountClient.d.ts +137 -0
- package/dist/react/data/accountClient.d.ts.map +1 -0
- package/dist/react/data/accountClient.js +109 -0
- package/dist/react/data/accountClient.js.map +1 -0
- package/dist/react/data/categoryTree.d.ts +17 -0
- package/dist/react/data/categoryTree.d.ts.map +1 -0
- package/dist/react/data/categoryTree.js +17 -0
- package/dist/react/data/categoryTree.js.map +1 -0
- package/dist/react/data/engineClient.d.ts +77 -0
- package/dist/react/data/engineClient.d.ts.map +1 -0
- package/dist/react/data/engineClient.js +93 -0
- package/dist/react/data/engineClient.js.map +1 -0
- package/dist/react/data/engineDataContext.d.ts +26 -0
- package/dist/react/data/engineDataContext.d.ts.map +1 -0
- package/dist/react/data/engineDataContext.js +24 -0
- package/dist/react/data/engineDataContext.js.map +1 -0
- package/dist/react/data/engineOps.d.ts +23 -0
- package/dist/react/data/engineOps.d.ts.map +1 -0
- package/dist/react/data/engineOps.js +5 -0
- package/dist/react/data/engineOps.js.map +1 -0
- package/dist/react/data/engineResources.d.ts +296 -0
- package/dist/react/data/engineResources.d.ts.map +1 -0
- package/dist/react/data/engineResources.js +541 -0
- package/dist/react/data/engineResources.js.map +1 -0
- package/dist/react/data/index.d.ts +8 -0
- package/dist/react/data/index.d.ts.map +1 -0
- package/dist/react/data/index.js +13 -0
- package/dist/react/data/index.js.map +1 -0
- package/dist/react/data/rowSpecs.d.ts +233 -0
- package/dist/react/data/rowSpecs.d.ts.map +1 -0
- package/dist/react/data/rowSpecs.js +222 -0
- package/dist/react/data/rowSpecs.js.map +1 -0
- package/dist/react/data/useEngineResource.d.ts +58 -0
- package/dist/react/data/useEngineResource.d.ts.map +1 -0
- package/dist/react/data/useEngineResource.js +176 -0
- package/dist/react/data/useEngineResource.js.map +1 -0
- package/dist/react/data/wireEnvelope.d.ts +208 -0
- package/dist/react/data/wireEnvelope.d.ts.map +1 -0
- package/dist/react/data/wireEnvelope.js +239 -0
- package/dist/react/data/wireEnvelope.js.map +1 -0
- package/dist/react/deep-link/index.d.ts +4 -0
- package/dist/react/deep-link/index.d.ts.map +1 -0
- package/dist/react/deep-link/index.js +4 -0
- package/dist/react/deep-link/index.js.map +1 -0
- package/dist/react/deep-link/links.d.ts +124 -0
- package/dist/react/deep-link/links.d.ts.map +1 -0
- package/dist/react/deep-link/links.js +222 -0
- package/dist/react/deep-link/links.js.map +1 -0
- package/dist/react/deep-link/resume.d.ts +47 -0
- package/dist/react/deep-link/resume.d.ts.map +1 -0
- package/dist/react/deep-link/resume.js +175 -0
- package/dist/react/deep-link/resume.js.map +1 -0
- package/dist/react/deep-link/useDeepLink.d.ts +81 -0
- package/dist/react/deep-link/useDeepLink.d.ts.map +1 -0
- package/dist/react/deep-link/useDeepLink.js +191 -0
- package/dist/react/deep-link/useDeepLink.js.map +1 -0
- package/dist/react/diff-viewer/DiffViewer.css +43 -0
- package/dist/react/diff-viewer/DiffViewer.d.ts +38 -0
- package/dist/react/diff-viewer/DiffViewer.d.ts.map +1 -0
- package/dist/react/diff-viewer/DiffViewer.js +29 -0
- package/dist/react/diff-viewer/DiffViewer.js.map +1 -0
- package/dist/react/diff-viewer/TextComparePane.d.ts +33 -0
- package/dist/react/diff-viewer/TextComparePane.d.ts.map +1 -0
- package/dist/react/diff-viewer/TextComparePane.js +39 -0
- package/dist/react/diff-viewer/TextComparePane.js.map +1 -0
- package/dist/react/diff-viewer/diff.d.ts +45 -0
- package/dist/react/diff-viewer/diff.d.ts.map +1 -0
- package/dist/react/diff-viewer/diff.js +45 -0
- package/dist/react/diff-viewer/diff.js.map +1 -0
- package/dist/react/diff-viewer/index.d.ts +5 -0
- package/dist/react/diff-viewer/index.d.ts.map +1 -0
- package/dist/react/diff-viewer/index.js +12 -0
- package/dist/react/diff-viewer/index.js.map +1 -0
- package/dist/react/diff-viewer/useDiffTheme.d.ts +6 -0
- package/dist/react/diff-viewer/useDiffTheme.d.ts.map +1 -0
- package/dist/react/diff-viewer/useDiffTheme.js +35 -0
- package/dist/react/diff-viewer/useDiffTheme.js.map +1 -0
- package/dist/react/disk-usage/DiskUsageRulesEditor.d.ts +15 -0
- package/dist/react/disk-usage/DiskUsageRulesEditor.d.ts.map +1 -0
- package/dist/react/disk-usage/DiskUsageRulesEditor.js +25 -0
- package/dist/react/disk-usage/DiskUsageRulesEditor.js.map +1 -0
- package/dist/react/disk-usage/DiskUsageScanControls.d.ts +22 -0
- package/dist/react/disk-usage/DiskUsageScanControls.d.ts.map +1 -0
- package/dist/react/disk-usage/DiskUsageScanControls.js +39 -0
- package/dist/react/disk-usage/DiskUsageScanControls.js.map +1 -0
- package/dist/react/disk-usage/DiskUsageSummaryTiles.d.ts +14 -0
- package/dist/react/disk-usage/DiskUsageSummaryTiles.d.ts.map +1 -0
- package/dist/react/disk-usage/DiskUsageSummaryTiles.js +25 -0
- package/dist/react/disk-usage/DiskUsageSummaryTiles.js.map +1 -0
- package/dist/react/disk-usage/DiskUsageTree.d.ts +26 -0
- package/dist/react/disk-usage/DiskUsageTree.d.ts.map +1 -0
- package/dist/react/disk-usage/DiskUsageTree.js +53 -0
- package/dist/react/disk-usage/DiskUsageTree.js.map +1 -0
- package/dist/react/disk-usage/index.d.ts +5 -0
- package/dist/react/disk-usage/index.d.ts.map +1 -0
- package/dist/react/disk-usage/index.js +5 -0
- package/dist/react/disk-usage/index.js.map +1 -0
- package/dist/react/emoji/EmojiAutocomplete.d.ts.map +1 -1
- package/dist/react/emoji/EmojiAutocomplete.js +14 -2
- package/dist/react/emoji/EmojiAutocomplete.js.map +1 -1
- package/dist/react/emoji/EmojiPicker.d.ts.map +1 -1
- package/dist/react/emoji/EmojiPicker.js +2 -1
- package/dist/react/emoji/EmojiPicker.js.map +1 -1
- package/dist/react/engine-studio/DiagnosticsPanel.d.ts +19 -0
- package/dist/react/engine-studio/DiagnosticsPanel.d.ts.map +1 -0
- package/dist/react/engine-studio/DiagnosticsPanel.js +31 -0
- package/dist/react/engine-studio/DiagnosticsPanel.js.map +1 -0
- package/dist/react/engine-studio/EngineCanvas.d.ts +23 -0
- package/dist/react/engine-studio/EngineCanvas.d.ts.map +1 -0
- package/dist/react/engine-studio/EngineCanvas.js +261 -0
- package/dist/react/engine-studio/EngineCanvas.js.map +1 -0
- package/dist/react/engine-studio/EngineInspector.d.ts +10 -0
- package/dist/react/engine-studio/EngineInspector.d.ts.map +1 -0
- package/dist/react/engine-studio/EngineInspector.js +23 -0
- package/dist/react/engine-studio/EngineInspector.js.map +1 -0
- package/dist/react/engine-studio/EngineStudio.d.ts +51 -0
- package/dist/react/engine-studio/EngineStudio.d.ts.map +1 -0
- package/dist/react/engine-studio/EngineStudio.js +143 -0
- package/dist/react/engine-studio/EngineStudio.js.map +1 -0
- package/dist/react/engine-studio/index.d.ts +10 -0
- package/dist/react/engine-studio/index.d.ts.map +1 -0
- package/dist/react/engine-studio/index.js +10 -0
- package/dist/react/engine-studio/index.js.map +1 -0
- package/dist/react/engine-studio/useStudioSession.d.ts +16 -0
- package/dist/react/engine-studio/useStudioSession.d.ts.map +1 -0
- package/dist/react/engine-studio/useStudioSession.js +47 -0
- package/dist/react/engine-studio/useStudioSession.js.map +1 -0
- package/dist/react/file-tree/FileTree.d.ts +171 -0
- package/dist/react/file-tree/FileTree.d.ts.map +1 -0
- package/dist/react/file-tree/FileTree.js +796 -0
- package/dist/react/file-tree/FileTree.js.map +1 -0
- package/dist/react/file-tree/fileTree.css +711 -0
- package/dist/react/file-tree/index.d.ts +3 -0
- package/dist/react/file-tree/index.d.ts.map +1 -0
- package/dist/react/file-tree/index.js +17 -0
- package/dist/react/file-tree/index.js.map +1 -0
- package/dist/react/filter-rail/FilterRail.d.ts +205 -0
- package/dist/react/filter-rail/FilterRail.d.ts.map +1 -0
- package/dist/react/filter-rail/FilterRail.js +167 -0
- package/dist/react/filter-rail/FilterRail.js.map +1 -0
- package/dist/react/filter-rail/index.d.ts +2 -0
- package/dist/react/filter-rail/index.d.ts.map +1 -0
- package/dist/react/filter-rail/index.js +2 -0
- package/dist/react/filter-rail/index.js.map +1 -0
- package/dist/react/folder-tree/FolderActionsMenu.d.ts +48 -0
- package/dist/react/folder-tree/FolderActionsMenu.d.ts.map +1 -0
- package/dist/react/folder-tree/FolderActionsMenu.js +114 -0
- package/dist/react/folder-tree/FolderActionsMenu.js.map +1 -0
- package/dist/react/folder-tree/FolderBreadcrumb.d.ts +35 -0
- package/dist/react/folder-tree/FolderBreadcrumb.d.ts.map +1 -0
- package/dist/react/folder-tree/FolderBreadcrumb.js +27 -0
- package/dist/react/folder-tree/FolderBreadcrumb.js.map +1 -0
- package/dist/react/folder-tree/FolderPicker.d.ts +27 -0
- package/dist/react/folder-tree/FolderPicker.d.ts.map +1 -0
- package/dist/react/folder-tree/FolderPicker.js +77 -0
- package/dist/react/folder-tree/FolderPicker.js.map +1 -0
- package/dist/react/folder-tree/FolderTreeRail.d.ts +69 -0
- package/dist/react/folder-tree/FolderTreeRail.d.ts.map +1 -0
- package/dist/react/folder-tree/FolderTreeRail.js +148 -0
- package/dist/react/folder-tree/FolderTreeRail.js.map +1 -0
- package/dist/react/folder-tree/NewFolderControl.d.ts +51 -0
- package/dist/react/folder-tree/NewFolderControl.d.ts.map +1 -0
- package/dist/react/folder-tree/NewFolderControl.js +91 -0
- package/dist/react/folder-tree/NewFolderControl.js.map +1 -0
- package/dist/react/folder-tree/index.d.ts +8 -0
- package/dist/react/folder-tree/index.d.ts.map +1 -0
- package/dist/react/folder-tree/index.js +29 -0
- package/dist/react/folder-tree/index.js.map +1 -0
- package/dist/react/hooks/DragHandleIcon.d.ts.map +1 -1
- package/dist/react/hooks/DragHandleIcon.js.map +1 -1
- package/dist/react/hooks/dragShared.d.ts +2 -2
- package/dist/react/hooks/dragShared.d.ts.map +1 -1
- package/dist/react/hooks/keyboardDnd.d.ts +124 -0
- package/dist/react/hooks/keyboardDnd.d.ts.map +1 -0
- package/dist/react/hooks/keyboardDnd.js +130 -0
- package/dist/react/hooks/keyboardDnd.js.map +1 -0
- package/dist/react/hooks/pointerDnd.d.ts +136 -0
- package/dist/react/hooks/pointerDnd.d.ts.map +1 -0
- package/dist/react/hooks/pointerDnd.js +319 -0
- package/dist/react/hooks/pointerDnd.js.map +1 -0
- package/dist/react/hooks/pragmaticDnd.d.ts +118 -0
- package/dist/react/hooks/pragmaticDnd.d.ts.map +1 -0
- package/dist/react/hooks/pragmaticDnd.js +213 -0
- package/dist/react/hooks/pragmaticDnd.js.map +1 -0
- package/dist/react/hooks/useCaretInView.d.ts +1 -1
- package/dist/react/hooks/useCaretInView.js +1 -1
- package/dist/react/hooks/useCheckboxSelection.d.ts +39 -0
- package/dist/react/hooks/useCheckboxSelection.d.ts.map +1 -0
- package/dist/react/hooks/useCheckboxSelection.js +76 -0
- package/dist/react/hooks/useCheckboxSelection.js.map +1 -0
- package/dist/react/hooks/useCrossContainerDrag.d.ts +34 -9
- package/dist/react/hooks/useCrossContainerDrag.d.ts.map +1 -1
- package/dist/react/hooks/useCrossContainerDrag.js +279 -120
- package/dist/react/hooks/useCrossContainerDrag.js.map +1 -1
- package/dist/react/hooks/useDebouncedCallback.d.ts +15 -0
- package/dist/react/hooks/useDebouncedCallback.d.ts.map +1 -0
- package/dist/react/hooks/useDebouncedCallback.js +23 -0
- package/dist/react/hooks/useDebouncedCallback.js.map +1 -0
- package/dist/react/hooks/useDirtyForm.d.ts +95 -0
- package/dist/react/hooks/useDirtyForm.d.ts.map +1 -0
- package/dist/react/hooks/useDirtyForm.js +106 -0
- package/dist/react/hooks/useDirtyForm.js.map +1 -0
- package/dist/react/hooks/useDragReorder.d.ts +30 -12
- package/dist/react/hooks/useDragReorder.d.ts.map +1 -1
- package/dist/react/hooks/useDragReorder.js +272 -66
- package/dist/react/hooks/useDragReorder.js.map +1 -1
- package/dist/react/hooks/useKeySequence.d.ts +22 -0
- package/dist/react/hooks/useKeySequence.d.ts.map +1 -0
- package/dist/react/hooks/useKeySequence.js +44 -0
- package/dist/react/hooks/useKeySequence.js.map +1 -0
- package/dist/react/hooks/useListSelection.d.ts +49 -0
- package/dist/react/hooks/useListSelection.d.ts.map +1 -0
- package/dist/react/hooks/useListSelection.js +73 -0
- package/dist/react/hooks/useListSelection.js.map +1 -0
- package/dist/react/hooks/useModifierKey.d.ts +9 -0
- package/dist/react/hooks/useModifierKey.d.ts.map +1 -0
- package/dist/react/hooks/useModifierKey.js +31 -0
- package/dist/react/hooks/useModifierKey.js.map +1 -0
- package/dist/react/hooks/usePaletteDrag.d.ts +87 -0
- package/dist/react/hooks/usePaletteDrag.d.ts.map +1 -0
- package/dist/react/hooks/usePaletteDrag.js +129 -0
- package/dist/react/hooks/usePaletteDrag.js.map +1 -0
- package/dist/react/hooks/usePointerDrag.d.ts +49 -0
- package/dist/react/hooks/usePointerDrag.d.ts.map +1 -0
- package/dist/react/hooks/usePointerDrag.js +80 -0
- package/dist/react/hooks/usePointerDrag.js.map +1 -0
- package/dist/react/hooks/useResizeObserver.d.ts +18 -0
- package/dist/react/hooks/useResizeObserver.d.ts.map +1 -0
- package/dist/react/hooks/useResizeObserver.js +31 -0
- package/dist/react/hooks/useResizeObserver.js.map +1 -0
- package/dist/react/hooks/useScrollEdgeFade.d.ts +40 -0
- package/dist/react/hooks/useScrollEdgeFade.d.ts.map +1 -0
- package/dist/react/hooks/useScrollEdgeFade.js +62 -0
- package/dist/react/hooks/useScrollEdgeFade.js.map +1 -0
- package/dist/react/hooks/useScrollEdges.d.ts +33 -0
- package/dist/react/hooks/useScrollEdges.d.ts.map +1 -0
- package/dist/react/hooks/useScrollEdges.js +85 -0
- package/dist/react/hooks/useScrollEdges.js.map +1 -0
- package/dist/react/hooks/useStableOrder.d.ts +40 -0
- package/dist/react/hooks/useStableOrder.d.ts.map +1 -0
- package/dist/react/hooks/useStableOrder.js +52 -0
- package/dist/react/hooks/useStableOrder.js.map +1 -0
- package/dist/react/hooks/useSwipeToDismiss.d.ts +20 -0
- package/dist/react/hooks/useSwipeToDismiss.d.ts.map +1 -0
- package/dist/react/hooks/useSwipeToDismiss.js +75 -0
- package/dist/react/hooks/useSwipeToDismiss.js.map +1 -0
- package/dist/react/icons.d.ts +98 -0
- package/dist/react/icons.d.ts.map +1 -0
- package/dist/react/icons.js +185 -0
- package/dist/react/icons.js.map +1 -0
- package/dist/react/index.d.ts +143 -8
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +158 -7
- package/dist/react/index.js.map +1 -1
- package/dist/react/keep-awake/KeepAwake.d.ts +20 -0
- package/dist/react/keep-awake/KeepAwake.d.ts.map +1 -0
- package/dist/react/keep-awake/KeepAwake.js +26 -0
- package/dist/react/keep-awake/KeepAwake.js.map +1 -0
- package/dist/react/keep-awake/index.d.ts +5 -0
- package/dist/react/keep-awake/index.d.ts.map +1 -0
- package/dist/react/keep-awake/index.js +5 -0
- package/dist/react/keep-awake/index.js.map +1 -0
- package/dist/react/keep-awake/keepAwakeEngine.d.ts +89 -0
- package/dist/react/keep-awake/keepAwakeEngine.d.ts.map +1 -0
- package/dist/react/keep-awake/keepAwakeEngine.js +262 -0
- package/dist/react/keep-awake/keepAwakeEngine.js.map +1 -0
- package/dist/react/keep-awake/silentClip.d.ts +35 -0
- package/dist/react/keep-awake/silentClip.d.ts.map +1 -0
- package/dist/react/keep-awake/silentClip.js +90 -0
- package/dist/react/keep-awake/silentClip.js.map +1 -0
- package/dist/react/keep-awake/useKeepAwake.d.ts +27 -0
- package/dist/react/keep-awake/useKeepAwake.d.ts.map +1 -0
- package/dist/react/keep-awake/useKeepAwake.js +44 -0
- package/dist/react/keep-awake/useKeepAwake.js.map +1 -0
- package/dist/react/layout/CCResizeBoundary.d.ts +52 -0
- package/dist/react/layout/CCResizeBoundary.d.ts.map +1 -0
- package/dist/react/layout/CCResizeBoundary.js +88 -0
- package/dist/react/layout/CCResizeBoundary.js.map +1 -0
- package/dist/react/layoutEngine/LayoutCanvas.d.ts.map +1 -1
- package/dist/react/layoutEngine/LayoutCanvas.js +146 -64
- package/dist/react/layoutEngine/LayoutCanvas.js.map +1 -1
- package/dist/react/layoutEngine/LayoutConfigDialog.d.ts.map +1 -1
- package/dist/react/layoutEngine/LayoutConfigDialog.js +6 -3
- package/dist/react/layoutEngine/LayoutConfigDialog.js.map +1 -1
- package/dist/react/layoutEngine/LayoutRenderer.d.ts.map +1 -1
- package/dist/react/layoutEngine/LayoutRenderer.js +1 -1
- package/dist/react/layoutEngine/LayoutRenderer.js.map +1 -1
- package/dist/react/layoutEngine/NodeInspector.d.ts.map +1 -1
- package/dist/react/layoutEngine/NodeInspector.js +27 -8
- package/dist/react/layoutEngine/NodeInspector.js.map +1 -1
- package/dist/react/layoutEngine/SuggestPanel.d.ts.map +1 -1
- package/dist/react/layoutEngine/SuggestPanel.js +2 -1
- package/dist/react/layoutEngine/SuggestPanel.js.map +1 -1
- package/dist/react/layoutEngine/index.js +2 -2
- package/dist/react/layoutEngine/index.js.map +1 -1
- package/dist/react/lib/createInstanceStore.d.ts +48 -0
- package/dist/react/lib/createInstanceStore.d.ts.map +1 -0
- package/dist/react/lib/createInstanceStore.js +37 -0
- package/dist/react/lib/createInstanceStore.js.map +1 -0
- package/dist/react/lib/daypicker.d.ts +67 -0
- package/dist/react/lib/daypicker.d.ts.map +1 -0
- package/dist/react/lib/daypicker.js +101 -0
- package/dist/react/lib/daypicker.js.map +1 -0
- package/dist/react/lib/devWarn.d.ts +6 -0
- package/dist/react/lib/devWarn.d.ts.map +1 -0
- package/dist/react/lib/devWarn.js +22 -0
- package/dist/react/lib/devWarn.js.map +1 -0
- package/dist/react/lib/draftPersistence.d.ts +4 -3
- package/dist/react/lib/draftPersistence.d.ts.map +1 -1
- package/dist/react/lib/draftPersistence.js +8 -30
- package/dist/react/lib/draftPersistence.js.map +1 -1
- package/dist/react/lib/field.d.ts +30 -0
- package/dist/react/lib/field.d.ts.map +1 -1
- package/dist/react/lib/field.js +40 -0
- package/dist/react/lib/field.js.map +1 -1
- package/dist/react/lib/floatingStyles.d.ts +23 -2
- package/dist/react/lib/floatingStyles.d.ts.map +1 -1
- package/dist/react/lib/floatingStyles.js +30 -2
- package/dist/react/lib/floatingStyles.js.map +1 -1
- package/dist/react/lib/hoverIntent.d.ts +55 -0
- package/dist/react/lib/hoverIntent.d.ts.map +1 -0
- package/dist/react/lib/hoverIntent.js +55 -0
- package/dist/react/lib/hoverIntent.js.map +1 -0
- package/dist/react/lib/selection.d.ts +55 -0
- package/dist/react/lib/selection.d.ts.map +1 -0
- package/dist/react/lib/selection.js +76 -0
- package/dist/react/lib/selection.js.map +1 -0
- package/dist/react/lib/tabIndent.d.ts +15 -0
- package/dist/react/lib/tabIndent.d.ts.map +1 -0
- package/dist/react/lib/tabIndent.js +30 -0
- package/dist/react/lib/tabIndent.js.map +1 -0
- package/dist/react/lib/tapTarget.d.ts +96 -0
- package/dist/react/lib/tapTarget.d.ts.map +1 -0
- package/dist/react/lib/tapTarget.js +96 -0
- package/dist/react/lib/tapTarget.js.map +1 -0
- package/dist/react/lib/textEntryTarget.d.ts +2 -0
- package/dist/react/lib/textEntryTarget.d.ts.map +1 -0
- package/dist/react/lib/textEntryTarget.js +42 -0
- package/dist/react/lib/textEntryTarget.js.map +1 -0
- package/dist/react/lib/textSelection.d.ts +19 -0
- package/dist/react/lib/textSelection.d.ts.map +1 -0
- package/dist/react/lib/textSelection.js +36 -0
- package/dist/react/lib/textSelection.js.map +1 -0
- package/dist/react/markdown/Markdown.d.ts +19 -0
- package/dist/react/markdown/Markdown.d.ts.map +1 -0
- package/dist/react/markdown/Markdown.js +64 -0
- package/dist/react/markdown/Markdown.js.map +1 -0
- package/dist/react/markdown/MarkdownDoc.d.ts +38 -0
- package/dist/react/markdown/MarkdownDoc.d.ts.map +1 -0
- package/dist/react/markdown/MarkdownDoc.js +150 -0
- package/dist/react/markdown/MarkdownDoc.js.map +1 -0
- package/dist/react/markdown/index.d.ts +3 -0
- package/dist/react/markdown/index.d.ts.map +1 -0
- package/dist/react/markdown/index.js +2 -0
- package/dist/react/markdown/index.js.map +1 -0
- package/dist/react/markdown/markdownDoc.css +169 -0
- package/dist/react/markdown/parse.d.ts +48 -0
- package/dist/react/markdown/parse.d.ts.map +1 -0
- package/dist/react/markdown/parse.js +125 -0
- package/dist/react/markdown/parse.js.map +1 -0
- package/dist/react/master-detail/DetailPane.d.ts +76 -0
- package/dist/react/master-detail/DetailPane.d.ts.map +1 -0
- package/dist/react/master-detail/DetailPane.js +34 -0
- package/dist/react/master-detail/DetailPane.js.map +1 -0
- package/dist/react/master-detail/MasterDetail.d.ts +80 -0
- package/dist/react/master-detail/MasterDetail.d.ts.map +1 -0
- package/dist/react/master-detail/MasterDetail.js +88 -0
- package/dist/react/master-detail/MasterDetail.js.map +1 -0
- package/dist/react/master-detail/index.d.ts +5 -0
- package/dist/react/master-detail/index.d.ts.map +1 -0
- package/dist/react/master-detail/index.js +3 -0
- package/dist/react/master-detail/index.js.map +1 -0
- package/dist/react/master-lock/MasterLockDialog.d.ts +16 -0
- package/dist/react/master-lock/MasterLockDialog.d.ts.map +1 -0
- package/dist/react/master-lock/MasterLockDialog.js +112 -0
- package/dist/react/master-lock/MasterLockDialog.js.map +1 -0
- package/dist/react/master-lock/MasterLockProvider.d.ts +96 -0
- package/dist/react/master-lock/MasterLockProvider.d.ts.map +1 -0
- package/dist/react/master-lock/MasterLockProvider.js +188 -0
- package/dist/react/master-lock/MasterLockProvider.js.map +1 -0
- package/dist/react/master-lock/index.d.ts +10 -0
- package/dist/react/master-lock/index.d.ts.map +1 -0
- package/dist/react/master-lock/index.js +10 -0
- package/dist/react/master-lock/index.js.map +1 -0
- package/dist/react/media/AutoMaskControls.d.ts +1 -1
- package/dist/react/media/AutoMaskControls.d.ts.map +1 -1
- package/dist/react/media/AutoMaskControls.js +2 -2
- package/dist/react/media/AutoMaskControls.js.map +1 -1
- package/dist/react/media/CanvasVideoPlayer.d.ts +13 -0
- package/dist/react/media/CanvasVideoPlayer.d.ts.map +1 -0
- package/dist/react/media/CanvasVideoPlayer.js +205 -0
- package/dist/react/media/CanvasVideoPlayer.js.map +1 -0
- package/dist/react/media/DenseGalleryShell.d.ts +226 -0
- package/dist/react/media/DenseGalleryShell.d.ts.map +1 -0
- package/dist/react/media/DenseGalleryShell.js +219 -0
- package/dist/react/media/DenseGalleryShell.js.map +1 -0
- package/dist/react/media/FocusViewer.d.ts +51 -0
- package/dist/react/media/FocusViewer.d.ts.map +1 -0
- package/dist/react/media/FocusViewer.js +632 -0
- package/dist/react/media/FocusViewer.js.map +1 -0
- package/dist/react/media/FrameGrabber.d.ts +73 -0
- package/dist/react/media/FrameGrabber.d.ts.map +1 -0
- package/dist/react/media/FrameGrabber.js +341 -0
- package/dist/react/media/FrameGrabber.js.map +1 -0
- package/dist/react/media/HoverScrubVideoThumb.d.ts +71 -0
- package/dist/react/media/HoverScrubVideoThumb.d.ts.map +1 -0
- package/dist/react/media/HoverScrubVideoThumb.js +176 -0
- package/dist/react/media/HoverScrubVideoThumb.js.map +1 -0
- package/dist/react/media/MaskPainter.d.ts.map +1 -1
- package/dist/react/media/MaskPainter.js +14 -11
- package/dist/react/media/MaskPainter.js.map +1 -1
- package/dist/react/media/MediaCatalogueViewer.d.ts +1 -1
- package/dist/react/media/MediaCatalogueViewer.d.ts.map +1 -1
- package/dist/react/media/MediaCatalogueViewer.js +5 -4
- package/dist/react/media/MediaCatalogueViewer.js.map +1 -1
- package/dist/react/media/MediaCell.d.ts.map +1 -1
- package/dist/react/media/MediaCell.js +5 -2
- package/dist/react/media/MediaCell.js.map +1 -1
- package/dist/react/media/MediaLightbox.d.ts +1 -1
- package/dist/react/media/MediaLightbox.js +1 -1
- package/dist/react/media/MediaResize.d.ts +104 -0
- package/dist/react/media/MediaResize.d.ts.map +1 -0
- package/dist/react/media/MediaResize.js +143 -0
- package/dist/react/media/MediaResize.js.map +1 -0
- package/dist/react/media/MediaThumb.d.ts +47 -0
- package/dist/react/media/MediaThumb.d.ts.map +1 -0
- package/dist/react/media/MediaThumb.js +93 -0
- package/dist/react/media/MediaThumb.js.map +1 -0
- package/dist/react/media/MediaUploadControl.d.ts +17 -0
- package/dist/react/media/MediaUploadControl.d.ts.map +1 -0
- package/dist/react/media/MediaUploadControl.js +53 -0
- package/dist/react/media/MediaUploadControl.js.map +1 -0
- package/dist/react/media/PictureControls.d.ts +14 -0
- package/dist/react/media/PictureControls.d.ts.map +1 -0
- package/dist/react/media/PictureControls.js +52 -0
- package/dist/react/media/PictureControls.js.map +1 -0
- package/dist/react/media/PictureEditor.d.ts +49 -0
- package/dist/react/media/PictureEditor.d.ts.map +1 -0
- package/dist/react/media/PictureEditor.js +245 -0
- package/dist/react/media/PictureEditor.js.map +1 -0
- package/dist/react/media/PlayerStrip.d.ts +102 -0
- package/dist/react/media/PlayerStrip.d.ts.map +1 -0
- package/dist/react/media/PlayerStrip.js +102 -0
- package/dist/react/media/PlayerStrip.js.map +1 -0
- package/dist/react/media/PrivateIndexView.d.ts +6 -0
- package/dist/react/media/PrivateIndexView.d.ts.map +1 -0
- package/dist/react/media/PrivateIndexView.js +44 -0
- package/dist/react/media/PrivateIndexView.js.map +1 -0
- package/dist/react/media/PrivateModeBadge.d.ts +17 -0
- package/dist/react/media/PrivateModeBadge.d.ts.map +1 -0
- package/dist/react/media/PrivateModeBadge.js +24 -0
- package/dist/react/media/PrivateModeBadge.js.map +1 -0
- package/dist/react/media/TrimRangeSlider.d.ts.map +1 -1
- package/dist/react/media/TrimRangeSlider.js +3 -1
- package/dist/react/media/TrimRangeSlider.js.map +1 -1
- package/dist/react/media/VideoCutEditor.d.ts +82 -0
- package/dist/react/media/VideoCutEditor.d.ts.map +1 -0
- package/dist/react/media/VideoCutEditor.js +128 -0
- package/dist/react/media/VideoCutEditor.js.map +1 -0
- package/dist/react/media/VideoPlayer.d.ts +339 -0
- package/dist/react/media/VideoPlayer.d.ts.map +1 -0
- package/dist/react/media/VideoPlayer.js +413 -0
- package/dist/react/media/VideoPlayer.js.map +1 -0
- package/dist/react/media/VideoTrimmer.d.ts +1 -1
- package/dist/react/media/VideoTrimmer.d.ts.map +1 -1
- package/dist/react/media/VideoTrimmer.js +3 -3
- package/dist/react/media/VideoTrimmer.js.map +1 -1
- package/dist/react/media/VideoTurner.d.ts +42 -0
- package/dist/react/media/VideoTurner.d.ts.map +1 -0
- package/dist/react/media/VideoTurner.js +71 -0
- package/dist/react/media/VideoTurner.js.map +1 -0
- package/dist/react/media/VirtualMediaGrid.d.ts +35 -0
- package/dist/react/media/VirtualMediaGrid.d.ts.map +1 -0
- package/dist/react/media/VirtualMediaGrid.js +32 -0
- package/dist/react/media/VirtualMediaGrid.js.map +1 -0
- package/dist/react/media/VirtualizedRows.d.ts +6 -7
- package/dist/react/media/VirtualizedRows.d.ts.map +1 -1
- package/dist/react/media/VirtualizedRows.js +24 -51
- package/dist/react/media/VirtualizedRows.js.map +1 -1
- package/dist/react/media/WaveformStrip.d.ts +15 -0
- package/dist/react/media/WaveformStrip.d.ts.map +1 -0
- package/dist/react/media/WaveformStrip.js +16 -0
- package/dist/react/media/WaveformStrip.js.map +1 -0
- package/dist/react/media/captureVideoFrame.d.ts +13 -0
- package/dist/react/media/captureVideoFrame.d.ts.map +1 -0
- package/dist/react/media/captureVideoFrame.js +29 -0
- package/dist/react/media/captureVideoFrame.js.map +1 -0
- package/dist/react/media/denseGallery.css +684 -0
- package/dist/react/media/ffmpegWasm.d.ts +51 -0
- package/dist/react/media/ffmpegWasm.d.ts.map +1 -0
- package/dist/react/media/ffmpegWasm.js +162 -0
- package/dist/react/media/ffmpegWasm.js.map +1 -0
- package/dist/react/media/fileUploadClient.d.ts +55 -0
- package/dist/react/media/fileUploadClient.d.ts.map +1 -0
- package/dist/react/media/fileUploadClient.js +111 -0
- package/dist/react/media/fileUploadClient.js.map +1 -0
- package/dist/react/media/focusViewer.css +279 -0
- package/dist/react/media/hlsSource.d.ts +27 -0
- package/dist/react/media/hlsSource.d.ts.map +1 -0
- package/dist/react/media/hlsSource.js +99 -0
- package/dist/react/media/hlsSource.js.map +1 -0
- package/dist/react/media/index.d.ts +33 -0
- package/dist/react/media/index.d.ts.map +1 -1
- package/dist/react/media/index.js +68 -0
- package/dist/react/media/index.js.map +1 -1
- package/dist/react/media/maskGeometry.d.ts.map +1 -1
- package/dist/react/media/maskGeometry.js +3 -2
- package/dist/react/media/maskGeometry.js.map +1 -1
- package/dist/react/media/mediaPhoto.d.ts +3 -2
- package/dist/react/media/mediaPhoto.d.ts.map +1 -1
- package/dist/react/media/mediaPhoto.js +4 -3
- package/dist/react/media/mediaPhoto.js.map +1 -1
- package/dist/react/media/mediaProbe.d.ts +26 -0
- package/dist/react/media/mediaProbe.d.ts.map +1 -0
- package/dist/react/media/mediaProbe.js +81 -0
- package/dist/react/media/mediaProbe.js.map +1 -0
- package/dist/react/media/mediaResize.css +200 -0
- package/dist/react/media/pictureEdit.d.ts +259 -0
- package/dist/react/media/pictureEdit.d.ts.map +1 -0
- package/dist/react/media/pictureEdit.js +350 -0
- package/dist/react/media/pictureEdit.js.map +1 -0
- package/dist/react/media/pictureEditor.css +274 -0
- package/dist/react/media/playerSpaceKey.d.ts +52 -0
- package/dist/react/media/playerSpaceKey.d.ts.map +1 -0
- package/dist/react/media/playerSpaceKey.js +151 -0
- package/dist/react/media/playerSpaceKey.js.map +1 -0
- package/dist/react/media/playerStrip.css +654 -0
- package/dist/react/media/poster.d.ts +22 -0
- package/dist/react/media/poster.d.ts.map +1 -0
- package/dist/react/media/poster.js +22 -0
- package/dist/react/media/poster.js.map +1 -0
- package/dist/react/media/posterFraming.d.ts +162 -0
- package/dist/react/media/posterFraming.d.ts.map +1 -0
- package/dist/react/media/posterFraming.js +249 -0
- package/dist/react/media/posterFraming.js.map +1 -0
- package/dist/react/media/privateClient.d.ts +34 -0
- package/dist/react/media/privateClient.d.ts.map +1 -0
- package/dist/react/media/privateClient.js +36 -0
- package/dist/react/media/privateClient.js.map +1 -0
- package/dist/react/media/stageResize.d.ts +59 -0
- package/dist/react/media/stageResize.d.ts.map +1 -0
- package/dist/react/media/stageResize.js +82 -0
- package/dist/react/media/stageResize.js.map +1 -0
- package/dist/react/media/surfaceGesture.d.ts +67 -0
- package/dist/react/media/surfaceGesture.d.ts.map +1 -0
- package/dist/react/media/surfaceGesture.js +89 -0
- package/dist/react/media/surfaceGesture.js.map +1 -0
- package/dist/react/media/types.d.ts +3 -0
- package/dist/react/media/types.d.ts.map +1 -1
- package/dist/react/media/useAudioPeaks.d.ts +17 -0
- package/dist/react/media/useAudioPeaks.d.ts.map +1 -0
- package/dist/react/media/useAudioPeaks.js +37 -0
- package/dist/react/media/useAudioPeaks.js.map +1 -0
- package/dist/react/media/useObjectUrl.d.ts +7 -0
- package/dist/react/media/useObjectUrl.d.ts.map +1 -0
- package/dist/react/media/useObjectUrl.js +16 -0
- package/dist/react/media/useObjectUrl.js.map +1 -0
- package/dist/react/media/usePrivateUnlock.d.ts +25 -0
- package/dist/react/media/usePrivateUnlock.d.ts.map +1 -0
- package/dist/react/media/usePrivateUnlock.js +68 -0
- package/dist/react/media/usePrivateUnlock.js.map +1 -0
- package/dist/react/media/videoCutEditor.css +212 -0
- package/dist/react/media/videoEnhance.d.ts +85 -0
- package/dist/react/media/videoEnhance.d.ts.map +1 -0
- package/dist/react/media/videoEnhance.js +115 -0
- package/dist/react/media/videoEnhance.js.map +1 -0
- package/dist/react/media/videoPlayer.css +69 -0
- package/dist/react/media/videoPoster.d.ts +70 -0
- package/dist/react/media/videoPoster.d.ts.map +1 -0
- package/dist/react/media/videoPoster.js +243 -0
- package/dist/react/media/videoPoster.js.map +1 -0
- package/dist/react/media/videoRegion.d.ts +176 -0
- package/dist/react/media/videoRegion.d.ts.map +1 -0
- package/dist/react/media/videoRegion.js +240 -0
- package/dist/react/media/videoRegion.js.map +1 -0
- package/dist/react/media-gallery/GalleryTable.d.ts +56 -0
- package/dist/react/media-gallery/GalleryTable.d.ts.map +1 -0
- package/dist/react/media-gallery/GalleryTable.js +203 -0
- package/dist/react/media-gallery/GalleryTable.js.map +1 -0
- package/dist/react/media-gallery/MediaGallery.d.ts +229 -0
- package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -0
- package/dist/react/media-gallery/MediaGallery.js +1126 -0
- package/dist/react/media-gallery/MediaGallery.js.map +1 -0
- package/dist/react/media-gallery/galleryDeepLink.d.ts +29 -0
- package/dist/react/media-gallery/galleryDeepLink.d.ts.map +1 -0
- package/dist/react/media-gallery/galleryDeepLink.js +63 -0
- package/dist/react/media-gallery/galleryDeepLink.js.map +1 -0
- package/dist/react/media-gallery/galleryItemMedia.d.ts +66 -0
- package/dist/react/media-gallery/galleryItemMedia.d.ts.map +1 -0
- package/dist/react/media-gallery/galleryItemMedia.js +103 -0
- package/dist/react/media-gallery/galleryItemMedia.js.map +1 -0
- package/dist/react/media-gallery/index.d.ts +10 -0
- package/dist/react/media-gallery/index.d.ts.map +1 -0
- package/dist/react/media-gallery/index.js +20 -0
- package/dist/react/media-gallery/index.js.map +1 -0
- package/dist/react/media-gallery/mediaGallery.css +784 -0
- package/dist/react/media-gallery/mediaGalleryModel.d.ts +110 -0
- package/dist/react/media-gallery/mediaGalleryModel.d.ts.map +1 -0
- package/dist/react/media-gallery/mediaGalleryModel.js +241 -0
- package/dist/react/media-gallery/mediaGalleryModel.js.map +1 -0
- package/dist/react/media-gallery/playbackPreferences.d.ts +136 -0
- package/dist/react/media-gallery/playbackPreferences.d.ts.map +1 -0
- package/dist/react/media-gallery/playbackPreferences.js +213 -0
- package/dist/react/media-gallery/playbackPreferences.js.map +1 -0
- package/dist/react/media-gallery/playbackRun.d.ts +77 -0
- package/dist/react/media-gallery/playbackRun.d.ts.map +1 -0
- package/dist/react/media-gallery/playbackRun.js +101 -0
- package/dist/react/media-gallery/playbackRun.js.map +1 -0
- package/dist/react/media-gallery/types.d.ts +115 -0
- package/dist/react/media-gallery/types.d.ts.map +1 -0
- package/dist/react/media-gallery/types.js +2 -0
- package/dist/react/media-gallery/types.js.map +1 -0
- package/dist/react/namespace/NamespaceTargetCapsule.d.ts +40 -0
- package/dist/react/namespace/NamespaceTargetCapsule.d.ts.map +1 -0
- package/dist/react/namespace/NamespaceTargetCapsule.js +70 -0
- package/dist/react/namespace/NamespaceTargetCapsule.js.map +1 -0
- package/dist/react/nav/BreadcrumbMenus.d.ts +49 -0
- package/dist/react/nav/BreadcrumbMenus.d.ts.map +1 -0
- package/dist/react/nav/BreadcrumbMenus.js +55 -0
- package/dist/react/nav/BreadcrumbMenus.js.map +1 -0
- package/dist/react/nav/BreadcrumbPivot.d.ts +35 -0
- package/dist/react/nav/BreadcrumbPivot.d.ts.map +1 -0
- package/dist/react/nav/BreadcrumbPivot.js +133 -0
- package/dist/react/nav/BreadcrumbPivot.js.map +1 -0
- package/dist/react/nav/BreadcrumbProvider.d.ts +101 -0
- package/dist/react/nav/BreadcrumbProvider.d.ts.map +1 -0
- package/dist/react/nav/BreadcrumbProvider.js +167 -0
- package/dist/react/nav/BreadcrumbProvider.js.map +1 -0
- package/dist/react/nav/BreadcrumbTrail.d.ts +87 -0
- package/dist/react/nav/BreadcrumbTrail.d.ts.map +1 -0
- package/dist/react/nav/BreadcrumbTrail.js +369 -0
- package/dist/react/nav/BreadcrumbTrail.js.map +1 -0
- package/dist/react/nav/Breadcrumbs.d.ts +40 -7
- package/dist/react/nav/Breadcrumbs.d.ts.map +1 -1
- package/dist/react/nav/Breadcrumbs.js +66 -23
- package/dist/react/nav/Breadcrumbs.js.map +1 -1
- package/dist/react/nav/ColorSwatchGrid.d.ts +3 -3
- package/dist/react/nav/ColorSwatchGrid.d.ts.map +1 -1
- package/dist/react/nav/ColorSwatchGrid.js +14 -9
- package/dist/react/nav/ColorSwatchGrid.js.map +1 -1
- package/dist/react/nav/CommandBar.d.ts +1 -1
- package/dist/react/nav/CommandBar.d.ts.map +1 -1
- package/dist/react/nav/CommandBar.js +8 -1
- package/dist/react/nav/CommandBar.js.map +1 -1
- package/dist/react/nav/HeaderSearch.d.ts +7 -2
- package/dist/react/nav/HeaderSearch.d.ts.map +1 -1
- package/dist/react/nav/HeaderSearch.js +36 -19
- package/dist/react/nav/HeaderSearch.js.map +1 -1
- package/dist/react/nav/HubTileGrid.d.ts.map +1 -1
- package/dist/react/nav/HubTileGrid.js +15 -6
- package/dist/react/nav/HubTileGrid.js.map +1 -1
- package/dist/react/nav/NavColorPicker.d.ts.map +1 -1
- package/dist/react/nav/NavColorPicker.js +2 -1
- package/dist/react/nav/NavColorPicker.js.map +1 -1
- package/dist/react/nav/NavItemMenu.d.ts.map +1 -1
- package/dist/react/nav/NavItemMenu.js +4 -2
- package/dist/react/nav/NavItemMenu.js.map +1 -1
- package/dist/react/nav/PlaceBar.d.ts +21 -7
- package/dist/react/nav/PlaceBar.d.ts.map +1 -1
- package/dist/react/nav/PlaceBar.js +68 -12
- package/dist/react/nav/PlaceBar.js.map +1 -1
- package/dist/react/nav/SearchResults.js +1 -1
- package/dist/react/nav/SearchResults.js.map +1 -1
- package/dist/react/nav/SideNav.d.ts +16 -2
- package/dist/react/nav/SideNav.d.ts.map +1 -1
- package/dist/react/nav/SideNav.js +99 -32
- package/dist/react/nav/SideNav.js.map +1 -1
- package/dist/react/nav/SideNavCustomize.d.ts +29 -0
- package/dist/react/nav/SideNavCustomize.d.ts.map +1 -0
- package/dist/react/nav/SideNavCustomize.js +66 -0
- package/dist/react/nav/SideNavCustomize.js.map +1 -0
- package/dist/react/nav/breadcrumbModel.d.ts +162 -0
- package/dist/react/nav/breadcrumbModel.d.ts.map +1 -0
- package/dist/react/nav/breadcrumbModel.js +112 -0
- package/dist/react/nav/breadcrumbModel.js.map +1 -0
- package/dist/react/nav/breadcrumbStore.d.ts +48 -0
- package/dist/react/nav/breadcrumbStore.d.ts.map +1 -0
- package/dist/react/nav/breadcrumbStore.js +150 -0
- package/dist/react/nav/breadcrumbStore.js.map +1 -0
- package/dist/react/nav/index.d.ts +6 -2
- package/dist/react/nav/index.d.ts.map +1 -1
- package/dist/react/nav/index.js +6 -2
- package/dist/react/nav/index.js.map +1 -1
- package/dist/react/nav/navShared.d.ts +31 -4
- package/dist/react/nav/navShared.d.ts.map +1 -1
- package/dist/react/nav/navShared.js +44 -11
- package/dist/react/nav/navShared.js.map +1 -1
- package/dist/react/notifications/NotificationBell.d.ts +34 -0
- package/dist/react/notifications/NotificationBell.d.ts.map +1 -0
- package/dist/react/notifications/NotificationBell.js +33 -0
- package/dist/react/notifications/NotificationBell.js.map +1 -0
- package/dist/react/notifications/NotificationFeed.d.ts +20 -0
- package/dist/react/notifications/NotificationFeed.d.ts.map +1 -0
- package/dist/react/notifications/NotificationFeed.js +79 -0
- package/dist/react/notifications/NotificationFeed.js.map +1 -0
- package/dist/react/notifications/NotificationInbox.d.ts +31 -0
- package/dist/react/notifications/NotificationInbox.d.ts.map +1 -0
- package/dist/react/notifications/NotificationInbox.js +47 -0
- package/dist/react/notifications/NotificationInbox.js.map +1 -0
- package/dist/react/notifications/binding.d.ts +60 -0
- package/dist/react/notifications/binding.d.ts.map +1 -0
- package/dist/react/notifications/binding.js +50 -0
- package/dist/react/notifications/binding.js.map +1 -0
- package/dist/react/notifications/bridge.d.ts +14 -0
- package/dist/react/notifications/bridge.d.ts.map +1 -0
- package/dist/react/notifications/bridge.js +27 -0
- package/dist/react/notifications/bridge.js.map +1 -0
- package/dist/react/notifications/httpClient.d.ts +80 -0
- package/dist/react/notifications/httpClient.d.ts.map +1 -0
- package/dist/react/notifications/httpClient.js +73 -0
- package/dist/react/notifications/httpClient.js.map +1 -0
- package/dist/react/notifications/index.d.ts +10 -0
- package/dist/react/notifications/index.d.ts.map +1 -0
- package/dist/react/notifications/index.js +10 -0
- package/dist/react/notifications/index.js.map +1 -0
- package/dist/react/notifications/liveTransport.d.ts +38 -0
- package/dist/react/notifications/liveTransport.d.ts.map +1 -0
- package/dist/react/notifications/liveTransport.js +41 -0
- package/dist/react/notifications/liveTransport.js.map +1 -0
- package/dist/react/notifications/notificationStore.d.ts +114 -0
- package/dist/react/notifications/notificationStore.d.ts.map +1 -0
- package/dist/react/notifications/notificationStore.js +111 -0
- package/dist/react/notifications/notificationStore.js.map +1 -0
- package/dist/react/notifications/pollTransport.d.ts +49 -0
- package/dist/react/notifications/pollTransport.d.ts.map +1 -0
- package/dist/react/notifications/pollTransport.js +65 -0
- package/dist/react/notifications/pollTransport.js.map +1 -0
- package/dist/react/palette/CommandPalette.d.ts.map +1 -1
- package/dist/react/palette/CommandPalette.js +14 -12
- package/dist/react/palette/CommandPalette.js.map +1 -1
- package/dist/react/pdf-viewer/PdfPage.d.ts +11 -0
- package/dist/react/pdf-viewer/PdfPage.d.ts.map +1 -0
- package/dist/react/pdf-viewer/PdfPage.js +81 -0
- package/dist/react/pdf-viewer/PdfPage.js.map +1 -0
- package/dist/react/pdf-viewer/PdfViewer.d.ts +21 -0
- package/dist/react/pdf-viewer/PdfViewer.d.ts.map +1 -0
- package/dist/react/pdf-viewer/PdfViewer.js +99 -0
- package/dist/react/pdf-viewer/PdfViewer.js.map +1 -0
- package/dist/react/pdf-viewer/index.d.ts +4 -0
- package/dist/react/pdf-viewer/index.d.ts.map +1 -0
- package/dist/react/pdf-viewer/index.js +11 -0
- package/dist/react/pdf-viewer/index.js.map +1 -0
- package/dist/react/pdf-viewer/pdfDocument.d.ts +22 -0
- package/dist/react/pdf-viewer/pdfDocument.d.ts.map +1 -0
- package/dist/react/pdf-viewer/pdfDocument.js +73 -0
- package/dist/react/pdf-viewer/pdfDocument.js.map +1 -0
- package/dist/react/pdf-viewer/pdfViewer.css +59 -0
- package/dist/react/portal/CCPortalProvider.d.ts +73 -0
- package/dist/react/portal/CCPortalProvider.d.ts.map +1 -0
- package/dist/react/portal/CCPortalProvider.js +155 -0
- package/dist/react/portal/CCPortalProvider.js.map +1 -0
- package/dist/react/problem-detail/ProblemDetailView.d.ts +81 -0
- package/dist/react/problem-detail/ProblemDetailView.d.ts.map +1 -0
- package/dist/react/problem-detail/ProblemDetailView.js +17 -0
- package/dist/react/problem-detail/ProblemDetailView.js.map +1 -0
- package/dist/react/prompt.d.ts +16 -0
- package/dist/react/prompt.d.ts.map +1 -0
- package/dist/react/prompt.js +31 -0
- package/dist/react/prompt.js.map +1 -0
- package/dist/react/rich-text/RichTextEditor.d.ts +33 -0
- package/dist/react/rich-text/RichTextEditor.d.ts.map +1 -0
- package/dist/react/rich-text/RichTextEditor.js +81 -0
- package/dist/react/rich-text/RichTextEditor.js.map +1 -0
- package/dist/react/rich-text/RichTextToolbar.d.ts +8 -0
- package/dist/react/rich-text/RichTextToolbar.d.ts.map +1 -0
- package/dist/react/rich-text/RichTextToolbar.js +100 -0
- package/dist/react/rich-text/RichTextToolbar.js.map +1 -0
- package/dist/react/rich-text/contentRoundTrip.d.ts +16 -0
- package/dist/react/rich-text/contentRoundTrip.d.ts.map +1 -0
- package/dist/react/rich-text/contentRoundTrip.js +57 -0
- package/dist/react/rich-text/contentRoundTrip.js.map +1 -0
- package/dist/react/rich-text/index.d.ts +4 -0
- package/dist/react/rich-text/index.d.ts.map +1 -0
- package/dist/react/rich-text/index.js +8 -0
- package/dist/react/rich-text/index.js.map +1 -0
- package/dist/react/rich-text/prose.css +247 -0
- package/dist/react/router/CCRouteFallback.d.ts +15 -0
- package/dist/react/router/CCRouteFallback.d.ts.map +1 -0
- package/dist/react/router/CCRouteFallback.js +42 -0
- package/dist/react/router/CCRouteFallback.js.map +1 -0
- package/dist/react/router/CCRouterProvider.d.ts +44 -0
- package/dist/react/router/CCRouterProvider.d.ts.map +1 -0
- package/dist/react/router/CCRouterProvider.js +63 -0
- package/dist/react/router/CCRouterProvider.js.map +1 -0
- package/dist/react/schema-fields/SchemaFields.d.ts +60 -0
- package/dist/react/schema-fields/SchemaFields.d.ts.map +1 -0
- package/dist/react/schema-fields/SchemaFields.js +200 -0
- package/dist/react/schema-fields/SchemaFields.js.map +1 -0
- package/dist/react/schema-fields/describeSchema.d.ts +68 -0
- package/dist/react/schema-fields/describeSchema.d.ts.map +1 -0
- package/dist/react/schema-fields/describeSchema.js +210 -0
- package/dist/react/schema-fields/describeSchema.js.map +1 -0
- package/dist/react/schema-fields/types.d.ts +86 -0
- package/dist/react/schema-fields/types.d.ts.map +1 -0
- package/dist/react/schema-fields/types.js +31 -0
- package/dist/react/schema-fields/types.js.map +1 -0
- package/dist/react/session/CCSessionGate.d.ts +19 -0
- package/dist/react/session/CCSessionGate.d.ts.map +1 -0
- package/dist/react/session/CCSessionGate.js +67 -0
- package/dist/react/session/CCSessionGate.js.map +1 -0
- package/dist/react/session/CCSessionProvider.d.ts +43 -0
- package/dist/react/session/CCSessionProvider.d.ts.map +1 -0
- package/dist/react/session/CCSessionProvider.js +118 -0
- package/dist/react/session/CCSessionProvider.js.map +1 -0
- package/dist/react/session/ccSessionStore.d.ts +62 -0
- package/dist/react/session/ccSessionStore.d.ts.map +1 -0
- package/dist/react/session/ccSessionStore.js +113 -0
- package/dist/react/session/ccSessionStore.js.map +1 -0
- package/dist/react/session/index.d.ts +5 -0
- package/dist/react/session/index.d.ts.map +1 -0
- package/dist/react/session/index.js +11 -0
- package/dist/react/session/index.js.map +1 -0
- package/dist/react/session/sessionContext.d.ts +30 -0
- package/dist/react/session/sessionContext.d.ts.map +1 -0
- package/dist/react/session/sessionContext.js +22 -0
- package/dist/react/session/sessionContext.js.map +1 -0
- package/dist/react/sessionAuth.d.ts +12 -0
- package/dist/react/sessionAuth.d.ts.map +1 -0
- package/dist/react/sessionAuth.js +29 -0
- package/dist/react/sessionAuth.js.map +1 -0
- package/dist/react/sharing/SharePanel.d.ts +24 -0
- package/dist/react/sharing/SharePanel.d.ts.map +1 -0
- package/dist/react/sharing/SharePanel.js +81 -0
- package/dist/react/sharing/SharePanel.js.map +1 -0
- package/dist/react/sharing/index.d.ts +8 -0
- package/dist/react/sharing/index.d.ts.map +1 -0
- package/dist/react/sharing/index.js +8 -0
- package/dist/react/sharing/index.js.map +1 -0
- package/dist/react/shell/CCAppShell.d.ts +62 -0
- package/dist/react/shell/CCAppShell.d.ts.map +1 -0
- package/dist/react/shell/CCAppShell.js +82 -0
- package/dist/react/shell/CCAppShell.js.map +1 -0
- package/dist/react/shell/claimsContext.d.ts +18 -0
- package/dist/react/shell/claimsContext.d.ts.map +1 -0
- package/dist/react/shell/claimsContext.js +26 -0
- package/dist/react/shell/claimsContext.js.map +1 -0
- package/dist/react/shell/index.d.ts +3 -0
- package/dist/react/shell/index.d.ts.map +1 -0
- package/dist/react/shell/index.js +5 -0
- package/dist/react/shell/index.js.map +1 -0
- package/dist/react/slots/Slot.d.ts +76 -0
- package/dist/react/slots/Slot.d.ts.map +1 -0
- package/dist/react/slots/Slot.js +82 -0
- package/dist/react/slots/Slot.js.map +1 -0
- package/dist/react/spreadsheet/SpreadsheetGrid.d.ts.map +1 -1
- package/dist/react/spreadsheet/SpreadsheetGrid.js +3 -19
- package/dist/react/spreadsheet/SpreadsheetGrid.js.map +1 -1
- package/dist/react/spreadsheet/useGlideTheme.d.ts +9 -0
- package/dist/react/spreadsheet/useGlideTheme.d.ts.map +1 -1
- package/dist/react/spreadsheet/useGlideTheme.js +42 -0
- package/dist/react/spreadsheet/useGlideTheme.js.map +1 -1
- package/dist/react/studios/AddRow.d.ts +31 -0
- package/dist/react/studios/AddRow.d.ts.map +1 -0
- package/dist/react/studios/AddRow.js +31 -0
- package/dist/react/studios/AddRow.js.map +1 -0
- package/dist/react/studios/AssetDetailShells.d.ts +9 -0
- package/dist/react/studios/AssetDetailShells.d.ts.map +1 -0
- package/dist/react/studios/AssetDetailShells.js +129 -0
- package/dist/react/studios/AssetDetailShells.js.map +1 -0
- package/dist/react/studios/AssetStudioShell.d.ts +10 -0
- package/dist/react/studios/AssetStudioShell.d.ts.map +1 -0
- package/dist/react/studios/AssetStudioShell.js +93 -0
- package/dist/react/studios/AssetStudioShell.js.map +1 -0
- package/dist/react/studios/BoundAssetDetails.d.ts +82 -0
- package/dist/react/studios/BoundAssetDetails.d.ts.map +1 -0
- package/dist/react/studios/BoundAssetDetails.js +234 -0
- package/dist/react/studios/BoundAssetDetails.js.map +1 -0
- package/dist/react/studios/BoundEngineShells.d.ts +12 -0
- package/dist/react/studios/BoundEngineShells.d.ts.map +1 -0
- package/dist/react/studios/BoundEngineShells.js +646 -0
- package/dist/react/studios/BoundEngineShells.js.map +1 -0
- package/dist/react/studios/BoundKnowledgeDetails.d.ts +20 -0
- package/dist/react/studios/BoundKnowledgeDetails.d.ts.map +1 -0
- package/dist/react/studios/BoundKnowledgeDetails.js +145 -0
- package/dist/react/studios/BoundKnowledgeDetails.js.map +1 -0
- package/dist/react/studios/BoundKnowledgeVerticals.d.ts +17 -0
- package/dist/react/studios/BoundKnowledgeVerticals.d.ts.map +1 -0
- package/dist/react/studios/BoundKnowledgeVerticals.js +261 -0
- package/dist/react/studios/BoundKnowledgeVerticals.js.map +1 -0
- package/dist/react/studios/BoundStudios.d.ts +27 -0
- package/dist/react/studios/BoundStudios.d.ts.map +1 -0
- package/dist/react/studios/BoundStudios.js +250 -0
- package/dist/react/studios/BoundStudios.js.map +1 -0
- package/dist/react/studios/DevStudioShell.d.ts +15 -0
- package/dist/react/studios/DevStudioShell.d.ts.map +1 -0
- package/dist/react/studios/DevStudioShell.js +163 -0
- package/dist/react/studios/DevStudioShell.js.map +1 -0
- package/dist/react/studios/EngineFills.d.ts +87 -0
- package/dist/react/studios/EngineFills.d.ts.map +1 -0
- package/dist/react/studios/EngineFills.js +146 -0
- package/dist/react/studios/EngineFills.js.map +1 -0
- package/dist/react/studios/GuardAccountPanels.d.ts +146 -0
- package/dist/react/studios/GuardAccountPanels.d.ts.map +1 -0
- package/dist/react/studios/GuardAccountPanels.js +183 -0
- package/dist/react/studios/GuardAccountPanels.js.map +1 -0
- package/dist/react/studios/GuardEngineShell.d.ts +4 -0
- package/dist/react/studios/GuardEngineShell.d.ts.map +1 -0
- package/dist/react/studios/GuardEngineShell.js +108 -0
- package/dist/react/studios/GuardEngineShell.js.map +1 -0
- package/dist/react/studios/KnowledgeDetailShells.d.ts +6 -0
- package/dist/react/studios/KnowledgeDetailShells.d.ts.map +1 -0
- package/dist/react/studios/KnowledgeDetailShells.js +164 -0
- package/dist/react/studios/KnowledgeDetailShells.js.map +1 -0
- package/dist/react/studios/KnowledgeStudioShell.d.ts +4 -0
- package/dist/react/studios/KnowledgeStudioShell.d.ts.map +1 -0
- package/dist/react/studios/KnowledgeStudioShell.js +83 -0
- package/dist/react/studios/KnowledgeStudioShell.js.map +1 -0
- package/dist/react/studios/KnowledgeVerticalShells.d.ts +25 -0
- package/dist/react/studios/KnowledgeVerticalShells.d.ts.map +1 -0
- package/dist/react/studios/KnowledgeVerticalShells.js +201 -0
- package/dist/react/studios/KnowledgeVerticalShells.js.map +1 -0
- package/dist/react/studios/Stopwatch.d.ts +2 -0
- package/dist/react/studios/Stopwatch.d.ts.map +1 -0
- package/dist/react/studios/Stopwatch.js +56 -0
- package/dist/react/studios/Stopwatch.js.map +1 -0
- package/dist/react/studios/StudioNav.d.ts +11 -0
- package/dist/react/studios/StudioNav.d.ts.map +1 -0
- package/dist/react/studios/StudioNav.js +25 -0
- package/dist/react/studios/StudioNav.js.map +1 -0
- package/dist/react/studios/StudioUnbound.d.ts +15 -0
- package/dist/react/studios/StudioUnbound.d.ts.map +1 -0
- package/dist/react/studios/StudioUnbound.js +6 -0
- package/dist/react/studios/StudioUnbound.js.map +1 -0
- package/dist/react/studios/SystemUtilityShell.d.ts +9 -0
- package/dist/react/studios/SystemUtilityShell.d.ts.map +1 -0
- package/dist/react/studios/SystemUtilityShell.js +209 -0
- package/dist/react/studios/SystemUtilityShell.js.map +1 -0
- package/dist/react/studios/featureGate.d.ts +74 -0
- package/dist/react/studios/featureGate.d.ts.map +1 -0
- package/dist/react/studios/featureGate.js +116 -0
- package/dist/react/studios/featureGate.js.map +1 -0
- package/dist/react/studios/index.d.ts +24 -0
- package/dist/react/studios/index.d.ts.map +1 -0
- package/dist/react/studios/index.js +34 -0
- package/dist/react/studios/index.js.map +1 -0
- package/dist/react/studios/studioRoutes.d.ts +45 -0
- package/dist/react/studios/studioRoutes.d.ts.map +1 -0
- package/dist/react/studios/studioRoutes.js +78 -0
- package/dist/react/studios/studioRoutes.js.map +1 -0
- package/dist/react/studios/types.d.ts +797 -0
- package/dist/react/studios/types.d.ts.map +1 -0
- package/dist/react/studios/types.js +16 -0
- package/dist/react/studios/types.js.map +1 -0
- package/dist/react/studios/useStudioInstance.d.ts +42 -0
- package/dist/react/studios/useStudioInstance.d.ts.map +1 -0
- package/dist/react/studios/useStudioInstance.js +21 -0
- package/dist/react/studios/useStudioInstance.js.map +1 -0
- package/dist/react/studios/viewIds.d.ts +50 -0
- package/dist/react/studios/viewIds.d.ts.map +1 -0
- package/dist/react/studios/viewIds.js +85 -0
- package/dist/react/studios/viewIds.js.map +1 -0
- package/dist/react/testReport/TestReportViewer.d.ts +1 -1
- package/dist/react/testReport/TestReportViewer.d.ts.map +1 -1
- package/dist/react/testReport/TestReportViewer.js +8 -7
- package/dist/react/testReport/TestReportViewer.js.map +1 -1
- package/dist/react/usePagedList.d.ts +49 -0
- package/dist/react/usePagedList.d.ts.map +1 -0
- package/dist/react/usePagedList.js +45 -0
- package/dist/react/usePagedList.js.map +1 -0
- package/dist/react/workbook-viewer/WorkbookViewer.d.ts +24 -0
- package/dist/react/workbook-viewer/WorkbookViewer.d.ts.map +1 -0
- package/dist/react/workbook-viewer/WorkbookViewer.js +157 -0
- package/dist/react/workbook-viewer/WorkbookViewer.js.map +1 -0
- package/dist/react/workbook-viewer/index.d.ts +3 -0
- package/dist/react/workbook-viewer/index.d.ts.map +1 -0
- package/dist/react/workbook-viewer/index.js +11 -0
- package/dist/react/workbook-viewer/index.js.map +1 -0
- package/dist/react/workbook-viewer/parseWorkbook.d.ts +63 -0
- package/dist/react/workbook-viewer/parseWorkbook.d.ts.map +1 -0
- package/dist/react/workbook-viewer/parseWorkbook.js +110 -0
- package/dist/react/workbook-viewer/parseWorkbook.js.map +1 -0
- package/dist/server/activity/index.d.ts +37 -0
- package/dist/server/activity/index.d.ts.map +1 -0
- package/dist/server/activity/index.js +37 -0
- package/dist/server/activity/index.js.map +1 -0
- package/dist/server/activity/migrations.d.ts +22 -0
- package/dist/server/activity/migrations.d.ts.map +1 -0
- package/dist/server/activity/migrations.js +56 -0
- package/dist/server/activity/migrations.js.map +1 -0
- package/dist/server/activity/shareSource.d.ts +12 -0
- package/dist/server/activity/shareSource.d.ts.map +1 -0
- package/dist/server/activity/shareSource.js +46 -0
- package/dist/server/activity/shareSource.js.map +1 -0
- package/dist/server/activity/store.d.ts +124 -0
- package/dist/server/activity/store.d.ts.map +1 -0
- package/dist/server/activity/store.js +179 -0
- package/dist/server/activity/store.js.map +1 -0
- package/dist/server/app.d.ts +18 -3
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +6 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/audit/index.d.ts +3 -0
- package/dist/server/audit/index.d.ts.map +1 -0
- package/dist/server/audit/index.js +3 -0
- package/dist/server/audit/index.js.map +1 -0
- package/dist/server/audit/migrations.d.ts +3 -0
- package/dist/server/audit/migrations.d.ts.map +1 -0
- package/dist/server/audit/migrations.js +80 -0
- package/dist/server/audit/migrations.js.map +1 -0
- package/dist/server/audit/sqliteSink.d.ts +37 -0
- package/dist/server/audit/sqliteSink.d.ts.map +1 -0
- package/dist/server/audit/sqliteSink.js +96 -0
- package/dist/server/audit/sqliteSink.js.map +1 -0
- package/dist/server/audit/sqliteSink.test.d.ts +2 -0
- package/dist/server/audit/sqliteSink.test.d.ts.map +1 -0
- package/dist/server/audit/sqliteSink.test.js +181 -0
- package/dist/server/audit/sqliteSink.test.js.map +1 -0
- package/dist/server/auth/fileTokenSigner.d.ts +11 -0
- package/dist/server/auth/fileTokenSigner.d.ts.map +1 -0
- package/dist/server/auth/fileTokenSigner.js +23 -0
- package/dist/server/auth/fileTokenSigner.js.map +1 -0
- package/dist/server/auth/index.d.ts +2 -1
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +2 -1
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/auth/loginThrottle.d.ts +113 -28
- package/dist/server/auth/loginThrottle.d.ts.map +1 -1
- package/dist/server/auth/loginThrottle.js +192 -50
- package/dist/server/auth/loginThrottle.js.map +1 -1
- package/dist/server/ctgr.d.ts +2 -1
- package/dist/server/ctgr.d.ts.map +1 -1
- package/dist/server/ctgr.js +13 -4
- package/dist/server/ctgr.js.map +1 -1
- package/dist/server/drivers/bullmqQueueAdapter.d.ts +57 -0
- package/dist/server/drivers/bullmqQueueAdapter.d.ts.map +1 -0
- package/dist/server/drivers/bullmqQueueAdapter.js +108 -0
- package/dist/server/drivers/bullmqQueueAdapter.js.map +1 -0
- package/dist/server/drivers/cognitiveGateway.d.ts +206 -0
- package/dist/server/drivers/cognitiveGateway.d.ts.map +1 -0
- package/dist/server/drivers/cognitiveGateway.js +247 -0
- package/dist/server/drivers/cognitiveGateway.js.map +1 -0
- package/dist/server/drivers/executionDriver.d.ts +216 -0
- package/dist/server/drivers/executionDriver.d.ts.map +1 -0
- package/dist/server/drivers/executionDriver.js +382 -0
- package/dist/server/drivers/executionDriver.js.map +1 -0
- package/dist/server/drivers/index.d.ts +21 -0
- package/dist/server/drivers/index.d.ts.map +1 -0
- package/dist/server/drivers/index.js +42 -0
- package/dist/server/drivers/index.js.map +1 -0
- package/dist/server/drivers/jobBroker.d.ts +133 -0
- package/dist/server/drivers/jobBroker.d.ts.map +1 -0
- package/dist/server/drivers/jobBroker.js +211 -0
- package/dist/server/drivers/jobBroker.js.map +1 -0
- package/dist/server/drivers/jobResults.d.ts +158 -0
- package/dist/server/drivers/jobResults.d.ts.map +1 -0
- package/dist/server/drivers/jobResults.js +328 -0
- package/dist/server/drivers/jobResults.js.map +1 -0
- package/dist/server/drivers/pooledControlStores.d.ts +94 -0
- package/dist/server/drivers/pooledControlStores.d.ts.map +1 -0
- package/dist/server/drivers/pooledControlStores.js +171 -0
- package/dist/server/drivers/pooledControlStores.js.map +1 -0
- package/dist/server/drivers/pooledControlStores.pg.test.d.ts +2 -0
- package/dist/server/drivers/pooledControlStores.pg.test.d.ts.map +1 -0
- package/dist/server/drivers/pooledControlStores.pg.test.js +136 -0
- package/dist/server/drivers/pooledControlStores.pg.test.js.map +1 -0
- package/dist/server/drivers/pooledIdentityStore.d.ts +89 -0
- package/dist/server/drivers/pooledIdentityStore.d.ts.map +1 -0
- package/dist/server/drivers/pooledIdentityStore.js +154 -0
- package/dist/server/drivers/pooledIdentityStore.js.map +1 -0
- package/dist/server/drivers/pooledIdentityStore.pg.test.d.ts +2 -0
- package/dist/server/drivers/pooledIdentityStore.pg.test.d.ts.map +1 -0
- package/dist/server/drivers/pooledIdentityStore.pg.test.js +193 -0
- package/dist/server/drivers/pooledIdentityStore.pg.test.js.map +1 -0
- package/dist/server/drivers/providers/anthropicDriver.d.ts +29 -0
- package/dist/server/drivers/providers/anthropicDriver.d.ts.map +1 -0
- package/dist/server/drivers/providers/anthropicDriver.js +89 -0
- package/dist/server/drivers/providers/anthropicDriver.js.map +1 -0
- package/dist/server/drivers/providers/comfyuiDriver.d.ts +61 -0
- package/dist/server/drivers/providers/comfyuiDriver.d.ts.map +1 -0
- package/dist/server/drivers/providers/comfyuiDriver.js +130 -0
- package/dist/server/drivers/providers/comfyuiDriver.js.map +1 -0
- package/dist/server/drivers/providers/index.d.ts +54 -0
- package/dist/server/drivers/providers/index.d.ts.map +1 -0
- package/dist/server/drivers/providers/index.js +71 -0
- package/dist/server/drivers/providers/index.js.map +1 -0
- package/dist/server/drivers/providers/ollamaDriver.d.ts +58 -0
- package/dist/server/drivers/providers/ollamaDriver.d.ts.map +1 -0
- package/dist/server/drivers/providers/ollamaDriver.js +108 -0
- package/dist/server/drivers/providers/ollamaDriver.js.map +1 -0
- package/dist/server/drivers/providers/openaiDriver.d.ts +36 -0
- package/dist/server/drivers/providers/openaiDriver.d.ts.map +1 -0
- package/dist/server/drivers/providers/openaiDriver.js +58 -0
- package/dist/server/drivers/providers/openaiDriver.js.map +1 -0
- package/dist/server/drivers/providers/openclawDriver.d.ts +36 -0
- package/dist/server/drivers/providers/openclawDriver.d.ts.map +1 -0
- package/dist/server/drivers/providers/openclawDriver.js +78 -0
- package/dist/server/drivers/providers/openclawDriver.js.map +1 -0
- package/dist/server/drivers/providers/transport.d.ts +115 -0
- package/dist/server/drivers/providers/transport.d.ts.map +1 -0
- package/dist/server/drivers/providers/transport.js +167 -0
- package/dist/server/drivers/providers/transport.js.map +1 -0
- package/dist/server/drivers/retentionPolicy.d.ts +146 -0
- package/dist/server/drivers/retentionPolicy.d.ts.map +1 -0
- package/dist/server/drivers/retentionPolicy.js +135 -0
- package/dist/server/drivers/retentionPolicy.js.map +1 -0
- package/dist/server/drivers/retentionPolicy.pg.test.d.ts +2 -0
- package/dist/server/drivers/retentionPolicy.pg.test.d.ts.map +1 -0
- package/dist/server/drivers/retentionPolicy.pg.test.js +89 -0
- package/dist/server/drivers/retentionPolicy.pg.test.js.map +1 -0
- package/dist/server/drivers/saasJobBroker.d.ts +96 -0
- package/dist/server/drivers/saasJobBroker.d.ts.map +1 -0
- package/dist/server/drivers/saasJobBroker.js +101 -0
- package/dist/server/drivers/saasJobBroker.js.map +1 -0
- package/dist/server/drivers/saasJobWorker.d.ts +39 -0
- package/dist/server/drivers/saasJobWorker.d.ts.map +1 -0
- package/dist/server/drivers/saasJobWorker.js +200 -0
- package/dist/server/drivers/saasJobWorker.js.map +1 -0
- package/dist/server/drivers/siteCopy.d.ts +57 -0
- package/dist/server/drivers/siteCopy.d.ts.map +1 -0
- package/dist/server/drivers/siteCopy.js +161 -0
- package/dist/server/drivers/siteCopy.js.map +1 -0
- package/dist/server/dropzone/duplicates.d.ts +83 -0
- package/dist/server/dropzone/duplicates.d.ts.map +1 -0
- package/dist/server/dropzone/duplicates.js +91 -0
- package/dist/server/dropzone/duplicates.js.map +1 -0
- package/dist/server/dropzone/index.d.ts +14 -0
- package/dist/server/dropzone/index.d.ts.map +1 -0
- package/dist/server/dropzone/index.js +14 -0
- package/dist/server/dropzone/index.js.map +1 -0
- package/dist/server/dropzone/scan.d.ts +167 -0
- package/dist/server/dropzone/scan.d.ts.map +1 -0
- package/dist/server/dropzone/scan.js +273 -0
- package/dist/server/dropzone/scan.js.map +1 -0
- package/dist/server/errors.d.ts +5 -49
- package/dist/server/errors.d.ts.map +1 -1
- package/dist/server/errors.js +5 -49
- package/dist/server/errors.js.map +1 -1
- package/dist/server/guard/argon2Binding.d.ts +98 -0
- package/dist/server/guard/argon2Binding.d.ts.map +1 -0
- package/dist/server/guard/argon2Binding.js +139 -0
- package/dist/server/guard/argon2Binding.js.map +1 -0
- package/dist/server/guard/index.d.ts +4 -0
- package/dist/server/guard/index.d.ts.map +1 -0
- package/dist/server/guard/index.js +6 -0
- package/dist/server/guard/index.js.map +1 -0
- package/dist/server/guard/kdfWorker.d.ts +102 -0
- package/dist/server/guard/kdfWorker.d.ts.map +1 -0
- package/dist/server/guard/kdfWorker.js +302 -0
- package/dist/server/guard/kdfWorker.js.map +1 -0
- package/dist/server/guard/kdfWorkerEntry.d.ts +2 -0
- package/dist/server/guard/kdfWorkerEntry.d.ts.map +1 -0
- package/dist/server/guard/kdfWorkerEntry.js +16 -0
- package/dist/server/guard/kdfWorkerEntry.js.map +1 -0
- package/dist/server/guard/passwordVerifier.d.ts +66 -0
- package/dist/server/guard/passwordVerifier.d.ts.map +1 -0
- package/dist/server/guard/passwordVerifier.js +123 -0
- package/dist/server/guard/passwordVerifier.js.map +1 -0
- package/dist/server/guard/revocationStore.d.ts +133 -0
- package/dist/server/guard/revocationStore.d.ts.map +1 -0
- package/dist/server/guard/revocationStore.js +212 -0
- package/dist/server/guard/revocationStore.js.map +1 -0
- package/dist/server/guard/sessionSigner.d.ts +133 -0
- package/dist/server/guard/sessionSigner.d.ts.map +1 -0
- package/dist/server/guard/sessionSigner.js +304 -0
- package/dist/server/guard/sessionSigner.js.map +1 -0
- package/dist/server/incidents/channels.d.ts +162 -0
- package/dist/server/incidents/channels.d.ts.map +1 -0
- package/dist/server/incidents/channels.js +358 -0
- package/dist/server/incidents/channels.js.map +1 -0
- package/dist/server/incidents/checks.d.ts +62 -0
- package/dist/server/incidents/checks.d.ts.map +1 -0
- package/dist/server/incidents/checks.js +56 -0
- package/dist/server/incidents/checks.js.map +1 -0
- package/dist/server/incidents/index.d.ts +52 -0
- package/dist/server/incidents/index.d.ts.map +1 -0
- package/dist/server/incidents/index.js +52 -0
- package/dist/server/incidents/index.js.map +1 -0
- package/dist/server/incidents/migrations.d.ts +21 -0
- package/dist/server/incidents/migrations.d.ts.map +1 -0
- package/dist/server/incidents/migrations.js +59 -0
- package/dist/server/incidents/migrations.js.map +1 -0
- package/dist/server/incidents/notifier.d.ts +80 -0
- package/dist/server/incidents/notifier.d.ts.map +1 -0
- package/dist/server/incidents/notifier.js +142 -0
- package/dist/server/incidents/notifier.js.map +1 -0
- package/dist/server/incidents/reporter.d.ts +61 -0
- package/dist/server/incidents/reporter.d.ts.map +1 -0
- package/dist/server/incidents/reporter.js +50 -0
- package/dist/server/incidents/reporter.js.map +1 -0
- package/dist/server/incidents/routes.d.ts +92 -0
- package/dist/server/incidents/routes.d.ts.map +1 -0
- package/dist/server/incidents/routes.js +203 -0
- package/dist/server/incidents/routes.js.map +1 -0
- package/dist/server/incidents/store.d.ts +76 -0
- package/dist/server/incidents/store.d.ts.map +1 -0
- package/dist/server/incidents/store.js +177 -0
- package/dist/server/incidents/store.js.map +1 -0
- package/dist/server/incidents/types.d.ts +108 -0
- package/dist/server/incidents/types.d.ts.map +1 -0
- package/dist/server/incidents/types.js +33 -0
- package/dist/server/incidents/types.js.map +1 -0
- package/dist/server/index.d.ts +8 -5
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +14 -6
- package/dist/server/index.js.map +1 -1
- package/dist/server/jobs/index.d.ts +1 -1
- package/dist/server/jobs/index.d.ts.map +1 -1
- package/dist/server/jobs/index.js +1 -1
- package/dist/server/jobs/index.js.map +1 -1
- package/dist/server/jobs/polling.d.ts.map +1 -1
- package/dist/server/jobs/polling.js +18 -1
- package/dist/server/jobs/polling.js.map +1 -1
- package/dist/server/jobs/runner.d.ts +6 -0
- package/dist/server/jobs/runner.d.ts.map +1 -1
- package/dist/server/jobs/runner.js +48 -3
- package/dist/server/jobs/runner.js.map +1 -1
- package/dist/server/jobs/types.d.ts +28 -1
- package/dist/server/jobs/types.d.ts.map +1 -1
- package/dist/server/jobs/types.js +8 -0
- package/dist/server/jobs/types.js.map +1 -1
- package/dist/server/master-lock/guard.d.ts +54 -0
- package/dist/server/master-lock/guard.d.ts.map +1 -0
- package/dist/server/master-lock/guard.js +206 -0
- package/dist/server/master-lock/guard.js.map +1 -0
- package/dist/server/master-lock/index.d.ts +22 -0
- package/dist/server/master-lock/index.d.ts.map +1 -0
- package/dist/server/master-lock/index.js +22 -0
- package/dist/server/master-lock/index.js.map +1 -0
- package/dist/server/master-lock/lockPage.d.ts +35 -0
- package/dist/server/master-lock/lockPage.d.ts.map +1 -0
- package/dist/server/master-lock/lockPage.js +282 -0
- package/dist/server/master-lock/lockPage.js.map +1 -0
- package/dist/server/master-lock/masterLock.d.ts +295 -0
- package/dist/server/master-lock/masterLock.d.ts.map +1 -0
- package/dist/server/master-lock/masterLock.js +524 -0
- package/dist/server/master-lock/masterLock.js.map +1 -0
- package/dist/server/master-lock/principals.d.ts +77 -0
- package/dist/server/master-lock/principals.d.ts.map +1 -0
- package/dist/server/master-lock/principals.js +158 -0
- package/dist/server/master-lock/principals.js.map +1 -0
- package/dist/server/master-lock/seed.d.ts +48 -0
- package/dist/server/master-lock/seed.d.ts.map +1 -0
- package/dist/server/master-lock/seed.js +94 -0
- package/dist/server/master-lock/seed.js.map +1 -0
- package/dist/server/master-lock/store.d.ts +20 -0
- package/dist/server/master-lock/store.d.ts.map +1 -0
- package/dist/server/master-lock/store.js +21 -0
- package/dist/server/master-lock/store.js.map +1 -0
- package/dist/server/media-bun/index.d.ts +3 -2
- package/dist/server/media-bun/index.d.ts.map +1 -1
- package/dist/server/media-bun/index.js +6 -3
- package/dist/server/media-bun/index.js.map +1 -1
- package/dist/server/media-bun/streaming.d.ts +87 -0
- package/dist/server/media-bun/streaming.d.ts.map +1 -0
- package/dist/server/media-bun/streaming.js +238 -0
- package/dist/server/media-bun/streaming.js.map +1 -0
- package/dist/server/media-bun/video.d.ts +20 -1
- package/dist/server/media-bun/video.d.ts.map +1 -1
- package/dist/server/media-bun/video.js +83 -1
- package/dist/server/media-bun/video.js.map +1 -1
- package/dist/server/middleware/corsAllowlist.d.ts +39 -0
- package/dist/server/middleware/corsAllowlist.d.ts.map +1 -0
- package/dist/server/middleware/corsAllowlist.js +38 -0
- package/dist/server/middleware/corsAllowlist.js.map +1 -0
- package/dist/server/middleware/errorEnvelope.d.ts +11 -7
- package/dist/server/middleware/errorEnvelope.d.ts.map +1 -1
- package/dist/server/middleware/errorEnvelope.js +22 -19
- package/dist/server/middleware/errorEnvelope.js.map +1 -1
- package/dist/server/middleware/index.d.ts +4 -1
- package/dist/server/middleware/index.d.ts.map +1 -1
- package/dist/server/middleware/index.js +4 -1
- package/dist/server/middleware/index.js.map +1 -1
- package/dist/server/middleware/localOrigin.d.ts +72 -0
- package/dist/server/middleware/localOrigin.d.ts.map +1 -0
- package/dist/server/middleware/localOrigin.js +120 -0
- package/dist/server/middleware/localOrigin.js.map +1 -0
- package/dist/server/middleware/rateLimit.d.ts +36 -7
- package/dist/server/middleware/rateLimit.d.ts.map +1 -1
- package/dist/server/middleware/rateLimit.js +36 -14
- package/dist/server/middleware/rateLimit.js.map +1 -1
- package/dist/server/middleware/zValidator.d.ts +1 -19
- package/dist/server/middleware/zValidator.d.ts.map +1 -1
- package/dist/server/middleware/zValidator.js +3 -21
- package/dist/server/middleware/zValidator.js.map +1 -1
- package/dist/server/migration/runner.d.ts +11 -11
- package/dist/server/migration/runner.d.ts.map +1 -1
- package/dist/server/migration/runner.js +20 -5
- package/dist/server/migration/runner.js.map +1 -1
- package/dist/server/mixins/asset.mixin.d.ts +13 -0
- package/dist/server/mixins/asset.mixin.d.ts.map +1 -0
- package/dist/server/mixins/asset.mixin.js +419 -0
- package/dist/server/mixins/asset.mixin.js.map +1 -0
- package/dist/server/mixins/billing.mixin.d.ts +49 -0
- package/dist/server/mixins/billing.mixin.d.ts.map +1 -0
- package/dist/server/mixins/billing.mixin.js +36 -0
- package/dist/server/mixins/billing.mixin.js.map +1 -0
- package/dist/server/mixins/core.mixin.d.ts +14 -0
- package/dist/server/mixins/core.mixin.d.ts.map +1 -0
- package/dist/server/mixins/core.mixin.js +180 -0
- package/dist/server/mixins/core.mixin.js.map +1 -0
- package/dist/server/mixins/dev.mixin.d.ts +4 -0
- package/dist/server/mixins/dev.mixin.d.ts.map +1 -0
- package/dist/server/mixins/dev.mixin.js +164 -0
- package/dist/server/mixins/dev.mixin.js.map +1 -0
- package/dist/server/mixins/enforcement.d.ts +73 -0
- package/dist/server/mixins/enforcement.d.ts.map +1 -0
- package/dist/server/mixins/enforcement.js +53 -0
- package/dist/server/mixins/enforcement.js.map +1 -0
- package/dist/server/mixins/guard.mixin.d.ts +6 -0
- package/dist/server/mixins/guard.mixin.d.ts.map +1 -0
- package/dist/server/mixins/guard.mixin.js +506 -0
- package/dist/server/mixins/guard.mixin.js.map +1 -0
- package/dist/server/mixins/index.d.ts +68 -0
- package/dist/server/mixins/index.d.ts.map +1 -0
- package/dist/server/mixins/index.js +164 -0
- package/dist/server/mixins/index.js.map +1 -0
- package/dist/server/mixins/instance.mixin.d.ts +21 -0
- package/dist/server/mixins/instance.mixin.d.ts.map +1 -0
- package/dist/server/mixins/instance.mixin.js +139 -0
- package/dist/server/mixins/instance.mixin.js.map +1 -0
- package/dist/server/mixins/knowledge.mixin.d.ts +4 -0
- package/dist/server/mixins/knowledge.mixin.d.ts.map +1 -0
- package/dist/server/mixins/knowledge.mixin.js +629 -0
- package/dist/server/mixins/knowledge.mixin.js.map +1 -0
- package/dist/server/mixins/requestClaims.d.ts +18 -0
- package/dist/server/mixins/requestClaims.d.ts.map +1 -0
- package/dist/server/mixins/requestClaims.js +53 -0
- package/dist/server/mixins/requestClaims.js.map +1 -0
- package/dist/server/mixins/security.d.ts +80 -0
- package/dist/server/mixins/security.d.ts.map +1 -0
- package/dist/server/mixins/security.js +129 -0
- package/dist/server/mixins/security.js.map +1 -0
- package/dist/server/mixins/services.d.ts +1317 -0
- package/dist/server/mixins/services.d.ts.map +1 -0
- package/dist/server/mixins/services.js +2 -0
- package/dist/server/mixins/services.js.map +1 -0
- package/dist/server/mixins/system.mixin.d.ts +4 -0
- package/dist/server/mixins/system.mixin.d.ts.map +1 -0
- package/dist/server/mixins/system.mixin.js +385 -0
- package/dist/server/mixins/system.mixin.js.map +1 -0
- package/dist/server/mixins/types.d.ts +153 -0
- package/dist/server/mixins/types.d.ts.map +1 -0
- package/dist/server/mixins/types.js +13 -0
- package/dist/server/mixins/types.js.map +1 -0
- package/dist/server/net/outboundGuard.d.ts +31 -0
- package/dist/server/net/outboundGuard.d.ts.map +1 -0
- package/dist/server/net/outboundGuard.js +200 -0
- package/dist/server/net/outboundGuard.js.map +1 -0
- package/dist/server/notifications/hub.d.ts +68 -0
- package/dist/server/notifications/hub.d.ts.map +1 -0
- package/dist/server/notifications/hub.js +188 -0
- package/dist/server/notifications/hub.js.map +1 -0
- package/dist/server/notifications/index.d.ts +48 -0
- package/dist/server/notifications/index.d.ts.map +1 -0
- package/dist/server/notifications/index.js +47 -0
- package/dist/server/notifications/index.js.map +1 -0
- package/dist/server/notifications/migrations.d.ts +14 -0
- package/dist/server/notifications/migrations.d.ts.map +1 -0
- package/dist/server/notifications/migrations.js +21 -0
- package/dist/server/notifications/migrations.js.map +1 -0
- package/dist/server/notifications/routes.d.ts +59 -0
- package/dist/server/notifications/routes.d.ts.map +1 -0
- package/dist/server/notifications/routes.js +114 -0
- package/dist/server/notifications/routes.js.map +1 -0
- package/dist/server/notifications/service.d.ts +59 -0
- package/dist/server/notifications/service.d.ts.map +1 -0
- package/dist/server/notifications/service.js +42 -0
- package/dist/server/notifications/service.js.map +1 -0
- package/dist/server/ops/engineOps.d.ts +42 -0
- package/dist/server/ops/engineOps.d.ts.map +1 -0
- package/dist/server/ops/engineOps.js +373 -0
- package/dist/server/ops/engineOps.js.map +1 -0
- package/dist/server/ops/index.d.ts +2 -0
- package/dist/server/ops/index.d.ts.map +1 -0
- package/dist/server/ops/index.js +5 -0
- package/dist/server/ops/index.js.map +1 -0
- package/dist/server/paths/appDataHome.d.ts +20 -0
- package/dist/server/paths/appDataHome.d.ts.map +1 -0
- package/dist/server/paths/appDataHome.js +69 -0
- package/dist/server/paths/appDataHome.js.map +1 -0
- package/dist/server/private-media/crypto.d.ts +38 -0
- package/dist/server/private-media/crypto.d.ts.map +1 -0
- package/dist/server/private-media/crypto.js +112 -0
- package/dist/server/private-media/crypto.js.map +1 -0
- package/dist/server/private-media/index-store.d.ts +32 -0
- package/dist/server/private-media/index-store.d.ts.map +1 -0
- package/dist/server/private-media/index-store.js +37 -0
- package/dist/server/private-media/index-store.js.map +1 -0
- package/dist/server/private-media/mountPrivateRoutes.d.ts +27 -0
- package/dist/server/private-media/mountPrivateRoutes.d.ts.map +1 -0
- package/dist/server/private-media/mountPrivateRoutes.js +220 -0
- package/dist/server/private-media/mountPrivateRoutes.js.map +1 -0
- package/dist/server/private-media/pipeline.d.ts +38 -0
- package/dist/server/private-media/pipeline.d.ts.map +1 -0
- package/dist/server/private-media/pipeline.js +98 -0
- package/dist/server/private-media/pipeline.js.map +1 -0
- package/dist/server/private-media/unlock.d.ts +53 -0
- package/dist/server/private-media/unlock.d.ts.map +1 -0
- package/dist/server/private-media/unlock.js +51 -0
- package/dist/server/private-media/unlock.js.map +1 -0
- package/dist/server/resume/index.d.ts +3 -0
- package/dist/server/resume/index.d.ts.map +1 -0
- package/dist/server/resume/index.js +3 -0
- package/dist/server/resume/index.js.map +1 -0
- package/dist/server/resume/routes.d.ts +42 -0
- package/dist/server/resume/routes.d.ts.map +1 -0
- package/dist/server/resume/routes.js +51 -0
- package/dist/server/resume/routes.js.map +1 -0
- package/dist/server/resume/store.d.ts +38 -0
- package/dist/server/resume/store.d.ts.map +1 -0
- package/dist/server/resume/store.js +39 -0
- package/dist/server/resume/store.js.map +1 -0
- package/dist/server/retention/archive.d.ts +79 -0
- package/dist/server/retention/archive.d.ts.map +1 -0
- package/dist/server/retention/archive.js +285 -0
- package/dist/server/retention/archive.js.map +1 -0
- package/dist/server/retention/fleet.d.ts +51 -0
- package/dist/server/retention/fleet.d.ts.map +1 -0
- package/dist/server/retention/fleet.js +67 -0
- package/dist/server/retention/fleet.js.map +1 -0
- package/dist/server/retention/index.d.ts +39 -0
- package/dist/server/retention/index.d.ts.map +1 -0
- package/dist/server/retention/index.js +39 -0
- package/dist/server/retention/index.js.map +1 -0
- package/dist/server/retention/policy.d.ts +264 -0
- package/dist/server/retention/policy.d.ts.map +1 -0
- package/dist/server/retention/policy.js +265 -0
- package/dist/server/retention/policy.js.map +1 -0
- package/dist/server/retention/store.d.ts +102 -0
- package/dist/server/retention/store.d.ts.map +1 -0
- package/dist/server/retention/store.js +252 -0
- package/dist/server/retention/store.js.map +1 -0
- package/dist/server/retention/sweeper.d.ts +70 -0
- package/dist/server/retention/sweeper.d.ts.map +1 -0
- package/dist/server/retention/sweeper.js +290 -0
- package/dist/server/retention/sweeper.js.map +1 -0
- package/dist/server/retention/target.d.ts +144 -0
- package/dist/server/retention/target.d.ts.map +1 -0
- package/dist/server/retention/target.js +439 -0
- package/dist/server/retention/target.js.map +1 -0
- package/dist/server/runtime/bootManifest.d.ts +61 -0
- package/dist/server/runtime/bootManifest.d.ts.map +1 -0
- package/dist/server/runtime/bootManifest.js +109 -0
- package/dist/server/runtime/bootManifest.js.map +1 -0
- package/dist/server/runtime/createCcRuntime.d.ts +91 -0
- package/dist/server/runtime/createCcRuntime.d.ts.map +1 -0
- package/dist/server/runtime/createCcRuntime.js +143 -0
- package/dist/server/runtime/createCcRuntime.js.map +1 -0
- package/dist/server/runtime/governance.d.ts +173 -0
- package/dist/server/runtime/governance.d.ts.map +1 -0
- package/dist/server/runtime/governance.js +168 -0
- package/dist/server/runtime/governance.js.map +1 -0
- package/dist/server/runtime/hostCapabilities.d.ts +60 -0
- package/dist/server/runtime/hostCapabilities.d.ts.map +1 -0
- package/dist/server/runtime/hostCapabilities.js +45 -0
- package/dist/server/runtime/hostCapabilities.js.map +1 -0
- package/dist/server/runtime/index.d.ts +14 -0
- package/dist/server/runtime/index.d.ts.map +1 -0
- package/dist/server/runtime/index.js +37 -0
- package/dist/server/runtime/index.js.map +1 -0
- package/dist/server/runtime/localHost.d.ts +271 -0
- package/dist/server/runtime/localHost.d.ts.map +1 -0
- package/dist/server/runtime/localHost.js +372 -0
- package/dist/server/runtime/localHost.js.map +1 -0
- package/dist/server/runtime/meterRollup.pg.test.d.ts +2 -0
- package/dist/server/runtime/meterRollup.pg.test.d.ts.map +1 -0
- package/dist/server/runtime/meterRollup.pg.test.js +197 -0
- package/dist/server/runtime/meterRollup.pg.test.js.map +1 -0
- package/dist/server/runtime/recipe.d.ts +662 -0
- package/dist/server/runtime/recipe.d.ts.map +1 -0
- package/dist/server/runtime/recipe.js +722 -0
- package/dist/server/runtime/recipe.js.map +1 -0
- package/dist/server/runtime/retentionJob.d.ts +137 -0
- package/dist/server/runtime/retentionJob.d.ts.map +1 -0
- package/dist/server/runtime/retentionJob.js +162 -0
- package/dist/server/runtime/retentionJob.js.map +1 -0
- package/dist/server/runtime/retentionJob.pg.test.d.ts +2 -0
- package/dist/server/runtime/retentionJob.pg.test.d.ts.map +1 -0
- package/dist/server/runtime/retentionJob.pg.test.js +126 -0
- package/dist/server/runtime/retentionJob.pg.test.js.map +1 -0
- package/dist/server/runtime/saasHost.d.ts +242 -0
- package/dist/server/runtime/saasHost.d.ts.map +1 -0
- package/dist/server/runtime/saasHost.js +227 -0
- package/dist/server/runtime/saasHost.js.map +1 -0
- package/dist/server/runtime/serveCcApp.d.ts +48 -0
- package/dist/server/runtime/serveCcApp.d.ts.map +1 -0
- package/dist/server/runtime/serveCcApp.js +28 -0
- package/dist/server/runtime/serveCcApp.js.map +1 -0
- package/dist/server/runtime/staticAssets.d.ts +88 -0
- package/dist/server/runtime/staticAssets.d.ts.map +1 -0
- package/dist/server/runtime/staticAssets.js +160 -0
- package/dist/server/runtime/staticAssets.js.map +1 -0
- package/dist/server/search/index.d.ts +3 -0
- package/dist/server/search/index.d.ts.map +1 -0
- package/dist/server/search/index.js +7 -0
- package/dist/server/search/index.js.map +1 -0
- package/dist/server/search/pgSearchProvider.d.ts +92 -0
- package/dist/server/search/pgSearchProvider.d.ts.map +1 -0
- package/dist/server/search/pgSearchProvider.js +331 -0
- package/dist/server/search/pgSearchProvider.js.map +1 -0
- package/dist/server/search/pgSearchProvider.pg.test.d.ts +2 -0
- package/dist/server/search/pgSearchProvider.pg.test.d.ts.map +1 -0
- package/dist/server/search/pgSearchProvider.pg.test.js +339 -0
- package/dist/server/search/pgSearchProvider.pg.test.js.map +1 -0
- package/dist/server/search/pgSearchSchema.d.ts +82 -0
- package/dist/server/search/pgSearchSchema.d.ts.map +1 -0
- package/dist/server/search/pgSearchSchema.js +90 -0
- package/dist/server/search/pgSearchSchema.js.map +1 -0
- package/dist/server/services/accountService.d.ts +73 -0
- package/dist/server/services/accountService.d.ts.map +1 -0
- package/dist/server/services/accountService.js +647 -0
- package/dist/server/services/accountService.js.map +1 -0
- package/dist/server/services/assetJobs.d.ts +28 -0
- package/dist/server/services/assetJobs.d.ts.map +1 -0
- package/dist/server/services/assetJobs.js +220 -0
- package/dist/server/services/assetJobs.js.map +1 -0
- package/dist/server/services/assetService.d.ts +99 -0
- package/dist/server/services/assetService.d.ts.map +1 -0
- package/dist/server/services/assetService.js +571 -0
- package/dist/server/services/assetService.js.map +1 -0
- package/dist/server/services/assetSources.d.ts +95 -0
- package/dist/server/services/assetSources.d.ts.map +1 -0
- package/dist/server/services/assetSources.js +131 -0
- package/dist/server/services/assetSources.js.map +1 -0
- package/dist/server/services/billingService.d.ts +106 -0
- package/dist/server/services/billingService.d.ts.map +1 -0
- package/dist/server/services/billingService.js +89 -0
- package/dist/server/services/billingService.js.map +1 -0
- package/dist/server/services/devJobs.d.ts +93 -0
- package/dist/server/services/devJobs.d.ts.map +1 -0
- package/dist/server/services/devJobs.js +115 -0
- package/dist/server/services/devJobs.js.map +1 -0
- package/dist/server/services/devService.d.ts +81 -0
- package/dist/server/services/devService.d.ts.map +1 -0
- package/dist/server/services/devService.js +312 -0
- package/dist/server/services/devService.js.map +1 -0
- package/dist/server/services/guardService.d.ts +47 -0
- package/dist/server/services/guardService.d.ts.map +1 -0
- package/dist/server/services/guardService.js +137 -0
- package/dist/server/services/guardService.js.map +1 -0
- package/dist/server/services/index.d.ts +26 -0
- package/dist/server/services/index.d.ts.map +1 -0
- package/dist/server/services/index.js +26 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/knowledgeJobs.d.ts +29 -0
- package/dist/server/services/knowledgeJobs.d.ts.map +1 -0
- package/dist/server/services/knowledgeJobs.js +89 -0
- package/dist/server/services/knowledgeJobs.js.map +1 -0
- package/dist/server/services/knowledgeService.d.ts +42 -0
- package/dist/server/services/knowledgeService.d.ts.map +1 -0
- package/dist/server/services/knowledgeService.js +495 -0
- package/dist/server/services/knowledgeService.js.map +1 -0
- package/dist/server/services/patch.d.ts +15 -0
- package/dist/server/services/patch.d.ts.map +1 -0
- package/dist/server/services/patch.js +21 -0
- package/dist/server/services/patch.js.map +1 -0
- package/dist/server/services/searchJobs.d.ts +97 -0
- package/dist/server/services/searchJobs.d.ts.map +1 -0
- package/dist/server/services/searchJobs.js +161 -0
- package/dist/server/services/searchJobs.js.map +1 -0
- package/dist/server/services/systemService.d.ts +17 -0
- package/dist/server/services/systemService.d.ts.map +1 -0
- package/dist/server/services/systemService.js +403 -0
- package/dist/server/services/systemService.js.map +1 -0
- package/dist/server/services/vaultReaper.d.ts +61 -0
- package/dist/server/services/vaultReaper.d.ts.map +1 -0
- package/dist/server/services/vaultReaper.js +69 -0
- package/dist/server/services/vaultReaper.js.map +1 -0
- package/dist/server/sharing/index.d.ts +19 -0
- package/dist/server/sharing/index.d.ts.map +1 -0
- package/dist/server/sharing/index.js +17 -0
- package/dist/server/sharing/index.js.map +1 -0
- package/dist/server/sharing/migrations.d.ts +7 -0
- package/dist/server/sharing/migrations.d.ts.map +1 -0
- package/dist/server/sharing/migrations.js +80 -0
- package/dist/server/sharing/migrations.js.map +1 -0
- package/dist/server/sharing/router.d.ts +112 -0
- package/dist/server/sharing/router.d.ts.map +1 -0
- package/dist/server/sharing/router.js +94 -0
- package/dist/server/sharing/router.js.map +1 -0
- package/dist/server/sharing/sql.d.ts +68 -0
- package/dist/server/sharing/sql.d.ts.map +1 -0
- package/dist/server/sharing/sql.js +89 -0
- package/dist/server/sharing/sql.js.map +1 -0
- package/dist/server/sharing/store.d.ts +174 -0
- package/dist/server/sharing/store.d.ts.map +1 -0
- package/dist/server/sharing/store.js +485 -0
- package/dist/server/sharing/store.js.map +1 -0
- package/dist/server/sqlite/backup.d.ts +14 -1
- package/dist/server/sqlite/backup.d.ts.map +1 -1
- package/dist/server/sqlite/backup.js +23 -0
- package/dist/server/sqlite/backup.js.map +1 -1
- package/dist/server/sqlite/browse.d.ts +43 -0
- package/dist/server/sqlite/browse.d.ts.map +1 -0
- package/dist/server/sqlite/browse.js +85 -0
- package/dist/server/sqlite/browse.js.map +1 -0
- package/dist/server/sqlite/export.d.ts +33 -0
- package/dist/server/sqlite/export.d.ts.map +1 -0
- package/dist/server/sqlite/export.js +43 -0
- package/dist/server/sqlite/export.js.map +1 -0
- package/dist/server/sqlite/fts5.d.ts +3 -1
- package/dist/server/sqlite/fts5.d.ts.map +1 -1
- package/dist/server/sqlite/fts5.js +6 -2
- package/dist/server/sqlite/fts5.js.map +1 -1
- package/dist/server/sqlite/import.d.ts +37 -0
- package/dist/server/sqlite/import.d.ts.map +1 -0
- package/dist/server/sqlite/import.js +109 -0
- package/dist/server/sqlite/import.js.map +1 -0
- package/dist/server/sqlite/index.d.ts +5 -1
- package/dist/server/sqlite/index.d.ts.map +1 -1
- package/dist/server/sqlite/index.js +9 -3
- package/dist/server/sqlite/index.js.map +1 -1
- package/dist/server/sqlite/stats.d.ts +23 -0
- package/dist/server/sqlite/stats.d.ts.map +1 -0
- package/dist/server/sqlite/stats.js +33 -0
- package/dist/server/sqlite/stats.js.map +1 -0
- package/dist/server/sqlite/viewer.d.ts +14 -0
- package/dist/server/sqlite/viewer.d.ts.map +1 -1
- package/dist/server/sqlite/viewer.js +27 -62
- package/dist/server/sqlite/viewer.js.map +1 -1
- package/dist/server/storage/binaryServerProcessing.d.ts +24 -0
- package/dist/server/storage/binaryServerProcessing.d.ts.map +1 -0
- package/dist/server/storage/binaryServerProcessing.js +82 -0
- package/dist/server/storage/binaryServerProcessing.js.map +1 -0
- package/dist/server/storage/binaryServerStore.d.ts +44 -0
- package/dist/server/storage/binaryServerStore.d.ts.map +1 -0
- package/dist/server/storage/binaryServerStore.js +88 -0
- package/dist/server/storage/binaryServerStore.js.map +1 -0
- package/dist/server/storage/diskStore.d.ts +3 -0
- package/dist/server/storage/diskStore.d.ts.map +1 -0
- package/dist/server/storage/diskStore.js +89 -0
- package/dist/server/storage/diskStore.js.map +1 -0
- package/dist/server/storage/files/adapter.d.ts +34 -0
- package/dist/server/storage/files/adapter.d.ts.map +1 -0
- package/dist/server/storage/files/adapter.js +204 -0
- package/dist/server/storage/files/adapter.js.map +1 -0
- package/dist/server/storage/files/catalogue.d.ts +73 -0
- package/dist/server/storage/files/catalogue.d.ts.map +1 -0
- package/dist/server/storage/files/catalogue.js +1034 -0
- package/dist/server/storage/files/catalogue.js.map +1 -0
- package/dist/server/storage/files/chunkedUpload.d.ts +57 -0
- package/dist/server/storage/files/chunkedUpload.d.ts.map +1 -0
- package/dist/server/storage/files/chunkedUpload.js +71 -0
- package/dist/server/storage/files/chunkedUpload.js.map +1 -0
- package/dist/server/storage/files/fileRoutes.d.ts +52 -0
- package/dist/server/storage/files/fileRoutes.d.ts.map +1 -0
- package/dist/server/storage/files/fileRoutes.js +406 -0
- package/dist/server/storage/files/fileRoutes.js.map +1 -0
- package/dist/server/storage/files/index.d.ts +10 -0
- package/dist/server/storage/files/index.d.ts.map +1 -0
- package/dist/server/storage/files/index.js +12 -0
- package/dist/server/storage/files/index.js.map +1 -0
- package/dist/server/storage/files/migrations.d.ts +3 -0
- package/dist/server/storage/files/migrations.d.ts.map +1 -0
- package/dist/server/storage/files/migrations.js +164 -0
- package/dist/server/storage/files/migrations.js.map +1 -0
- package/dist/server/storage/files/mimeByExt.d.ts +2 -0
- package/dist/server/storage/files/mimeByExt.d.ts.map +1 -0
- package/dist/server/storage/files/mimeByExt.js +14 -0
- package/dist/server/storage/files/mimeByExt.js.map +1 -0
- package/dist/server/storage/files/stack.d.ts +137 -0
- package/dist/server/storage/files/stack.d.ts.map +1 -0
- package/dist/server/storage/files/stack.js +133 -0
- package/dist/server/storage/files/stack.js.map +1 -0
- package/dist/server/storage/files/storageOps.d.ts +55 -0
- package/dist/server/storage/files/storageOps.d.ts.map +1 -0
- package/dist/server/storage/files/storageOps.js +111 -0
- package/dist/server/storage/files/storageOps.js.map +1 -0
- package/dist/server/storage/files/types.d.ts +262 -0
- package/dist/server/storage/files/types.d.ts.map +1 -0
- package/dist/server/storage/files/types.js +23 -0
- package/dist/server/storage/files/types.js.map +1 -0
- package/dist/server/storage/imageThumbnail.d.ts +4 -0
- package/dist/server/storage/imageThumbnail.d.ts.map +1 -0
- package/dist/server/storage/imageThumbnail.js +51 -0
- package/dist/server/storage/imageThumbnail.js.map +1 -0
- package/dist/server/storage/index.d.ts +16 -0
- package/dist/server/storage/index.d.ts.map +1 -0
- package/dist/server/storage/index.js +28 -0
- package/dist/server/storage/index.js.map +1 -0
- package/dist/server/storage/mountMediaRoutes.d.ts +29 -0
- package/dist/server/storage/mountMediaRoutes.d.ts.map +1 -0
- package/dist/server/storage/mountMediaRoutes.js +142 -0
- package/dist/server/storage/mountMediaRoutes.js.map +1 -0
- package/dist/server/storage/objectStoreMediaStore.d.ts +5 -0
- package/dist/server/storage/objectStoreMediaStore.d.ts.map +1 -0
- package/dist/server/storage/objectStoreMediaStore.js +58 -0
- package/dist/server/storage/objectStoreMediaStore.js.map +1 -0
- package/dist/server/storage/s3ObjectStore.d.ts +64 -0
- package/dist/server/storage/s3ObjectStore.d.ts.map +1 -0
- package/dist/server/storage/s3ObjectStore.js +188 -0
- package/dist/server/storage/s3ObjectStore.js.map +1 -0
- package/dist/server/storage/sources.d.ts +48 -0
- package/dist/server/storage/sources.d.ts.map +1 -0
- package/dist/server/storage/sources.js +149 -0
- package/dist/server/storage/sources.js.map +1 -0
- package/dist/server/storage/streamRange.d.ts +20 -0
- package/dist/server/storage/streamRange.d.ts.map +1 -0
- package/dist/server/storage/streamRange.js +70 -0
- package/dist/server/storage/streamRange.js.map +1 -0
- package/dist/server/storage/streamToken.d.ts +17 -0
- package/dist/server/storage/streamToken.d.ts.map +1 -0
- package/dist/server/storage/streamToken.js +48 -0
- package/dist/server/storage/streamToken.js.map +1 -0
- package/dist/server/storage/transcodeJobs.d.ts +66 -0
- package/dist/server/storage/transcodeJobs.d.ts.map +1 -0
- package/dist/server/storage/transcodeJobs.js +105 -0
- package/dist/server/storage/transcodeJobs.js.map +1 -0
- package/dist/server/storage/types.d.ts +153 -0
- package/dist/server/storage/types.d.ts.map +1 -0
- package/dist/server/storage/types.js +31 -0
- package/dist/server/storage/types.js.map +1 -0
- package/dist/server/storage/videoDerivativeKeys.d.ts +128 -0
- package/dist/server/storage/videoDerivativeKeys.d.ts.map +1 -0
- package/dist/server/storage/videoDerivativeKeys.js +150 -0
- package/dist/server/storage/videoDerivativeKeys.js.map +1 -0
- package/dist/server/storage/videoProcessor.d.ts +31 -0
- package/dist/server/storage/videoProcessor.d.ts.map +1 -0
- package/dist/server/storage/videoProcessor.js +149 -0
- package/dist/server/storage/videoProcessor.js.map +1 -0
- package/dist/server/stream/cdcBridge.d.ts +68 -0
- package/dist/server/stream/cdcBridge.d.ts.map +1 -0
- package/dist/server/stream/cdcBridge.js +82 -0
- package/dist/server/stream/cdcBridge.js.map +1 -0
- package/dist/server/stream/index.d.ts +4 -0
- package/dist/server/stream/index.d.ts.map +1 -0
- package/dist/server/stream/index.js +6 -0
- package/dist/server/stream/index.js.map +1 -0
- package/dist/server/stream/searchBridge.d.ts +29 -0
- package/dist/server/stream/searchBridge.d.ts.map +1 -0
- package/dist/server/stream/searchBridge.js +50 -0
- package/dist/server/stream/searchBridge.js.map +1 -0
- package/dist/server/stream/serverPush.d.ts +146 -0
- package/dist/server/stream/serverPush.d.ts.map +1 -0
- package/dist/server/stream/serverPush.js +225 -0
- package/dist/server/stream/serverPush.js.map +1 -0
- package/dist/shared/errors.d.ts +102 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +100 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/studio/document.d.ts +218 -0
- package/dist/studio/document.d.ts.map +1 -0
- package/dist/studio/document.js +150 -0
- package/dist/studio/document.js.map +1 -0
- package/dist/studio/index.d.ts +18 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +18 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/studio/inspector.d.ts +53 -0
- package/dist/studio/inspector.d.ts.map +1 -0
- package/dist/studio/inspector.js +91 -0
- package/dist/studio/inspector.js.map +1 -0
- package/dist/studio/interview.d.ts +171 -0
- package/dist/studio/interview.d.ts.map +1 -0
- package/dist/studio/interview.js +303 -0
- package/dist/studio/interview.js.map +1 -0
- package/dist/studio/operations.d.ts +173 -0
- package/dist/studio/operations.d.ts.map +1 -0
- package/dist/studio/operations.js +332 -0
- package/dist/studio/operations.js.map +1 -0
- package/dist/studio/session.d.ts +59 -0
- package/dist/studio/session.d.ts.map +1 -0
- package/dist/studio/session.js +216 -0
- package/dist/studio/session.js.map +1 -0
- package/dist/studio/verification.d.ts +84 -0
- package/dist/studio/verification.d.ts.map +1 -0
- package/dist/studio/verification.js +155 -0
- package/dist/studio/verification.js.map +1 -0
- package/dist/studio/wiring.d.ts +53 -0
- package/dist/studio/wiring.d.ts.map +1 -0
- package/dist/studio/wiring.js +81 -0
- package/dist/studio/wiring.js.map +1 -0
- package/dist/styles-static.css +391 -0
- package/dist/styles.css +393 -0
- package/dist/testing/bytes.d.ts +33 -0
- package/dist/testing/bytes.d.ts.map +1 -0
- package/dist/testing/bytes.js +34 -0
- package/dist/testing/bytes.js.map +1 -0
- package/dist/testing/domInspect.d.ts +60 -0
- package/dist/testing/domInspect.d.ts.map +1 -0
- package/dist/testing/domInspect.js +116 -0
- package/dist/testing/domInspect.js.map +1 -0
- package/dist/testing/fakeFetch.d.ts +24 -0
- package/dist/testing/fakeFetch.d.ts.map +1 -0
- package/dist/testing/fakeFetch.js +22 -0
- package/dist/testing/fakeFetch.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +13 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/tooltip.d.ts +11 -0
- package/dist/testing/tooltip.d.ts.map +1 -0
- package/dist/testing/tooltip.js +64 -0
- package/dist/testing/tooltip.js.map +1 -0
- package/dist/theme.css +998 -0
- package/dist/verify/context.d.ts +57 -0
- package/dist/verify/context.d.ts.map +1 -0
- package/dist/verify/context.js +16 -0
- package/dist/verify/context.js.map +1 -0
- package/dist/verify/diagnostics.d.ts +29 -0
- package/dist/verify/diagnostics.d.ts.map +1 -0
- package/dist/verify/diagnostics.js +45 -0
- package/dist/verify/diagnostics.js.map +1 -0
- package/dist/verify/engines.d.ts +26 -0
- package/dist/verify/engines.d.ts.map +1 -0
- package/dist/verify/engines.js +488 -0
- package/dist/verify/engines.js.map +1 -0
- package/dist/verify/fixtures/ai-prompt-injection-guard/app-config.json +20 -0
- package/dist/verify/fixtures/ai-prompt-injection-guard/expected.json +7 -0
- package/dist/verify/fixtures/av-baseline/app-config.json +27 -0
- package/dist/verify/fixtures/av-baseline/expected.json +1 -0
- package/dist/verify/fixtures/av-cycle-editor/app-config.json +41 -0
- package/dist/verify/fixtures/av-cycle-editor/expected.json +7 -0
- package/dist/verify/fixtures/av-cycle-editor-off/app-config.json +41 -0
- package/dist/verify/fixtures/av-cycle-editor-off/expected.json +30 -0
- package/dist/verify/fixtures/av-cycle-unmarked/app-config.json +39 -0
- package/dist/verify/fixtures/av-cycle-unmarked/expected.json +7 -0
- package/dist/verify/fixtures/av-cycle-unversioned/app-config.json +41 -0
- package/dist/verify/fixtures/av-cycle-unversioned/expected.json +9 -0
- package/dist/verify/fixtures/av-export-target-branch/app-config.json +33 -0
- package/dist/verify/fixtures/av-export-target-branch/expected.json +1 -0
- package/dist/verify/fixtures/av-export-target-unspecified/app-config.json +27 -0
- package/dist/verify/fixtures/av-export-target-unspecified/expected.json +7 -0
- package/dist/verify/fixtures/av-hls-off-inbound-videos/app-config.json +27 -0
- package/dist/verify/fixtures/av-hls-off-inbound-videos/expected.json +8 -0
- package/dist/verify/fixtures/av-hls-on-no-ffmpeg/app-config.json +27 -0
- package/dist/verify/fixtures/av-hls-on-no-ffmpeg/expected.json +8 -0
- package/dist/verify/fixtures/av-two-instances-divergent/app-config.json +35 -0
- package/dist/verify/fixtures/av-two-instances-divergent/expected.json +8 -0
- package/dist/verify/fixtures/av-video-off-wired/app-config.json +27 -0
- package/dist/verify/fixtures/av-video-off-wired/expected.json +9 -0
- package/dist/verify/fixtures/config-drift/app-config.json +20 -0
- package/dist/verify/fixtures/config-drift/expected.json +7 -0
- package/dist/verify/fixtures/config-version-unknown/app-config.json +17 -0
- package/dist/verify/fixtures/config-version-unknown/expected.json +7 -0
- package/dist/verify/fixtures/cross-engine-oral-history/app-config.json +19 -0
- package/dist/verify/fixtures/cross-engine-oral-history/expected.json +8 -0
- package/dist/verify/fixtures/cross-engine-private-media/app-config.json +19 -0
- package/dist/verify/fixtures/cross-engine-private-media/expected.json +8 -0
- package/dist/verify/fixtures/cross-engine-saas-rbac/app-config.json +28 -0
- package/dist/verify/fixtures/cross-engine-saas-rbac/expected.json +8 -0
- package/dist/verify/fixtures/css-isolation-missing/app-config.json +21 -0
- package/dist/verify/fixtures/css-isolation-missing/expected.json +8 -0
- package/dist/verify/fixtures/deep-link-ambiguous/app-config.json +40 -0
- package/dist/verify/fixtures/deep-link-ambiguous/expected.json +7 -0
- package/dist/verify/fixtures/deep-link-cross-tenant/app-config.json +17 -0
- package/dist/verify/fixtures/deep-link-cross-tenant/expected.json +1 -0
- package/dist/verify/fixtures/deep-link-fallback/app-config.json +15 -0
- package/dist/verify/fixtures/deep-link-fallback/expected.json +3 -0
- package/dist/verify/fixtures/demo-source-export/app-config.json +26 -0
- package/dist/verify/fixtures/demo-source-export/expected.json +12 -0
- package/dist/verify/fixtures/demo-source-studio/app-config.json +26 -0
- package/dist/verify/fixtures/demo-source-studio/expected.json +7 -0
- package/dist/verify/fixtures/editor-unwired/app-config.json +21 -0
- package/dist/verify/fixtures/editor-unwired/expected.json +8 -0
- package/dist/verify/fixtures/eventbus-depth-bomb/app-config.json +19 -0
- package/dist/verify/fixtures/eventbus-depth-bomb/expected.json +7 -0
- package/dist/verify/fixtures/eventbus-depth-guarded/app-config.json +19 -0
- package/dist/verify/fixtures/eventbus-depth-guarded/expected.json +1 -0
- package/dist/verify/fixtures/execution-sandbox-jail/app-config.json +19 -0
- package/dist/verify/fixtures/execution-sandbox-jail/expected.json +12 -0
- package/dist/verify/fixtures/guard-legacy-vault/app-config.json +25 -0
- package/dist/verify/fixtures/guard-legacy-vault/expected.json +12 -0
- package/dist/verify/fixtures/index.d.ts +39 -0
- package/dist/verify/fixtures/index.d.ts.map +1 -0
- package/dist/verify/fixtures/index.js +789 -0
- package/dist/verify/fixtures/index.js.map +1 -0
- package/dist/verify/fixtures/infra-privilege-gate/app-config.json +20 -0
- package/dist/verify/fixtures/infra-privilege-gate/expected.json +1 -0
- package/dist/verify/fixtures/infra-privilege-unclaimed/app-config.json +19 -0
- package/dist/verify/fixtures/infra-privilege-unclaimed/expected.json +8 -0
- package/dist/verify/fixtures/layout-resize-observer/app-config.json +20 -0
- package/dist/verify/fixtures/layout-resize-observer/expected.json +8 -0
- package/dist/verify/fixtures/legacy-design-ids/app-config.json +26 -0
- package/dist/verify/fixtures/legacy-design-ids/expected.json +7 -0
- package/dist/verify/fixtures/lifecycle-abort/app-config.json +13 -0
- package/dist/verify/fixtures/lifecycle-abort/expected.json +1 -0
- package/dist/verify/fixtures/marshaller-missing/app-config.json +25 -0
- package/dist/verify/fixtures/marshaller-missing/expected.json +7 -0
- package/dist/verify/fixtures/marshaller-ok/app-config.json +25 -0
- package/dist/verify/fixtures/marshaller-ok/expected.json +1 -0
- package/dist/verify/fixtures/marshaller-unbounded/app-config.json +25 -0
- package/dist/verify/fixtures/marshaller-unbounded/expected.json +7 -0
- package/dist/verify/fixtures/marshaller-worker-offload-missing/app-config.json +25 -0
- package/dist/verify/fixtures/marshaller-worker-offload-missing/expected.json +7 -0
- package/dist/verify/fixtures/meter-spill-durability/app-config.json +19 -0
- package/dist/verify/fixtures/meter-spill-durability/expected.json +12 -0
- package/dist/verify/fixtures/mixin-surface-lock/app-config.json +8 -0
- package/dist/verify/fixtures/mixin-surface-lock/expected.json +1 -0
- package/dist/verify/fixtures/promotion-offline-lock/app-config.json +19 -0
- package/dist/verify/fixtures/promotion-offline-lock/expected.json +7 -0
- package/dist/verify/fixtures/rbac-viewer-403/app-config.json +10 -0
- package/dist/verify/fixtures/rbac-viewer-403/expected.json +1 -0
- package/dist/verify/fixtures/refresh-scoped-fanin/app-config.json +56 -0
- package/dist/verify/fixtures/refresh-scoped-fanin/expected.json +1 -0
- package/dist/verify/fixtures/refresh-unscoped-fanin/app-config.json +56 -0
- package/dist/verify/fixtures/refresh-unscoped-fanin/expected.json +14 -0
- package/dist/verify/fixtures/registry-port-toctou/app-config.json +19 -0
- package/dist/verify/fixtures/registry-port-toctou/expected.json +7 -0
- package/dist/verify/fixtures/route-collision/app-config.json +38 -0
- package/dist/verify/fixtures/route-collision/expected.json +7 -0
- package/dist/verify/fixtures/saas-connection-pooling/app-config.json +28 -0
- package/dist/verify/fixtures/saas-connection-pooling/expected.json +7 -0
- package/dist/verify/fixtures/saas-rls-policy-missing/app-config.json +28 -0
- package/dist/verify/fixtures/saas-rls-policy-missing/expected.json +7 -0
- package/dist/verify/fixtures/security-csp-headers/app-config.json +9 -0
- package/dist/verify/fixtures/security-csp-headers/expected.json +1 -0
- package/dist/verify/fixtures/sse-jitter-reconnect/app-config.json +13 -0
- package/dist/verify/fixtures/sse-jitter-reconnect/expected.json +1 -0
- package/dist/verify/fixtures/staging-collision/plugin-badtokens/collide.token-extension.d.ts +3 -0
- package/dist/verify/fixtures/staging-collision/plugin-badtokens/collide.token-extension.d.ts.map +1 -0
- package/dist/verify/fixtures/staging-collision/plugin-badtokens/collide.token-extension.js +22 -0
- package/dist/verify/fixtures/staging-collision/plugin-badtokens/collide.token-extension.js.map +1 -0
- package/dist/verify/fixtures/staging-export-leak/app-config.json +32 -0
- package/dist/verify/fixtures/staging-export-leak/expected.json +16 -0
- package/dist/verify/fixtures/staging-habits/plugin-habits/habits.token-extension.d.ts +3 -0
- package/dist/verify/fixtures/staging-habits/plugin-habits/habits.token-extension.d.ts.map +1 -0
- package/dist/verify/fixtures/staging-habits/plugin-habits/habits.token-extension.js +33 -0
- package/dist/verify/fixtures/staging-habits/plugin-habits/habits.token-extension.js.map +1 -0
- package/dist/verify/fixtures/staging-token-collision/app-config.json +19 -0
- package/dist/verify/fixtures/staging-token-collision/expected.json +10 -0
- package/dist/verify/fixtures/staging-token-extension/app-config.json +32 -0
- package/dist/verify/fixtures/staging-token-extension/expected.json +6 -0
- package/dist/verify/fixtures/staging-token-extension-locked/app-config.json +32 -0
- package/dist/verify/fixtures/staging-token-extension-locked/expected.json +6 -0
- package/dist/verify/fixtures/storage-contract/app-config.json +19 -0
- package/dist/verify/fixtures/storage-contract/expected.json +17 -0
- package/dist/verify/fixtures/storage-row-integrity/app-config.json +19 -0
- package/dist/verify/fixtures/storage-row-integrity/expected.json +7 -0
- package/dist/verify/fixtures/storage-wal-checkpoint/app-config.json +19 -0
- package/dist/verify/fixtures/storage-wal-checkpoint/expected.json +7 -0
- package/dist/verify/fixtures/token-deprecated/app-config.json +17 -0
- package/dist/verify/fixtures/token-deprecated/expected.json +8 -0
- package/dist/verify/fixtures/token-schema-drift/app-config.json +34 -0
- package/dist/verify/fixtures/token-schema-drift/expected.json +7 -0
- package/dist/verify/fixtures/token-schema-extended/app-config.json +34 -0
- package/dist/verify/fixtures/token-schema-extended/expected.json +7 -0
- package/dist/verify/fixtures/unknown-key/app-config.json +20 -0
- package/dist/verify/fixtures/unknown-key/expected.json +8 -0
- package/dist/verify/frozenManifest.d.ts +43 -0
- package/dist/verify/frozenManifest.d.ts.map +1 -0
- package/dist/verify/frozenManifest.js +78 -0
- package/dist/verify/frozenManifest.js.map +1 -0
- package/dist/verify/index.d.ts +20 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +21 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/interceptorGraph.d.ts +52 -0
- package/dist/verify/interceptorGraph.d.ts.map +1 -0
- package/dist/verify/interceptorGraph.js +30 -0
- package/dist/verify/interceptorGraph.js.map +1 -0
- package/dist/verify/legacyDesigns.d.ts +70 -0
- package/dist/verify/legacyDesigns.d.ts.map +1 -0
- package/dist/verify/legacyDesigns.js +214 -0
- package/dist/verify/legacyDesigns.js.map +1 -0
- package/dist/verify/pipeline.d.ts +29 -0
- package/dist/verify/pipeline.d.ts.map +1 -0
- package/dist/verify/pipeline.js +132 -0
- package/dist/verify/pipeline.js.map +1 -0
- package/dist/verify/pluginLoader.d.ts +35 -0
- package/dist/verify/pluginLoader.d.ts.map +1 -0
- package/dist/verify/pluginLoader.js +54 -0
- package/dist/verify/pluginLoader.js.map +1 -0
- package/dist/verify/promotion/bin/ccPromote.d.ts +3 -0
- package/dist/verify/promotion/bin/ccPromote.d.ts.map +1 -0
- package/dist/verify/promotion/bin/ccPromote.js +134 -0
- package/dist/verify/promotion/bin/ccPromote.js.map +1 -0
- package/dist/verify/promotion/index.d.ts +3 -0
- package/dist/verify/promotion/index.d.ts.map +1 -0
- package/dist/verify/promotion/index.js +4 -0
- package/dist/verify/promotion/index.js.map +1 -0
- package/dist/verify/promotion/nodePromotionFs.d.ts +3 -0
- package/dist/verify/promotion/nodePromotionFs.d.ts.map +1 -0
- package/dist/verify/promotion/nodePromotionFs.js +48 -0
- package/dist/verify/promotion/nodePromotionFs.js.map +1 -0
- package/dist/verify/promotion/promote.d.ts +115 -0
- package/dist/verify/promotion/promote.d.ts.map +1 -0
- package/dist/verify/promotion/promote.js +113 -0
- package/dist/verify/promotion/promote.js.map +1 -0
- package/dist/verify/runtime/bin/ccVerify.d.ts +3 -0
- package/dist/verify/runtime/bin/ccVerify.d.ts.map +1 -0
- package/dist/verify/runtime/bin/ccVerify.js +13 -0
- package/dist/verify/runtime/bin/ccVerify.js.map +1 -0
- package/dist/verify/runtime/cli.d.ts +29 -0
- package/dist/verify/runtime/cli.d.ts.map +1 -0
- package/dist/verify/runtime/cli.js +135 -0
- package/dist/verify/runtime/cli.js.map +1 -0
- package/dist/verify/runtime/hostCapabilities.d.ts +17 -0
- package/dist/verify/runtime/hostCapabilities.d.ts.map +1 -0
- package/dist/verify/runtime/hostCapabilities.js +24 -0
- package/dist/verify/runtime/hostCapabilities.js.map +1 -0
- package/dist/verify/runtime/probes.d.ts +34 -0
- package/dist/verify/runtime/probes.d.ts.map +1 -0
- package/dist/verify/runtime/probes.js +809 -0
- package/dist/verify/runtime/probes.js.map +1 -0
- package/dist/verify/runtime/processJail.d.ts +48 -0
- package/dist/verify/runtime/processJail.d.ts.map +1 -0
- package/dist/verify/runtime/processJail.js +130 -0
- package/dist/verify/runtime/processJail.js.map +1 -0
- package/dist/verify/runtime/runner.d.ts +23 -0
- package/dist/verify/runtime/runner.d.ts.map +1 -0
- package/dist/verify/runtime/runner.js +71 -0
- package/dist/verify/runtime/runner.js.map +1 -0
- package/dist/verify/runtime/verifyContext.d.ts +82 -0
- package/dist/verify/runtime/verifyContext.d.ts.map +1 -0
- package/dist/verify/runtime/verifyContext.js +269 -0
- package/dist/verify/runtime/verifyContext.js.map +1 -0
- package/dist/verify/runtime/verifyServer.d.ts +104 -0
- package/dist/verify/runtime/verifyServer.d.ts.map +1 -0
- package/dist/verify/runtime/verifyServer.js +166 -0
- package/dist/verify/runtime/verifyServer.js.map +1 -0
- package/dist/verify/runtime/verifyServices.d.ts +23 -0
- package/dist/verify/runtime/verifyServices.d.ts.map +1 -0
- package/dist/verify/runtime/verifyServices.js +652 -0
- package/dist/verify/runtime/verifyServices.js.map +1 -0
- package/dist/verify/stages/v0Parse.d.ts +4 -0
- package/dist/verify/stages/v0Parse.d.ts.map +1 -0
- package/dist/verify/stages/v0Parse.js +110 -0
- package/dist/verify/stages/v0Parse.js.map +1 -0
- package/dist/verify/stages/v1References.d.ts +4 -0
- package/dist/verify/stages/v1References.d.ts.map +1 -0
- package/dist/verify/stages/v1References.js +201 -0
- package/dist/verify/stages/v1References.js.map +1 -0
- package/dist/verify/stages/v2Capabilities.d.ts +6 -0
- package/dist/verify/stages/v2Capabilities.d.ts.map +1 -0
- package/dist/verify/stages/v2Capabilities.js +180 -0
- package/dist/verify/stages/v2Capabilities.js.map +1 -0
- package/dist/verify/stages/v3Tokens.d.ts +4 -0
- package/dist/verify/stages/v3Tokens.d.ts.map +1 -0
- package/dist/verify/stages/v3Tokens.js +148 -0
- package/dist/verify/stages/v3Tokens.js.map +1 -0
- package/dist/verify/stages/v4Graph.d.ts +26 -0
- package/dist/verify/stages/v4Graph.d.ts.map +1 -0
- package/dist/verify/stages/v4Graph.js +186 -0
- package/dist/verify/stages/v4Graph.js.map +1 -0
- package/dist/verify/stages/v5Export.d.ts +5 -0
- package/dist/verify/stages/v5Export.d.ts.map +1 -0
- package/dist/verify/stages/v5Export.js +121 -0
- package/dist/verify/stages/v5Export.js.map +1 -0
- package/dist/verify/stages/v6Storage.d.ts +4 -0
- package/dist/verify/stages/v6Storage.d.ts.map +1 -0
- package/dist/verify/stages/v6Storage.js +148 -0
- package/dist/verify/stages/v6Storage.js.map +1 -0
- package/dist/verify/staging/harvest.d.ts +52 -0
- package/dist/verify/staging/harvest.d.ts.map +1 -0
- package/dist/verify/staging/harvest.js +186 -0
- package/dist/verify/staging/harvest.js.map +1 -0
- package/dist/verify/types.d.ts +395 -0
- package/dist/verify/types.d.ts.map +1 -0
- package/dist/verify/types.js +136 -0
- package/dist/verify/types.js.map +1 -0
- package/dist/workspace.css +146 -0
- package/package.json +874 -239
- package/scripts/copyDistAssets.ts +30 -0
- package/scripts/generateStaticStyles.ts +122 -0
- package/scripts/guardrails-baseline.json +27 -0
- package/scripts/guardrailsEnforce.spec.ts +804 -0
- package/scripts/guardrailsEnforce.ts +1741 -0
- package/scripts/publicSurface.ts +455 -0
- package/scripts/testPg.ts +107 -0
- package/scripts/testTmpRoot.ts +111 -0
- package/src/appManifest.spec.ts +5 -0
- package/src/buildIsStaged.spec.ts +77 -0
- package/src/client/contextSyncBroker.ts +130 -0
- package/src/client/convertRequest.ts +117 -0
- package/src/client/ctgrConfig.ts +29 -0
- package/src/client/ctgrGuard.ts +85 -0
- package/src/client/index.ts +114 -0
- package/src/client/router/ccRouter.ts +197 -0
- package/src/client/router/clientRoutesModule.spec.ts +114 -0
- package/src/client/router/index.ts +45 -0
- package/src/client/router/locator.ts +181 -0
- package/src/client/router/routeTable.ts +207 -0
- package/src/client/router/router.spec.ts +293 -0
- package/src/client/stream/appStream.spec.ts +300 -0
- package/src/client/stream/appStream.ts +296 -0
- package/src/client/stream/ccEventSource.ts +247 -0
- package/src/client/stream/index.ts +6 -0
- package/src/client/stream/instanceStream.ts +214 -0
- package/src/client/stream/stream.spec.ts +396 -0
- package/src/client/ws.spec.ts +71 -0
- package/src/client/ws.ts +58 -0
- package/src/client/wsWire.ts +83 -0
- package/src/config/appConfig.spec.ts +158 -0
- package/src/config/appConfig.ts +372 -0
- package/src/core/activity/index.ts +21 -0
- package/src/core/activity/model.ts +160 -0
- package/src/core/analytics/index.ts +18 -0
- package/src/core/analytics/range.spec.ts +280 -0
- package/src/core/analytics/range.ts +383 -0
- package/src/core/analytics/schedule.spec.ts +311 -0
- package/src/core/analytics/schedule.ts +624 -0
- package/src/core/category/category.spec.ts +144 -0
- package/src/core/category/index.ts +19 -0
- package/src/core/category/memoryStore.ts +104 -0
- package/src/core/category/tree.ts +118 -0
- package/src/core/category/types.ts +59 -0
- package/src/core/color.spec.ts +35 -0
- package/src/core/color.ts +35 -0
- package/src/core/colorScheme/colorScheme.spec.ts +127 -0
- package/src/core/colorScheme/colorSchemeStore.ts +184 -0
- package/src/core/colorScheme/index.ts +23 -0
- package/src/core/domainOwners.ts +32 -0
- package/src/core/download.spec.ts +38 -0
- package/src/core/download.ts +35 -0
- package/src/core/events/ccEventBus.spec.ts +90 -0
- package/src/core/events/ccEventBus.ts +120 -0
- package/src/core/file-tree/fileTreeModel.spec.ts +462 -0
- package/src/core/file-tree/fileTreeModel.ts +511 -0
- package/src/core/folder-tree/actions.spec.ts +103 -0
- package/src/core/folder-tree/actions.ts +153 -0
- package/src/core/folder-tree/index.ts +46 -0
- package/src/core/folder-tree/path.spec.ts +113 -0
- package/src/core/folder-tree/path.ts +148 -0
- package/src/core/folder-tree/tree.spec.ts +157 -0
- package/src/core/folder-tree/tree.ts +244 -0
- package/src/core/layout/index.ts +7 -0
- package/src/core/master-lock/index.ts +50 -0
- package/src/core/master-lock/kdf.spec.ts +95 -0
- package/src/core/master-lock/kdf.ts +145 -0
- package/src/core/master-lock/policy.ts +55 -0
- package/src/core/master-lock/presence.spec.ts +73 -0
- package/src/core/master-lock/presence.ts +71 -0
- package/src/core/master-lock/wire.ts +155 -0
- package/src/core/media/bgRemoval.spec.ts +120 -0
- package/src/core/media/bgRemoval.ts +123 -0
- package/src/core/media/ffmpeg.spec.ts +135 -0
- package/src/core/media/ffmpeg.ts +162 -0
- package/src/core/media/format.spec.ts +41 -0
- package/src/core/media/format.ts +58 -0
- package/src/core/media/index.ts +105 -0
- package/src/core/media/mediaItem.spec.ts +46 -0
- package/src/core/media/mediaItem.ts +40 -0
- package/src/core/media/renderPlan.spec.ts +140 -0
- package/src/core/media/renderPlan.ts +318 -0
- package/src/core/media/segment.spec.ts +159 -0
- package/src/core/media/segment.ts +352 -0
- package/src/core/media/size.spec.ts +19 -0
- package/src/core/media/size.ts +3 -0
- package/src/core/media/trim.spec.ts +75 -0
- package/src/core/media/trim.ts +60 -0
- package/src/core/media/types.ts +147 -0
- package/src/core/media/uploadLimits.ts +18 -0
- package/src/core/media/validate.spec.ts +106 -0
- package/src/core/media/validate.ts +131 -0
- package/src/core/media/videoCuts.spec.ts +327 -0
- package/src/core/media/videoCuts.ts +355 -0
- package/src/core/navigation/breadcrumbCompat.ts +44 -0
- package/src/core/navigation/coverageTest.ts +54 -0
- package/src/core/navigation/index.ts +50 -0
- package/src/core/navigation/migrateNavPreferences.ts +119 -0
- package/src/core/navigation/navigation.spec.ts +388 -0
- package/src/core/navigation/navigationModel.ts +185 -0
- package/src/core/navigation/navigationSelectors.ts +206 -0
- package/src/core/navigation/searchCatalogue.ts +89 -0
- package/src/core/net/reconnectSchedule.spec.ts +49 -0
- package/src/core/net/reconnectSchedule.ts +78 -0
- package/src/core/palette/ShortcutRegistry.ts +69 -0
- package/src/core/palette/fuzzyRank.ts +78 -0
- package/src/core/palette/hotkeys.ts +132 -0
- package/src/core/palette/index.ts +22 -0
- package/src/core/palette/palette.spec.ts +160 -0
- package/src/core/schema/projection.spec.ts +122 -0
- package/src/core/schema/projection.ts +225 -0
- package/src/core/session/claims.ts +181 -0
- package/src/core/sharing/index.ts +33 -0
- package/src/core/sharing/model.spec.ts +104 -0
- package/src/core/sharing/model.ts +296 -0
- package/src/core/site/siteCopy.ts +115 -0
- package/src/core/slots.ts +38 -0
- package/src/core/styles/constructableSheet.ts +86 -0
- package/src/core/tokens/registry.spec.ts +160 -0
- package/src/core/tokens/registry.ts +536 -0
- package/src/core/uiScale/index.ts +32 -0
- package/src/core/uiScale/scale.ts +63 -0
- package/src/core/uiScale/uiScale.spec.ts +77 -0
- package/src/core/uiScale/uiScaleStore.ts +100 -0
- package/src/core/wire/__fixtures__/rowsMarshalWorker.ts +24 -0
- package/src/core/wire/index.ts +56 -0
- package/src/core/wire/ingress.spec.ts +276 -0
- package/src/core/wire/ingress.ts +182 -0
- package/src/core/wire/marshalWorker.spec.ts +196 -0
- package/src/core/wire/marshalWorker.ts +361 -0
- package/src/core/wire/marshalling.spec.ts +139 -0
- package/src/core/wire/marshalling.ts +238 -0
- package/src/core/wire/wireHub.spec.ts +137 -0
- package/src/core/wire/wireHub.ts +213 -0
- package/src/css.d.ts +6 -0
- package/src/ctgr/base64url.ts +44 -0
- package/src/ctgr/chunkAccumulator.ts +403 -0
- package/src/ctgr/chunkStore.spec.ts +101 -0
- package/src/ctgr/chunkStore.ts +168 -0
- package/src/ctgr/codec.spec.ts +208 -0
- package/src/ctgr/codec.ts +202 -0
- package/src/ctgr/compress.ts +21 -0
- package/src/ctgr/crc32.ts +23 -0
- package/src/ctgr/digest.ts +14 -0
- package/src/ctgr/index.ts +39 -0
- package/src/ctgr/types.ts +80 -0
- package/src/ctgr/v0compat.spec.ts +73 -0
- package/src/ctgr/v0compat.ts +156 -0
- package/src/declaredDepsAreImported.spec.ts +87 -0
- package/src/demoFixture.spec.ts +133 -0
- package/src/index.ts +120 -0
- package/src/lockfileIsTracked.spec.ts +50 -0
- package/src/namedSubpathsResolve.spec.ts +119 -0
- package/src/noPathDeps.spec.ts +24 -0
- package/src/publicSurface.spec.ts +72 -0
- package/src/publishShape.spec.ts +89 -0
- package/src/react/AuthGate.tsx +105 -0
- package/src/react/Toast.spec.tsx +18 -0
- package/src/react/Toast.tsx +42 -0
- package/src/react/VirtualCardGrid.spec.tsx +338 -0
- package/src/react/VirtualCardGrid.tsx +531 -0
- package/src/react/VirtualList.spec.tsx +153 -0
- package/src/react/VirtualList.tsx +298 -0
- package/src/react/activity-bar/ActivityBar.spec.tsx +127 -0
- package/src/react/activity-bar/ActivityBar.tsx +205 -0
- package/src/react/activity-bar/activityBar.css +164 -0
- package/src/react/activity-bar/index.ts +8 -0
- package/src/react/analytics/AnalyticsPanel.tsx +88 -0
- package/src/react/analytics/MetricDrilldown.tsx +143 -0
- package/src/react/analytics/RangeTabs.tsx +140 -0
- package/src/react/analytics/index.ts +80 -0
- package/src/react/authSignal.ts +37 -0
- package/src/react/charts/AreaChart.tsx +121 -0
- package/src/react/charts/BarChart.tsx +126 -0
- package/src/react/charts/ChartFrame.tsx +32 -0
- package/src/react/charts/ChartLegend.tsx +45 -0
- package/src/react/charts/ChartTooltip.tsx +93 -0
- package/src/react/charts/HeatmapChart.spec.ts +33 -0
- package/src/react/charts/HeatmapChart.tsx +253 -0
- package/src/react/charts/IntervalTimeline.color.spec.tsx +81 -0
- package/src/react/charts/IntervalTimeline.spec.ts +45 -0
- package/src/react/charts/IntervalTimeline.tsx +306 -0
- package/src/react/charts/LineChart.tsx +96 -0
- package/src/react/charts/PieChart.spec.ts +27 -0
- package/src/react/charts/PieChart.tsx +106 -0
- package/src/react/charts/RadialBarChart.tsx +78 -0
- package/src/react/charts/Sparkline.tsx +69 -0
- package/src/react/charts/TimeSeriesChart.tsx +225 -0
- package/src/react/charts/Treemap.tsx +186 -0
- package/src/react/charts/capacityFormat.spec.ts +85 -0
- package/src/react/charts/categorical.spec.ts +131 -0
- package/src/react/charts/categorical.ts +133 -0
- package/src/react/charts/format.ts +159 -0
- package/src/react/charts/index.ts +66 -0
- package/src/react/charts/shared.ts +31 -0
- package/src/react/charts/tokens.spec.ts +103 -0
- package/src/react/charts/tokens.ts +170 -0
- package/src/react/chat/Bubble.tsx +299 -0
- package/src/react/chat/DateMarker.tsx +49 -0
- package/src/react/chat/MessageComposer.tsx +196 -0
- package/src/react/chat/MessageRow.tsx +120 -0
- package/src/react/chat/MessageScroller.tsx +191 -0
- package/src/react/chat/MessageThread.spec.tsx +307 -0
- package/src/react/chat/MessageThread.tsx +186 -0
- package/src/react/chat/PresenceRoster.tsx +87 -0
- package/src/react/chat/StatusMarker.tsx +33 -0
- package/src/react/chat/index.ts +15 -0
- package/src/react/chat/types.ts +62 -0
- package/src/react/clipboard/copyRich.spec.ts +113 -0
- package/src/react/clipboard/copyRich.ts +70 -0
- package/src/react/clipboard/domToMarkdown.spec.tsx +187 -0
- package/src/react/clipboard/domToMarkdown.ts +224 -0
- package/src/react/clipboard/index.ts +16 -0
- package/src/react/clipboard/useSelectionMarkdown.spec.tsx +96 -0
- package/src/react/clipboard/useSelectionMarkdown.ts +68 -0
- package/src/react/code-editor/CodeEditor.spec.tsx +138 -0
- package/src/react/code-editor/CodeEditor.tsx +192 -0
- package/src/react/code-editor/CodeViewer.tsx +43 -0
- package/src/react/code-editor/index.ts +14 -0
- package/src/react/code-editor/languages.spec.ts +139 -0
- package/src/react/code-editor/languages.ts +360 -0
- package/src/react/code-editor/theme.ts +198 -0
- package/src/react/colorScheme/ThemeToggle.spec.tsx +36 -0
- package/src/react/colorScheme/ThemeToggle.tsx +37 -0
- package/src/react/colorScheme/useColorScheme.ts +43 -0
- package/src/react/companion-link/CompanionLinkBar.tsx +34 -0
- package/src/react/companion-link/CompanionLinkStatus.spec.tsx +81 -0
- package/src/react/companion-link/CompanionLinkStatus.tsx +144 -0
- package/src/react/companion-link/StaleMirrorBanner.tsx +30 -0
- package/src/react/companion-link/index.ts +22 -0
- package/src/react/companion-link/logic.spec.ts +132 -0
- package/src/react/companion-link/logic.ts +135 -0
- package/src/react/companion-link/store.spec.ts +83 -0
- package/src/react/companion-link/store.ts +91 -0
- package/src/react/companion-link/types.ts +98 -0
- package/src/react/companion-link/useCompanionLink.ts +98 -0
- package/src/react/compat.ts +36 -0
- package/src/react/components/Accordion.spec.tsx +69 -0
- package/src/react/components/Accordion.tsx +84 -0
- package/src/react/components/ActionBar.spec.tsx +171 -0
- package/src/react/components/ActionBar.tsx +155 -0
- package/src/react/components/ActionGroup.spec.tsx +77 -0
- package/src/react/components/ActionGroup.tsx +91 -0
- package/src/react/components/AddItemsMenu.tsx +132 -0
- package/src/react/components/Alert.spec.tsx +55 -0
- package/src/react/components/Alert.tsx +84 -0
- package/src/react/components/AmbientBackdrop.spec.tsx +162 -0
- package/src/react/components/AmbientBackdrop.tsx +88 -0
- package/src/react/components/AppShell.spec.tsx +148 -0
- package/src/react/components/AppShell.tsx +354 -0
- package/src/react/components/AsyncPanel.spec.tsx +68 -0
- package/src/react/components/AsyncPanel.tsx +80 -0
- package/src/react/components/AutoGrowTextarea.spec.tsx +83 -0
- package/src/react/components/AutoGrowTextarea.tsx +98 -0
- package/src/react/components/Autocomplete.spec.tsx +82 -0
- package/src/react/components/Autocomplete.tsx +172 -0
- package/src/react/components/Avatar.spec.tsx +53 -0
- package/src/react/components/Avatar.tsx +63 -0
- package/src/react/components/AvatarStack.spec.tsx +47 -0
- package/src/react/components/AvatarStack.tsx +56 -0
- package/src/react/components/Badge.spec.tsx +82 -0
- package/src/react/components/Badge.tsx +99 -0
- package/src/react/components/BuildFreshness.spec.tsx +98 -0
- package/src/react/components/BuildFreshness.tsx +205 -0
- package/src/react/components/Button.spec.tsx +216 -0
- package/src/react/components/Button.tsx +255 -0
- package/src/react/components/ButtonGroup.tsx +42 -0
- package/src/react/components/ButtonLink.tsx +46 -0
- package/src/react/components/CardTapTarget.spec.tsx +58 -0
- package/src/react/components/CardTapTarget.tsx +76 -0
- package/src/react/components/ChartTablePanel.tsx +208 -0
- package/src/react/components/Checkbox.spec.tsx +84 -0
- package/src/react/components/Checkbox.tsx +95 -0
- package/src/react/components/ChipFilterStrip.spec.tsx +178 -0
- package/src/react/components/ChipFilterStrip.tsx +138 -0
- package/src/react/components/ChoiceMenu.spec.tsx +161 -0
- package/src/react/components/ChoiceMenu.tsx +186 -0
- package/src/react/components/CodeArea.spec.tsx +110 -0
- package/src/react/components/CodeArea.tsx +165 -0
- package/src/react/components/CodeChip.spec.tsx +82 -0
- package/src/react/components/CodeChip.tsx +74 -0
- package/src/react/components/CodeFieldInput.tsx +88 -0
- package/src/react/components/Collapsible.spec.tsx +44 -0
- package/src/react/components/Collapsible.tsx +72 -0
- package/src/react/components/ColorField.tsx +84 -0
- package/src/react/components/ComboboxField.spec.tsx +145 -0
- package/src/react/components/ComboboxField.tsx +311 -0
- package/src/react/components/CommentThread.spec.tsx +123 -0
- package/src/react/components/CommentThread.tsx +343 -0
- package/src/react/components/ConfirmDialog.tsx +104 -0
- package/src/react/components/ConnectionHealer.spec.tsx +134 -0
- package/src/react/components/ConnectionHealer.tsx +166 -0
- package/src/react/components/ControlHeightScale.spec.tsx +121 -0
- package/src/react/components/CopyButton.spec.tsx +51 -0
- package/src/react/components/CopyButton.tsx +104 -0
- package/src/react/components/CopyableText.spec.tsx +33 -0
- package/src/react/components/CopyableText.tsx +72 -0
- package/src/react/components/DataTable/CardView.tsx +96 -0
- package/src/react/components/DataTable/ColumnChecklist.tsx +120 -0
- package/src/react/components/DataTable/DataTable.spec.tsx +516 -0
- package/src/react/components/DataTable/DataTable.tsx +1506 -0
- package/src/react/components/DataTable/Pagination.tsx +85 -0
- package/src/react/components/DataTable/RowActions.tsx +69 -0
- package/src/react/components/DataTable/SearchBox.tsx +140 -0
- package/src/react/components/DataTable/SortHeader.tsx +111 -0
- package/src/react/components/DataTable/SortStack.tsx +109 -0
- package/src/react/components/DataTable/TableFilterBuilder.tsx +280 -0
- package/src/react/components/DataTable/TableViewToggle.tsx +55 -0
- package/src/react/components/DataTable/Toolbar.tsx +146 -0
- package/src/react/components/DataTable/ViewOptionsMenu.tsx +81 -0
- package/src/react/components/DataTable/cells/CellRenderer.spec.tsx +119 -0
- package/src/react/components/DataTable/cells/CellRenderer.tsx +349 -0
- package/src/react/components/DataTable/cells/CodeCell.tsx +25 -0
- package/src/react/components/DataTable/cells/LinkCell.tsx +31 -0
- package/src/react/components/DataTable/cells/PasswordCell.tsx +35 -0
- package/src/react/components/DataTable/filterQuery.spec.ts +195 -0
- package/src/react/components/DataTable/filterQuery.ts +275 -0
- package/src/react/components/DataTable/index.ts +79 -0
- package/src/react/components/DataTable/rowDrag.ts +139 -0
- package/src/react/components/DataTable/tableSystem.spec.tsx +424 -0
- package/src/react/components/DataTable/types.ts +98 -0
- package/src/react/components/DataTable/useTableViewMode.ts +123 -0
- package/src/react/components/DataTable/virtualize.spec.tsx +110 -0
- package/src/react/components/DatePicker.spec.tsx +133 -0
- package/src/react/components/DatePicker.tsx +149 -0
- package/src/react/components/DateRangePicker.tsx +154 -0
- package/src/react/components/DateTimeField.tsx +90 -0
- package/src/react/components/DeleteButton.spec.tsx +85 -0
- package/src/react/components/DeleteButton.tsx +83 -0
- package/src/react/components/DiscardConfirmDialog.spec.tsx +54 -0
- package/src/react/components/DiscardConfirmDialog.tsx +105 -0
- package/src/react/components/DisclosureButton.tsx +60 -0
- package/src/react/components/DismissButton.tsx +28 -0
- package/src/react/components/DragHandle.tsx +48 -0
- package/src/react/components/Drawer.tsx +168 -0
- package/src/react/components/DropIndicator.tsx +27 -0
- package/src/react/components/DropSlot.spec.tsx +68 -0
- package/src/react/components/DropSlot.tsx +71 -0
- package/src/react/components/DropdownMenu.tsx +192 -0
- package/src/react/components/ElsewhereNotice.spec.tsx +73 -0
- package/src/react/components/ElsewhereNotice.tsx +106 -0
- package/src/react/components/EmojiField.tsx +59 -0
- package/src/react/components/EmptyState.spec.tsx +86 -0
- package/src/react/components/EmptyState.tsx +88 -0
- package/src/react/components/EnvCompare.tsx +144 -0
- package/src/react/components/EnvEditor.tsx +200 -0
- package/src/react/components/ErrorBoundary.spec.tsx +73 -0
- package/src/react/components/ErrorBoundary.tsx +234 -0
- package/src/react/components/ErrorCard.tsx +129 -0
- package/src/react/components/EventTimeline.spec.tsx +55 -0
- package/src/react/components/EventTimeline.tsx +105 -0
- package/src/react/components/ExternalLink.spec.tsx +75 -0
- package/src/react/components/ExternalLink.tsx +112 -0
- package/src/react/components/Field.spec.tsx +215 -0
- package/src/react/components/Field.tsx +146 -0
- package/src/react/components/FieldInput.spec.tsx +157 -0
- package/src/react/components/FieldInput.tsx +511 -0
- package/src/react/components/FieldLabel.tsx +60 -0
- package/src/react/components/FileActions.tsx +77 -0
- package/src/react/components/FileDropZone.spec.tsx +175 -0
- package/src/react/components/FileDropZone.tsx +254 -0
- package/src/react/components/FileLocation.spec.tsx +59 -0
- package/src/react/components/FileLocation.tsx +110 -0
- package/src/react/components/FileTypeIcon.spec.tsx +77 -0
- package/src/react/components/FileTypeIcon.tsx +122 -0
- package/src/react/components/FindingsList.spec.tsx +82 -0
- package/src/react/components/FindingsList.tsx +124 -0
- package/src/react/components/Grid.tsx +35 -0
- package/src/react/components/HoverCard.tsx +65 -0
- package/src/react/components/HudPill.spec.tsx +36 -0
- package/src/react/components/HudPill.tsx +35 -0
- package/src/react/components/IconButton.tsx +56 -0
- package/src/react/components/ImpactDialog.spec.tsx +108 -0
- package/src/react/components/ImpactDialog.tsx +221 -0
- package/src/react/components/InfoHint.tsx +119 -0
- package/src/react/components/InheritBadge.spec.tsx +93 -0
- package/src/react/components/InheritBadge.tsx +148 -0
- package/src/react/components/InlineEditableText.spec.tsx +57 -0
- package/src/react/components/InlineEditableText.tsx +199 -0
- package/src/react/components/Input.tsx +54 -0
- package/src/react/components/IsolatedFrame.spec.tsx +83 -0
- package/src/react/components/IsolatedFrame.tsx +159 -0
- package/src/react/components/JsonEditor.tsx +186 -0
- package/src/react/components/Lightbox.tsx +55 -0
- package/src/react/components/LogViewer.spec.tsx +105 -0
- package/src/react/components/LogViewer.tsx +307 -0
- package/src/react/components/MeterList.spec.tsx +44 -0
- package/src/react/components/MeterList.tsx +152 -0
- package/src/react/components/Modal.spec.tsx +428 -0
- package/src/react/components/Modal.tsx +255 -0
- package/src/react/components/MultiSelectField.spec.tsx +51 -0
- package/src/react/components/MultiSelectField.tsx +60 -0
- package/src/react/components/NativeSelect.spec.tsx +144 -0
- package/src/react/components/NativeSelect.tsx +163 -0
- package/src/react/components/OnlineDot.spec.tsx +39 -0
- package/src/react/components/OnlineDot.tsx +31 -0
- package/src/react/components/OtpInput.spec.tsx +77 -0
- package/src/react/components/OtpInput.tsx +163 -0
- package/src/react/components/Page.spec.tsx +22 -0
- package/src/react/components/Page.tsx +125 -0
- package/src/react/components/PanelGrid.spec.tsx +177 -0
- package/src/react/components/PanelGrid.tsx +316 -0
- package/src/react/components/PanelSeparator.tsx +92 -0
- package/src/react/components/PathText.spec.tsx +33 -0
- package/src/react/components/PathText.tsx +144 -0
- package/src/react/components/PluginCard.spec.tsx +104 -0
- package/src/react/components/PluginCard.tsx +179 -0
- package/src/react/components/Popover.tsx +61 -0
- package/src/react/components/Progress.spec.tsx +64 -0
- package/src/react/components/Progress.tsx +140 -0
- package/src/react/components/PromptDialog.spec.tsx +118 -0
- package/src/react/components/PromptDialog.tsx +108 -0
- package/src/react/components/QueryBoundary.tsx +80 -0
- package/src/react/components/RatingField.spec.tsx +48 -0
- package/src/react/components/RatingField.tsx +86 -0
- package/src/react/components/ReactionBar.spec.tsx +60 -0
- package/src/react/components/ReactionBar.tsx +63 -0
- package/src/react/components/ReactionPicker.spec.tsx +29 -0
- package/src/react/components/ReactionPicker.tsx +43 -0
- package/src/react/components/RenderField.tsx +51 -0
- package/src/react/components/ResponsiveWorkbench.spec.tsx +171 -0
- package/src/react/components/ResponsiveWorkbench.tsx +192 -0
- package/src/react/components/ScrollArea.spec.tsx +113 -0
- package/src/react/components/ScrollArea.tsx +164 -0
- package/src/react/components/ScrollToTopButton.tsx +83 -0
- package/src/react/components/SecretInput.spec.tsx +67 -0
- package/src/react/components/SecretInput.tsx +237 -0
- package/src/react/components/Section.spec.tsx +64 -0
- package/src/react/components/Section.tsx +84 -0
- package/src/react/components/SegmentedControl.spec.tsx +64 -0
- package/src/react/components/SegmentedControl.tsx +104 -0
- package/src/react/components/SelectField.tsx +183 -0
- package/src/react/components/SelectableRow.spec.tsx +41 -0
- package/src/react/components/SelectableRow.tsx +76 -0
- package/src/react/components/Skeleton.spec.tsx +40 -0
- package/src/react/components/Skeleton.tsx +67 -0
- package/src/react/components/Slider.spec.tsx +74 -0
- package/src/react/components/Slider.tsx +122 -0
- package/src/react/components/SliderField.spec.ts +29 -0
- package/src/react/components/SliderField.tsx +127 -0
- package/src/react/components/Sparkline.tsx +38 -0
- package/src/react/components/Spinner.spec.tsx +27 -0
- package/src/react/components/Spinner.tsx +21 -0
- package/src/react/components/SplitButton.tsx +94 -0
- package/src/react/components/SplitPane.spec.tsx +119 -0
- package/src/react/components/SplitPane.tsx +86 -0
- package/src/react/components/StaleDeployHealer.spec.tsx +107 -0
- package/src/react/components/StarRating.spec.tsx +241 -0
- package/src/react/components/StarRating.tsx +281 -0
- package/src/react/components/StatStrip.tsx +157 -0
- package/src/react/components/StatTile.tsx +296 -0
- package/src/react/components/StatTileDelta.spec.tsx +60 -0
- package/src/react/components/StatTileGrid.spec.tsx +88 -0
- package/src/react/components/StatTileGrid.tsx +111 -0
- package/src/react/components/StatTileSelection.spec.tsx +117 -0
- package/src/react/components/StatusPill.spec.tsx +47 -0
- package/src/react/components/StatusPill.tsx +150 -0
- package/src/react/components/Surface.tsx +85 -0
- package/src/react/components/SwatchPicker.tsx +76 -0
- package/src/react/components/Switch.spec.tsx +25 -0
- package/src/react/components/Switch.tsx +43 -0
- package/src/react/components/Tabs.spec.tsx +123 -0
- package/src/react/components/Tabs.tsx +192 -0
- package/src/react/components/TagStrip.spec.tsx +56 -0
- package/src/react/components/TagStrip.tsx +85 -0
- package/src/react/components/TagsInput.spec.tsx +73 -0
- package/src/react/components/TagsInput.tsx +146 -0
- package/src/react/components/ThresholdMeter.spec.tsx +63 -0
- package/src/react/components/ThresholdMeter.tsx +98 -0
- package/src/react/components/Tooltip.spec.tsx +378 -0
- package/src/react/components/Tooltip.tsx +305 -0
- package/src/react/components/TooltipImpl.tsx +337 -0
- package/src/react/components/TreeView.spec.tsx +306 -0
- package/src/react/components/TreeView.tsx +622 -0
- package/src/react/components/TruncatedText.tsx +116 -0
- package/src/react/components/WidgetHeader.spec.tsx +70 -0
- package/src/react/components/WidgetHeader.tsx +115 -0
- package/src/react/components/Wizard/ReviewStep.tsx +74 -0
- package/src/react/components/Wizard/Stepper.spec.tsx +47 -0
- package/src/react/components/Wizard/Stepper.tsx +138 -0
- package/src/react/components/Wizard/Wizard.spec.tsx +341 -0
- package/src/react/components/Wizard/Wizard.tsx +232 -0
- package/src/react/components/Wizard/types.ts +73 -0
- package/src/react/components/auth/AuthCard.spec.tsx +34 -0
- package/src/react/components/auth/AuthCard.tsx +97 -0
- package/src/react/components/auth/AuthForm.tsx +110 -0
- package/src/react/components/auth/LoginForm.spec.tsx +70 -0
- package/src/react/components/auth/LoginForm.tsx +139 -0
- package/src/react/components/auth/PasswordReset.spec.tsx +58 -0
- package/src/react/components/auth/PasswordResetConfirm.tsx +78 -0
- package/src/react/components/auth/PasswordResetRequest.tsx +97 -0
- package/src/react/components/auth/PasswordSetFields.tsx +55 -0
- package/src/react/components/auth/PasswordStrengthMeter.tsx +66 -0
- package/src/react/components/auth/RegisterForm.spec.tsx +63 -0
- package/src/react/components/auth/RegisterForm.tsx +99 -0
- package/src/react/components/auth/SetInitialPassword.spec.tsx +59 -0
- package/src/react/components/auth/SetInitialPassword.tsx +120 -0
- package/src/react/components/auth/SignupForm.spec.tsx +69 -0
- package/src/react/components/auth/SignupForm.tsx +156 -0
- package/src/react/components/auth/TotpEntry.spec.tsx +41 -0
- package/src/react/components/auth/TotpEntry.tsx +156 -0
- package/src/react/components/auth/fields.tsx +113 -0
- package/src/react/components/auth/index.ts +36 -0
- package/src/react/components/auth/mapAuthError.spec.ts +33 -0
- package/src/react/components/auth/mapAuthError.ts +52 -0
- package/src/react/components/auth/passwordStrength.spec.ts +39 -0
- package/src/react/components/auth/passwordStrength.ts +40 -0
- package/src/react/components/auth/types.ts +41 -0
- package/src/react/components/buildFreshness.css +64 -0
- package/src/react/components/calendar/CalendarLegend.spec.tsx +45 -0
- package/src/react/components/calendar/CalendarLegend.tsx +68 -0
- package/src/react/components/calendar/DayAgenda.spec.tsx +85 -0
- package/src/react/components/calendar/DayAgenda.tsx +162 -0
- package/src/react/components/calendar/EventChip.spec.tsx +82 -0
- package/src/react/components/calendar/EventChip.tsx +60 -0
- package/src/react/components/calendar/MonthGrid.spec.tsx +150 -0
- package/src/react/components/calendar/MonthGrid.tsx +168 -0
- package/src/react/components/calendar/WeekView.tsx +138 -0
- package/src/react/components/calendar/colorUtils.ts +105 -0
- package/src/react/components/calendar/index.ts +22 -0
- package/src/react/components/calendar/occurrences.ts +22 -0
- package/src/react/components/calendar/types.ts +62 -0
- package/src/react/components/dialog.tsx +68 -0
- package/src/react/components/layout.spec.tsx +138 -0
- package/src/react/components/layout.tsx +93 -0
- package/src/react/components/revealOnHover.ts +4 -0
- package/src/react/components/sharing/RecipientAvatar.tsx +59 -0
- package/src/react/components/sharing/RecipientPicker.spec.tsx +73 -0
- package/src/react/components/sharing/RecipientPicker.tsx +161 -0
- package/src/react/components/sharing/ShareControl.spec.tsx +88 -0
- package/src/react/components/sharing/ShareControl.tsx +107 -0
- package/src/react/components/sharing/ShareDialog.spec.tsx +48 -0
- package/src/react/components/sharing/ShareDialog.tsx +114 -0
- package/src/react/components/sharing/ShareEditor.spec.tsx +91 -0
- package/src/react/components/sharing/ShareEditor.tsx +180 -0
- package/src/react/components/sharing/SharedWithUserDialog.spec.tsx +78 -0
- package/src/react/components/sharing/SharedWithUserDialog.tsx +169 -0
- package/src/react/components/sharing/types.ts +104 -0
- package/src/react/confirm.tsx +55 -0
- package/src/react/constants/viewport.ts +16 -0
- package/src/react/createApiHooks.ts +211 -0
- package/src/react/dashboard-grid/DashboardGrid.spec.tsx +296 -0
- package/src/react/dashboard-grid/DashboardGrid.tsx +403 -0
- package/src/react/dashboard-grid/WidgetFrame.tsx +106 -0
- package/src/react/dashboard-grid/index.ts +24 -0
- package/src/react/dashboard-grid/widgetRegistry.ts +110 -0
- package/src/react/data/AppErrorOverlay.tsx +181 -0
- package/src/react/data/EngineDataProvider.tsx +153 -0
- package/src/react/data/accountClient.spec.ts +148 -0
- package/src/react/data/accountClient.ts +269 -0
- package/src/react/data/appErrorOverlay.spec.tsx +179 -0
- package/src/react/data/categoryTree.ts +32 -0
- package/src/react/data/engineClient.ts +155 -0
- package/src/react/data/engineDataContext.ts +43 -0
- package/src/react/data/engineOps.ts +33 -0
- package/src/react/data/engineResources.spec.ts +129 -0
- package/src/react/data/engineResources.ts +801 -0
- package/src/react/data/index.ts +78 -0
- package/src/react/data/rowSpecs.spec.ts +59 -0
- package/src/react/data/rowSpecs.ts +359 -0
- package/src/react/data/unauthorizedSignal.spec.tsx +83 -0
- package/src/react/data/useEngineResource.spec.tsx +227 -0
- package/src/react/data/useEngineResource.ts +236 -0
- package/src/react/data/wireEnvelope.spec.ts +264 -0
- package/src/react/data/wireEnvelope.ts +345 -0
- package/src/react/deep-link/index.ts +26 -0
- package/src/react/deep-link/links.spec.ts +123 -0
- package/src/react/deep-link/links.ts +305 -0
- package/src/react/deep-link/resume.spec.tsx +240 -0
- package/src/react/deep-link/resume.ts +219 -0
- package/src/react/deep-link/useDeepLink.spec.tsx +224 -0
- package/src/react/deep-link/useDeepLink.tsx +266 -0
- package/src/react/diff-viewer/DiffViewer.css +43 -0
- package/src/react/diff-viewer/DiffViewer.spec.tsx +98 -0
- package/src/react/diff-viewer/DiffViewer.tsx +102 -0
- package/src/react/diff-viewer/TextComparePane.spec.tsx +95 -0
- package/src/react/diff-viewer/TextComparePane.tsx +163 -0
- package/src/react/diff-viewer/diff.spec.ts +82 -0
- package/src/react/diff-viewer/diff.ts +81 -0
- package/src/react/diff-viewer/index.ts +18 -0
- package/src/react/diff-viewer/useDiffTheme.ts +36 -0
- package/src/react/disk-usage/DiskUsage.spec.tsx +165 -0
- package/src/react/disk-usage/DiskUsageRulesEditor.tsx +77 -0
- package/src/react/disk-usage/DiskUsageScanControls.tsx +142 -0
- package/src/react/disk-usage/DiskUsageSummaryTiles.tsx +51 -0
- package/src/react/disk-usage/DiskUsageTree.tsx +160 -0
- package/src/react/disk-usage/index.ts +4 -0
- package/src/react/emoji/EmojiAutocomplete.tsx +152 -0
- package/src/react/emoji/EmojiPicker.tsx +127 -0
- package/src/react/emoji/emojiSearch.ts +66 -0
- package/src/react/emoji/index.ts +3 -0
- package/src/react/engine-studio/DiagnosticsPanel.tsx +100 -0
- package/src/react/engine-studio/EngineCanvas.tsx +532 -0
- package/src/react/engine-studio/EngineInspector.tsx +77 -0
- package/src/react/engine-studio/EngineStudio.tsx +317 -0
- package/src/react/engine-studio/engineStudio.spec.tsx +355 -0
- package/src/react/engine-studio/index.ts +14 -0
- package/src/react/engine-studio/useStudioSession.ts +71 -0
- package/src/react/file-tree/FileTree.spec.tsx +820 -0
- package/src/react/file-tree/FileTree.tsx +1375 -0
- package/src/react/file-tree/fileTree.css +711 -0
- package/src/react/file-tree/fileTreeGeometry.fixture.json +151 -0
- package/src/react/file-tree/fileTreeGeometry.spec.ts +269 -0
- package/src/react/file-tree/index.ts +31 -0
- package/src/react/filter-rail/FilterRail.spec.tsx +549 -0
- package/src/react/filter-rail/FilterRail.tsx +536 -0
- package/src/react/filter-rail/index.ts +6 -0
- package/src/react/folder-tree/FolderActionsMenu.spec.tsx +124 -0
- package/src/react/folder-tree/FolderActionsMenu.tsx +219 -0
- package/src/react/folder-tree/FolderBreadcrumb.tsx +76 -0
- package/src/react/folder-tree/FolderPicker.spec.tsx +51 -0
- package/src/react/folder-tree/FolderPicker.tsx +230 -0
- package/src/react/folder-tree/FolderTreeRail.spec.tsx +97 -0
- package/src/react/folder-tree/FolderTreeRail.tsx +257 -0
- package/src/react/folder-tree/NewFolderControl.spec.tsx +95 -0
- package/src/react/folder-tree/NewFolderControl.tsx +170 -0
- package/src/react/folder-tree/index.ts +53 -0
- package/src/react/hooks/DragHandleIcon.tsx +23 -0
- package/src/react/hooks/dragShared.ts +21 -0
- package/src/react/hooks/keyboardDnd.spec.tsx +179 -0
- package/src/react/hooks/keyboardDnd.tsx +243 -0
- package/src/react/hooks/pointerDnd.spec.ts +311 -0
- package/src/react/hooks/pointerDnd.ts +419 -0
- package/src/react/hooks/pragmaticDnd.ts +310 -0
- package/src/react/hooks/useCaretInView.spec.ts +73 -0
- package/src/react/hooks/useCaretInView.ts +32 -0
- package/src/react/hooks/useCheckboxSelection.spec.ts +120 -0
- package/src/react/hooks/useCheckboxSelection.ts +155 -0
- package/src/react/hooks/useCopyToClipboard.ts +47 -0
- package/src/react/hooks/useCrossContainerDrag.render.spec.tsx +191 -0
- package/src/react/hooks/useCrossContainerDrag.spec.ts +149 -0
- package/src/react/hooks/useCrossContainerDrag.tsx +544 -0
- package/src/react/hooks/useDebouncedCallback.ts +32 -0
- package/src/react/hooks/useDebouncedValue.ts +15 -0
- package/src/react/hooks/useDirtyForm.spec.ts +177 -0
- package/src/react/hooks/useDirtyForm.ts +171 -0
- package/src/react/hooks/useDiscardGuard.tsx +87 -0
- package/src/react/hooks/useDismissibleItems.ts +85 -0
- package/src/react/hooks/useDragReorder.render.spec.tsx +157 -0
- package/src/react/hooks/useDragReorder.spec.ts +88 -0
- package/src/react/hooks/useDragReorder.tsx +517 -0
- package/src/react/hooks/useEscapeKey.ts +13 -0
- package/src/react/hooks/useHasHover.ts +36 -0
- package/src/react/hooks/useKeyDown.ts +56 -0
- package/src/react/hooks/useKeySequence.spec.ts +163 -0
- package/src/react/hooks/useKeySequence.ts +76 -0
- package/src/react/hooks/useKeyboardInset.ts +32 -0
- package/src/react/hooks/useListSelection.spec.ts +152 -0
- package/src/react/hooks/useListSelection.ts +155 -0
- package/src/react/hooks/useMediaQuery.ts +17 -0
- package/src/react/hooks/useModifierKey.ts +33 -0
- package/src/react/hooks/useOnlineStatus.spec.ts +39 -0
- package/src/react/hooks/useOnlineStatus.ts +29 -0
- package/src/react/hooks/usePaletteDrag.tsx +221 -0
- package/src/react/hooks/usePointerDrag.ts +139 -0
- package/src/react/hooks/useResizeObserver.ts +47 -0
- package/src/react/hooks/useScrollEdgeFade.spec.tsx +91 -0
- package/src/react/hooks/useScrollEdgeFade.ts +81 -0
- package/src/react/hooks/useScrollEdges.spec.ts +60 -0
- package/src/react/hooks/useScrollEdges.ts +107 -0
- package/src/react/hooks/useStableOrder.spec.tsx +79 -0
- package/src/react/hooks/useStableOrder.ts +71 -0
- package/src/react/hooks/useSwipeToDismiss.ts +87 -0
- package/src/react/hooks/useTableSort.ts +79 -0
- package/src/react/hooks/useWindowResize.ts +37 -0
- package/src/react/icons.spec.ts +44 -0
- package/src/react/icons.tsx +275 -0
- package/src/react/index.ts +888 -0
- package/src/react/keep-awake/KeepAwake.tsx +32 -0
- package/src/react/keep-awake/index.ts +11 -0
- package/src/react/keep-awake/keepAwakeEngine.spec.ts +311 -0
- package/src/react/keep-awake/keepAwakeEngine.ts +357 -0
- package/src/react/keep-awake/silentClip.ts +90 -0
- package/src/react/keep-awake/useKeepAwake.spec.tsx +71 -0
- package/src/react/keep-awake/useKeepAwake.ts +66 -0
- package/src/react/layout/CCResizeBoundary.spec.tsx +57 -0
- package/src/react/layout/CCResizeBoundary.tsx +115 -0
- package/src/react/layoutEngine/LayoutCanvas.tsx +490 -0
- package/src/react/layoutEngine/LayoutConfigDialog.tsx +312 -0
- package/src/react/layoutEngine/LayoutRenderer.spec.tsx +152 -0
- package/src/react/layoutEngine/LayoutRenderer.tsx +173 -0
- package/src/react/layoutEngine/NodeInspector.spec.tsx +119 -0
- package/src/react/layoutEngine/NodeInspector.tsx +451 -0
- package/src/react/layoutEngine/SuggestPanel.spec.tsx +60 -0
- package/src/react/layoutEngine/SuggestPanel.tsx +71 -0
- package/src/react/layoutEngine/index.ts +14 -0
- package/src/react/layoutEngine/registry.spec.ts +90 -0
- package/src/react/layoutEngine/registry.ts +77 -0
- package/src/react/layoutEngine/types.ts +98 -0
- package/src/react/layoutEngine/useLayoutEditor.spec.tsx +70 -0
- package/src/react/layoutEngine/useLayoutEditor.ts +163 -0
- package/src/react/lib/cn.spec.ts +22 -0
- package/src/react/lib/cn.ts +7 -0
- package/src/react/lib/createInstanceStore.spec.ts +73 -0
- package/src/react/lib/createInstanceStore.ts +93 -0
- package/src/react/lib/daypicker.tsx +140 -0
- package/src/react/lib/devWarn.ts +28 -0
- package/src/react/lib/draftPersistence.spec.ts +34 -0
- package/src/react/lib/draftPersistence.ts +31 -0
- package/src/react/lib/field.ts +66 -0
- package/src/react/lib/floatingStyles.spec.ts +58 -0
- package/src/react/lib/floatingStyles.ts +59 -0
- package/src/react/lib/form.spec.ts +35 -0
- package/src/react/lib/form.ts +41 -0
- package/src/react/lib/hoverIntent.ts +55 -0
- package/src/react/lib/selection.ts +74 -0
- package/src/react/lib/store.ts +14 -0
- package/src/react/lib/tabIndent.ts +35 -0
- package/src/react/lib/tapTarget.ts +100 -0
- package/src/react/lib/textEntryTarget.spec.ts +33 -0
- package/src/react/lib/textEntryTarget.ts +40 -0
- package/src/react/lib/textSelection.ts +31 -0
- package/src/react/markdown/Markdown.spec.tsx +31 -0
- package/src/react/markdown/Markdown.tsx +122 -0
- package/src/react/markdown/MarkdownDoc.spec.tsx +126 -0
- package/src/react/markdown/MarkdownDoc.tsx +277 -0
- package/src/react/markdown/index.ts +2 -0
- package/src/react/markdown/markdownDoc.css +169 -0
- package/src/react/markdown/parse.spec.ts +100 -0
- package/src/react/markdown/parse.ts +146 -0
- package/src/react/master-detail/DetailPane.tsx +176 -0
- package/src/react/master-detail/MasterDetail.spec.tsx +61 -0
- package/src/react/master-detail/MasterDetail.tsx +305 -0
- package/src/react/master-detail/index.ts +16 -0
- package/src/react/master-lock/MasterLockDialog.tsx +269 -0
- package/src/react/master-lock/MasterLockProvider.spec.tsx +89 -0
- package/src/react/master-lock/MasterLockProvider.tsx +281 -0
- package/src/react/master-lock/index.ts +15 -0
- package/src/react/media/AutoMaskControls.tsx +142 -0
- package/src/react/media/BrushSizeSlider.tsx +94 -0
- package/src/react/media/CanvasVideoPlayer.tsx +331 -0
- package/src/react/media/DenseGalleryShell.spec.tsx +237 -0
- package/src/react/media/DenseGalleryShell.tsx +705 -0
- package/src/react/media/FocusViewer.tsx +990 -0
- package/src/react/media/FrameGrabber.tsx +612 -0
- package/src/react/media/HoverScrubVideoThumb.spec.tsx +93 -0
- package/src/react/media/HoverScrubVideoThumb.tsx +327 -0
- package/src/react/media/ImageEditor.tsx +115 -0
- package/src/react/media/MaskPainter.spec.tsx +194 -0
- package/src/react/media/MaskPainter.tsx +929 -0
- package/src/react/media/MediaCatalogueViewer.tsx +135 -0
- package/src/react/media/MediaCell.tsx +105 -0
- package/src/react/media/MediaLightbox.tsx +45 -0
- package/src/react/media/MediaResize.spec.tsx +232 -0
- package/src/react/media/MediaResize.tsx +284 -0
- package/src/react/media/MediaThumb.spec.tsx +112 -0
- package/src/react/media/MediaThumb.tsx +151 -0
- package/src/react/media/MediaUploadControl.tsx +153 -0
- package/src/react/media/PictureControls.tsx +108 -0
- package/src/react/media/PictureEditor.tsx +597 -0
- package/src/react/media/PlayerStrip.tsx +475 -0
- package/src/react/media/PrivateIndexView.tsx +113 -0
- package/src/react/media/PrivateModeBadge.tsx +50 -0
- package/src/react/media/TrimRangeSlider.tsx +188 -0
- package/src/react/media/VideoCutEditor.spec.tsx +126 -0
- package/src/react/media/VideoCutEditor.tsx +414 -0
- package/src/react/media/VideoPlayer.spec.tsx +461 -0
- package/src/react/media/VideoPlayer.tsx +663 -0
- package/src/react/media/VideoSlideContent.tsx +52 -0
- package/src/react/media/VideoTrimmer.tsx +237 -0
- package/src/react/media/VideoTurner.spec.tsx +70 -0
- package/src/react/media/VideoTurner.tsx +214 -0
- package/src/react/media/VirtualMediaGrid.tsx +44 -0
- package/src/react/media/VirtualizedRows.tsx +94 -0
- package/src/react/media/WaveformStrip.spec.tsx +20 -0
- package/src/react/media/WaveformStrip.tsx +43 -0
- package/src/react/media/captureVideoFrame.ts +38 -0
- package/src/react/media/denseGallery.css +684 -0
- package/src/react/media/denseGallery.layout.spec.ts +182 -0
- package/src/react/media/ffmpegWasm.ts +235 -0
- package/src/react/media/fileUploadClient.spec.ts +132 -0
- package/src/react/media/fileUploadClient.ts +193 -0
- package/src/react/media/focusViewer.css +279 -0
- package/src/react/media/focusViewer.css.spec.ts +74 -0
- package/src/react/media/hlsSource.spec.ts +77 -0
- package/src/react/media/hlsSource.ts +109 -0
- package/src/react/media/imageEditorSpec.spec.ts +79 -0
- package/src/react/media/imageEditorSpec.ts +145 -0
- package/src/react/media/index.ts +266 -0
- package/src/react/media/maskGeometry.spec.ts +100 -0
- package/src/react/media/maskGeometry.ts +100 -0
- package/src/react/media/maskModel.spec.ts +106 -0
- package/src/react/media/maskModel.ts +121 -0
- package/src/react/media/maskRaster.spec.ts +178 -0
- package/src/react/media/maskRaster.ts +158 -0
- package/src/react/media/mediaPhoto.spec.ts +69 -0
- package/src/react/media/mediaPhoto.ts +83 -0
- package/src/react/media/mediaProbe.ts +98 -0
- package/src/react/media/mediaResize.css +200 -0
- package/src/react/media/pictureEdit.spec.ts +282 -0
- package/src/react/media/pictureEdit.ts +493 -0
- package/src/react/media/pictureEditor.css +274 -0
- package/src/react/media/playerSpaceKey.spec.ts +103 -0
- package/src/react/media/playerSpaceKey.ts +179 -0
- package/src/react/media/playerStrip.css +654 -0
- package/src/react/media/playerStrip.spec.tsx +299 -0
- package/src/react/media/poster.ts +45 -0
- package/src/react/media/posterFraming.spec.ts +206 -0
- package/src/react/media/posterFraming.ts +297 -0
- package/src/react/media/privateClient.spec.ts +113 -0
- package/src/react/media/privateClient.ts +82 -0
- package/src/react/media/stageResize.spec.ts +88 -0
- package/src/react/media/stageResize.ts +89 -0
- package/src/react/media/surfaceGesture.spec.ts +164 -0
- package/src/react/media/surfaceGesture.ts +89 -0
- package/src/react/media/types.ts +158 -0
- package/src/react/media/useAudioPeaks.ts +49 -0
- package/src/react/media/useIntersectionObserver.ts +47 -0
- package/src/react/media/useObjectUrl.ts +15 -0
- package/src/react/media/usePrivateUnlock.ts +132 -0
- package/src/react/media/videoCutEditor.css +212 -0
- package/src/react/media/videoEnhance.spec.ts +118 -0
- package/src/react/media/videoEnhance.ts +134 -0
- package/src/react/media/videoPlayer.css +69 -0
- package/src/react/media/videoPoster.spec.ts +102 -0
- package/src/react/media/videoPoster.ts +297 -0
- package/src/react/media/videoRegion.spec.ts +312 -0
- package/src/react/media/videoRegion.ts +278 -0
- package/src/react/media/videoThumbnailer.ts +126 -0
- package/src/react/media-gallery/GalleryTable.tsx +497 -0
- package/src/react/media-gallery/MediaGallery.spec.tsx +1302 -0
- package/src/react/media-gallery/MediaGallery.tsx +2431 -0
- package/src/react/media-gallery/galleryDeepLink.spec.tsx +150 -0
- package/src/react/media-gallery/galleryDeepLink.ts +89 -0
- package/src/react/media-gallery/galleryItemMedia.tsx +127 -0
- package/src/react/media-gallery/galleryTable.spec.ts +58 -0
- package/src/react/media-gallery/index.ts +64 -0
- package/src/react/media-gallery/mediaGallery.css +784 -0
- package/src/react/media-gallery/mediaGalleryModel.spec.ts +182 -0
- package/src/react/media-gallery/mediaGalleryModel.ts +266 -0
- package/src/react/media-gallery/playbackPreferences.ts +259 -0
- package/src/react/media-gallery/playbackRun.spec.ts +190 -0
- package/src/react/media-gallery/playbackRun.ts +129 -0
- package/src/react/media-gallery/types.ts +119 -0
- package/src/react/namespace/NamespaceTargetCapsule.spec.tsx +84 -0
- package/src/react/namespace/NamespaceTargetCapsule.tsx +131 -0
- package/src/react/nav/BreadcrumbMenus.tsx +143 -0
- package/src/react/nav/BreadcrumbPivot.tsx +271 -0
- package/src/react/nav/BreadcrumbProvider.tsx +235 -0
- package/src/react/nav/BreadcrumbTrail.tsx +752 -0
- package/src/react/nav/Breadcrumbs.tsx +212 -0
- package/src/react/nav/ColorSwatchGrid.tsx +73 -0
- package/src/react/nav/CommandBar.spec.tsx +54 -0
- package/src/react/nav/CommandBar.tsx +109 -0
- package/src/react/nav/HeaderSearch.tsx +242 -0
- package/src/react/nav/HubTileGrid.tsx +304 -0
- package/src/react/nav/NavColorPicker.tsx +54 -0
- package/src/react/nav/NavItemMenu.tsx +93 -0
- package/src/react/nav/PlaceBar.spec.tsx +178 -0
- package/src/react/nav/PlaceBar.tsx +335 -0
- package/src/react/nav/SearchResults.tsx +130 -0
- package/src/react/nav/SideNav.tsx +433 -0
- package/src/react/nav/SideNavCustomize.tsx +169 -0
- package/src/react/nav/breadcrumbModel.spec.ts +155 -0
- package/src/react/nav/breadcrumbModel.ts +231 -0
- package/src/react/nav/breadcrumbStore.ts +178 -0
- package/src/react/nav/breadcrumbSystem.spec.tsx +448 -0
- package/src/react/nav/colors.ts +31 -0
- package/src/react/nav/hostLimit.spec.tsx +49 -0
- package/src/react/nav/index.ts +73 -0
- package/src/react/nav/nav.spec.tsx +298 -0
- package/src/react/nav/navShared.tsx +206 -0
- package/src/react/notifications/NotificationBell.tsx +106 -0
- package/src/react/notifications/NotificationCenter.spec.tsx +297 -0
- package/src/react/notifications/NotificationFeed.tsx +297 -0
- package/src/react/notifications/NotificationInbox.spec.tsx +169 -0
- package/src/react/notifications/NotificationInbox.tsx +260 -0
- package/src/react/notifications/binding.spec.ts +223 -0
- package/src/react/notifications/binding.ts +99 -0
- package/src/react/notifications/bridge.ts +34 -0
- package/src/react/notifications/httpClient.spec.ts +88 -0
- package/src/react/notifications/httpClient.ts +143 -0
- package/src/react/notifications/index.ts +42 -0
- package/src/react/notifications/liveTransport.ts +87 -0
- package/src/react/notifications/notificationStore.ts +236 -0
- package/src/react/notifications/pollTransport.spec.ts +145 -0
- package/src/react/notifications/pollTransport.ts +98 -0
- package/src/react/palette/Command.tsx +128 -0
- package/src/react/palette/CommandPalette.spec.tsx +371 -0
- package/src/react/palette/CommandPalette.tsx +635 -0
- package/src/react/palette/index.ts +27 -0
- package/src/react/palette/useCommandPalette.ts +36 -0
- package/src/react/palette/useHotkeys.ts +46 -0
- package/src/react/palette/useShortcutRegistry.ts +19 -0
- package/src/react/pdf-viewer/PdfPage.tsx +116 -0
- package/src/react/pdf-viewer/PdfViewer.spec.tsx +31 -0
- package/src/react/pdf-viewer/PdfViewer.tsx +238 -0
- package/src/react/pdf-viewer/index.ts +11 -0
- package/src/react/pdf-viewer/pdfDocument.ts +90 -0
- package/src/react/pdf-viewer/pdfViewer.css +59 -0
- package/src/react/portal/CCPortalProvider.spec.tsx +139 -0
- package/src/react/portal/CCPortalProvider.tsx +218 -0
- package/src/react/problem-detail/ProblemDetailView.spec.tsx +87 -0
- package/src/react/problem-detail/ProblemDetailView.tsx +304 -0
- package/src/react/prompt.tsx +41 -0
- package/src/react/rich-text/RichTextEditor.spec.tsx +203 -0
- package/src/react/rich-text/RichTextEditor.tsx +167 -0
- package/src/react/rich-text/RichTextToolbar.tsx +384 -0
- package/src/react/rich-text/contentRoundTrip.spec.ts +46 -0
- package/src/react/rich-text/contentRoundTrip.ts +69 -0
- package/src/react/rich-text/index.ts +16 -0
- package/src/react/rich-text/prose.css +247 -0
- package/src/react/router/CCRouteFallback.tsx +97 -0
- package/src/react/router/CCRouterProvider.tsx +120 -0
- package/src/react/schema-fields/SchemaFields.spec.tsx +248 -0
- package/src/react/schema-fields/SchemaFields.tsx +437 -0
- package/src/react/schema-fields/describeSchema.spec.ts +145 -0
- package/src/react/schema-fields/describeSchema.ts +284 -0
- package/src/react/schema-fields/types.ts +150 -0
- package/src/react/session/CCSessionGate.tsx +113 -0
- package/src/react/session/CCSessionProvider.tsx +167 -0
- package/src/react/session/ccSessionGate.spec.tsx +64 -0
- package/src/react/session/ccSessionStore.spec.ts +111 -0
- package/src/react/session/ccSessionStore.ts +141 -0
- package/src/react/session/index.ts +16 -0
- package/src/react/session/sessionContext.ts +48 -0
- package/src/react/sessionAuth.ts +30 -0
- package/src/react/sharing/SharePanel.spec.tsx +166 -0
- package/src/react/sharing/SharePanel.tsx +255 -0
- package/src/react/sharing/index.ts +24 -0
- package/src/react/shell/CCAppShell.spec.tsx +183 -0
- package/src/react/shell/CCAppShell.tsx +155 -0
- package/src/react/shell/claimsContext.ts +31 -0
- package/src/react/shell/index.ts +4 -0
- package/src/react/slots/Slot.spec.tsx +159 -0
- package/src/react/slots/Slot.tsx +148 -0
- package/src/react/spreadsheet/GridCopyPaste.spec.ts +119 -0
- package/src/react/spreadsheet/GridCopyPaste.ts +92 -0
- package/src/react/spreadsheet/SpreadsheetGrid.tsx +137 -0
- package/src/react/spreadsheet/index.ts +29 -0
- package/src/react/spreadsheet/useGlideTheme.ts +173 -0
- package/src/react/spreadsheet/useGridSelection.ts +58 -0
- package/src/react/studios/AddRow.tsx +60 -0
- package/src/react/studios/AssetDetailShells.tsx +382 -0
- package/src/react/studios/AssetStudioShell.tsx +271 -0
- package/src/react/studios/BoundAssetDetails.tsx +311 -0
- package/src/react/studios/BoundEngineShells.tsx +844 -0
- package/src/react/studios/BoundKnowledgeDetails.tsx +206 -0
- package/src/react/studios/BoundKnowledgeVerticals.tsx +437 -0
- package/src/react/studios/BoundStudios.tsx +368 -0
- package/src/react/studios/DevStudioShell.tsx +737 -0
- package/src/react/studios/EngineFills.tsx +292 -0
- package/src/react/studios/GuardAccountPanels.tsx +705 -0
- package/src/react/studios/GuardEngineShell.tsx +344 -0
- package/src/react/studios/KnowledgeDetailShells.tsx +416 -0
- package/src/react/studios/KnowledgeStudioShell.tsx +207 -0
- package/src/react/studios/KnowledgeVerticalShells.tsx +851 -0
- package/src/react/studios/Stopwatch.tsx +70 -0
- package/src/react/studios/StudioNav.tsx +57 -0
- package/src/react/studios/StudioUnbound.tsx +23 -0
- package/src/react/studios/SystemUtilityShell.tsx +788 -0
- package/src/react/studios/assetUpload.spec.tsx +275 -0
- package/src/react/studios/boundStudios.spec.tsx +156 -0
- package/src/react/studios/detailSurfaces.spec.tsx +558 -0
- package/src/react/studios/devSurfaces.spec.tsx +285 -0
- package/src/react/studios/engineFills.spec.tsx +245 -0
- package/src/react/studios/engineShells.spec.tsx +200 -0
- package/src/react/studios/featureGate.spec.ts +70 -0
- package/src/react/studios/featureGate.ts +178 -0
- package/src/react/studios/guardAccount.spec.tsx +285 -0
- package/src/react/studios/index.ts +151 -0
- package/src/react/studios/knowledgeVerticals.spec.tsx +379 -0
- package/src/react/studios/legacyClientBoundary.spec.ts +70 -0
- package/src/react/studios/siteCopyPanel.spec.tsx +141 -0
- package/src/react/studios/studioRoutes.spec.ts +156 -0
- package/src/react/studios/studioRoutes.ts +99 -0
- package/src/react/studios/systemDataSurfaces.spec.tsx +213 -0
- package/src/react/studios/types.ts +792 -0
- package/src/react/studios/useStudioInstance.ts +59 -0
- package/src/react/studios/viewIds.ts +88 -0
- package/src/react/styling.ts +100 -0
- package/src/react/testReport/TestReportViewer.tsx +460 -0
- package/src/react/testReport/index.ts +1 -0
- package/src/react/uiScale/UiScaleControl.tsx +55 -0
- package/src/react/uiScale/useUiScale.ts +57 -0
- package/src/react/usePagedList.spec.tsx +57 -0
- package/src/react/usePagedList.ts +109 -0
- package/src/react/virtualizerMeasure.spec.ts +77 -0
- package/src/react/workbook-viewer/WorkbookViewer.spec.tsx +89 -0
- package/src/react/workbook-viewer/WorkbookViewer.tsx +304 -0
- package/src/react/workbook-viewer/index.ts +22 -0
- package/src/react/workbook-viewer/parseWorkbook.spec.ts +158 -0
- package/src/react/workbook-viewer/parseWorkbook.ts +176 -0
- package/src/server/activity/index.ts +59 -0
- package/src/server/activity/migrations.ts +67 -0
- package/src/server/activity/shareSource.ts +57 -0
- package/src/server/activity/store.spec.ts +255 -0
- package/src/server/activity/store.ts +368 -0
- package/src/server/app.spec.ts +243 -0
- package/src/server/app.ts +89 -0
- package/src/server/audit/index.ts +2 -0
- package/src/server/audit/migrations.ts +88 -0
- package/src/server/audit/sqliteSink.test.ts +200 -0
- package/src/server/audit/sqliteSink.ts +162 -0
- package/src/server/auth/cookie.spec.ts +46 -0
- package/src/server/auth/cookie.ts +42 -0
- package/src/server/auth/csrf.spec.ts +81 -0
- package/src/server/auth/csrf.ts +83 -0
- package/src/server/auth/fileTokenSigner.ts +40 -0
- package/src/server/auth/getOnly.spec.ts +53 -0
- package/src/server/auth/getOnly.ts +32 -0
- package/src/server/auth/index.ts +51 -0
- package/src/server/auth/jwt.spec.ts +106 -0
- package/src/server/auth/jwt.ts +75 -0
- package/src/server/auth/loginThrottle.spec.ts +213 -0
- package/src/server/auth/loginThrottle.ts +261 -0
- package/src/server/auth/middleware.spec.ts +148 -0
- package/src/server/auth/middleware.ts +56 -0
- package/src/server/auth/password.spec.ts +48 -0
- package/src/server/auth/password.ts +71 -0
- package/src/server/auth/sessionStore.spec.ts +189 -0
- package/src/server/auth/sessionStore.ts +261 -0
- package/src/server/auth/totp.spec.ts +73 -0
- package/src/server/auth/totp.ts +92 -0
- package/src/server/auth/types.ts +146 -0
- package/src/server/auth/vault.spec.ts +51 -0
- package/src/server/auth/vault.ts +71 -0
- package/src/server/context.ts +37 -0
- package/src/server/ctgr.spec.ts +138 -0
- package/src/server/ctgr.ts +108 -0
- package/src/server/db/kysely.spec.ts +62 -0
- package/src/server/db/kysely.ts +21 -0
- package/src/server/db/plumbingTypes.ts +126 -0
- package/src/server/drivers/bullmqQueueAdapter.spec.ts +193 -0
- package/src/server/drivers/bullmqQueueAdapter.ts +176 -0
- package/src/server/drivers/cognitiveGateway.ts +485 -0
- package/src/server/drivers/drivers.spec.ts +397 -0
- package/src/server/drivers/executionDriver.ts +579 -0
- package/src/server/drivers/index.ts +225 -0
- package/src/server/drivers/jobBroker.spec.ts +92 -0
- package/src/server/drivers/jobBroker.ts +357 -0
- package/src/server/drivers/jobResults.spec.ts +424 -0
- package/src/server/drivers/jobResults.ts +445 -0
- package/src/server/drivers/pooledControlStores.pg.test.ts +162 -0
- package/src/server/drivers/pooledControlStores.ts +197 -0
- package/src/server/drivers/pooledIdentityStore.pg.test.ts +218 -0
- package/src/server/drivers/pooledIdentityStore.ts +184 -0
- package/src/server/drivers/providers/anthropicDriver.ts +144 -0
- package/src/server/drivers/providers/comfyuiDriver.ts +194 -0
- package/src/server/drivers/providers/driverContract.spec.ts +474 -0
- package/src/server/drivers/providers/index.ts +166 -0
- package/src/server/drivers/providers/ollamaDriver.ts +182 -0
- package/src/server/drivers/providers/openaiDriver.ts +105 -0
- package/src/server/drivers/providers/openclawDriver.ts +134 -0
- package/src/server/drivers/providers/transport.ts +215 -0
- package/src/server/drivers/retentionPolicy.pg.test.ts +103 -0
- package/src/server/drivers/retentionPolicy.spec.ts +110 -0
- package/src/server/drivers/retentionPolicy.ts +242 -0
- package/src/server/drivers/saasJobBroker.ts +221 -0
- package/src/server/drivers/saasJobWorker.spec.ts +411 -0
- package/src/server/drivers/saasJobWorker.ts +241 -0
- package/src/server/drivers/siteCopy.spec.ts +121 -0
- package/src/server/drivers/siteCopy.ts +199 -0
- package/src/server/dropzone/duplicates.ts +121 -0
- package/src/server/dropzone/index.ts +30 -0
- package/src/server/dropzone/scan.spec.ts +255 -0
- package/src/server/dropzone/scan.ts +342 -0
- package/src/server/errors.spec.ts +76 -0
- package/src/server/errors.ts +22 -0
- package/src/server/guard/argon2Binding.spec.ts +117 -0
- package/src/server/guard/argon2Binding.ts +195 -0
- package/src/server/guard/argon2Kat.spec.ts +250 -0
- package/src/server/guard/guard.spec.ts +390 -0
- package/src/server/guard/index.ts +5 -0
- package/src/server/guard/kdfWorker.spec.ts +283 -0
- package/src/server/guard/kdfWorker.ts +367 -0
- package/src/server/guard/kdfWorkerEntry.ts +16 -0
- package/src/server/guard/passwordVerifier.spec.ts +71 -0
- package/src/server/guard/passwordVerifier.ts +175 -0
- package/src/server/guard/revocationStore.spec.ts +135 -0
- package/src/server/guard/revocationStore.ts +291 -0
- package/src/server/guard/sessionSigner.ts +425 -0
- package/src/server/incidents/channels.ts +487 -0
- package/src/server/incidents/checks.ts +120 -0
- package/src/server/incidents/incidents.spec.ts +463 -0
- package/src/server/incidents/index.ts +96 -0
- package/src/server/incidents/migrations.ts +66 -0
- package/src/server/incidents/notifier.ts +215 -0
- package/src/server/incidents/reporter.ts +110 -0
- package/src/server/incidents/routes.ts +314 -0
- package/src/server/incidents/store.ts +329 -0
- package/src/server/incidents/types.ts +116 -0
- package/src/server/index.ts +248 -0
- package/src/server/jobs/fireQueue.spec.ts +85 -0
- package/src/server/jobs/fireQueue.ts +37 -0
- package/src/server/jobs/index.ts +26 -0
- package/src/server/jobs/logger.ts +16 -0
- package/src/server/jobs/plainjobAdapter.spec.ts +34 -0
- package/src/server/jobs/plainjobAdapter.ts +54 -0
- package/src/server/jobs/polling.spec.ts +219 -0
- package/src/server/jobs/polling.ts +81 -0
- package/src/server/jobs/runner.spec.ts +213 -0
- package/src/server/jobs/runner.ts +213 -0
- package/src/server/jobs/timeout.spec.ts +35 -0
- package/src/server/jobs/timeout.ts +53 -0
- package/src/server/jobs/types.ts +188 -0
- package/src/server/master-lock/guard.spec.ts +347 -0
- package/src/server/master-lock/guard.ts +290 -0
- package/src/server/master-lock/index.ts +44 -0
- package/src/server/master-lock/lockPage.spec.ts +88 -0
- package/src/server/master-lock/lockPage.ts +313 -0
- package/src/server/master-lock/masterLock.spec.ts +338 -0
- package/src/server/master-lock/masterLock.ts +627 -0
- package/src/server/master-lock/principals.spec.ts +378 -0
- package/src/server/master-lock/principals.ts +175 -0
- package/src/server/master-lock/seed.spec.ts +69 -0
- package/src/server/master-lock/seed.ts +112 -0
- package/src/server/master-lock/store.ts +35 -0
- package/src/server/media-bun/image.spec.ts +115 -0
- package/src/server/media-bun/image.ts +134 -0
- package/src/server/media-bun/index.ts +52 -0
- package/src/server/media-bun/streaming.spec.ts +134 -0
- package/src/server/media-bun/streaming.ts +347 -0
- package/src/server/media-bun/video.spec.ts +115 -0
- package/src/server/media-bun/video.ts +232 -0
- package/src/server/metrics/metricsBuffer.ts +92 -0
- package/src/server/metrics/normalizeRoute.spec.ts +51 -0
- package/src/server/metrics/normalizeRoute.ts +63 -0
- package/src/server/middleware/correlationId.ts +24 -0
- package/src/server/middleware/corsAllowlist.spec.ts +118 -0
- package/src/server/middleware/corsAllowlist.ts +69 -0
- package/src/server/middleware/errorEnvelope.ts +38 -0
- package/src/server/middleware/index.ts +19 -0
- package/src/server/middleware/localOrigin.spec.ts +168 -0
- package/src/server/middleware/localOrigin.ts +139 -0
- package/src/server/middleware/rateLimit.spec.ts +72 -0
- package/src/server/middleware/rateLimit.ts +125 -0
- package/src/server/middleware/requestLogger.ts +95 -0
- package/src/server/middleware/securityHeaders.ts +78 -0
- package/src/server/middleware/zValidator.spec.ts +251 -0
- package/src/server/middleware/zValidator.ts +114 -0
- package/src/server/migration/runner.spec.ts +88 -0
- package/src/server/migration/runner.ts +87 -0
- package/src/server/migration/types.ts +17 -0
- package/src/server/mixins/asset.mixin.ts +450 -0
- package/src/server/mixins/billing.mixin.ts +64 -0
- package/src/server/mixins/composeServer.spec.ts +270 -0
- package/src/server/mixins/core.mixin.ts +197 -0
- package/src/server/mixins/dev.mixin.ts +189 -0
- package/src/server/mixins/domainVerticals.spec.ts +1232 -0
- package/src/server/mixins/enforcement.spec.ts +177 -0
- package/src/server/mixins/enforcement.ts +106 -0
- package/src/server/mixins/guard.mixin.ts +593 -0
- package/src/server/mixins/guardPlanAssignment.spec.ts +221 -0
- package/src/server/mixins/guardSiteCopy.spec.ts +284 -0
- package/src/server/mixins/index.ts +248 -0
- package/src/server/mixins/instance.mixin.ts +174 -0
- package/src/server/mixins/knowledge.mixin.ts +689 -0
- package/src/server/mixins/pipelineOpsSmoke.spec.ts +140 -0
- package/src/server/mixins/requestClaims.spec.ts +96 -0
- package/src/server/mixins/requestClaims.ts +57 -0
- package/src/server/mixins/security.ts +173 -0
- package/src/server/mixins/services.ts +1314 -0
- package/src/server/mixins/storedObjects.spec.ts +117 -0
- package/src/server/mixins/system.mixin.ts +430 -0
- package/src/server/mixins/types.ts +173 -0
- package/src/server/net/outboundGuard.spec.ts +90 -0
- package/src/server/net/outboundGuard.ts +205 -0
- package/src/server/notifications/hub.ts +245 -0
- package/src/server/notifications/index.ts +77 -0
- package/src/server/notifications/migrations.ts +39 -0
- package/src/server/notifications/routes.ts +177 -0
- package/src/server/notifications/service.spec.ts +305 -0
- package/src/server/notifications/service.ts +112 -0
- package/src/server/ops/engineOps.ts +443 -0
- package/src/server/ops/engineOpsCatalog.spec.ts +141 -0
- package/src/server/ops/index.ts +4 -0
- package/src/server/paths/appDataHome.spec.ts +87 -0
- package/src/server/paths/appDataHome.ts +84 -0
- package/src/server/private-media/blobRoute.spec.ts +165 -0
- package/src/server/private-media/crypto.spec.ts +81 -0
- package/src/server/private-media/crypto.ts +155 -0
- package/src/server/private-media/gatePolicy.spec.ts +98 -0
- package/src/server/private-media/index-store.ts +83 -0
- package/src/server/private-media/mountPrivateRoutes.ts +265 -0
- package/src/server/private-media/pipeline.spec.ts +111 -0
- package/src/server/private-media/pipeline.ts +170 -0
- package/src/server/private-media/routes.spec.ts +265 -0
- package/src/server/private-media/unlock.ts +107 -0
- package/src/server/resume/index.ts +8 -0
- package/src/server/resume/resume.spec.ts +118 -0
- package/src/server/resume/routes.ts +92 -0
- package/src/server/resume/store.ts +82 -0
- package/src/server/retention/archive.spec.ts +181 -0
- package/src/server/retention/archive.ts +353 -0
- package/src/server/retention/fleet.ts +104 -0
- package/src/server/retention/index.ts +101 -0
- package/src/server/retention/policy.spec.ts +132 -0
- package/src/server/retention/policy.ts +392 -0
- package/src/server/retention/store.spec.ts +236 -0
- package/src/server/retention/store.ts +338 -0
- package/src/server/retention/sweeper.spec.ts +321 -0
- package/src/server/retention/sweeper.ts +367 -0
- package/src/server/retention/target.spec.ts +592 -0
- package/src/server/retention/target.ts +613 -0
- package/src/server/runtime/bootManifest.spec.ts +161 -0
- package/src/server/runtime/bootManifest.ts +172 -0
- package/src/server/runtime/createCcRuntime.ts +241 -0
- package/src/server/runtime/governance.spec.ts +650 -0
- package/src/server/runtime/governance.ts +268 -0
- package/src/server/runtime/hostCapabilities.ts +99 -0
- package/src/server/runtime/index.ts +117 -0
- package/src/server/runtime/localHost.spec.ts +242 -0
- package/src/server/runtime/localHost.ts +530 -0
- package/src/server/runtime/meterReconciliation.spec.ts +364 -0
- package/src/server/runtime/meterRollup.pg.test.ts +240 -0
- package/src/server/runtime/meterSharing.spec.ts +334 -0
- package/src/server/runtime/meterSpillDrain.spec.ts +173 -0
- package/src/server/runtime/objectStoreRoundTrip.spec.ts +277 -0
- package/src/server/runtime/recipe.spec.ts +1478 -0
- package/src/server/runtime/recipe.ts +1527 -0
- package/src/server/runtime/retentionJob.pg.test.ts +151 -0
- package/src/server/runtime/retentionJob.spec.ts +187 -0
- package/src/server/runtime/retentionJob.ts +237 -0
- package/src/server/runtime/runtime.spec.ts +404 -0
- package/src/server/runtime/saasHost.spec.ts +316 -0
- package/src/server/runtime/saasHost.ts +432 -0
- package/src/server/runtime/searchReindexConverges.spec.ts +358 -0
- package/src/server/runtime/serveCcApp.ts +77 -0
- package/src/server/runtime/staticAssets.ts +205 -0
- package/src/server/runtime/staticCache.spec.ts +161 -0
- package/src/server/search/index.ts +12 -0
- package/src/server/search/pgSearchProvider.pg.test.ts +392 -0
- package/src/server/search/pgSearchProvider.ts +421 -0
- package/src/server/search/pgSearchSchema.ts +147 -0
- package/src/server/services/accountService.spec.ts +721 -0
- package/src/server/services/accountService.ts +817 -0
- package/src/server/services/assetJobs.spec.ts +260 -0
- package/src/server/services/assetJobs.ts +287 -0
- package/src/server/services/assetService.ts +734 -0
- package/src/server/services/assetSources.ts +198 -0
- package/src/server/services/billingService.spec.ts +154 -0
- package/src/server/services/billingService.ts +185 -0
- package/src/server/services/devJobs.spec.ts +226 -0
- package/src/server/services/devJobs.ts +214 -0
- package/src/server/services/devService.spec.ts +388 -0
- package/src/server/services/devService.ts +453 -0
- package/src/server/services/guardService.spec.ts +98 -0
- package/src/server/services/guardService.ts +194 -0
- package/src/server/services/index.ts +89 -0
- package/src/server/services/knowledgeJobs.ts +119 -0
- package/src/server/services/knowledgeService.ts +610 -0
- package/src/server/services/patch.ts +18 -0
- package/src/server/services/searchJobs.spec.ts +160 -0
- package/src/server/services/searchJobs.ts +230 -0
- package/src/server/services/services.spec.ts +726 -0
- package/src/server/services/systemService.ts +484 -0
- package/src/server/services/vaultReaper.ts +126 -0
- package/src/server/sharing/index.ts +65 -0
- package/src/server/sharing/migrations.ts +128 -0
- package/src/server/sharing/router.spec.ts +167 -0
- package/src/server/sharing/router.ts +194 -0
- package/src/server/sharing/sql.ts +109 -0
- package/src/server/sharing/store.spec.ts +408 -0
- package/src/server/sharing/store.ts +737 -0
- package/src/server/sqlite/backup.spec.ts +114 -0
- package/src/server/sqlite/backup.ts +154 -0
- package/src/server/sqlite/browse.spec.ts +70 -0
- package/src/server/sqlite/browse.ts +120 -0
- package/src/server/sqlite/export.spec.ts +43 -0
- package/src/server/sqlite/export.ts +74 -0
- package/src/server/sqlite/fts5.spec.ts +175 -0
- package/src/server/sqlite/fts5.ts +255 -0
- package/src/server/sqlite/health.spec.ts +79 -0
- package/src/server/sqlite/health.ts +105 -0
- package/src/server/sqlite/import.spec.ts +75 -0
- package/src/server/sqlite/import.ts +141 -0
- package/src/server/sqlite/index.ts +64 -0
- package/src/server/sqlite/readonlySql.spec.ts +58 -0
- package/src/server/sqlite/readonlySql.ts +67 -0
- package/src/server/sqlite/stats.spec.ts +21 -0
- package/src/server/sqlite/stats.ts +61 -0
- package/src/server/sqlite/viewer.spec.ts +127 -0
- package/src/server/sqlite/viewer.ts +72 -0
- package/src/server/storage/binaryServerProcessing.integration.spec.ts +222 -0
- package/src/server/storage/binaryServerProcessing.spec.ts +150 -0
- package/src/server/storage/binaryServerProcessing.ts +127 -0
- package/src/server/storage/binaryServerStore.ts +141 -0
- package/src/server/storage/chunked.integration.spec.ts +185 -0
- package/src/server/storage/diskStore.ts +83 -0
- package/src/server/storage/fileUploadClient-chunked.integration.spec.ts +177 -0
- package/src/server/storage/files/adapter.photo.display.spec.ts +169 -0
- package/src/server/storage/files/adapter.photo.spec.ts +128 -0
- package/src/server/storage/files/adapter.spec.ts +121 -0
- package/src/server/storage/files/adapter.ts +255 -0
- package/src/server/storage/files/catalogue.media-host.spec.ts +184 -0
- package/src/server/storage/files/catalogue.orderings.spec.ts +157 -0
- package/src/server/storage/files/catalogue.private.spec.ts +106 -0
- package/src/server/storage/files/catalogue.recover.spec.ts +131 -0
- package/src/server/storage/files/catalogue.sort.spec.ts +154 -0
- package/src/server/storage/files/catalogue.spec.ts +133 -0
- package/src/server/storage/files/catalogue.trash-import.spec.ts +125 -0
- package/src/server/storage/files/catalogue.ts +1326 -0
- package/src/server/storage/files/chunkedUpload.spec.ts +111 -0
- package/src/server/storage/files/chunkedUpload.ts +146 -0
- package/src/server/storage/files/collections.spec.ts +294 -0
- package/src/server/storage/files/fileRoutes.replace.spec.ts +88 -0
- package/src/server/storage/files/fileRoutes.spec.ts +327 -0
- package/src/server/storage/files/fileRoutes.ts +462 -0
- package/src/server/storage/files/index.ts +66 -0
- package/src/server/storage/files/migrations.ts +187 -0
- package/src/server/storage/files/mimeByExt.ts +14 -0
- package/src/server/storage/files/stack.spec.ts +258 -0
- package/src/server/storage/files/stack.ts +284 -0
- package/src/server/storage/files/storageOps.spec.ts +126 -0
- package/src/server/storage/files/storageOps.ts +213 -0
- package/src/server/storage/files/types.ts +285 -0
- package/src/server/storage/imageThumbnail.spec.ts +81 -0
- package/src/server/storage/imageThumbnail.ts +60 -0
- package/src/server/storage/index.ts +122 -0
- package/src/server/storage/mountMediaRoutes.ts +231 -0
- package/src/server/storage/objectStore.spec.ts +272 -0
- package/src/server/storage/objectStoreMediaStore.ts +63 -0
- package/src/server/storage/s3ObjectStore.ts +239 -0
- package/src/server/storage/sources.ts +245 -0
- package/src/server/storage/storage.spec.ts +219 -0
- package/src/server/storage/streamRange.ts +92 -0
- package/src/server/storage/streamToken.ts +69 -0
- package/src/server/storage/transcode.integration.spec.ts +134 -0
- package/src/server/storage/transcodeJobs.spec.ts +152 -0
- package/src/server/storage/transcodeJobs.ts +171 -0
- package/src/server/storage/types.ts +169 -0
- package/src/server/storage/videoDerivativeKeys.spec.ts +112 -0
- package/src/server/storage/videoDerivativeKeys.ts +172 -0
- package/src/server/storage/videoProcessor.posterOnly.spec.ts +106 -0
- package/src/server/storage/videoProcessor.ts +229 -0
- package/src/server/stream/cdcBridge.ts +144 -0
- package/src/server/stream/index.ts +5 -0
- package/src/server/stream/searchBridge.ts +98 -0
- package/src/server/stream/serverPush.spec.ts +289 -0
- package/src/server/stream/serverPush.ts +325 -0
- package/src/server/ws/eventBus.spec.ts +67 -0
- package/src/server/ws/eventBus.ts +46 -0
- package/src/server/ws/hub.integration.spec.ts +93 -0
- package/src/server/ws/hub.spec.ts +282 -0
- package/src/server/ws/hub.ts +168 -0
- package/src/server/ws/index.ts +20 -0
- package/src/server/ws/presence.spec.ts +27 -0
- package/src/server/ws/presence.ts +26 -0
- package/src/server/ws/room.spec.ts +36 -0
- package/src/server/ws/room.ts +29 -0
- package/src/server/ws/types.ts +134 -0
- package/src/shared/errors.ts +153 -0
- package/src/skippedTestsAreAnswered.spec.ts +215 -0
- package/src/specTypecheckRatchet.spec.ts +75 -0
- package/src/studio/document.ts +251 -0
- package/src/studio/index.ts +82 -0
- package/src/studio/inspector.ts +127 -0
- package/src/studio/interview.spec.ts +211 -0
- package/src/studio/interview.ts +368 -0
- package/src/studio/operations.ts +423 -0
- package/src/studio/session.ts +291 -0
- package/src/studio/studio.spec.ts +886 -0
- package/src/studio/verification.ts +236 -0
- package/src/studio/wiring.ts +123 -0
- package/src/styles-static.css +391 -0
- package/src/styles.css +349 -8
- package/src/stylesStaticMatches.spec.ts +134 -0
- package/src/tapTargetStylesheet.spec.ts +150 -0
- package/src/testTmpRoot.spec.ts +102 -0
- package/src/testing/bytes.ts +38 -0
- package/src/testing/domInspect.spec.ts +79 -0
- package/src/testing/domInspect.ts +127 -0
- package/src/testing/fakeFetch.ts +26 -0
- package/src/testing/index.ts +12 -0
- package/src/testing/tooltip.ts +62 -0
- package/src/theme.css +827 -68
- package/src/verify/context.ts +78 -0
- package/src/verify/diagnostics.ts +76 -0
- package/src/verify/engines.ts +514 -0
- package/src/verify/fixtures/ai-prompt-injection-guard/app-config.json +20 -0
- package/src/verify/fixtures/ai-prompt-injection-guard/expected.json +7 -0
- package/src/verify/fixtures/av-baseline/app-config.json +27 -0
- package/src/verify/fixtures/av-baseline/expected.json +1 -0
- package/src/verify/fixtures/av-cycle-editor/app-config.json +41 -0
- package/src/verify/fixtures/av-cycle-editor/expected.json +7 -0
- package/src/verify/fixtures/av-cycle-editor-off/app-config.json +41 -0
- package/src/verify/fixtures/av-cycle-editor-off/expected.json +30 -0
- package/src/verify/fixtures/av-cycle-unmarked/app-config.json +39 -0
- package/src/verify/fixtures/av-cycle-unmarked/expected.json +7 -0
- package/src/verify/fixtures/av-cycle-unversioned/app-config.json +41 -0
- package/src/verify/fixtures/av-cycle-unversioned/expected.json +9 -0
- package/src/verify/fixtures/av-export-target-branch/app-config.json +33 -0
- package/src/verify/fixtures/av-export-target-branch/expected.json +1 -0
- package/src/verify/fixtures/av-export-target-unspecified/app-config.json +27 -0
- package/src/verify/fixtures/av-export-target-unspecified/expected.json +7 -0
- package/src/verify/fixtures/av-hls-off-inbound-videos/app-config.json +27 -0
- package/src/verify/fixtures/av-hls-off-inbound-videos/expected.json +8 -0
- package/src/verify/fixtures/av-hls-on-no-ffmpeg/app-config.json +27 -0
- package/src/verify/fixtures/av-hls-on-no-ffmpeg/expected.json +8 -0
- package/src/verify/fixtures/av-two-instances-divergent/app-config.json +35 -0
- package/src/verify/fixtures/av-two-instances-divergent/expected.json +8 -0
- package/src/verify/fixtures/av-video-off-wired/app-config.json +27 -0
- package/src/verify/fixtures/av-video-off-wired/expected.json +9 -0
- package/src/verify/fixtures/config-drift/app-config.json +20 -0
- package/src/verify/fixtures/config-drift/expected.json +7 -0
- package/src/verify/fixtures/config-version-unknown/app-config.json +17 -0
- package/src/verify/fixtures/config-version-unknown/expected.json +7 -0
- package/src/verify/fixtures/corpus.spec.ts +112 -0
- package/src/verify/fixtures/cross-engine-oral-history/app-config.json +19 -0
- package/src/verify/fixtures/cross-engine-oral-history/expected.json +8 -0
- package/src/verify/fixtures/cross-engine-private-media/app-config.json +19 -0
- package/src/verify/fixtures/cross-engine-private-media/expected.json +8 -0
- package/src/verify/fixtures/cross-engine-saas-rbac/app-config.json +28 -0
- package/src/verify/fixtures/cross-engine-saas-rbac/expected.json +8 -0
- package/src/verify/fixtures/css-isolation-missing/app-config.json +21 -0
- package/src/verify/fixtures/css-isolation-missing/expected.json +8 -0
- package/src/verify/fixtures/deep-link-ambiguous/app-config.json +40 -0
- package/src/verify/fixtures/deep-link-ambiguous/expected.json +7 -0
- package/src/verify/fixtures/deep-link-cross-tenant/app-config.json +17 -0
- package/src/verify/fixtures/deep-link-cross-tenant/expected.json +1 -0
- package/src/verify/fixtures/deep-link-fallback/app-config.json +15 -0
- package/src/verify/fixtures/deep-link-fallback/expected.json +3 -0
- package/src/verify/fixtures/demo-source-export/app-config.json +26 -0
- package/src/verify/fixtures/demo-source-export/expected.json +12 -0
- package/src/verify/fixtures/demo-source-studio/app-config.json +26 -0
- package/src/verify/fixtures/demo-source-studio/expected.json +7 -0
- package/src/verify/fixtures/editor-unwired/app-config.json +21 -0
- package/src/verify/fixtures/editor-unwired/expected.json +8 -0
- package/src/verify/fixtures/eventbus-depth-bomb/app-config.json +19 -0
- package/src/verify/fixtures/eventbus-depth-bomb/expected.json +7 -0
- package/src/verify/fixtures/eventbus-depth-guarded/app-config.json +19 -0
- package/src/verify/fixtures/eventbus-depth-guarded/expected.json +1 -0
- package/src/verify/fixtures/execution-sandbox-jail/app-config.json +19 -0
- package/src/verify/fixtures/execution-sandbox-jail/expected.json +12 -0
- package/src/verify/fixtures/guard-legacy-vault/app-config.json +25 -0
- package/src/verify/fixtures/guard-legacy-vault/expected.json +12 -0
- package/src/verify/fixtures/index.ts +885 -0
- package/src/verify/fixtures/infra-privilege-gate/app-config.json +20 -0
- package/src/verify/fixtures/infra-privilege-gate/expected.json +1 -0
- package/src/verify/fixtures/infra-privilege-unclaimed/app-config.json +19 -0
- package/src/verify/fixtures/infra-privilege-unclaimed/expected.json +8 -0
- package/src/verify/fixtures/layout-resize-observer/app-config.json +20 -0
- package/src/verify/fixtures/layout-resize-observer/expected.json +8 -0
- package/src/verify/fixtures/legacy-design-ids/app-config.json +26 -0
- package/src/verify/fixtures/legacy-design-ids/expected.json +7 -0
- package/src/verify/fixtures/lifecycle-abort/app-config.json +13 -0
- package/src/verify/fixtures/lifecycle-abort/expected.json +1 -0
- package/src/verify/fixtures/marshaller-missing/app-config.json +25 -0
- package/src/verify/fixtures/marshaller-missing/expected.json +7 -0
- package/src/verify/fixtures/marshaller-ok/app-config.json +25 -0
- package/src/verify/fixtures/marshaller-ok/expected.json +1 -0
- package/src/verify/fixtures/marshaller-unbounded/app-config.json +25 -0
- package/src/verify/fixtures/marshaller-unbounded/expected.json +7 -0
- package/src/verify/fixtures/marshaller-worker-offload-missing/app-config.json +25 -0
- package/src/verify/fixtures/marshaller-worker-offload-missing/expected.json +7 -0
- package/src/verify/fixtures/meter-spill-durability/app-config.json +19 -0
- package/src/verify/fixtures/meter-spill-durability/expected.json +12 -0
- package/src/verify/fixtures/mixin-surface-lock/app-config.json +8 -0
- package/src/verify/fixtures/mixin-surface-lock/expected.json +1 -0
- package/src/verify/fixtures/promotion-offline-lock/app-config.json +19 -0
- package/src/verify/fixtures/promotion-offline-lock/expected.json +7 -0
- package/src/verify/fixtures/rbac-viewer-403/app-config.json +10 -0
- package/src/verify/fixtures/rbac-viewer-403/expected.json +1 -0
- package/src/verify/fixtures/refresh-scoped-fanin/app-config.json +56 -0
- package/src/verify/fixtures/refresh-scoped-fanin/expected.json +1 -0
- package/src/verify/fixtures/refresh-unscoped-fanin/app-config.json +56 -0
- package/src/verify/fixtures/refresh-unscoped-fanin/expected.json +14 -0
- package/src/verify/fixtures/registry-port-toctou/app-config.json +19 -0
- package/src/verify/fixtures/registry-port-toctou/expected.json +7 -0
- package/src/verify/fixtures/route-collision/app-config.json +38 -0
- package/src/verify/fixtures/route-collision/expected.json +7 -0
- package/src/verify/fixtures/saas-connection-pooling/app-config.json +28 -0
- package/src/verify/fixtures/saas-connection-pooling/expected.json +7 -0
- package/src/verify/fixtures/saas-rls-policy-missing/app-config.json +28 -0
- package/src/verify/fixtures/saas-rls-policy-missing/expected.json +7 -0
- package/src/verify/fixtures/security-csp-headers/app-config.json +9 -0
- package/src/verify/fixtures/security-csp-headers/expected.json +1 -0
- package/src/verify/fixtures/sse-jitter-reconnect/app-config.json +13 -0
- package/src/verify/fixtures/sse-jitter-reconnect/expected.json +1 -0
- package/src/verify/fixtures/staging-collision/plugin-badtokens/collide.token-extension.ts +22 -0
- package/src/verify/fixtures/staging-export-leak/app-config.json +32 -0
- package/src/verify/fixtures/staging-export-leak/expected.json +16 -0
- package/src/verify/fixtures/staging-habits/plugin-habits/habits.token-extension.ts +33 -0
- package/src/verify/fixtures/staging-token-collision/app-config.json +19 -0
- package/src/verify/fixtures/staging-token-collision/expected.json +10 -0
- package/src/verify/fixtures/staging-token-extension/app-config.json +32 -0
- package/src/verify/fixtures/staging-token-extension/expected.json +6 -0
- package/src/verify/fixtures/staging-token-extension-locked/app-config.json +32 -0
- package/src/verify/fixtures/staging-token-extension-locked/expected.json +6 -0
- package/src/verify/fixtures/storage-contract/app-config.json +19 -0
- package/src/verify/fixtures/storage-contract/expected.json +17 -0
- package/src/verify/fixtures/storage-row-integrity/app-config.json +19 -0
- package/src/verify/fixtures/storage-row-integrity/expected.json +7 -0
- package/src/verify/fixtures/storage-wal-checkpoint/app-config.json +19 -0
- package/src/verify/fixtures/storage-wal-checkpoint/expected.json +7 -0
- package/src/verify/fixtures/token-deprecated/app-config.json +17 -0
- package/src/verify/fixtures/token-deprecated/expected.json +8 -0
- package/src/verify/fixtures/token-schema-drift/app-config.json +34 -0
- package/src/verify/fixtures/token-schema-drift/expected.json +7 -0
- package/src/verify/fixtures/token-schema-extended/app-config.json +34 -0
- package/src/verify/fixtures/token-schema-extended/expected.json +7 -0
- package/src/verify/fixtures/unknown-key/app-config.json +20 -0
- package/src/verify/fixtures/unknown-key/expected.json +8 -0
- package/src/verify/frozenManifest.spec.ts +91 -0
- package/src/verify/frozenManifest.ts +158 -0
- package/src/verify/index.ts +56 -0
- package/src/verify/interceptorGraph.spec.ts +113 -0
- package/src/verify/interceptorGraph.ts +62 -0
- package/src/verify/legacyDesigns.ts +272 -0
- package/src/verify/manifestFidelity.spec.ts +67 -0
- package/src/verify/pipeline.spec.ts +142 -0
- package/src/verify/pipeline.ts +149 -0
- package/src/verify/pluginLoader.spec.ts +78 -0
- package/src/verify/pluginLoader.ts +67 -0
- package/src/verify/promotion/bin/ccPromote.ts +147 -0
- package/src/verify/promotion/index.ts +14 -0
- package/src/verify/promotion/nodePromotionFs.ts +52 -0
- package/src/verify/promotion/promote.spec.ts +177 -0
- package/src/verify/promotion/promote.ts +238 -0
- package/src/verify/runtime/billingEnforcement.spec.ts +176 -0
- package/src/verify/runtime/bin/ccVerify.ts +12 -0
- package/src/verify/runtime/cli.spec.ts +111 -0
- package/src/verify/runtime/cli.ts +165 -0
- package/src/verify/runtime/hostCapabilities.ts +40 -0
- package/src/verify/runtime/probes.spec.ts +474 -0
- package/src/verify/runtime/probes.ts +1513 -0
- package/src/verify/runtime/processJail.ts +162 -0
- package/src/verify/runtime/runner.ts +126 -0
- package/src/verify/runtime/verifyContext.ts +351 -0
- package/src/verify/runtime/verifyServer.ts +288 -0
- package/src/verify/runtime/verifyServices.ts +706 -0
- package/src/verify/stages/v0Parse.ts +170 -0
- package/src/verify/stages/v1References.ts +356 -0
- package/src/verify/stages/v2Capabilities.ts +232 -0
- package/src/verify/stages/v3Tokens.ts +270 -0
- package/src/verify/stages/v4Graph.ts +324 -0
- package/src/verify/stages/v5Export.ts +199 -0
- package/src/verify/stages/v6Storage.ts +348 -0
- package/src/verify/staging/harvest.spec.ts +102 -0
- package/src/verify/staging/harvest.ts +241 -0
- package/src/verify/types.ts +517 -0
- package/src/workspace.css +146 -0
- package/README.md +0 -80
- package/dist/core/csv.d.ts +0 -65
- package/dist/core/csv.d.ts.map +0 -1
- package/dist/core/csv.js +0 -55
- package/dist/core/csv.js.map +0 -1
- package/dist/core/ctgr.d.ts +0 -6
- package/dist/core/ctgr.d.ts.map +0 -1
- package/dist/core/ctgr.js +0 -58
- package/dist/core/ctgr.js.map +0 -1
- package/dist/core/layout/aggregate.d.ts +0 -8
- package/dist/core/layout/aggregate.d.ts.map +0 -1
- package/dist/core/layout/aggregate.js +0 -77
- package/dist/core/layout/aggregate.js.map +0 -1
- package/dist/core/layout/field.d.ts +0 -14
- package/dist/core/layout/field.d.ts.map +0 -1
- package/dist/core/layout/field.js +0 -2
- package/dist/core/layout/field.js.map +0 -1
- package/dist/core/layout/grid.d.ts +0 -7
- package/dist/core/layout/grid.d.ts.map +0 -1
- package/dist/core/layout/grid.js +0 -152
- package/dist/core/layout/grid.js.map +0 -1
- package/dist/core/layout/migrate.d.ts +0 -4
- package/dist/core/layout/migrate.d.ts.map +0 -1
- package/dist/core/layout/migrate.js +0 -170
- package/dist/core/layout/migrate.js.map +0 -1
- package/dist/core/layout/resolve.d.ts +0 -23
- package/dist/core/layout/resolve.d.ts.map +0 -1
- package/dist/core/layout/resolve.js +0 -27
- package/dist/core/layout/resolve.js.map +0 -1
- package/dist/core/layout/treeOps.d.ts +0 -11
- package/dist/core/layout/treeOps.d.ts.map +0 -1
- package/dist/core/layout/treeOps.js +0 -68
- package/dist/core/layout/treeOps.js.map +0 -1
- package/dist/core/layout/types.d.ts +0 -97
- package/dist/core/layout/types.d.ts.map +0 -1
- package/dist/core/layout/types.js +0 -21
- package/dist/core/layout/types.js.map +0 -1
- package/dist/core/layout/undoHistory.d.ts +0 -34
- package/dist/core/layout/undoHistory.d.ts.map +0 -1
- package/dist/core/layout/undoHistory.js +0 -53
- package/dist/core/layout/undoHistory.js.map +0 -1
- package/dist/core/layout/version.d.ts +0 -8
- package/dist/core/layout/version.d.ts.map +0 -1
- package/dist/core/layout/version.js +0 -8
- package/dist/core/layout/version.js.map +0 -1
- package/dist/data/env/index.d.ts +0 -75
- package/dist/data/env/index.d.ts.map +0 -1
- package/dist/data/env/index.js +0 -149
- package/dist/data/env/index.js.map +0 -1
- package/dist/data/json/index.d.ts +0 -61
- package/dist/data/json/index.d.ts.map +0 -1
- package/dist/data/json/index.js +0 -488
- package/dist/data/json/index.js.map +0 -1
- package/dist/game/core/DisposeRegistry.d.ts +0 -42
- package/dist/game/core/DisposeRegistry.d.ts.map +0 -1
- package/dist/game/core/DisposeRegistry.js +0 -67
- package/dist/game/core/DisposeRegistry.js.map +0 -1
- package/dist/game/core/drawBudget.d.ts +0 -26
- package/dist/game/core/drawBudget.d.ts.map +0 -1
- package/dist/game/core/drawBudget.js +0 -55
- package/dist/game/core/drawBudget.js.map +0 -1
- package/dist/game/core/fixedTimestep.d.ts +0 -38
- package/dist/game/core/fixedTimestep.d.ts.map +0 -1
- package/dist/game/core/fixedTimestep.js +0 -47
- package/dist/game/core/fixedTimestep.js.map +0 -1
- package/dist/game/core/index.d.ts +0 -9
- package/dist/game/core/index.d.ts.map +0 -1
- package/dist/game/core/index.js +0 -8
- package/dist/game/core/index.js.map +0 -1
- package/dist/game/core/inputCollector.d.ts +0 -82
- package/dist/game/core/inputCollector.d.ts.map +0 -1
- package/dist/game/core/inputCollector.js +0 -176
- package/dist/game/core/inputCollector.js.map +0 -1
- package/dist/game/core/resizeCanvas.d.ts +0 -19
- package/dist/game/core/resizeCanvas.d.ts.map +0 -1
- package/dist/game/core/resizeCanvas.js +0 -29
- package/dist/game/core/resizeCanvas.js.map +0 -1
- package/dist/game/react/index.d.ts +0 -3
- package/dist/game/react/index.d.ts.map +0 -1
- package/dist/game/react/index.js +0 -5
- package/dist/game/react/index.js.map +0 -1
- package/dist/game/react/useGameEngine.d.ts +0 -64
- package/dist/game/react/useGameEngine.d.ts.map +0 -1
- package/dist/game/react/useGameEngine.js +0 -77
- package/dist/game/react/useGameEngine.js.map +0 -1
- package/dist/ops/test-report/types.d.ts +0 -81
- package/dist/ops/test-report/types.d.ts.map +0 -1
- package/dist/ops/test-report/types.js +0 -13
- package/dist/ops/test-report/types.js.map +0 -1
- package/dist/react/charts/CategoryBars.d.ts +0 -17
- package/dist/react/charts/CategoryBars.d.ts.map +0 -1
- package/dist/react/charts/CategoryBars.js +0 -28
- package/dist/react/charts/CategoryBars.js.map +0 -1
- package/dist/react/charts/CategoryDonut.d.ts +0 -16
- package/dist/react/charts/CategoryDonut.d.ts.map +0 -1
- package/dist/react/charts/CategoryDonut.js +0 -17
- package/dist/react/charts/CategoryDonut.js.map +0 -1
- package/dist/react/charts/DivergingBars.d.ts +0 -16
- package/dist/react/charts/DivergingBars.d.ts.map +0 -1
- package/dist/react/charts/DivergingBars.js +0 -14
- package/dist/react/charts/DivergingBars.js.map +0 -1
- package/dist/react/charts/DonutChart.d.ts +0 -10
- package/dist/react/charts/DonutChart.d.ts.map +0 -1
- package/dist/react/charts/DonutChart.js +0 -16
- package/dist/react/charts/DonutChart.js.map +0 -1
- package/dist/react/charts/LabeledSeriesChart.d.ts +0 -25
- package/dist/react/charts/LabeledSeriesChart.d.ts.map +0 -1
- package/dist/react/charts/LabeledSeriesChart.js +0 -29
- package/dist/react/charts/LabeledSeriesChart.js.map +0 -1
- package/dist/react/charts/MiniBarChart.d.ts +0 -14
- package/dist/react/charts/MiniBarChart.d.ts.map +0 -1
- package/dist/react/charts/MiniBarChart.js +0 -14
- package/dist/react/charts/MiniBarChart.js.map +0 -1
- package/dist/react/charts/StackedBars.d.ts +0 -18
- package/dist/react/charts/StackedBars.d.ts.map +0 -1
- package/dist/react/charts/StackedBars.js +0 -15
- package/dist/react/charts/StackedBars.js.map +0 -1
- package/dist/react/charts/StatusDonut.d.ts +0 -7
- package/dist/react/charts/StatusDonut.d.ts.map +0 -1
- package/dist/react/charts/StatusDonut.js +0 -22
- package/dist/react/charts/StatusDonut.js.map +0 -1
- package/dist/react/charts/chartTheme.d.ts +0 -21
- package/dist/react/charts/chartTheme.d.ts.map +0 -1
- package/dist/react/charts/chartTheme.js +0 -55
- package/dist/react/charts/chartTheme.js.map +0 -1
- package/dist/react/components/Card.d.ts +0 -27
- package/dist/react/components/Card.d.ts.map +0 -1
- package/dist/react/components/Card.js +0 -29
- package/dist/react/components/Card.js.map +0 -1
- package/dist/react/components/DataTable.d.ts +0 -16
- package/dist/react/components/DataTable.d.ts.map +0 -1
- package/dist/react/components/DataTable.js +0 -25
- package/dist/react/components/DataTable.js.map +0 -1
- package/dist/react/components/DiscardConfirmOverlay.d.ts +0 -14
- package/dist/react/components/DiscardConfirmOverlay.d.ts.map +0 -1
- package/dist/react/components/DiscardConfirmOverlay.js +0 -7
- package/dist/react/components/DiscardConfirmOverlay.js.map +0 -1
- package/dist/react/components/Dropdown.d.ts +0 -64
- package/dist/react/components/Dropdown.d.ts.map +0 -1
- package/dist/react/components/Dropdown.js +0 -144
- package/dist/react/components/Dropdown.js.map +0 -1
- package/dist/react/components/ModalShell.d.ts +0 -39
- package/dist/react/components/ModalShell.d.ts.map +0 -1
- package/dist/react/components/ModalShell.js +0 -63
- package/dist/react/components/ModalShell.js.map +0 -1
- package/dist/react/components/PageBottom.d.ts +0 -62
- package/dist/react/components/PageBottom.d.ts.map +0 -1
- package/dist/react/components/PageBottom.js +0 -87
- package/dist/react/components/PageBottom.js.map +0 -1
- package/dist/react/components/PageContainer.d.ts +0 -8
- package/dist/react/components/PageContainer.d.ts.map +0 -1
- package/dist/react/components/PageContainer.js +0 -12
- package/dist/react/components/PageContainer.js.map +0 -1
- package/dist/react/components/Pagination.d.ts +0 -24
- package/dist/react/components/Pagination.d.ts.map +0 -1
- package/dist/react/components/Pagination.js +0 -48
- package/dist/react/components/Pagination.js.map +0 -1
- package/dist/react/components/SectionHeading.d.ts +0 -12
- package/dist/react/components/SectionHeading.d.ts.map +0 -1
- package/dist/react/components/SectionHeading.js +0 -5
- package/dist/react/components/SectionHeading.js.map +0 -1
- package/dist/react/components/Select.d.ts +0 -5
- package/dist/react/components/Select.d.ts.map +0 -1
- package/dist/react/components/Select.js +0 -8
- package/dist/react/components/Select.js.map +0 -1
- package/dist/react/components/TextArea.d.ts +0 -10
- package/dist/react/components/TextArea.d.ts.map +0 -1
- package/dist/react/components/TextArea.js +0 -14
- package/dist/react/components/TextArea.js.map +0 -1
- package/dist/react/components/popoverPlacement.d.ts +0 -40
- package/dist/react/components/popoverPlacement.d.ts.map +0 -1
- package/dist/react/components/popoverPlacement.js +0 -25
- package/dist/react/components/popoverPlacement.js.map +0 -1
- package/dist/react/hooks/useAutoSizeTextarea.d.ts +0 -19
- package/dist/react/hooks/useAutoSizeTextarea.d.ts.map +0 -1
- package/dist/react/hooks/useAutoSizeTextarea.js +0 -44
- package/dist/react/hooks/useAutoSizeTextarea.js.map +0 -1
- package/dist/react/hooks/useDndSensors.d.ts +0 -21
- package/dist/react/hooks/useDndSensors.d.ts.map +0 -1
- package/dist/react/hooks/useDndSensors.js +0 -23
- package/dist/react/hooks/useDndSensors.js.map +0 -1
- package/dist/react/hooks/useDragToMove.d.ts +0 -65
- package/dist/react/hooks/useDragToMove.d.ts.map +0 -1
- package/dist/react/hooks/useDragToMove.js +0 -76
- package/dist/react/hooks/useDragToMove.js.map +0 -1
- package/dist/react/hooks/usePagination.d.ts +0 -49
- package/dist/react/hooks/usePagination.d.ts.map +0 -1
- package/dist/react/hooks/usePagination.js +0 -50
- package/dist/react/hooks/usePagination.js.map +0 -1
- package/dist/react/nav/SideNavItem.d.ts +0 -28
- package/dist/react/nav/SideNavItem.d.ts.map +0 -1
- package/dist/react/nav/SideNavItem.js +0 -38
- package/dist/react/nav/SideNavItem.js.map +0 -1
- package/dist/react/nav/filterNavSearch.d.ts +0 -15
- package/dist/react/nav/filterNavSearch.d.ts.map +0 -1
- package/dist/react/nav/filterNavSearch.js +0 -65
- package/dist/react/nav/filterNavSearch.js.map +0 -1
- package/dist/react/nav/navMenuPlacement.d.ts +0 -58
- package/dist/react/nav/navMenuPlacement.d.ts.map +0 -1
- package/dist/react/nav/navMenuPlacement.js +0 -36
- package/dist/react/nav/navMenuPlacement.js.map +0 -1
- package/dist/react/nav/navSearch.d.ts +0 -31
- package/dist/react/nav/navSearch.d.ts.map +0 -1
- package/dist/react/nav/navSearch.js +0 -37
- package/dist/react/nav/navSearch.js.map +0 -1
- package/dist/react/nav/partitionAndOrder.d.ts +0 -19
- package/dist/react/nav/partitionAndOrder.d.ts.map +0 -1
- package/dist/react/nav/partitionAndOrder.js +0 -25
- package/dist/react/nav/partitionAndOrder.js.map +0 -1
- package/dist/react/nav/types.d.ts +0 -65
- package/dist/react/nav/types.d.ts.map +0 -1
- package/dist/react/nav/types.js.map +0 -1
- package/dist/react/search/HeaderSearch.d.ts +0 -55
- package/dist/react/search/HeaderSearch.d.ts.map +0 -1
- package/dist/react/search/HeaderSearch.js +0 -107
- package/dist/react/search/HeaderSearch.js.map +0 -1
- package/dist/react/search/SearchResults.d.ts +0 -45
- package/dist/react/search/SearchResults.d.ts.map +0 -1
- package/dist/react/search/SearchResults.js +0 -25
- package/dist/react/search/SearchResults.js.map +0 -1
- package/dist/react/search/index.d.ts +0 -3
- package/dist/react/search/index.d.ts.map +0 -1
- package/dist/react/search/index.js +0 -8
- package/dist/react/search/index.js.map +0 -1
- package/dist/react/spreadsheet/types.d.ts +0 -42
- package/dist/react/spreadsheet/types.d.ts.map +0 -1
- package/dist/react/spreadsheet/types.js +0 -5
- package/dist/react/spreadsheet/types.js.map +0 -1
- package/dist/react/toastStore.d.ts +0 -34
- package/dist/react/toastStore.d.ts.map +0 -1
- package/dist/react/toastStore.js +0 -70
- package/dist/react/toastStore.js.map +0 -1
- package/dist/react/uiScale/scale.d.ts +0 -37
- package/dist/react/uiScale/scale.d.ts.map +0 -1
- package/dist/react/uiScale/scale.js +0 -48
- package/dist/react/uiScale/scale.js.map +0 -1
- package/dist/react/uiScale/uiScaleStore.d.ts +0 -48
- package/dist/react/uiScale/uiScaleStore.d.ts.map +0 -1
- package/dist/react/uiScale/uiScaleStore.js +0 -64
- package/dist/react/uiScale/uiScaleStore.js.map +0 -1
- package/dist/react/useToasts.d.ts +0 -21
- package/dist/react/useToasts.d.ts.map +0 -1
- package/dist/react/useToasts.js +0 -28
- package/dist/react/useToasts.js.map +0 -1
- package/dist/server/auth.d.ts +0 -20
- package/dist/server/auth.d.ts.map +0 -1
- package/dist/server/auth.js +0 -20
- package/dist/server/auth.js.map +0 -1
- package/dist/server/media-bun/ffmpeg.d.ts +0 -58
- package/dist/server/media-bun/ffmpeg.d.ts.map +0 -1
- package/dist/server/media-bun/ffmpeg.js +0 -126
- package/dist/server/media-bun/ffmpeg.js.map +0 -1
- package/dist/server/sqlite.d.ts +0 -31
- package/dist/server/sqlite.d.ts.map +0 -1
- package/dist/server/sqlite.js +0 -46
- package/dist/server/sqlite.js.map +0 -1
- /package/dist/react/{nav → chat}/types.js +0 -0
|
@@ -0,0 +1,2431 @@
|
|
|
1
|
+
import './mediaGallery.css';
|
|
2
|
+
import { formatBytes } from 'cwip/format';
|
|
3
|
+
import type { FileCategory } from 'cwip/file-kind';
|
|
4
|
+
import React, {
|
|
5
|
+
type DragEvent,
|
|
6
|
+
type MutableRefObject,
|
|
7
|
+
type ReactNode,
|
|
8
|
+
useCallback,
|
|
9
|
+
useEffect,
|
|
10
|
+
useMemo,
|
|
11
|
+
useRef,
|
|
12
|
+
useState,
|
|
13
|
+
} from 'react';
|
|
14
|
+
import type { PlayableVideo } from '../../core/media';
|
|
15
|
+
import { CATEGORY_LABEL, FileTypeIcon } from '../components/FileTypeIcon';
|
|
16
|
+
import { DeleteButton } from '../components/DeleteButton';
|
|
17
|
+
import {
|
|
18
|
+
type CheckboxHeaderState,
|
|
19
|
+
useCheckboxSelection,
|
|
20
|
+
} from '../hooks/useCheckboxSelection';
|
|
21
|
+
import { DenseGalleryDetail, DenseGalleryShell } from '../media/DenseGalleryShell';
|
|
22
|
+
import { useHlsSource } from '../media/hlsSource';
|
|
23
|
+
import { HoverScrubVideoThumb } from '../media/HoverScrubVideoThumb';
|
|
24
|
+
import { isPlayPauseSpace } from '../media/playerSpaceKey';
|
|
25
|
+
import {
|
|
26
|
+
LIGHT_RANGE,
|
|
27
|
+
lightFilter,
|
|
28
|
+
NO_EDIT,
|
|
29
|
+
NO_LIGHT,
|
|
30
|
+
type PictureLight,
|
|
31
|
+
isLightAdjusted,
|
|
32
|
+
previewTransform,
|
|
33
|
+
swapsAxes,
|
|
34
|
+
} from '../media/pictureEdit';
|
|
35
|
+
import type { PictureEditResult } from '../media/PictureEditor';
|
|
36
|
+
import type { MediaOrientation } from '../media/VideoTurner';
|
|
37
|
+
import type { VideoCut } from '../../core/media/videoCuts';
|
|
38
|
+
import {
|
|
39
|
+
GALLERY_ORDER_OPTIONS,
|
|
40
|
+
filterGalleryItems,
|
|
41
|
+
galleryItemCategory,
|
|
42
|
+
galleryKindOptions,
|
|
43
|
+
galleryTags,
|
|
44
|
+
isMarkdownFile,
|
|
45
|
+
playsWithSpace,
|
|
46
|
+
snapsToStage,
|
|
47
|
+
sortGalleryItems,
|
|
48
|
+
} from './mediaGalleryModel';
|
|
49
|
+
import {
|
|
50
|
+
IMAGE_DWELL_OPTIONS,
|
|
51
|
+
PLAYBACK_END_LABELS,
|
|
52
|
+
type PlaybackEndBehavior,
|
|
53
|
+
nextPlaybackEnd,
|
|
54
|
+
readImageDwell,
|
|
55
|
+
readPinStage,
|
|
56
|
+
readPlaybackEnd,
|
|
57
|
+
readThumbAutoplay,
|
|
58
|
+
writeImageDwell,
|
|
59
|
+
writePinStage,
|
|
60
|
+
writePlaybackEnd,
|
|
61
|
+
writeThumbAutoplay,
|
|
62
|
+
type GalleryViewMode,
|
|
63
|
+
readViewMode,
|
|
64
|
+
writeViewMode,
|
|
65
|
+
} from './playbackPreferences';
|
|
66
|
+
import { GalleryTable } from './GalleryTable';
|
|
67
|
+
import { nextInRun, runAdvances, runRepeatsOne, stepId } from './playbackRun';
|
|
68
|
+
import type { MediaGalleryItem, MediaGalleryItemMedia, MediaGalleryOrder } from './types';
|
|
69
|
+
import { createdLabel, type MediaCache, ThumbImg, useItemMedia } from './galleryItemMedia';
|
|
70
|
+
import { Tooltip } from '../components/Tooltip';
|
|
71
|
+
|
|
72
|
+
import { TruncatedText } from '../components/TruncatedText';
|
|
73
|
+
// The reusable media gallery — the plugin-era mixed gallery generalised to EVERY binary
|
|
74
|
+
// kind the fleet stores. Same design as plugin-media-gallery: a thumbnail-maximal browse
|
|
75
|
+
// grid (hover-scrub video tiles, still photo tiles, type-icon tiles for other binaries)
|
|
76
|
+
// that swaps to an in-page detail view — the right viewer as a big stage on top, actions
|
|
77
|
+
// beside it, the rest of the grid underneath for quick jumping, with a layout-level
|
|
78
|
+
// fullscreen toggle. Presentation + dispatch only: apps map their records to
|
|
79
|
+
// `MediaGalleryItem` and keep auth/signing/deletion on their side.
|
|
80
|
+
|
|
81
|
+
// Heavy viewers stay off the critical path — each loads only when a matching file opens.
|
|
82
|
+
const LazyVideoPlayer = React.lazy(() =>
|
|
83
|
+
import('../media/VideoPlayer').then((m) => ({ default: m.VideoPlayer })),
|
|
84
|
+
);
|
|
85
|
+
const LazyPdfViewer = React.lazy(() =>
|
|
86
|
+
import('../pdf-viewer/PdfViewer').then((m) => ({ default: m.PdfViewer })),
|
|
87
|
+
);
|
|
88
|
+
const LazyWorkbookViewer = React.lazy(() =>
|
|
89
|
+
import('../workbook-viewer/WorkbookViewer').then((m) => ({ default: m.WorkbookViewer })),
|
|
90
|
+
);
|
|
91
|
+
const LazyMarkdownDoc = React.lazy(() =>
|
|
92
|
+
import('../markdown/MarkdownDoc').then((m) => ({ default: m.MarkdownDoc })),
|
|
93
|
+
);
|
|
94
|
+
// The rotate/crop/re-light dialog, and its own stylesheet, only once somebody opens it — so an
|
|
95
|
+
// app that never edits a picture pays nothing for the capability being available.
|
|
96
|
+
const LazyPictureEditor = React.lazy(() =>
|
|
97
|
+
import('../media/PictureEditor').then((m) => ({ default: m.PictureEditor })),
|
|
98
|
+
);
|
|
99
|
+
const LazyFrameGrabber = React.lazy(() =>
|
|
100
|
+
import('../media/FrameGrabber').then((m) => ({ default: m.FrameGrabber })),
|
|
101
|
+
);
|
|
102
|
+
// The same four gestures for FOOTAGE — a separate dialog from the picture editor because a
|
|
103
|
+
// video's turn can only ever be stored, never baked. See `VideoTurner`'s header.
|
|
104
|
+
const LazyVideoTurner = React.lazy(() =>
|
|
105
|
+
import('../media/VideoTurner').then((m) => ({ default: m.VideoTurner })),
|
|
106
|
+
);
|
|
107
|
+
// Marking sections of a clip to cut out. Lazy for the usual reason and one extra: an app that
|
|
108
|
+
// has no pipeline to execute a cut list never passes `onTrimVideo`, so it never loads a byte
|
|
109
|
+
// of this — which is what makes "enabled for collections only, for now" a fact about the
|
|
110
|
+
// bundle rather than a feature flag somebody has to remember to check.
|
|
111
|
+
const LazyVideoCutEditor = React.lazy(() =>
|
|
112
|
+
import('../media/VideoCutEditor').then((m) => ({ default: m.VideoCutEditor })),
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* A stored orientation, as a CSS transform — the same `previewTransform` the editor previews
|
|
117
|
+
* with, so a saved turn and an unsaved one can never render differently.
|
|
118
|
+
*
|
|
119
|
+
* Returns an EMPTY style object rather than `transform: none` for the ordinary unturned case:
|
|
120
|
+
* a `transform` declaration of any value promotes the element to its own compositing layer,
|
|
121
|
+
* and a wall of gallery tiles is exactly where that is worth not paying for.
|
|
122
|
+
*/
|
|
123
|
+
function orientationStyle(item: MediaGalleryItem): React.CSSProperties {
|
|
124
|
+
const o = item.orientation;
|
|
125
|
+
if (!o || (o.turns === 0 && !o.flipX && !o.flipY)) return {};
|
|
126
|
+
return { transform: previewTransform({ ...NO_EDIT, turns: o.turns, flipX: !!o.flipX, flipY: !!o.flipY }) };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Does the stored orientation swap the picture's axes? Drives the fit constraint. */
|
|
130
|
+
function isTurned(item: MediaGalleryItem): boolean {
|
|
131
|
+
return item.orientation ? swapsAxes(item.orientation.turns) : false;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
type BytesCache = MutableRefObject<Map<string, Promise<ArrayBuffer>>>;
|
|
135
|
+
|
|
136
|
+
function GalleryMeta({ item }: { item: MediaGalleryItem }) {
|
|
137
|
+
const line =
|
|
138
|
+
item.tags && item.tags.length > 0
|
|
139
|
+
? item.tags.slice(0, 3).join(' · ')
|
|
140
|
+
: item.sizeBytes != null
|
|
141
|
+
? formatBytes(item.sizeBytes)
|
|
142
|
+
: null;
|
|
143
|
+
// The date is its OWN line rather than appended to the one above, because that line is
|
|
144
|
+
// already whichever of tags/size exists — folding a third fact into it would push the tags
|
|
145
|
+
// out of a tile caption that is two lines tall by design.
|
|
146
|
+
const created = createdLabel(item.createdAt);
|
|
147
|
+
return (
|
|
148
|
+
<div className='cbgd-meta'>
|
|
149
|
+
<TruncatedText as='div' className='cbgd-meta-title'>
|
|
150
|
+
{item.name}
|
|
151
|
+
</TruncatedText>
|
|
152
|
+
{line ? <div className='cbgd-meta-line'>{line}</div> : null}
|
|
153
|
+
{created ? <div className='cbgd-meta-date'>{created}</div> : null}
|
|
154
|
+
</div>
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** Extension shown on icon tiles, from the name's last dot (uppercased by CSS). */
|
|
159
|
+
function extLabel(item: MediaGalleryItem): string {
|
|
160
|
+
const dot = item.name.lastIndexOf('.');
|
|
161
|
+
const ext = dot > 0 ? item.name.slice(dot + 1) : '';
|
|
162
|
+
return ext.length > 0 && ext.length <= 5 ? ext : CATEGORY_LABEL[galleryItemCategory(item)];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/** Present only when the consumer opted into `selectable`. */
|
|
166
|
+
interface TileSelection {
|
|
167
|
+
selected: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* True when the box is shown unconditionally. False puts the tile in the quiet mode
|
|
170
|
+
* described on {@link MediaGalleryProps.selectionReveal} — the CSS still reveals the box
|
|
171
|
+
* on hover, on keyboard focus, and whenever the tile is selected, so the control is never
|
|
172
|
+
* actually unreachable, only out of the way.
|
|
173
|
+
*/
|
|
174
|
+
armed: boolean;
|
|
175
|
+
onToggle: (shiftKey: boolean) => void;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/** Present only when the consumer passed `onItemDragStart`. */
|
|
179
|
+
interface TileDrag {
|
|
180
|
+
onDragStart: (event: DragEvent<HTMLElement>) => void;
|
|
181
|
+
onDragEnd?: () => void;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* The wrapper that turns a bare tile into a selectable and/or draggable one.
|
|
186
|
+
*
|
|
187
|
+
* The checkbox is an overlay SIBLING of the tile rather than a child of it: every tile
|
|
188
|
+
* branch below is itself a button (or a HoverScrubVideoThumb that renders one), and a button
|
|
189
|
+
* inside a button is invalid HTML that browsers silently un-nest. Sitting on top also keeps
|
|
190
|
+
* the tile's own click meaning "open" — ticking the box must never navigate, which is what
|
|
191
|
+
* `stopPropagation` in {@link SelectBox} buys.
|
|
192
|
+
*/
|
|
193
|
+
function TileShell({
|
|
194
|
+
name,
|
|
195
|
+
selection,
|
|
196
|
+
drag,
|
|
197
|
+
children,
|
|
198
|
+
}: {
|
|
199
|
+
name: string;
|
|
200
|
+
selection?: TileSelection;
|
|
201
|
+
drag?: TileDrag;
|
|
202
|
+
children: ReactNode;
|
|
203
|
+
}) {
|
|
204
|
+
const selected = selection?.selected === true;
|
|
205
|
+
const quiet = selection !== undefined && !selection.armed;
|
|
206
|
+
return (
|
|
207
|
+
<div
|
|
208
|
+
className={`cbmg-selectable${selected ? ' is-selected' : ''}${quiet ? ' cbmg-selectable--quiet' : ''}`}
|
|
209
|
+
// 🔴 The DRAGGABLE element is this wrapper, not the tile inside it. Every tile branch
|
|
210
|
+
// is a <button>, and a draggable button is a browser-by-browser coin toss: some start
|
|
211
|
+
// a drag, some treat the pointer-down as a press and never fire dragstart at all.
|
|
212
|
+
// Dragging the wrapper also means the drag image is the whole tile, which is what a
|
|
213
|
+
// person is aiming at.
|
|
214
|
+
{...(drag
|
|
215
|
+
? {
|
|
216
|
+
draggable: true,
|
|
217
|
+
onDragStart: (event: DragEvent<HTMLDivElement>) => drag.onDragStart(event),
|
|
218
|
+
onDragEnd: () => drag.onDragEnd?.(),
|
|
219
|
+
}
|
|
220
|
+
: {})}
|
|
221
|
+
>
|
|
222
|
+
{children}
|
|
223
|
+
{selection ? (
|
|
224
|
+
<SelectBox name={name} selected={selected} onToggle={selection.onToggle} />
|
|
225
|
+
) : null}
|
|
226
|
+
</div>
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function SelectBox({
|
|
231
|
+
name,
|
|
232
|
+
selected,
|
|
233
|
+
onToggle,
|
|
234
|
+
}: {
|
|
235
|
+
name: string;
|
|
236
|
+
selected: boolean;
|
|
237
|
+
onToggle: (shiftKey: boolean) => void;
|
|
238
|
+
}) {
|
|
239
|
+
return (
|
|
240
|
+
<span className='cbmg-select-box'>
|
|
241
|
+
<input
|
|
242
|
+
// guardrails-ignore no-raw-inputs: a plain control inside a Tailwind-free, plain-CSS row. The Field layer has no slider, and its label chrome would duplicate the label already beside this one.
|
|
243
|
+
// guardrails-ignore no-raw-inputs: this module is self-contained plain CSS (no
|
|
244
|
+
// Tailwind in this file, same reason `.cbgd-search` states); cursedbelt's Radix
|
|
245
|
+
// Checkbox is a button, which cannot be nested over a button tile.
|
|
246
|
+
type='checkbox'
|
|
247
|
+
checked={selected}
|
|
248
|
+
// `readOnly` + `onClick`, not `onChange`: the shift key is only on the CLICK, and
|
|
249
|
+
// a range gesture is the difference between ticking 40 boxes and ticking two.
|
|
250
|
+
readOnly
|
|
251
|
+
onClick={(e) => {
|
|
252
|
+
e.stopPropagation();
|
|
253
|
+
onToggle(e.shiftKey);
|
|
254
|
+
}}
|
|
255
|
+
aria-label={`Select ${name} for bulk actions (shift-click for a range)`}
|
|
256
|
+
/>
|
|
257
|
+
</span>
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** One tile: hover-scrub for videos, a still image for photos, a type-icon card otherwise. */
|
|
262
|
+
function GalleryTile({
|
|
263
|
+
item,
|
|
264
|
+
cache,
|
|
265
|
+
onOpen,
|
|
266
|
+
selection,
|
|
267
|
+
drag,
|
|
268
|
+
autoPreview,
|
|
269
|
+
}: {
|
|
270
|
+
item: MediaGalleryItem;
|
|
271
|
+
cache: MediaCache;
|
|
272
|
+
onOpen: () => void;
|
|
273
|
+
selection?: TileSelection;
|
|
274
|
+
drag?: TileDrag;
|
|
275
|
+
/** Preview every video tile without hovering it — see `readThumbAutoplay`. */
|
|
276
|
+
autoPreview?: boolean;
|
|
277
|
+
}) {
|
|
278
|
+
/*
|
|
279
|
+
* 🔴 ALWAYS wrapped, even with no selection and no drag.
|
|
280
|
+
*
|
|
281
|
+
* `TileShell` is not only the checkbox host — it is the SIZING wrapper. `.cbmg-selectable`
|
|
282
|
+
* carries `height: 100%` on itself and on its first child, which is what makes a tile fill
|
|
283
|
+
* the cell the virtualized grid measured for it. Returning the bare tile when neither
|
|
284
|
+
* feature was requested therefore produced a tile with no height constraint at all, and the
|
|
285
|
+
* only grid that renders tiles that way is the detail view's "More files" strip — so videos
|
|
286
|
+
* there stretched the full width of the screen at a sliver of their proper height, while
|
|
287
|
+
* the identical items in the main grid looked correct. Owner report, 2026-08-13.
|
|
288
|
+
*
|
|
289
|
+
* With both props absent the shell renders exactly one plain div and no interaction
|
|
290
|
+
* handlers, so this costs nothing and cannot change behavior anywhere else.
|
|
291
|
+
*/
|
|
292
|
+
return (
|
|
293
|
+
<TileShell name={item.name} selection={selection} drag={drag}>
|
|
294
|
+
<RawGalleryTile item={item} cache={cache} onOpen={onOpen} autoPreview={autoPreview} />
|
|
295
|
+
</TileShell>
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* A DOCUMENT's tile picture — page one where a renderer produced it, its FORMAT where not.
|
|
301
|
+
*
|
|
302
|
+
* ── 🔴 Why an `onError` and not just an `<img>` ─────────────────────────────────────────
|
|
303
|
+
* binary-server's derivative contract is that the key is COMPUTED and the object's absence is
|
|
304
|
+
* the "not ready yet" state, so a host that offers a thumbnail name for every row is offering
|
|
305
|
+
* one for rows nothing has rendered — and it cannot avoid that by probing, which costs a round
|
|
306
|
+
* trip per tile. `ThumbImg` beside this already solves it for a PICTURE, where the fallback is
|
|
307
|
+
* the full-size image; a document has no such fallback, because the full-size object is a PDF
|
|
308
|
+
* and an `<img>` pointed at one draws the browser's broken-image glyph.
|
|
309
|
+
*
|
|
310
|
+
* That glyph is precisely the *"torn page"* `apps/family` has a standing rule against: a
|
|
311
|
+
* document with no thumbnail must keep drawing its FORMAT, which is honest, rather than a
|
|
312
|
+
* picture that failed, which reads as the archive being broken. So the error falls back to the
|
|
313
|
+
* same mark the no-thumbnail branch draws — one appearance for "not rendered" and "not
|
|
314
|
+
* renderable", because to a reader they are the same fact.
|
|
315
|
+
*
|
|
316
|
+
* Falls back ONCE, like `ThumbImg`, and for the same reason: re-pointing `src` on every error
|
|
317
|
+
* is an infinite request loop on a slow connection.
|
|
318
|
+
*/
|
|
319
|
+
function DocThumb({
|
|
320
|
+
src,
|
|
321
|
+
alt,
|
|
322
|
+
category,
|
|
323
|
+
ext,
|
|
324
|
+
}: {
|
|
325
|
+
src?: string;
|
|
326
|
+
alt: string;
|
|
327
|
+
category: FileCategory;
|
|
328
|
+
ext: string;
|
|
329
|
+
}) {
|
|
330
|
+
const [failed, setFailed] = useState(false);
|
|
331
|
+
if (!src || failed) {
|
|
332
|
+
return (
|
|
333
|
+
<>
|
|
334
|
+
<FileTypeIcon category={category} size={34} />
|
|
335
|
+
<span className='cbmg-doc-ext'>{ext}</span>
|
|
336
|
+
</>
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
return (
|
|
340
|
+
<>
|
|
341
|
+
{/* `key={src}`: a new thumbnail URL is a new attempt and must not inherit the
|
|
342
|
+
previous one's recorded failure. */}
|
|
343
|
+
<img key={src} src={src} alt={alt} loading='lazy' onError={() => setFailed(true)} />
|
|
344
|
+
<span className='cbmg-doc-badge'>
|
|
345
|
+
<FileTypeIcon category={category} />
|
|
346
|
+
</span>
|
|
347
|
+
</>
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
function RawGalleryTile({
|
|
352
|
+
item,
|
|
353
|
+
cache,
|
|
354
|
+
onOpen,
|
|
355
|
+
autoPreview,
|
|
356
|
+
}: {
|
|
357
|
+
item: MediaGalleryItem;
|
|
358
|
+
cache: MediaCache;
|
|
359
|
+
onOpen: () => void;
|
|
360
|
+
autoPreview?: boolean;
|
|
361
|
+
}) {
|
|
362
|
+
const category = galleryItemCategory(item);
|
|
363
|
+
const { media } = useItemMedia(item, cache);
|
|
364
|
+
|
|
365
|
+
if (category === 'video') {
|
|
366
|
+
const video: PlayableVideo = {
|
|
367
|
+
id: item.id,
|
|
368
|
+
name: item.name,
|
|
369
|
+
streamUrl: media.streamUrl ?? media.url ?? '',
|
|
370
|
+
posterUrl: media.posterUrl ?? media.thumbnailUrl,
|
|
371
|
+
durationSeconds: item.durationSeconds,
|
|
372
|
+
...(media.processingStatus ? { processingStatus: media.processingStatus } : {}),
|
|
373
|
+
};
|
|
374
|
+
return (
|
|
375
|
+
<HoverScrubVideoThumb
|
|
376
|
+
video={video}
|
|
377
|
+
onOpen={onOpen}
|
|
378
|
+
previewMode='scrub'
|
|
379
|
+
// The whole grid previewing at once, on request. The tile suppresses it on
|
|
380
|
+
// coarse-pointer devices by itself, so a phone never plays ninety clips under a thumb.
|
|
381
|
+
autoPlay={autoPreview ?? false}
|
|
382
|
+
// A stored turn turns the TILE too — otherwise the grid is a wall of sideways films
|
|
383
|
+
// whose detail view is upright, which reads as the fix not having worked.
|
|
384
|
+
{...(item.orientation ? { orientation: item.orientation } : {})}
|
|
385
|
+
>
|
|
386
|
+
<GalleryMeta item={item} />
|
|
387
|
+
</HoverScrubVideoThumb>
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
const full = category === 'image' ? media.url : undefined;
|
|
393
|
+
const thumb = media.thumbnailUrl ?? full;
|
|
394
|
+
return (
|
|
395
|
+
<button
|
|
396
|
+
// guardrails-ignore no-raw-action-button: opens the item — a full-tile navigation
|
|
397
|
+
// card styled by the dense gallery's own plain CSS (plugin-media-gallery precedent).
|
|
398
|
+
type='button'
|
|
399
|
+
className='cbgd-photo-tile'
|
|
400
|
+
onClick={onOpen}
|
|
401
|
+
aria-label={`Open ${item.name}`}
|
|
402
|
+
>
|
|
403
|
+
{category === 'image' ? (
|
|
404
|
+
<div className='cbgd-photo-media' data-turned={isTurned(item) ? 'true' : undefined}>
|
|
405
|
+
{/* `draggable={false}`: an <img> drags itself by default, which competes with the
|
|
406
|
+
tile wrapper's own drag payload (see HoverScrubVideoThumb for the full note). */}
|
|
407
|
+
{/* `key={thumb}`: a row whose thumbnail URL changes gets a fresh attempt rather than
|
|
408
|
+
inheriting the previous URL's recorded failure. */}
|
|
409
|
+
{thumb ? (
|
|
410
|
+
<ThumbImg
|
|
411
|
+
key={thumb}
|
|
412
|
+
src={thumb}
|
|
413
|
+
fallbackSrc={full}
|
|
414
|
+
alt={item.name}
|
|
415
|
+
draggable={false}
|
|
416
|
+
// A stored orientation turns the TILE too. Without this the grid shows a wall of
|
|
417
|
+
// sideways photographs whose detail view is upright, which reads as the fix not
|
|
418
|
+
// having worked.
|
|
419
|
+
style={orientationStyle(item)}
|
|
420
|
+
/>
|
|
421
|
+
) : null}
|
|
422
|
+
</div>
|
|
423
|
+
) : (
|
|
424
|
+
<div className='cbmg-doc-media'>
|
|
425
|
+
<DocThumb
|
|
426
|
+
{...(thumb ? { src: thumb } : {})}
|
|
427
|
+
alt={item.name}
|
|
428
|
+
category={category}
|
|
429
|
+
ext={extLabel(item)}
|
|
430
|
+
/>
|
|
431
|
+
</div>
|
|
432
|
+
)}
|
|
433
|
+
<GalleryMeta item={item} />
|
|
434
|
+
</button>
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/** Bytes for the byte-fed viewers (pdf/sheet/text/code/html), fetched once per item. */
|
|
439
|
+
function useItemBytes(
|
|
440
|
+
item: MediaGalleryItem,
|
|
441
|
+
url: string | undefined,
|
|
442
|
+
loadBytes: ((item: MediaGalleryItem) => Promise<ArrayBuffer>) | undefined,
|
|
443
|
+
cache: BytesCache,
|
|
444
|
+
): { bytes: ArrayBuffer | null; error: string | null } {
|
|
445
|
+
const [bytes, setBytes] = useState<ArrayBuffer | null>(null);
|
|
446
|
+
const [error, setError] = useState<string | null>(null);
|
|
447
|
+
|
|
448
|
+
useEffect(() => {
|
|
449
|
+
let live = true;
|
|
450
|
+
setBytes(null);
|
|
451
|
+
setError(null);
|
|
452
|
+
let promise = cache.current.get(item.id);
|
|
453
|
+
if (!promise) {
|
|
454
|
+
if (loadBytes) {
|
|
455
|
+
promise = loadBytes(item);
|
|
456
|
+
} else if (url) {
|
|
457
|
+
promise = fetch(url).then((res) => {
|
|
458
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
459
|
+
return res.arrayBuffer();
|
|
460
|
+
});
|
|
461
|
+
} else {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
cache.current.set(item.id, promise);
|
|
465
|
+
}
|
|
466
|
+
promise
|
|
467
|
+
.then((buf) => {
|
|
468
|
+
if (live) setBytes(buf);
|
|
469
|
+
})
|
|
470
|
+
.catch((err: unknown) => {
|
|
471
|
+
// A failed fetch shouldn't poison the cache — reopening the item retries.
|
|
472
|
+
cache.current.delete(item.id);
|
|
473
|
+
if (live) setError(err instanceof Error ? err.message : String(err));
|
|
474
|
+
});
|
|
475
|
+
return () => {
|
|
476
|
+
live = false;
|
|
477
|
+
};
|
|
478
|
+
}, [item, url, loadBytes, cache]);
|
|
479
|
+
|
|
480
|
+
return { bytes, error };
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
function StageLoading({ label = 'Loading…' }: { label?: string }) {
|
|
484
|
+
return <div className='cbmg-stage-loading'>{label}</div>;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/** Fallback stage for kinds with no inline viewer — the type icon + a download nudge. */
|
|
488
|
+
function FallbackStage({ item, category }: { item: MediaGalleryItem; category: FileCategory }) {
|
|
489
|
+
return (
|
|
490
|
+
<div className='cbmg-stage-panel'>
|
|
491
|
+
<FileTypeIcon category={category} size={48} />
|
|
492
|
+
<span className='cbmg-stage-panel-name'>{item.name}</span>
|
|
493
|
+
<span>
|
|
494
|
+
{CATEGORY_LABEL[category]}
|
|
495
|
+
{item.sizeBytes != null ? ` · ${formatBytes(item.sizeBytes)}` : ''} — no inline
|
|
496
|
+
viewer; use Download.
|
|
497
|
+
</span>
|
|
498
|
+
</div>
|
|
499
|
+
);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
function BytesStage({
|
|
503
|
+
item,
|
|
504
|
+
category,
|
|
505
|
+
url,
|
|
506
|
+
loadBytes,
|
|
507
|
+
cache,
|
|
508
|
+
}: {
|
|
509
|
+
item: MediaGalleryItem;
|
|
510
|
+
category: FileCategory;
|
|
511
|
+
url: string | undefined;
|
|
512
|
+
loadBytes: ((item: MediaGalleryItem) => Promise<ArrayBuffer>) | undefined;
|
|
513
|
+
cache: BytesCache;
|
|
514
|
+
}) {
|
|
515
|
+
const { bytes, error } = useItemBytes(item, url, loadBytes, cache);
|
|
516
|
+
if (error) return <StageLoading label={`Couldn't load ${item.name}: ${error}`} />;
|
|
517
|
+
if (!bytes) return <StageLoading />;
|
|
518
|
+
|
|
519
|
+
if (category === 'pdf') {
|
|
520
|
+
return (
|
|
521
|
+
<div className='cbmg-stage-doc'>
|
|
522
|
+
<React.Suspense fallback={<StageLoading label='Loading PDF viewer…' />}>
|
|
523
|
+
<LazyPdfViewer bytes={bytes} height='100%' />
|
|
524
|
+
</React.Suspense>
|
|
525
|
+
</div>
|
|
526
|
+
);
|
|
527
|
+
}
|
|
528
|
+
if (category === 'sheet') {
|
|
529
|
+
return (
|
|
530
|
+
<div className='cbmg-stage-doc'>
|
|
531
|
+
<React.Suspense fallback={<StageLoading label='Loading spreadsheet viewer…' />}>
|
|
532
|
+
<LazyWorkbookViewer bytes={bytes} />
|
|
533
|
+
</React.Suspense>
|
|
534
|
+
</div>
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
if (category === 'html') {
|
|
538
|
+
// Untrusted content: never rendered in-DOM — a fully sandboxed frame (no scripts,
|
|
539
|
+
// no same-origin), same convention as the notes file viewer.
|
|
540
|
+
return (
|
|
541
|
+
<div className='cbmg-stage-doc'>
|
|
542
|
+
<iframe
|
|
543
|
+
className='cbmg-stage-frame'
|
|
544
|
+
sandbox=''
|
|
545
|
+
title={item.name}
|
|
546
|
+
srcDoc={new TextDecoder().decode(bytes)}
|
|
547
|
+
/>
|
|
548
|
+
</div>
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
const text = new TextDecoder().decode(bytes);
|
|
552
|
+
if (category === 'text' && isMarkdownFile(item)) {
|
|
553
|
+
return (
|
|
554
|
+
<div className='cbmg-stage-doc'>
|
|
555
|
+
<React.Suspense fallback={<StageLoading label='Loading renderer…' />}>
|
|
556
|
+
<div className='cbmg-stage-markdown'>
|
|
557
|
+
<LazyMarkdownDoc markdown={text} />
|
|
558
|
+
</div>
|
|
559
|
+
</React.Suspense>
|
|
560
|
+
</div>
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
return (
|
|
564
|
+
<div className='cbmg-stage-doc'>
|
|
565
|
+
<pre className='cbmg-stage-text'>{text}</pre>
|
|
566
|
+
</div>
|
|
567
|
+
);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* What the stage hands the shared `<VideoPlayer>` — every URL the player can use, and
|
|
572
|
+
* nothing it cannot.
|
|
573
|
+
*
|
|
574
|
+
* 🔴 A separate function because this mapping is where a URL goes to be forgotten. Three
|
|
575
|
+
* fields the gallery already had — the scrub track, the processing status and now the
|
|
576
|
+
* adaptive ladder — were resolved by the app, carried on the item, and then simply not
|
|
577
|
+
* listed here, so the feature was invisible with nothing anywhere reporting a fault. It is a
|
|
578
|
+
* pure function so a test can read it directly; the rendered player is a Vidstack custom
|
|
579
|
+
* element that happy-dom never brings to life, so no DOM assertion can see any of this.
|
|
580
|
+
*/
|
|
581
|
+
export function stagePlayableVideo(
|
|
582
|
+
item: MediaGalleryItem,
|
|
583
|
+
media: MediaGalleryItemMedia,
|
|
584
|
+
streamUrl: string,
|
|
585
|
+
): PlayableVideo {
|
|
586
|
+
return {
|
|
587
|
+
id: item.id,
|
|
588
|
+
name: item.name,
|
|
589
|
+
streamUrl,
|
|
590
|
+
/*
|
|
591
|
+
* 🔴 The adaptive ladder, when the app's store has built one — ADDITIONAL to `streamUrl`,
|
|
592
|
+
* never instead of it. The player prefers it, and every browser without native HLS or
|
|
593
|
+
* MSE falls back to the line above. A ladder is a real re-encode that arrives long after
|
|
594
|
+
* upload, so its absence is the ordinary case, not an error.
|
|
595
|
+
*/
|
|
596
|
+
...(media.hlsUrl ? { hlsUrl: media.hlsUrl } : {}),
|
|
597
|
+
...(media.posterUrl ? { posterUrl: media.posterUrl } : {}),
|
|
598
|
+
...(item.durationSeconds != null ? { durationSeconds: item.durationSeconds } : {}),
|
|
599
|
+
// Scrub-preview thumbnails and the "still optimizing" indicator. Both were already
|
|
600
|
+
// supported by the player primitive and simply never reached it from here, so every
|
|
601
|
+
// gallery consumer had a bare timecode scrub bar and no way to tell a slow video from a
|
|
602
|
+
// broken one.
|
|
603
|
+
...(media.vttUrl ? { vttUrl: media.vttUrl } : {}),
|
|
604
|
+
...(media.processingStatus ? { processingStatus: media.processingStatus } : {}),
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* The `nativeVideoStage` element — a plain `<video>` with the ladder attached to it.
|
|
610
|
+
*
|
|
611
|
+
* 🔴 It carries no `src` attribute, and that is the point. `hlsSource.ts` decides between
|
|
612
|
+
* native HLS (Safari, iPhone — hardware-decoded, no library), hls.js (everywhere else with
|
|
613
|
+
* MediaSource) and the progressive remux (everything else, and every video whose ladder has
|
|
614
|
+
* not been built), and it can only make that decision against a real element. React would
|
|
615
|
+
* also fight the effect for ownership of the attribute if both set it.
|
|
616
|
+
*
|
|
617
|
+
* `key`ed on the source by its parent, so stepping to the next clip remounts rather than
|
|
618
|
+
* re-attaching into a element that is mid-buffer on the previous one.
|
|
619
|
+
*/
|
|
620
|
+
function NativeVideoStage({
|
|
621
|
+
hlsUrl,
|
|
622
|
+
streamUrl,
|
|
623
|
+
poster,
|
|
624
|
+
repeat,
|
|
625
|
+
onEnded,
|
|
626
|
+
}: {
|
|
627
|
+
hlsUrl?: string | undefined;
|
|
628
|
+
streamUrl: string;
|
|
629
|
+
poster?: string | undefined;
|
|
630
|
+
repeat?: boolean;
|
|
631
|
+
onEnded?: () => void;
|
|
632
|
+
}) {
|
|
633
|
+
const ref = React.useRef<HTMLVideoElement>(null);
|
|
634
|
+
useHlsSource(ref, { hlsUrl, streamUrl });
|
|
635
|
+
return (
|
|
636
|
+
// biome-ignore lint/a11y/useMediaCaption: arbitrary user-stored files carry no captions
|
|
637
|
+
<video
|
|
638
|
+
ref={ref}
|
|
639
|
+
className='cbmg-stage-video'
|
|
640
|
+
poster={poster}
|
|
641
|
+
controls
|
|
642
|
+
autoPlay
|
|
643
|
+
playsInline
|
|
644
|
+
loop={repeat}
|
|
645
|
+
// A looping element never fires `ended`, so passing both would silently disable
|
|
646
|
+
// auto-advance rather than combining the two. See `VideoPlayerProps.loop`.
|
|
647
|
+
onEnded={repeat ? undefined : onEnded}
|
|
648
|
+
/>
|
|
649
|
+
);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/** The big stage — the right viewer per category. */
|
|
653
|
+
function GalleryStage({
|
|
654
|
+
item,
|
|
655
|
+
mediaCache,
|
|
656
|
+
bytesCache,
|
|
657
|
+
loadBytes,
|
|
658
|
+
nativeVideoStage,
|
|
659
|
+
repeat,
|
|
660
|
+
onEnded,
|
|
661
|
+
onStep,
|
|
662
|
+
canStep,
|
|
663
|
+
fullscreenOnDoubleClick,
|
|
664
|
+
}: {
|
|
665
|
+
item: MediaGalleryItem;
|
|
666
|
+
mediaCache: MediaCache;
|
|
667
|
+
bytesCache: BytesCache;
|
|
668
|
+
loadBytes?: (item: MediaGalleryItem) => Promise<ArrayBuffer>;
|
|
669
|
+
nativeVideoStage?: boolean;
|
|
670
|
+
repeat?: boolean;
|
|
671
|
+
onEnded?: () => void;
|
|
672
|
+
/**
|
|
673
|
+
* 🔴 Handed to the PLAYER, not drawn on the stage. Vidstack puts these in its own control
|
|
674
|
+
* bar, which is the only chrome that exists once the video is in browser fullscreen —
|
|
675
|
+
* see `VideoPlayer`'s `stepSlots`. Every other kind of stage steps from the titlebar
|
|
676
|
+
* instead, which `DenseGalleryDetail` owns.
|
|
677
|
+
*/
|
|
678
|
+
onStep?: (delta: -1 | 1) => void;
|
|
679
|
+
canStep?: boolean;
|
|
680
|
+
/** False while the SHELL is fullscreen — see `VideoPlayerProps.fullscreenOnDoubleClick`. */
|
|
681
|
+
fullscreenOnDoubleClick?: boolean;
|
|
682
|
+
}) {
|
|
683
|
+
const category = galleryItemCategory(item);
|
|
684
|
+
const { media, resolving } = useItemMedia(item, mediaCache);
|
|
685
|
+
|
|
686
|
+
if (category === 'video') {
|
|
687
|
+
const src = media.streamUrl ?? media.url;
|
|
688
|
+
if (!src) return <StageLoading label={resolving ? 'Loading…' : 'Video unavailable.'} />;
|
|
689
|
+
/*
|
|
690
|
+
* 🔴 A stored orientation turns FOOTAGE too, and the wrapper is what makes that safe.
|
|
691
|
+
*
|
|
692
|
+
* A quarter-turned clip is still laid out in its original box, so a portrait clip turned
|
|
693
|
+
* widescreen overflows the stage it is centred in — the exact complaint that produced this
|
|
694
|
+
* (*"a video showing in portrait mode that is actually supposed to be widescreen to fill
|
|
695
|
+
* all the space correctly"*). `.cbmg-stage-turn[data-turned]` swaps the fit constraint the
|
|
696
|
+
* same way `.cbgd-stage-img` does for pictures. An unturned clip renders inside a plain
|
|
697
|
+
* `display: contents` wrapper, so the ordinary case is byte-for-byte the old layout.
|
|
698
|
+
*/
|
|
699
|
+
const turned = isTurned(item);
|
|
700
|
+
/*
|
|
701
|
+
* 🔴 The turn travels as a CSS VARIABLE on the wrapper, not as an inline style on the
|
|
702
|
+
* element. The Vidstack path does not render the `<video>` — its provider does — so there
|
|
703
|
+
* is no element here to put a style on, and turning the wrapper itself would rotate the
|
|
704
|
+
* CONTROL BAR with the picture. A variable lets the stylesheet turn exactly the picture
|
|
705
|
+
* surfaces (the video and the poster) and leave the chrome upright, and it keeps the two
|
|
706
|
+
* player paths on one code path instead of two that can drift.
|
|
707
|
+
*/
|
|
708
|
+
const turn = orientationStyle(item).transform;
|
|
709
|
+
const frame = (inner: React.ReactNode) => (
|
|
710
|
+
<div
|
|
711
|
+
className='cbmg-stage-turn'
|
|
712
|
+
data-turned={turned ? 'true' : undefined}
|
|
713
|
+
{...(turn ? { style: { '--cbmg-turn': turn } as React.CSSProperties } : {})}
|
|
714
|
+
>
|
|
715
|
+
{inner}
|
|
716
|
+
</div>
|
|
717
|
+
);
|
|
718
|
+
if (nativeVideoStage) {
|
|
719
|
+
return frame(
|
|
720
|
+
/*
|
|
721
|
+
* 🔴 The source is ATTACHED, not declared, because a ladder is not a `src`.
|
|
722
|
+
*
|
|
723
|
+
* An `.m3u8` on `video.src` plays on Safari and every iPhone and on nothing else, so
|
|
724
|
+
* the choice between native HLS, hls.js and the progressive remux has to be made
|
|
725
|
+
* against the element — see `NativeVideoStage` / `hlsSource.ts`. A plain `src={src}`
|
|
726
|
+
* here is what made `hlsUrl` reach this stage and do nothing.
|
|
727
|
+
*/
|
|
728
|
+
<NativeVideoStage
|
|
729
|
+
key={media.hlsUrl ?? src}
|
|
730
|
+
hlsUrl={media.hlsUrl}
|
|
731
|
+
streamUrl={src}
|
|
732
|
+
poster={media.posterUrl}
|
|
733
|
+
repeat={repeat}
|
|
734
|
+
{...(onEnded ? { onEnded } : {})}
|
|
735
|
+
/>,
|
|
736
|
+
);
|
|
737
|
+
}
|
|
738
|
+
return frame(
|
|
739
|
+
<React.Suspense fallback={<StageLoading label='Loading player…' />}>
|
|
740
|
+
<LazyVideoPlayer
|
|
741
|
+
video={stagePlayableVideo(item, media, src)}
|
|
742
|
+
autoPlay
|
|
743
|
+
loop={repeat}
|
|
744
|
+
{...(repeat ? {} : { onEnded })}
|
|
745
|
+
{...(onStep ? { onStep, canStep: canStep !== false } : {})}
|
|
746
|
+
{...(fullscreenOnDoubleClick === false ? { fullscreenOnDoubleClick: false } : {})}
|
|
747
|
+
/>
|
|
748
|
+
</React.Suspense>
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
if (category === 'image') {
|
|
753
|
+
if (!media.url) return <StageLoading label={resolving ? 'Loading…' : 'Image unavailable.'} />;
|
|
754
|
+
return (
|
|
755
|
+
<div className='cbgd-stage-img' data-turned={isTurned(item) ? 'true' : undefined}>
|
|
756
|
+
{/* A stored orientation is applied as a transform, never baked — see
|
|
757
|
+
`MediaGalleryItem.orientation`. `data-turned` lets the stylesheet swap the fit
|
|
758
|
+
constraint: a quarter-turned picture is laid out in its ORIGINAL box, so without it
|
|
759
|
+
a portrait scan turned upright overflows the frame it is centred in. */}
|
|
760
|
+
<img src={media.url} alt={item.name} style={orientationStyle(item)} />
|
|
761
|
+
</div>
|
|
762
|
+
);
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
if (category === 'audio') {
|
|
766
|
+
if (!media.url) return <StageLoading label={resolving ? 'Loading…' : 'Audio unavailable.'} />;
|
|
767
|
+
return (
|
|
768
|
+
<div className='cbmg-stage-panel'>
|
|
769
|
+
<FileTypeIcon category='audio' size={48} />
|
|
770
|
+
<span className='cbmg-stage-panel-name'>{item.name}</span>
|
|
771
|
+
{/* 🔴 Audio takes the same `loop`/`onEnded` pair as video, and for the same reason a
|
|
772
|
+
still takes a dwell timer: a run that reaches a track it cannot advance past stops
|
|
773
|
+
dead. A mixed folder holding one voice memo used to end the album there. The two
|
|
774
|
+
props stay mutually exclusive — a looping element never fires `ended`. */}
|
|
775
|
+
{/* biome-ignore lint/a11y/useMediaCaption: arbitrary user-stored files carry no captions */}
|
|
776
|
+
<audio src={media.url} controls loop={repeat} {...(repeat ? {} : { onEnded })} />
|
|
777
|
+
</div>
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
if (
|
|
782
|
+
category === 'pdf' ||
|
|
783
|
+
category === 'sheet' ||
|
|
784
|
+
category === 'html' ||
|
|
785
|
+
category === 'text' ||
|
|
786
|
+
category === 'code' ||
|
|
787
|
+
category === 'data'
|
|
788
|
+
) {
|
|
789
|
+
if (resolving) return <StageLoading />;
|
|
790
|
+
return (
|
|
791
|
+
<BytesStage
|
|
792
|
+
item={item}
|
|
793
|
+
category={category}
|
|
794
|
+
url={media.url}
|
|
795
|
+
loadBytes={loadBytes}
|
|
796
|
+
cache={bytesCache}
|
|
797
|
+
/>
|
|
798
|
+
);
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
return <FallbackStage item={item} category={category} />;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
function KindChips({
|
|
805
|
+
options,
|
|
806
|
+
value,
|
|
807
|
+
onChange,
|
|
808
|
+
tags,
|
|
809
|
+
activeTag,
|
|
810
|
+
onTagChange,
|
|
811
|
+
}: {
|
|
812
|
+
options: { value: FileCategory; label: string }[];
|
|
813
|
+
value: FileCategory | null;
|
|
814
|
+
onChange: (kind: FileCategory | null) => void;
|
|
815
|
+
tags: string[];
|
|
816
|
+
activeTag: string | null;
|
|
817
|
+
onTagChange: (tag: string | null) => void;
|
|
818
|
+
}) {
|
|
819
|
+
if (options.length === 0 && tags.length === 0) return null;
|
|
820
|
+
return (
|
|
821
|
+
<div className='cbgd-filterstrip'>
|
|
822
|
+
{options.length > 0 ? (
|
|
823
|
+
<>
|
|
824
|
+
<button
|
|
825
|
+
// guardrails-ignore no-raw-action-button: filter chip styled by the dense
|
|
826
|
+
// gallery's own plain CSS (`.cbgd-chip`), matching the plugin galleries.
|
|
827
|
+
type='button'
|
|
828
|
+
className={`cbgd-chip${value === null ? ' is-active' : ''}`}
|
|
829
|
+
aria-pressed={value === null}
|
|
830
|
+
onClick={() => onChange(null)}
|
|
831
|
+
>
|
|
832
|
+
All
|
|
833
|
+
</button>
|
|
834
|
+
{options.map((opt) => (
|
|
835
|
+
<button
|
|
836
|
+
// guardrails-ignore no-raw-action-button: filter chip — see above.
|
|
837
|
+
type='button'
|
|
838
|
+
key={opt.value}
|
|
839
|
+
className={`cbgd-chip${value === opt.value ? ' is-active' : ''}`}
|
|
840
|
+
aria-pressed={value === opt.value}
|
|
841
|
+
onClick={() => onChange(value === opt.value ? null : opt.value)}
|
|
842
|
+
>
|
|
843
|
+
{opt.label}
|
|
844
|
+
</button>
|
|
845
|
+
))}
|
|
846
|
+
</>
|
|
847
|
+
) : null}
|
|
848
|
+
{tags.map((tag) => (
|
|
849
|
+
<button
|
|
850
|
+
// guardrails-ignore no-raw-action-button: filter chip — see above.
|
|
851
|
+
type='button'
|
|
852
|
+
key={tag}
|
|
853
|
+
className={`cbgd-chip${activeTag === tag ? ' is-active' : ''}`}
|
|
854
|
+
aria-pressed={activeTag === tag}
|
|
855
|
+
onClick={() => onTagChange(activeTag === tag ? null : tag)}
|
|
856
|
+
>
|
|
857
|
+
{tag}
|
|
858
|
+
</button>
|
|
859
|
+
))}
|
|
860
|
+
</div>
|
|
861
|
+
);
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
export interface MediaGalleryProps {
|
|
865
|
+
items: MediaGalleryItem[];
|
|
866
|
+
/** Header title. */
|
|
867
|
+
title?: string;
|
|
868
|
+
loading?: boolean;
|
|
869
|
+
/** Infinite scroll — forwarded to the virtualized grids. */
|
|
870
|
+
onNearEnd?: () => void;
|
|
871
|
+
initialOrder?: MediaGalleryOrder;
|
|
872
|
+
/** Extra per-item actions in the detail view (use `cbgd-order-btn` styling to match). */
|
|
873
|
+
detailActions?: (item: MediaGalleryItem) => ReactNode;
|
|
874
|
+
/** When set, the detail view offers Delete (confirm-gated). Closes the detail on success. */
|
|
875
|
+
onDelete?: (item: MediaGalleryItem) => void | Promise<void>;
|
|
876
|
+
/** Header slot after the search box — e.g. the app's view toggle or an upload control. */
|
|
877
|
+
headerExtra?: ReactNode;
|
|
878
|
+
/**
|
|
879
|
+
* Draw the gallery's own header row, or not. Default `'header'`.
|
|
880
|
+
*
|
|
881
|
+
* See {@link DenseGalleryShellProps.chrome}. `'none'` is for an app that has moved this
|
|
882
|
+
* row's controls somewhere else — collections put them in a vertical activity bar — and
|
|
883
|
+
* it should be passed together with the controlled {@link viewMode} and {@link query}
|
|
884
|
+
* below, or the gallery keeps state that nothing on screen can reach.
|
|
885
|
+
*/
|
|
886
|
+
chrome?: 'header' | 'none';
|
|
887
|
+
/**
|
|
888
|
+
* Preview every video tile at once, CONTROLLED by the app.
|
|
889
|
+
*
|
|
890
|
+
* 🔴 For an app rendering `chrome='none'`. The pill that toggles this lives in this
|
|
891
|
+
* component's header, so an app that moved its view controls into its own chrome had no way
|
|
892
|
+
* to reach the feature at all — `apps/collections`, 2026-09-09. Pass both or neither:
|
|
893
|
+
* `previewAll` alone would be a control the reader cannot move.
|
|
894
|
+
*/
|
|
895
|
+
previewAll?: boolean;
|
|
896
|
+
/** Told when the app-owned toggle changes — see {@link MediaGalleryProps.previewAll}. */
|
|
897
|
+
onPreviewAllChange?: (next: boolean) => void;
|
|
898
|
+
/** Whether there is anything to preview, so an app's own button can hide itself the way the
|
|
899
|
+
* header pill does — a toggle that provably does nothing is worse than an absent one. */
|
|
900
|
+
onPreviewableChange?: (hasVideo: boolean) => void;
|
|
901
|
+
/**
|
|
902
|
+
* Tiles or rows, when the CONSUMER owns that. Omit for the default, where the gallery
|
|
903
|
+
* holds it and remembers it across visits (`readViewMode`).
|
|
904
|
+
*
|
|
905
|
+
* 🔴 Controlled does NOT move the remembering. The gallery still writes the shared
|
|
906
|
+
* `readViewMode` key itself when the toggle is used, so an app whose pills live outside
|
|
907
|
+
* the gallery does not quietly stop remembering — see `setViewMode` in the body.
|
|
908
|
+
*/
|
|
909
|
+
viewMode?: GalleryViewMode;
|
|
910
|
+
onViewModeChange?: (mode: GalleryViewMode) => void;
|
|
911
|
+
/** The search text, when the consumer owns it. Omit and the gallery's own box holds it. */
|
|
912
|
+
query?: string;
|
|
913
|
+
onQueryChange?: (query: string) => void;
|
|
914
|
+
/** Observe the open item. With `selectedId` set this becomes a request rather than a
|
|
915
|
+
* notification — the consumer decides whether to honour it. */
|
|
916
|
+
onSelectedChange?: (item: MediaGalleryItem | null) => void;
|
|
917
|
+
/**
|
|
918
|
+
* Which item is open, when the CONSUMER owns that. Omit for the default behavior, where
|
|
919
|
+
* the gallery holds it. Pass it (with `onSelectedChange`) when the app needs to close the
|
|
920
|
+
* detail view from its own chrome — see the note by `selectedId` in the body.
|
|
921
|
+
*/
|
|
922
|
+
selectedId?: string | null;
|
|
923
|
+
/** Custom byte loader for the pdf/sheet/text/html stages (default: `fetch(item.url)`). */
|
|
924
|
+
loadBytes?: (item: MediaGalleryItem) => Promise<ArrayBuffer>;
|
|
925
|
+
/** Shown when there are no items and not loading. */
|
|
926
|
+
empty?: ReactNode;
|
|
927
|
+
emptyAction?: ReactNode;
|
|
928
|
+
minColumnWidth?: number;
|
|
929
|
+
/** Big view uses a native `<video controls>` instead of the Vidstack player. */
|
|
930
|
+
nativeVideoStage?: boolean;
|
|
931
|
+
searchPlaceholder?: string;
|
|
932
|
+
/**
|
|
933
|
+
* Opt in to multi-select: a checkbox on every tile, plus a bulk bar with the count, a
|
|
934
|
+
* select-all/clear toggle and a confirm-gated Delete. Off by default, so no existing
|
|
935
|
+
* consumer changes behavior.
|
|
936
|
+
*
|
|
937
|
+
* The gallery owns the selection rather than taking it as a prop, because a ⇧ range means
|
|
938
|
+
* "the items between these two AS DISPLAYED" — and the display order is the gallery's
|
|
939
|
+
* (it holds the query, the kind/tag chips and the sort). A consumer-held set could not
|
|
940
|
+
* compute a range without duplicating all of that. `onSelectionChange` is there to
|
|
941
|
+
* OBSERVE it.
|
|
942
|
+
*/
|
|
943
|
+
selectable?: boolean;
|
|
944
|
+
/**
|
|
945
|
+
* When the per-tile checkboxes are visible. Only consulted while `selectable`.
|
|
946
|
+
*
|
|
947
|
+
* `'always'` (the default, and what every consumer got before this existed) paints a box
|
|
948
|
+
* on every tile permanently. `'on-demand'` keeps the grid clean: a box appears on the tile
|
|
949
|
+
* under the pointer, on the tile holding keyboard focus, on any tile already selected, and
|
|
950
|
+
* on every tile at once while the bulk bar's **Select** toggle is on.
|
|
951
|
+
*
|
|
952
|
+
* 🔴 The toggle is not redundant with hover, and dropping it would make this mode a
|
|
953
|
+
* regression on a phone: a touch device has no hover, so without an explicit way to arm
|
|
954
|
+
* the grid the first box could never be reached. Hover is the shortcut for a mouse; the
|
|
955
|
+
* toggle is the one that always works.
|
|
956
|
+
*/
|
|
957
|
+
selectionReveal?: 'always' | 'on-demand';
|
|
958
|
+
/** Runs on the bulk bar's confirmed Delete. The selection clears once it resolves. */
|
|
959
|
+
onBulkDelete?: (items: MediaGalleryItem[]) => void | Promise<void>;
|
|
960
|
+
/**
|
|
961
|
+
* App-specific actions for the current selection, rendered in the bulk bar beside Delete.
|
|
962
|
+
* Given the checked items and a `clearSelection` to call once the action has run.
|
|
963
|
+
*
|
|
964
|
+
* 🔴 Exists because Delete was the ONLY thing a selection could do, and an app whose files
|
|
965
|
+
* live in folders needs to MOVE them — which apps were expressing as drag-and-drop only.
|
|
966
|
+
* Drag is a pointer gesture with no keyboard equivalent and no touch equivalent worth
|
|
967
|
+
* having (dragging a tile onto a sidebar row on a phone is not a real gesture), so an
|
|
968
|
+
* app that offers only drag has a feature its owner cannot reach from half their devices.
|
|
969
|
+
*/
|
|
970
|
+
bulkActions?: (items: MediaGalleryItem[], clearSelection: () => void) => ReactNode;
|
|
971
|
+
/** Observe the selection (a count elsewhere, URL sync). The gallery still owns it. */
|
|
972
|
+
onSelectionChange?: (items: MediaGalleryItem[]) => void;
|
|
973
|
+
/**
|
|
974
|
+
* Make every tile a drag SOURCE, so the app can accept a drop somewhere of its own — a
|
|
975
|
+
* folder tree, an album list, a trash target.
|
|
976
|
+
*
|
|
977
|
+
* The gallery deliberately does not know what a drag MEANS: it fires this with the item
|
|
978
|
+
* and the raw event, and the consumer fills the `DataTransfer` in whatever vocabulary its
|
|
979
|
+
* own drop targets read. Anything richer (a `dragType` string, a payload builder) would be
|
|
980
|
+
* this component taking a position on an app's data model, which is exactly what keeps a
|
|
981
|
+
* shared gallery shared.
|
|
982
|
+
*
|
|
983
|
+
* 🔴 A drag that carries the SELECTION rather than the one tile under the cursor is the
|
|
984
|
+
* app's call too, and both are reasonable — the consumer has `onSelectionChange` and can
|
|
985
|
+
* decide. The gallery only guarantees that dragging a tile does not also open it.
|
|
986
|
+
*/
|
|
987
|
+
onItemDragStart?: (item: MediaGalleryItem, event: DragEvent<HTMLElement>) => void;
|
|
988
|
+
/** Paired with `onItemDragStart` — fires whether the drag was dropped or abandoned. */
|
|
989
|
+
onItemDragEnd?: () => void;
|
|
990
|
+
|
|
991
|
+
/*
|
|
992
|
+
* ── Standard detail-view capabilities ────────────────────────────────────────────────
|
|
993
|
+
*
|
|
994
|
+
* The owner, 2026-08-14, comparing `apps/family`'s viewer with `apps/collections`': *"the
|
|
995
|
+
* buttons under are missing for screenshots and thumbnails and more … These should be in cb
|
|
996
|
+
* and shouldn't have to have a separate media player in family that doesn't get all the
|
|
997
|
+
* enhancements for free, so share it."*
|
|
998
|
+
*
|
|
999
|
+
* He was reading a real structural problem. Prev/Next/Pin/Stop-at-the-end/Download/Delete
|
|
1000
|
+
* were already shared, but Rename, the thumbnail picker and the picture adjustment were
|
|
1001
|
+
* written INSIDE `apps/collections`' `detailActions` — so every one of them was a feature
|
|
1002
|
+
* exactly one app had, and the next app to want one would have written a third copy.
|
|
1003
|
+
*
|
|
1004
|
+
* 🔴 Each is a HANDLER, not a boolean. An app that cannot persist the result does not pass
|
|
1005
|
+
* the handler and the button is absent — which is the honest state, and it means a control
|
|
1006
|
+
* can never appear on a surface that would then fail to save what it did. `detailActions`
|
|
1007
|
+
* stays for what is genuinely one app's (collections' privacy lock, family's tagging panel).
|
|
1008
|
+
*/
|
|
1009
|
+
|
|
1010
|
+
/** Offer Rename. Renders an inline field in the action row rather than a `window.prompt`. */
|
|
1011
|
+
onRename?: (item: MediaGalleryItem, name: string) => void | Promise<void>;
|
|
1012
|
+
/**
|
|
1013
|
+
* Offer "Choose thumbnail" on a VIDEO — scrub to a moment, frame it, save that still as the
|
|
1014
|
+
* item's poster. An image is its own thumbnail, so the control is not offered on one.
|
|
1015
|
+
*/
|
|
1016
|
+
onSaveThumbnail?: (item: MediaGalleryItem, poster: Blob) => void | Promise<void>;
|
|
1017
|
+
/**
|
|
1018
|
+
* Offer taking a full-resolution still out of a VIDEO — the "screenshot" half. Shares one
|
|
1019
|
+
* dialog with the thumbnail picker, because both are the same gesture (find the moment) with
|
|
1020
|
+
* two different outputs; see {@link FrameGrabber}.
|
|
1021
|
+
*/
|
|
1022
|
+
onSaveSnapshot?: (
|
|
1023
|
+
item: MediaGalleryItem,
|
|
1024
|
+
still: Blob,
|
|
1025
|
+
atSeconds: number,
|
|
1026
|
+
) => void | Promise<void>;
|
|
1027
|
+
/**
|
|
1028
|
+
* Offer "Edit picture" on an IMAGE — turn, mirror, crop and re-light it. See
|
|
1029
|
+
* {@link PictureEditResult}: the app receives the baked bytes AND the edit as a value, so an
|
|
1030
|
+
* app that can store an orientation losslessly may do that instead of keeping a re-encode.
|
|
1031
|
+
*/
|
|
1032
|
+
onSaveEdit?: (item: MediaGalleryItem, result: PictureEditResult) => void | Promise<void>;
|
|
1033
|
+
/**
|
|
1034
|
+
* Store which way up a VIDEO plays — the other half of the owner's 2026-08-14 report:
|
|
1035
|
+
* *"a video showing in portrait mode that is actually supposed to be widescreen to fill all
|
|
1036
|
+
* the space correctly."*
|
|
1037
|
+
*
|
|
1038
|
+
* 🔴 Separate from `onSaveEdit` on purpose, and not because of the file type. `onSaveEdit`
|
|
1039
|
+
* hands back BAKED BYTES beside the edit, so an app that takes it has to decide what to do
|
|
1040
|
+
* with a blob; a video's turn has no bytes and never can (rotating footage means re-encoding
|
|
1041
|
+
* every frame, invalidating the remux, poster, sprite and VTT already built for it). An app
|
|
1042
|
+
* that stores an orientation on the row — see {@link MediaGalleryItem.orientation} — supplies
|
|
1043
|
+
* this one and gets the turn control on its films for free.
|
|
1044
|
+
*
|
|
1045
|
+
* `undefined` means "no turn stored": the app should clear the row, not write zeroes it then
|
|
1046
|
+
* has to interpret.
|
|
1047
|
+
*/
|
|
1048
|
+
onSaveOrientation?: (
|
|
1049
|
+
item: MediaGalleryItem,
|
|
1050
|
+
orientation: MediaOrientation | undefined,
|
|
1051
|
+
) => void | Promise<void>;
|
|
1052
|
+
/**
|
|
1053
|
+
* Accept a list of sections to CUT OUT of a video.
|
|
1054
|
+
*
|
|
1055
|
+
* The owner's design, 2026-08-25: *"I will just mark them and send them to binary-server to
|
|
1056
|
+
* handle it with the video software it uses ... It can then remove the parts of the video I
|
|
1057
|
+
* don't want, save a new copy and I can view it when it's done."* So this is a REQUEST, not
|
|
1058
|
+
* an edit: the gallery hands over a cut list and the app queues it. Nothing here is changed,
|
|
1059
|
+
* and no byte is touched in the browser — see `VideoCutEditor`'s header for why that is the
|
|
1060
|
+
* right place to draw the line.
|
|
1061
|
+
*
|
|
1062
|
+
* 🔴 Passing this is what turns the feature on, per app. There is no flag and no config:
|
|
1063
|
+
* an app without a pipeline that can execute a cut list must not offer a control that
|
|
1064
|
+
* queues one into nothing, and — because the editor is lazily imported — an app that does
|
|
1065
|
+
* not pass it does not ship the dialog either.
|
|
1066
|
+
*
|
|
1067
|
+
* Rejecting keeps the dialog open with the marks intact; a failed request must not cost
|
|
1068
|
+
* somebody the minutes of scrubbing that produced the list.
|
|
1069
|
+
*/
|
|
1070
|
+
onTrimVideo?: (item: MediaGalleryItem, cuts: VideoCut[]) => void | Promise<void>;
|
|
1071
|
+
/**
|
|
1072
|
+
* What happens after a trim is queued, in the app's own words — rendered under the strip.
|
|
1073
|
+
* Apps differ: one runs it on the spot, another drains a queue on a schedule, and "when
|
|
1074
|
+
* will this be ready" is a question only the app can answer.
|
|
1075
|
+
*/
|
|
1076
|
+
trimNote?: ReactNode;
|
|
1077
|
+
/**
|
|
1078
|
+
* Let "Edit picture" offer **Replace the original** as well as Save-a-copy. Off by default:
|
|
1079
|
+
* `apps/family`'s first rule is that every byte in it is irreplaceable, and a default-on
|
|
1080
|
+
* destructive save would be wrong in the app that asked for the feature.
|
|
1081
|
+
*/
|
|
1082
|
+
allowPictureReplace?: boolean;
|
|
1083
|
+
/**
|
|
1084
|
+
* The ☀ Picture control — brightness, contrast and colour for what is on the stage. On by
|
|
1085
|
+
* default, because it needs nothing from the app: it is a CSS filter over the stage and
|
|
1086
|
+
* nothing is saved, so there is no capability to be missing.
|
|
1087
|
+
*
|
|
1088
|
+
* 🔴 It reaches the stage through a CSS custom property on the gallery root rather than a
|
|
1089
|
+
* prop threaded into the player, because the stage is Vidstack's and several components
|
|
1090
|
+
* deep. Pass `false` in an app where adjusting the picture is meaningless.
|
|
1091
|
+
*/
|
|
1092
|
+
pictureControls?: boolean;
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
/**
|
|
1096
|
+
* The fleet's shared media gallery. Feed it `MediaGalleryItem`s (any binary kind); it
|
|
1097
|
+
* renders the dense browse grid and the in-page detail view with the right viewer.
|
|
1098
|
+
*/
|
|
1099
|
+
export function MediaGallery({
|
|
1100
|
+
items,
|
|
1101
|
+
title = 'Media',
|
|
1102
|
+
loading,
|
|
1103
|
+
onNearEnd,
|
|
1104
|
+
initialOrder = 'recent',
|
|
1105
|
+
detailActions,
|
|
1106
|
+
onDelete,
|
|
1107
|
+
headerExtra,
|
|
1108
|
+
chrome = 'header',
|
|
1109
|
+
previewAll,
|
|
1110
|
+
onPreviewAllChange,
|
|
1111
|
+
onPreviewableChange,
|
|
1112
|
+
viewMode: controlledViewMode,
|
|
1113
|
+
onViewModeChange,
|
|
1114
|
+
query: controlledQuery,
|
|
1115
|
+
onQueryChange,
|
|
1116
|
+
onSelectedChange,
|
|
1117
|
+
selectedId: controlledSelectedId,
|
|
1118
|
+
loadBytes,
|
|
1119
|
+
empty,
|
|
1120
|
+
emptyAction,
|
|
1121
|
+
minColumnWidth,
|
|
1122
|
+
nativeVideoStage,
|
|
1123
|
+
searchPlaceholder = 'Search files…',
|
|
1124
|
+
selectable = false,
|
|
1125
|
+
selectionReveal = 'always',
|
|
1126
|
+
onBulkDelete,
|
|
1127
|
+
bulkActions,
|
|
1128
|
+
onSelectionChange,
|
|
1129
|
+
onItemDragStart,
|
|
1130
|
+
onItemDragEnd,
|
|
1131
|
+
onRename,
|
|
1132
|
+
onSaveThumbnail,
|
|
1133
|
+
onSaveSnapshot,
|
|
1134
|
+
onSaveEdit,
|
|
1135
|
+
onSaveOrientation,
|
|
1136
|
+
allowPictureReplace = false,
|
|
1137
|
+
pictureControls = true,
|
|
1138
|
+
onTrimVideo,
|
|
1139
|
+
trimNote,
|
|
1140
|
+
}: MediaGalleryProps) {
|
|
1141
|
+
const [uncontrolledQuery, setUncontrolledQuery] = useState('');
|
|
1142
|
+
/** Controlled when the consumer passes `query`, uncontrolled otherwise — see the prop. */
|
|
1143
|
+
const query = controlledQuery !== undefined ? controlledQuery : uncontrolledQuery;
|
|
1144
|
+
const setQuery = useCallback(
|
|
1145
|
+
(next: string): void => {
|
|
1146
|
+
if (controlledQuery === undefined) setUncontrolledQuery(next);
|
|
1147
|
+
onQueryChange?.(next);
|
|
1148
|
+
},
|
|
1149
|
+
[controlledQuery, onQueryChange],
|
|
1150
|
+
);
|
|
1151
|
+
const [order, setOrder] = useState<MediaGalleryOrder>(initialOrder);
|
|
1152
|
+
const [kind, setKind] = useState<FileCategory | null>(null);
|
|
1153
|
+
const [tag, setTag] = useState<string | null>(null);
|
|
1154
|
+
const [uncontrolledId, setUncontrolledId] = useState<string | null>(null);
|
|
1155
|
+
/**
|
|
1156
|
+
* Controlled when the consumer passes `selectedId`, uncontrolled otherwise — the standard
|
|
1157
|
+
* React pattern, added so an app can close the detail view from its OWN chrome.
|
|
1158
|
+
*
|
|
1159
|
+
* 🔴 The case that needed it: a video fills the screen and the only way back to the grid
|
|
1160
|
+
* was a button inside the gallery. Clicking the app's own "Collections" heading did
|
|
1161
|
+
* nothing, because the gallery held the open item privately and nothing outside could
|
|
1162
|
+
* reach it. Passing `selectedId` makes the app the owner of that decision.
|
|
1163
|
+
*/
|
|
1164
|
+
const selectedId = controlledSelectedId !== undefined ? controlledSelectedId : uncontrolledId;
|
|
1165
|
+
// Only meaningful under `selectionReveal='on-demand'` — see the prop's doc comment.
|
|
1166
|
+
const [selectArmed, setSelectArmed] = useState(false);
|
|
1167
|
+
// What happens when a video ends — remembered across visits. See playbackPreferences.ts.
|
|
1168
|
+
const [playbackEnd, setPlaybackEnd] = useState<PlaybackEndBehavior>(readPlaybackEnd);
|
|
1169
|
+
// Whether the stage stays pinned at the top while the related grid scrolls under it.
|
|
1170
|
+
const [pinStage, setPinStage] = useState<boolean>(readPinStage);
|
|
1171
|
+
/*
|
|
1172
|
+
* 🔴 The shell's `⤢ Fullscreen` lives HERE rather than inside `DenseGalleryDetail`,
|
|
1173
|
+
* because the video stage has to know about it.
|
|
1174
|
+
*
|
|
1175
|
+
* Owner, 2026-09-08: *"double clicking a full screen video should change back from full
|
|
1176
|
+
* screen to non-full screen view."* Vidstack binds `dblpointerup` to `toggle:fullscreen`
|
|
1177
|
+
* on the picture, and the shell binds `dblclick` on the frame to leaving ITS fullscreen —
|
|
1178
|
+
* armed at the same time, one double-click does both and the video ends up in browser
|
|
1179
|
+
* fullscreen instead of back in the grid. The state has to be visible to whoever renders
|
|
1180
|
+
* the player so exactly one of the two is armed at a time, and this is that place.
|
|
1181
|
+
* Deliberately NOT persisted: a full-bleed stage is a thing you do to one file, not a
|
|
1182
|
+
* mode you live in, and `pinStage` above is the one that IS remembered.
|
|
1183
|
+
*/
|
|
1184
|
+
const [fullStage, setFullStage] = useState(false);
|
|
1185
|
+
// Seconds a still holds the stage during a run — the slideshow speed. See readImageDwell.
|
|
1186
|
+
const [imageDwell, setImageDwell] = useState<number>(readImageDwell);
|
|
1187
|
+
/*
|
|
1188
|
+
* Do all the video TILES preview themselves without being hovered? Off by default.
|
|
1189
|
+
*
|
|
1190
|
+
* 🔴 CONTROLLABLE from outside since 2026-09-09, and the reason is `chrome='none'`. The
|
|
1191
|
+
* toggle is a pill in this component's HEADER, so an app that moved its view controls
|
|
1192
|
+
* elsewhere and turned the header off (apps/collections, whose sort, kind, privacy and
|
|
1193
|
+
* grid/table all live in an activity bar now) lost the feature entirely — reported as
|
|
1194
|
+
* *"We are missing the preview all button that let's all the videos play at once in the
|
|
1195
|
+
* gallery and we need it back."* Uncontrolled behaviour is byte-for-byte unchanged.
|
|
1196
|
+
*/
|
|
1197
|
+
const [uncontrolledThumbAutoplay, setUncontrolledThumbAutoplay] =
|
|
1198
|
+
useState<boolean>(readThumbAutoplay);
|
|
1199
|
+
const thumbAutoplay = previewAll ?? uncontrolledThumbAutoplay;
|
|
1200
|
+
const setThumbAutoplay = (next: boolean): void => {
|
|
1201
|
+
// The PREFERENCE is written either way — it is a fleet-shared key, and an app driving the
|
|
1202
|
+
// toggle from its own chrome must not stop this gallery remembering the answer.
|
|
1203
|
+
writeThumbAutoplay(next);
|
|
1204
|
+
if (onPreviewAllChange) onPreviewAllChange(next);
|
|
1205
|
+
else setUncontrolledThumbAutoplay(next);
|
|
1206
|
+
};
|
|
1207
|
+
/**
|
|
1208
|
+
* Tiles or rows. Remembered, and `grid` by default — see `readViewMode` for why a shared
|
|
1209
|
+
* component must not change what 17 apps look like on upgrade.
|
|
1210
|
+
*/
|
|
1211
|
+
const [uncontrolledViewMode, setUncontrolledViewMode] = useState<GalleryViewMode>(readViewMode);
|
|
1212
|
+
const viewMode = controlledViewMode !== undefined ? controlledViewMode : uncontrolledViewMode;
|
|
1213
|
+
/**
|
|
1214
|
+
* 🔴 The write to storage stays HERE, in both modes.
|
|
1215
|
+
*
|
|
1216
|
+
* A consumer that owns the value still shares the key with every other app (see
|
|
1217
|
+
* `readViewMode`), so leaving the persistence to the caller is how one app quietly stops
|
|
1218
|
+
* remembering — the failure would be invisible until somebody reloaded.
|
|
1219
|
+
*/
|
|
1220
|
+
const setViewMode = useCallback(
|
|
1221
|
+
(next: GalleryViewMode): void => {
|
|
1222
|
+
if (controlledViewMode === undefined) setUncontrolledViewMode(next);
|
|
1223
|
+
writeViewMode(next);
|
|
1224
|
+
onViewModeChange?.(next);
|
|
1225
|
+
},
|
|
1226
|
+
[controlledViewMode, onViewModeChange],
|
|
1227
|
+
);
|
|
1228
|
+
const mediaCache: MediaCache = useRef(new Map());
|
|
1229
|
+
const bytesCache: BytesCache = useRef(new Map());
|
|
1230
|
+
|
|
1231
|
+
const kindOptions = useMemo(() => galleryKindOptions(items), [items]);
|
|
1232
|
+
const tags = useMemo(() => galleryTags(items), [items]);
|
|
1233
|
+
const displayItems = useMemo(
|
|
1234
|
+
() => sortGalleryItems(filterGalleryItems(items, { query, kind, tag }), order),
|
|
1235
|
+
[items, query, kind, tag, order],
|
|
1236
|
+
);
|
|
1237
|
+
|
|
1238
|
+
/*
|
|
1239
|
+
* Is there anything to preview at all?
|
|
1240
|
+
*
|
|
1241
|
+
* 🔴 Reported to the app so its OWN Preview-all button can hide itself exactly as the header
|
|
1242
|
+
* pill does. A toggle that provably does nothing to the grid in front of you is worse than
|
|
1243
|
+
* an absent one, and an app rendering `chrome='none'` cannot work this out for itself — it
|
|
1244
|
+
* hands this component a page and gets a filtered, sorted view back.
|
|
1245
|
+
*/
|
|
1246
|
+
const hasPreviewable = useMemo(
|
|
1247
|
+
() => displayItems.some((i) => galleryItemCategory(i) === 'video'),
|
|
1248
|
+
[displayItems],
|
|
1249
|
+
);
|
|
1250
|
+
const previewableRef = useRef<boolean | null>(null);
|
|
1251
|
+
useEffect(() => {
|
|
1252
|
+
// Fired on a real CHANGE, never on an array's identity — the same rule (and the same
|
|
1253
|
+
// hard-won reason) as the selection notifier below.
|
|
1254
|
+
if (previewableRef.current === hasPreviewable) return;
|
|
1255
|
+
previewableRef.current = hasPreviewable;
|
|
1256
|
+
onPreviewableChange?.(hasPreviewable);
|
|
1257
|
+
}, [hasPreviewable, onPreviewableChange]);
|
|
1258
|
+
|
|
1259
|
+
// Over the DISPLAYED order, so a ⇧ range is the range the owner can see, and so filtering
|
|
1260
|
+
// a tile away drops it from the count instead of leaving the bulk bar lying.
|
|
1261
|
+
const displayIds = useMemo(() => displayItems.map((i) => i.id), [displayItems]);
|
|
1262
|
+
const checks = useCheckboxSelection(displayIds);
|
|
1263
|
+
const checkedItems = useMemo(
|
|
1264
|
+
() => checks.selectedIds.map((id) => displayItems.find((i) => i.id === id)).filter(isItem),
|
|
1265
|
+
[checks.selectedIds, displayItems],
|
|
1266
|
+
);
|
|
1267
|
+
/*
|
|
1268
|
+
* ── 🔴 Notify when the SELECTION changes — not when an array's identity does ──────────
|
|
1269
|
+
*
|
|
1270
|
+
* This was `useEffect(() => onSelectionChange?.(checkedItems), [checkedItems,
|
|
1271
|
+
* onSelectionChange])`, and it is an infinite render loop for a completely ordinary
|
|
1272
|
+
* consumer. Every link in the chain is a fresh object on each render:
|
|
1273
|
+
*
|
|
1274
|
+
* `items={data?.items ?? []}` a new `[]` while the query is in flight
|
|
1275
|
+
* → `displayItems` re-memoizes (its dep changed by identity)
|
|
1276
|
+
* → `checkedItems` re-memoizes (same)
|
|
1277
|
+
* → this effect fires (dep changed by identity)
|
|
1278
|
+
* → the consumer's handler runs `setPicked(chosen.map(...))` — a NEW array, so
|
|
1279
|
+
* React cannot bail out — which re-renders and produces the next fresh `[]`.
|
|
1280
|
+
*
|
|
1281
|
+
* That is React error #185, *"Maximum update depth exceeded"*, and it takes the whole
|
|
1282
|
+
* page down before first paint. `onSelectionChange` being an inline arrow — which every
|
|
1283
|
+
* consumer in the fleet writes, because that is what the prop invites — closes the loop
|
|
1284
|
+
* by itself even when `items` is stable.
|
|
1285
|
+
*
|
|
1286
|
+
* Measured in `apps/family` on 2026-08-23: `/#/p/<id>/media` never painted, in production
|
|
1287
|
+
* as well as in a rehearsal, and it held six browser specs and a whole app's suite out of
|
|
1288
|
+
* the deploy gate for four days while the cause was recorded as "something about that
|
|
1289
|
+
* route's mounting".
|
|
1290
|
+
*
|
|
1291
|
+
* 🔴 The key is the selected IDS, joined — a value, not a reference — so the effect fires
|
|
1292
|
+
* exactly when the answer changes and never merely because a render happened. Both the
|
|
1293
|
+
* items and the callback are read through refs at fire time, which is the same discipline
|
|
1294
|
+
* `advance` above already uses and for the same reason: these are inputs the effect needs
|
|
1295
|
+
* CURRENT, not inputs whose identity should restart it. `\u0000` as the joiner because it
|
|
1296
|
+
* cannot occur in an id.
|
|
1297
|
+
*/
|
|
1298
|
+
const notifyRef = useRef(onSelectionChange);
|
|
1299
|
+
notifyRef.current = onSelectionChange;
|
|
1300
|
+
const checkedRef = useRef(checkedItems);
|
|
1301
|
+
checkedRef.current = checkedItems;
|
|
1302
|
+
const checkedKey = checks.selectedIds.join('\u0000');
|
|
1303
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: `checkedKey` is the value form of the only dependency that should restart this; the other two are read through refs on purpose — see the note above, and `advance` for the same pattern.
|
|
1304
|
+
useEffect(() => {
|
|
1305
|
+
notifyRef.current?.(checkedRef.current);
|
|
1306
|
+
}, [checkedKey]);
|
|
1307
|
+
|
|
1308
|
+
const selected = selectedId ? (items.find((i) => i.id === selectedId) ?? null) : null;
|
|
1309
|
+
const select = (item: MediaGalleryItem | null) => {
|
|
1310
|
+
// Only move our own state when we own it; a controlled consumer decides for itself what
|
|
1311
|
+
// the notification means.
|
|
1312
|
+
if (controlledSelectedId === undefined) setUncontrolledId(item?.id ?? null);
|
|
1313
|
+
onSelectedChange?.(item);
|
|
1314
|
+
};
|
|
1315
|
+
|
|
1316
|
+
/**
|
|
1317
|
+
* Step through the DISPLAYED order — the same order the grid shows, so "next" always means
|
|
1318
|
+
* the tile to the right rather than a hidden neighbour from the unfiltered set.
|
|
1319
|
+
*
|
|
1320
|
+
* 🔴 It WRAPS, and that is `tsk_01KZZY085DFN8GW0RQJ8S7MYRS`. Owner, 2026-08-14: *"either
|
|
1321
|
+
* button always goes to another image even on the edges."* This file used to argue the
|
|
1322
|
+
* opposite in a comment right here — that looping back to the first item "reads as it
|
|
1323
|
+
* restarted rather than it finished" — and the observable consequence was a `disabled`
|
|
1324
|
+
* arrow on a full album, which reads as a broken button: nothing on the stage says which
|
|
1325
|
+
* item of how many you are looking at, so there is no edge to have reached.
|
|
1326
|
+
*
|
|
1327
|
+
* Automatic advance does NOT share this rule; it asks {@link nextInRun}, where `next`
|
|
1328
|
+
* still stops after the last item and only `all`/`shuffle` keep going. The two gestures
|
|
1329
|
+
* mean different things — see the note on `stepId`.
|
|
1330
|
+
*/
|
|
1331
|
+
const step = (delta: number): void => {
|
|
1332
|
+
const nextId = stepId(displayIds, selectedId, delta);
|
|
1333
|
+
const next = nextId ? displayItems.find((i) => i.id === nextId) : undefined;
|
|
1334
|
+
if (next) select(next);
|
|
1335
|
+
};
|
|
1336
|
+
|
|
1337
|
+
/*
|
|
1338
|
+
* ── The standard detail capabilities' own state ───────────────────────────────────────
|
|
1339
|
+
*
|
|
1340
|
+
* All four are scoped to the OPEN item and cleared when the selection moves, which is why
|
|
1341
|
+
* they live here rather than inside the action row: a rename field left open over the next
|
|
1342
|
+
* file would rename the wrong one, and a light adjustment is about the picture in front of
|
|
1343
|
+
* you. `light` deliberately does NOT persist across items or sessions — it is a way to look
|
|
1344
|
+
* at something dark, not a setting, and a remembered filter silently re-tints every other
|
|
1345
|
+
* photograph the owner opens afterwards.
|
|
1346
|
+
*/
|
|
1347
|
+
const [renaming, setRenaming] = useState<string | null>(null);
|
|
1348
|
+
const [renameDraft, setRenameDraft] = useState('');
|
|
1349
|
+
const [editingPicture, setEditingPicture] = useState<MediaGalleryItem | null>(null);
|
|
1350
|
+
const [turningVideo, setTurningVideo] = useState<MediaGalleryItem | null>(null);
|
|
1351
|
+
/** The clip whose cut marks are being made, or null. See `onTrimVideo`. */
|
|
1352
|
+
const [trimmingVideo, setTrimmingVideo] = useState<MediaGalleryItem | null>(null);
|
|
1353
|
+
const [grabbing, setGrabbing] = useState<{ item: MediaGalleryItem; at: number } | null>(null);
|
|
1354
|
+
const [showPicture, setShowPicture] = useState(false);
|
|
1355
|
+
const [light, setLight] = useState<PictureLight>(NO_LIGHT);
|
|
1356
|
+
|
|
1357
|
+
// `selectedId` is the KEY this effect exists for, not a value it reads — the point is to
|
|
1358
|
+
// clear the row's state whenever the open item changes. Biome sees an unread dependency;
|
|
1359
|
+
// removing it would make the reset fire once and never again, so a rename field would
|
|
1360
|
+
// survive onto the next file and rename the wrong one.
|
|
1361
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: explained immediately above
|
|
1362
|
+
useEffect(() => {
|
|
1363
|
+
setRenaming(null);
|
|
1364
|
+
setEditingPicture(null);
|
|
1365
|
+
setLight(NO_LIGHT);
|
|
1366
|
+
}, [selectedId]);
|
|
1367
|
+
|
|
1368
|
+
// 🔴 Enabled whenever there is somewhere else to go, NOT only away from the edges — the
|
|
1369
|
+
// arrows wrap now. A one-item album is the only set with no other item, so it is the only
|
|
1370
|
+
// one where an arrow is genuinely dead.
|
|
1371
|
+
const canStep = displayItems.length > 1;
|
|
1372
|
+
|
|
1373
|
+
/*
|
|
1374
|
+
* ── The RUN: what plays after this one finishes ──────────────────────────────────────
|
|
1375
|
+
*
|
|
1376
|
+
* The rules are in `playbackRun.ts` (pure, tested); this is the state they need.
|
|
1377
|
+
* `playedRef` is the shuffle pass — a ref rather than state because advancing must not
|
|
1378
|
+
* re-render on its own, and because the value it must read is the one from the step that
|
|
1379
|
+
* just happened, not the one from the last committed render.
|
|
1380
|
+
*
|
|
1381
|
+
* 🔴 Every input `advance` reads travels through a ref, and none of them are dependencies.
|
|
1382
|
+
*
|
|
1383
|
+
* `advance` is handed to a `<video>`'s `onEnded` and to a dwell `setTimeout`. If it were
|
|
1384
|
+
* rebuilt whenever the displayed order or the selection changed, the timeout effect below
|
|
1385
|
+
* would tear down and restart on every one of those changes — so a picture whose gallery
|
|
1386
|
+
* re-sorted, or whose neighbour finished resolving its URLs, would silently restart its
|
|
1387
|
+
* dwell and hold the stage forever. Reading through refs keeps ONE stable callback whose
|
|
1388
|
+
* inputs are always current, which is the property both consumers actually need.
|
|
1389
|
+
*/
|
|
1390
|
+
const playbackEndRef = useRef(playbackEnd);
|
|
1391
|
+
const displayIdsRef = useRef(displayIds);
|
|
1392
|
+
const selectedIdRef = useRef(selectedId);
|
|
1393
|
+
const itemsRef = useRef(items);
|
|
1394
|
+
const selectRef = useRef(select);
|
|
1395
|
+
playbackEndRef.current = playbackEnd;
|
|
1396
|
+
displayIdsRef.current = displayIds;
|
|
1397
|
+
selectedIdRef.current = selectedId;
|
|
1398
|
+
itemsRef.current = items;
|
|
1399
|
+
selectRef.current = select;
|
|
1400
|
+
|
|
1401
|
+
const playedRef = useRef<string[]>([]);
|
|
1402
|
+
const advance = useCallback(() => {
|
|
1403
|
+
const step = nextInRun({
|
|
1404
|
+
behavior: playbackEndRef.current,
|
|
1405
|
+
ids: displayIdsRef.current,
|
|
1406
|
+
currentId: selectedIdRef.current,
|
|
1407
|
+
played: playedRef.current,
|
|
1408
|
+
});
|
|
1409
|
+
playedRef.current = step.played;
|
|
1410
|
+
if (!step.nextId) return;
|
|
1411
|
+
const next = itemsRef.current.find((i) => i.id === step.nextId);
|
|
1412
|
+
if (next) selectRef.current(next);
|
|
1413
|
+
}, []);
|
|
1414
|
+
|
|
1415
|
+
/*
|
|
1416
|
+
* Changing the setting, or changing WHAT IS DISPLAYED, starts a fresh shuffle pass.
|
|
1417
|
+
*
|
|
1418
|
+
* A pass records ids, so a pass carried across a filter change is a pass holding ids that
|
|
1419
|
+
* are no longer on screen — shuffle would then behave as though half the new folder had
|
|
1420
|
+
* already played and refuse to reach it until the pass emptied. The selection is
|
|
1421
|
+
* deliberately NOT part of this key: every automatic advance changes it, and resetting the
|
|
1422
|
+
* pass there would make shuffle stateless, which is the bug the pass exists to prevent.
|
|
1423
|
+
*
|
|
1424
|
+
* `\u0000` as the joiner because it cannot occur in an id, so no two different sets can
|
|
1425
|
+
* collide into one key.
|
|
1426
|
+
*/
|
|
1427
|
+
const runKey = `${playbackEnd}\u0000${displayIds.join('\u0000')}`;
|
|
1428
|
+
const lastRunKey = useRef(runKey);
|
|
1429
|
+
if (lastRunKey.current !== runKey) {
|
|
1430
|
+
lastRunKey.current = runKey;
|
|
1431
|
+
playedRef.current = [];
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
/**
|
|
1435
|
+
* A still picture (or a PDF, or a text file) has no `ended` event, so a run that reaches
|
|
1436
|
+
* one would stop dead. This is the *"for images they can have a time to stay on them and
|
|
1437
|
+
* play through like a slideshow"* half of the owner's spec, and it is what makes a mixed
|
|
1438
|
+
* folder work: a video holds the stage until it finishes, everything else holds it for the
|
|
1439
|
+
* configured dwell, and the run continues either way.
|
|
1440
|
+
*
|
|
1441
|
+
* 🔴 It deliberately does not run for `video` or `audio` even when they are broken. A clip
|
|
1442
|
+
* whose bytes 404 never fires `ended`, so a dwell timer would advance past it — hiding the
|
|
1443
|
+
* failure by making the album skip a file, which is far worse than a run that stops on the
|
|
1444
|
+
* thing that is actually wrong.
|
|
1445
|
+
*/
|
|
1446
|
+
const stageCategory = selected ? galleryItemCategory(selected) : null;
|
|
1447
|
+
const dwells =
|
|
1448
|
+
runAdvances(playbackEnd) &&
|
|
1449
|
+
stageCategory !== null &&
|
|
1450
|
+
stageCategory !== 'video' &&
|
|
1451
|
+
stageCategory !== 'audio';
|
|
1452
|
+
useEffect(() => {
|
|
1453
|
+
if (!dwells || !selectedId) return;
|
|
1454
|
+
const timer = setTimeout(advance, imageDwell * 1000);
|
|
1455
|
+
return () => clearTimeout(timer);
|
|
1456
|
+
}, [dwells, selectedId, imageDwell, advance]);
|
|
1457
|
+
|
|
1458
|
+
/**
|
|
1459
|
+
* Picking a file brings the STAGE back into view.
|
|
1460
|
+
*
|
|
1461
|
+
* Owner, 2026-08-14: *"when I scroll down through thumbnails and click one to play it then I
|
|
1462
|
+
* want to navigate automatically back to the top to see the movie I am playing or image I
|
|
1463
|
+
* picked instead of having to do it manually."*
|
|
1464
|
+
*
|
|
1465
|
+
* The detail view is one scroll container — stage on top, the rest of the grid underneath —
|
|
1466
|
+
* so choosing from that lower grid changed what was playing while leaving the viewport
|
|
1467
|
+
* hundreds of pixels below it. The video was playing, audible, and off-screen.
|
|
1468
|
+
*
|
|
1469
|
+
* 🔴 Keyed on `selectedId`, not on "a tile was clicked", so ⇧-arrow stepping and end-of-video
|
|
1470
|
+
* auto-advance land the same way. It deliberately does NOT run when the detail view first
|
|
1471
|
+
* OPENS from the browse grid — that swap already puts the stage at the top of a fresh view,
|
|
1472
|
+
* and an animated scroll on top of it reads as a jolt. `hadSelection` is what distinguishes
|
|
1473
|
+
* "changed file" from "opened the first one".
|
|
1474
|
+
*
|
|
1475
|
+
* `smooth` is the point: an instant jump gives no sense of having moved, and the owner's
|
|
1476
|
+
* complaint is about losing his place. Honors `prefers-reduced-motion` via `behavior:'auto'`
|
|
1477
|
+
* for anyone who has asked for less movement.
|
|
1478
|
+
*/
|
|
1479
|
+
/*
|
|
1480
|
+
* 🔴 A film SNAPS; everything else glides. Owner, 2026-08-25: *"media galleries like in
|
|
1481
|
+
* collections app should snap to the top to play a video instead of slowly going to the
|
|
1482
|
+
* top."*
|
|
1483
|
+
*
|
|
1484
|
+
* This is not a reversal of the `smooth` reasoning above, which is about not losing your
|
|
1485
|
+
* place while stepping through stills — it is the case that reasoning does not cover.
|
|
1486
|
+
* Playback has ALREADY STARTED by the time the scroll animation runs, so a smooth glide
|
|
1487
|
+
* means several hundred milliseconds of a video you can hear and cannot see. There is no
|
|
1488
|
+
* place to lose: the thing you are travelling to is the thing that is already happening.
|
|
1489
|
+
*/
|
|
1490
|
+
const stageRef = useRef<HTMLDivElement | null>(null);
|
|
1491
|
+
const hadSelection = useRef(false);
|
|
1492
|
+
useEffect(() => {
|
|
1493
|
+
if (!selectedId) {
|
|
1494
|
+
hadSelection.current = false;
|
|
1495
|
+
return;
|
|
1496
|
+
}
|
|
1497
|
+
const wasOpen = hadSelection.current;
|
|
1498
|
+
hadSelection.current = true;
|
|
1499
|
+
if (!wasOpen) return;
|
|
1500
|
+
const el = stageRef.current;
|
|
1501
|
+
if (!el?.scrollIntoView) return;
|
|
1502
|
+
const reduced =
|
|
1503
|
+
globalThis.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true;
|
|
1504
|
+
el.scrollIntoView({ behavior: reduced || snapsToStage(selected) ? 'auto' : 'smooth', block: 'start' });
|
|
1505
|
+
}, [selectedId, selected]);
|
|
1506
|
+
|
|
1507
|
+
/**
|
|
1508
|
+
* Arrow keys step, Escape closes.
|
|
1509
|
+
*
|
|
1510
|
+
* 🔴 Bound to the WINDOW rather than to the detail container, because the video player is
|
|
1511
|
+
* the thing the owner just clicked and it owns focus — a handler on an ancestor div only
|
|
1512
|
+
* fires when focus happens to be outside the player, which is the state a person watching a
|
|
1513
|
+
* video is never in. The typing guard below is what makes a window binding safe.
|
|
1514
|
+
*/
|
|
1515
|
+
useEffect(() => {
|
|
1516
|
+
if (!selectedId) return;
|
|
1517
|
+
const onKey = (event: KeyboardEvent) => {
|
|
1518
|
+
/*
|
|
1519
|
+
* 🔴 Space is play/pause, and it is decided BEFORE the typing guard below — which is
|
|
1520
|
+
* the opposite of how this read until 2026-08-22, and the change is the fix.
|
|
1521
|
+
*
|
|
1522
|
+
* Owner, 2026-08-13: *"clicking space bar on a video page should toggle pause or
|
|
1523
|
+
* play."* Owner again, 2026-08-20, after it kept not working: *"Space key should not do
|
|
1524
|
+
* anything else … no matter where I push it … This applies to other media galleries in
|
|
1525
|
+
* all the other apps too."* The guard below stands down for a focused `<button>` on the
|
|
1526
|
+
* reasonable grounds that Space activates one — but on a player page the controls ARE
|
|
1527
|
+
* buttons, and the browser restores focus to the last-clicked one when the tab comes
|
|
1528
|
+
* back, so Space activated it instead of pausing. `isPlayPauseSpace` is the fleet's one
|
|
1529
|
+
* answer to "is this press ours"; see `media/playerSpaceKey.ts` for the whole story.
|
|
1530
|
+
*
|
|
1531
|
+
* Handled here rather than by focusing the player on open, because stealing focus
|
|
1532
|
+
* breaks the ⇧-arrow stepping and the Escape below.
|
|
1533
|
+
*/
|
|
1534
|
+
if (isPlayPauseSpace(event)) {
|
|
1535
|
+
/*
|
|
1536
|
+
* 🔴 The element is found through the STAGE REF, not by class name or tag — changed
|
|
1537
|
+
* 2026-09-11, and the change is the fix.
|
|
1538
|
+
*
|
|
1539
|
+
* Owner: *"in collections when a video is selected make the space bar always play or
|
|
1540
|
+
* pause the video whether it is focused or not. Currently there can be a video selected
|
|
1541
|
+
* and if I click off of it such as clicking the side bar or if I never click it at all
|
|
1542
|
+
* the space bar doesn't control the video."*
|
|
1543
|
+
*
|
|
1544
|
+
* The old lookup was `'.cbmg-stage-video, .cbgd-stage video, media-player video'` —
|
|
1545
|
+
* three guesses at where the element might be, two of which could not match:
|
|
1546
|
+
*
|
|
1547
|
+
* · `.cbmg-stage-video` is the NATIVE stage only (`nativeVideoStage`), which the
|
|
1548
|
+
* collections app does not use;
|
|
1549
|
+
* · `.cbgd-stage` does not exist and has not for some time — the shell's frame is
|
|
1550
|
+
* `.cbgd-watch-player-box`, so that arm of the list was dead;
|
|
1551
|
+
* · 🔴 and `media-player video` NEVER MATCHED ANYTHING, which is the whole bug.
|
|
1552
|
+
* `@vidstack/react`'s `<MediaPlayer>` does not render a `<media-player>` custom
|
|
1553
|
+
* element — measured against the installed version on 2026-09-11, it renders
|
|
1554
|
+
* `<div data-media-player>` with the provider as `<div data-media-provider>`
|
|
1555
|
+
* inside it. So the selector was a tag name nothing in the document has, and
|
|
1556
|
+
* every arm of the list was dead on the Vidstack path that every app except the
|
|
1557
|
+
* `nativeVideoStage` consumers uses.
|
|
1558
|
+
*
|
|
1559
|
+
* A tag name that matches nothing is the worst shape this could have had: it
|
|
1560
|
+
* typechecks, it throws nothing, it logs nothing, and `document.querySelector`
|
|
1561
|
+
* answering `null` was indistinguishable from "the player has not mounted yet".
|
|
1562
|
+
* Hence the second half below — the key is taken whether or not anything is found.
|
|
1563
|
+
*
|
|
1564
|
+
* `stageRef` is the `.cbmg-stage-anchor` div this component already keeps for the
|
|
1565
|
+
* scroll-into-view effect, and every stage renders inside it: the native `<video>`,
|
|
1566
|
+
* Vidstack's provider-built `<video>`, and the audio card's `<audio>`. One ref
|
|
1567
|
+
* therefore answers all three, cannot go stale against a renamed class, and cannot
|
|
1568
|
+
* pick up a `<video>` from a PREVIEWING TILE in the grid below — which a
|
|
1569
|
+
* document-wide `video` selector would have done the moment "preview all" was on.
|
|
1570
|
+
*/
|
|
1571
|
+
const media =
|
|
1572
|
+
stageRef.current?.querySelector<HTMLMediaElement>('video, audio') ?? null;
|
|
1573
|
+
/*
|
|
1574
|
+
* 🔴 The key is consumed whenever the open file is PLAYABLE, found or not.
|
|
1575
|
+
*
|
|
1576
|
+
* This is the half that answers *"whether it is focused or not"*. Falling through on a
|
|
1577
|
+
* not-yet-mounted player left Space meaning "press the focused button" for the first
|
|
1578
|
+
* second of every video — and the focused button, after clicking a tile or a sidebar
|
|
1579
|
+
* row, is the one the owner just used. Cancelling the keydown is also what stops the
|
|
1580
|
+
* browser activating that button on the KEYUP, and what stops the page scrolling.
|
|
1581
|
+
*
|
|
1582
|
+
* Narrowed to video and audio on purpose: on a PDF or a text stage Space is paging
|
|
1583
|
+
* down, which is the gesture a reader wants and not one to steal.
|
|
1584
|
+
*/
|
|
1585
|
+
if (playsWithSpace(selected)) {
|
|
1586
|
+
event.preventDefault();
|
|
1587
|
+
event.stopPropagation();
|
|
1588
|
+
if (media) {
|
|
1589
|
+
if (media.paused) void media.play().catch(() => {});
|
|
1590
|
+
else media.pause();
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
return;
|
|
1594
|
+
}
|
|
1595
|
+
// Never steal a key from a field, and never from a chord the browser or the player owns
|
|
1596
|
+
// (⌘←/⌥← are history and word-jump; Vidstack binds bare arrows to seek only while the
|
|
1597
|
+
// player has focus, which is why ⇧ is the modifier that means "the gallery").
|
|
1598
|
+
const target = event.target as HTMLElement | null;
|
|
1599
|
+
if (
|
|
1600
|
+
target?.isContentEditable === true ||
|
|
1601
|
+
['INPUT', 'TEXTAREA', 'SELECT'].includes(target?.tagName ?? '') ||
|
|
1602
|
+
event.metaKey ||
|
|
1603
|
+
event.ctrlKey ||
|
|
1604
|
+
event.altKey
|
|
1605
|
+
)
|
|
1606
|
+
return;
|
|
1607
|
+
if (event.key === 'Escape') {
|
|
1608
|
+
select(null);
|
|
1609
|
+
return;
|
|
1610
|
+
}
|
|
1611
|
+
// ⇧+arrow, so a bare ← / → still seeks within the video (the player's own binding) and
|
|
1612
|
+
// the two never fight over the same key.
|
|
1613
|
+
if (!event.shiftKey) return;
|
|
1614
|
+
// `step` wraps now and always moves, so the key is always ours to consume — the old
|
|
1615
|
+
// form used its boolean return to let the edges fall through to the browser's scroll.
|
|
1616
|
+
if (event.key === 'ArrowRight' && canStep) {
|
|
1617
|
+
event.preventDefault();
|
|
1618
|
+
step(1);
|
|
1619
|
+
}
|
|
1620
|
+
if (event.key === 'ArrowLeft' && canStep) {
|
|
1621
|
+
event.preventDefault();
|
|
1622
|
+
step(-1);
|
|
1623
|
+
}
|
|
1624
|
+
};
|
|
1625
|
+
// Capture, so a focused transport control never gets the press first. See
|
|
1626
|
+
// `media/playerSpaceKey.ts`.
|
|
1627
|
+
window.addEventListener('keydown', onKey, true);
|
|
1628
|
+
return () => window.removeEventListener('keydown', onKey, true);
|
|
1629
|
+
});
|
|
1630
|
+
|
|
1631
|
+
// A selection in progress arms the grid on its own: hiding the boxes again the moment the
|
|
1632
|
+
// pointer leaves a ticked tile would make "which ones did I pick" a hover-only fact.
|
|
1633
|
+
const boxesArmed = selectionReveal === 'always' || selectArmed || checks.count > 0;
|
|
1634
|
+
|
|
1635
|
+
const tileSelection = (item: MediaGalleryItem): TileSelection | undefined =>
|
|
1636
|
+
selectable
|
|
1637
|
+
? {
|
|
1638
|
+
selected: checks.isSelected(item.id),
|
|
1639
|
+
armed: boxesArmed,
|
|
1640
|
+
onToggle: (shiftKey: boolean) => checks.toggle(item.id, { shiftKey }),
|
|
1641
|
+
}
|
|
1642
|
+
: undefined;
|
|
1643
|
+
|
|
1644
|
+
const tileDrag = (item: MediaGalleryItem): TileDrag | undefined =>
|
|
1645
|
+
onItemDragStart
|
|
1646
|
+
? {
|
|
1647
|
+
onDragStart: (event: DragEvent<HTMLElement>) => onItemDragStart(item, event),
|
|
1648
|
+
...(onItemDragEnd ? { onDragEnd: onItemDragEnd } : {}),
|
|
1649
|
+
}
|
|
1650
|
+
: undefined;
|
|
1651
|
+
|
|
1652
|
+
/*
|
|
1653
|
+
* The capability dialogs. Rendered beside the detail view rather than inside the action row
|
|
1654
|
+
* so that closing the row's own state (a rename, the sliders) cannot unmount an open editor
|
|
1655
|
+
* mid-save, and so a `React.lazy` chunk is fetched only when one is actually opened.
|
|
1656
|
+
*/
|
|
1657
|
+
const capabilityDialogs = (
|
|
1658
|
+
<React.Suspense fallback={null}>
|
|
1659
|
+
{editingPicture ? (
|
|
1660
|
+
<LazyPictureEditor
|
|
1661
|
+
src={editingPicture.url ?? ''}
|
|
1662
|
+
fileName={editingPicture.name}
|
|
1663
|
+
allowReplace={allowPictureReplace}
|
|
1664
|
+
onClose={() => setEditingPicture(null)}
|
|
1665
|
+
onSave={async (result: PictureEditResult) => {
|
|
1666
|
+
await onSaveEdit?.(editingPicture, result);
|
|
1667
|
+
}}
|
|
1668
|
+
/>
|
|
1669
|
+
) : null}
|
|
1670
|
+
{turningVideo ? (
|
|
1671
|
+
<LazyVideoTurner
|
|
1672
|
+
src={turningVideo.streamUrl ?? turningVideo.url ?? ''}
|
|
1673
|
+
{...(turningVideo.posterUrl ? { posterUrl: turningVideo.posterUrl } : {})}
|
|
1674
|
+
name={turningVideo.name}
|
|
1675
|
+
orientation={turningVideo.orientation}
|
|
1676
|
+
onClose={() => setTurningVideo(null)}
|
|
1677
|
+
onSave={async (next: MediaOrientation | undefined) => {
|
|
1678
|
+
await onSaveOrientation?.(turningVideo, next);
|
|
1679
|
+
}}
|
|
1680
|
+
/>
|
|
1681
|
+
) : null}
|
|
1682
|
+
{trimmingVideo && onTrimVideo ? (
|
|
1683
|
+
<LazyVideoCutEditor
|
|
1684
|
+
src={trimmingVideo.streamUrl ?? trimmingVideo.url ?? ''}
|
|
1685
|
+
{...(trimmingVideo.posterUrl ? { posterUrl: trimmingVideo.posterUrl } : {})}
|
|
1686
|
+
name={trimmingVideo.name}
|
|
1687
|
+
durationSeconds={trimmingVideo.durationSeconds ?? null}
|
|
1688
|
+
{...(trimNote ? { note: trimNote } : {})}
|
|
1689
|
+
onClose={() => setTrimmingVideo(null)}
|
|
1690
|
+
onSubmit={async (cuts: VideoCut[]) => {
|
|
1691
|
+
await onTrimVideo(trimmingVideo, cuts);
|
|
1692
|
+
}}
|
|
1693
|
+
/>
|
|
1694
|
+
) : null}
|
|
1695
|
+
{grabbing ? (
|
|
1696
|
+
<LazyFrameGrabber
|
|
1697
|
+
src={grabbing.item.streamUrl ?? grabbing.item.url ?? ''}
|
|
1698
|
+
name={grabbing.item.name}
|
|
1699
|
+
startAt={grabbing.at}
|
|
1700
|
+
// So the dialog can SAY that saving replaces the picture this film shows now, rather
|
|
1701
|
+
// than overwriting somebody's chosen poster silently — the owner's copy-not-overwrite
|
|
1702
|
+
// ruling applied to the one case in that dialog where a replacement is unavoidable.
|
|
1703
|
+
hasPoster={Boolean(grabbing.item.posterUrl)}
|
|
1704
|
+
onClose={() => setGrabbing(null)}
|
|
1705
|
+
{...(onSaveThumbnail
|
|
1706
|
+
? { onSaveThumbnail: (poster: Blob) => onSaveThumbnail(grabbing.item, poster) }
|
|
1707
|
+
: {})}
|
|
1708
|
+
{...(onSaveSnapshot
|
|
1709
|
+
? {
|
|
1710
|
+
onSaveSnapshot: (still: Blob, atSeconds: number) =>
|
|
1711
|
+
onSaveSnapshot(grabbing.item, still, atSeconds),
|
|
1712
|
+
}
|
|
1713
|
+
: {})}
|
|
1714
|
+
/>
|
|
1715
|
+
) : null}
|
|
1716
|
+
</React.Suspense>
|
|
1717
|
+
);
|
|
1718
|
+
|
|
1719
|
+
if (selected) {
|
|
1720
|
+
const category = galleryItemCategory(selected);
|
|
1721
|
+
const others = displayItems.filter((i) => i.id !== selected.id);
|
|
1722
|
+
const downloadHref = selected.downloadUrl ?? selected.url;
|
|
1723
|
+
return (
|
|
1724
|
+
<>
|
|
1725
|
+
{capabilityDialogs}
|
|
1726
|
+
<DenseGalleryDetail
|
|
1727
|
+
fullStage={fullStage}
|
|
1728
|
+
onFullStageChange={setFullStage}
|
|
1729
|
+
/* 🔴 A VIDEO enters browser fullscreen from its own player, so the frame must not also
|
|
1730
|
+
claim the gesture; every other kind of file has no player, so the frame's
|
|
1731
|
+
`⤢ Fullscreen` is what a double-click means on it. Owner, 2026-09-11:
|
|
1732
|
+
*"Doubleclicking an image to toggle full screen is not working at all."* */
|
|
1733
|
+
stageOwnsDoubleClick={category === 'video'}
|
|
1734
|
+
title={selected.name}
|
|
1735
|
+
meta={
|
|
1736
|
+
// The date joins the line rather than replacing what was there — beside the title is
|
|
1737
|
+
// exactly where the owner asked for it, and the titlebar has the room a tile caption
|
|
1738
|
+
// does not.
|
|
1739
|
+
[
|
|
1740
|
+
selected.tags && selected.tags.length > 0
|
|
1741
|
+
? selected.tags.join(' · ')
|
|
1742
|
+
: selected.sizeBytes != null
|
|
1743
|
+
? formatBytes(selected.sizeBytes)
|
|
1744
|
+
: null,
|
|
1745
|
+
createdLabel(selected.createdAt),
|
|
1746
|
+
]
|
|
1747
|
+
.filter(Boolean)
|
|
1748
|
+
.join(' · ') || undefined
|
|
1749
|
+
}
|
|
1750
|
+
sticky={pinStage}
|
|
1751
|
+
stage={
|
|
1752
|
+
// The div is the scroll anchor the effect above targets — the stage content itself is
|
|
1753
|
+
// a lazy viewer that may not have mounted yet when the selection changes.
|
|
1754
|
+
<div
|
|
1755
|
+
ref={stageRef}
|
|
1756
|
+
className='cbmg-stage-anchor'
|
|
1757
|
+
/*
|
|
1758
|
+
* 🔴 The picture adjustment reaches the stage through a CSS custom property, not
|
|
1759
|
+
* through a prop on the player. The video stage is Vidstack's and is several
|
|
1760
|
+
* components deep; threading a filter into it would mean every consumer of the
|
|
1761
|
+
* player primitive learning about a control only the gallery offers. The rule that
|
|
1762
|
+
* consumes this lives in `mediaGallery.css` beside the stage it targets.
|
|
1763
|
+
*/
|
|
1764
|
+
style={{ '--cbmg-picture-filter': lightFilter(light) } as React.CSSProperties}
|
|
1765
|
+
>
|
|
1766
|
+
<GalleryStage
|
|
1767
|
+
item={selected}
|
|
1768
|
+
mediaCache={mediaCache}
|
|
1769
|
+
bytesCache={bytesCache}
|
|
1770
|
+
loadBytes={loadBytes}
|
|
1771
|
+
nativeVideoStage={nativeVideoStage}
|
|
1772
|
+
onStep={step}
|
|
1773
|
+
canStep={canStep}
|
|
1774
|
+
/* 🔴 The player's own double-click gesture stands down while the SHELL is
|
|
1775
|
+
fullscreen, so the one gesture the owner asked for ("double clicking a full
|
|
1776
|
+
screen video should change back … to non-full screen view") has exactly one
|
|
1777
|
+
meaning. `DenseGalleryDetail` handles it from the frame instead. */
|
|
1778
|
+
fullscreenOnDoubleClick={!fullStage}
|
|
1779
|
+
repeat={runRepeatsOne(playbackEnd)}
|
|
1780
|
+
// 🔴 `advance`, not `step(1)`. The arrows wrap and the RUN does not: `next`
|
|
1781
|
+
// stops after the last item, `all` starts over, `shuffle` draws from the pass.
|
|
1782
|
+
// Handing the wrapping stepper to `onEnded` would turn every setting into
|
|
1783
|
+
// "play all", silently.
|
|
1784
|
+
onEnded={runAdvances(playbackEnd) ? advance : undefined}
|
|
1785
|
+
/>
|
|
1786
|
+
</div>
|
|
1787
|
+
}
|
|
1788
|
+
/* 🔴 Stepping is now in TWO places and neither is an overlay on the picture
|
|
1789
|
+
(owner, 2026-08-25: "remove the big previous and next buttons off the sides of
|
|
1790
|
+
the video"). A video gets its pair inside the player's own control bar, beside
|
|
1791
|
+
the cog, because that bar is the only chrome that exists in browser fullscreen —
|
|
1792
|
+
see `VideoPlayer`'s `stepSlots`, and note the same `step` is handed to
|
|
1793
|
+
`GalleryStage` above. Every other kind of file gets its pair at the START of the
|
|
1794
|
+
titlebar's action row, which is what keeps the 2026-08-23 "the buttons shift"
|
|
1795
|
+
property: the row grows to the RIGHT, so a consumer wiring three actions or nine
|
|
1796
|
+
does not move them. The ⇧←/⇧→ shortcuts and the aria-labels are unchanged. */
|
|
1797
|
+
onStep={step}
|
|
1798
|
+
canStep={canStep}
|
|
1799
|
+
actions={
|
|
1800
|
+
<>
|
|
1801
|
+
{/* Pin the stage so the thumbnails scroll UNDER the video rather than past it.
|
|
1802
|
+
Owner, 2026-08-14: "a button to lock the video in place on top so I can scroll
|
|
1803
|
+
thumbnails and still see the full video." Shown for every kind — browsing a
|
|
1804
|
+
folder while keeping a photograph on screen is the same need. */}
|
|
1805
|
+
<Tooltip content={
|
|
1806
|
+
pinStage
|
|
1807
|
+
? 'Unpin — let the stage scroll away with the page'
|
|
1808
|
+
: 'Pin the stage to the top while the thumbnails scroll under it'
|
|
1809
|
+
}>
|
|
1810
|
+
<button
|
|
1811
|
+
// guardrails-ignore no-raw-action-button: see the previous button.
|
|
1812
|
+
type='button'
|
|
1813
|
+
className='cbgd-order-btn'
|
|
1814
|
+
aria-pressed={pinStage}
|
|
1815
|
+
onClick={() => {
|
|
1816
|
+
const next = !pinStage;
|
|
1817
|
+
setPinStage(next);
|
|
1818
|
+
writePinStage(next);
|
|
1819
|
+
}}
|
|
1820
|
+
>
|
|
1821
|
+
{pinStage ? '📌 Pinned' : '📌 Pin'}
|
|
1822
|
+
</button>
|
|
1823
|
+
</Tooltip>
|
|
1824
|
+
{/* 🔴 Shown for EVERY kind, not only video. Three of the five settings run the
|
|
1825
|
+
whole album, and an album of photographs is exactly what a slideshow is —
|
|
1826
|
+
gating this on `category === 'video'` meant the owner could not start one from
|
|
1827
|
+
a picture, which is the item most folders open on. `playbackPreferences.ts`
|
|
1828
|
+
explains why five settings on one button rather than a row of toggles. */}
|
|
1829
|
+
<Tooltip content={PLAYBACK_END_LABELS[playbackEnd].hint}>
|
|
1830
|
+
<button
|
|
1831
|
+
// guardrails-ignore no-raw-action-button: see the previous button.
|
|
1832
|
+
type='button'
|
|
1833
|
+
className={`cbgd-order-btn${playbackEnd === 'stop' ? '' : ' is-active'}`}
|
|
1834
|
+
onClick={() => {
|
|
1835
|
+
const next = nextPlaybackEnd(playbackEnd);
|
|
1836
|
+
setPlaybackEnd(next);
|
|
1837
|
+
writePlaybackEnd(next);
|
|
1838
|
+
}}
|
|
1839
|
+
aria-label={`When an item ends: ${PLAYBACK_END_LABELS[playbackEnd].label}`}
|
|
1840
|
+
>
|
|
1841
|
+
{PLAYBACK_END_LABELS[playbackEnd].glyph} {PLAYBACK_END_LABELS[playbackEnd].label}
|
|
1842
|
+
</button>
|
|
1843
|
+
</Tooltip>
|
|
1844
|
+
{/* The slideshow speed, and ONLY while a setting that advances is chosen — a
|
|
1845
|
+
dwell control beside "Stop at the end" configures something that cannot
|
|
1846
|
+
happen. Owner: "The time should be configurable for slow to fast slideshows." */}
|
|
1847
|
+
{runAdvances(playbackEnd) ? (
|
|
1848
|
+
<Tooltip content='How long each picture holds the screen before the next item'>
|
|
1849
|
+
<label className='cbgd-dwell'>
|
|
1850
|
+
<span className='cbgd-dwell-label'>Hold</span>
|
|
1851
|
+
<select
|
|
1852
|
+
// guardrails-ignore no-raw-inputs: `.cbgd-dwell` is this module's own
|
|
1853
|
+
// self-contained plain-CSS control, for the same reason `.cbgd-search`
|
|
1854
|
+
// states — cursedbelt's Tailwind field layer would fight it on cascade.
|
|
1855
|
+
className='cbgd-dwell-select'
|
|
1856
|
+
value={imageDwell}
|
|
1857
|
+
onChange={(event) => {
|
|
1858
|
+
const next = Number(event.target.value);
|
|
1859
|
+
setImageDwell(next);
|
|
1860
|
+
writeImageDwell(next);
|
|
1861
|
+
}}
|
|
1862
|
+
aria-label='How long each picture holds the screen'
|
|
1863
|
+
>
|
|
1864
|
+
{IMAGE_DWELL_OPTIONS.map((seconds) => (
|
|
1865
|
+
<option key={seconds} value={seconds}>
|
|
1866
|
+
{seconds}s
|
|
1867
|
+
</option>
|
|
1868
|
+
))}
|
|
1869
|
+
</select>
|
|
1870
|
+
</label>
|
|
1871
|
+
</Tooltip>
|
|
1872
|
+
) : null}
|
|
1873
|
+
{/*
|
|
1874
|
+
── The standard capabilities ────────────────────────────────────────────────
|
|
1875
|
+
Each renders only when the app passed the handler that makes it work. Placed
|
|
1876
|
+
BEFORE `detailActions` so the shared row reads the same in every app and an app's
|
|
1877
|
+
own buttons collect at the end, next to Download and Delete.
|
|
1878
|
+
*/}
|
|
1879
|
+
{onRename ? (
|
|
1880
|
+
renaming === selected.id ? (
|
|
1881
|
+
<form
|
|
1882
|
+
className='cbmg-inline-rename'
|
|
1883
|
+
onSubmit={(event) => {
|
|
1884
|
+
event.preventDefault();
|
|
1885
|
+
const next = renameDraft.trim();
|
|
1886
|
+
setRenaming(null);
|
|
1887
|
+
// An empty or unchanged name is a cancel, not a rename to "". Deciding that
|
|
1888
|
+
// here rather than in each app is what stops one of them storing a blank.
|
|
1889
|
+
if (next && next !== selected.name) void onRename(selected, next);
|
|
1890
|
+
}}
|
|
1891
|
+
>
|
|
1892
|
+
gallery's plain-CSS action row, which has no Tailwind and no Field layer;
|
|
1893
|
+
<input
|
|
1894
|
+
// guardrails-ignore no-raw-inputs: a plain control inside a Tailwind-free, plain-CSS row. The Field layer has no slider, and its label chrome would duplicate the label already beside this one.
|
|
1895
|
+
// The field is opened by an explicit press of Rename, so focus is the
|
|
1896
|
+
// thing that was just asked for — and without it the control appears and
|
|
1897
|
+
// does nothing until you find it again with the pointer.
|
|
1898
|
+
// biome-ignore lint/a11y/noAutofocus: explained immediately above
|
|
1899
|
+
autoFocus
|
|
1900
|
+
aria-label={`Rename ${selected.name}`}
|
|
1901
|
+
value={renameDraft}
|
|
1902
|
+
onChange={(event) => setRenameDraft(event.target.value)}
|
|
1903
|
+
onKeyDown={(event) => {
|
|
1904
|
+
if (event.key === 'Escape') setRenaming(null);
|
|
1905
|
+
}}
|
|
1906
|
+
/>
|
|
1907
|
+
<button
|
|
1908
|
+
// guardrails-ignore no-raw-action-button: action pill styled by the dense
|
|
1909
|
+
// gallery's own plain CSS, matching its neighbours in this row.
|
|
1910
|
+
type='submit'
|
|
1911
|
+
className='cbgd-order-btn'
|
|
1912
|
+
>
|
|
1913
|
+
Save
|
|
1914
|
+
</button>
|
|
1915
|
+
<button
|
|
1916
|
+
// guardrails-ignore no-raw-action-button: see the Save button above.
|
|
1917
|
+
type='button'
|
|
1918
|
+
className='cbgd-order-btn'
|
|
1919
|
+
onClick={() => setRenaming(null)}
|
|
1920
|
+
>
|
|
1921
|
+
Cancel
|
|
1922
|
+
</button>
|
|
1923
|
+
</form>
|
|
1924
|
+
) : (
|
|
1925
|
+
<Tooltip content="Change this file's name">
|
|
1926
|
+
<button
|
|
1927
|
+
// guardrails-ignore no-raw-action-button: action pill styled by the dense
|
|
1928
|
+
// gallery's own plain CSS, matching its neighbors.
|
|
1929
|
+
type='button'
|
|
1930
|
+
className='cbgd-order-btn'
|
|
1931
|
+
onClick={() => {
|
|
1932
|
+
setRenameDraft(selected.name);
|
|
1933
|
+
setRenaming(selected.id);
|
|
1934
|
+
}}
|
|
1935
|
+
>
|
|
1936
|
+
Rename
|
|
1937
|
+
</button>
|
|
1938
|
+
</Tooltip>
|
|
1939
|
+
)
|
|
1940
|
+
) : null}
|
|
1941
|
+
{/* Only a video has frames to choose between. An image IS its own thumbnail, and
|
|
1942
|
+
offering the picker on one would be a control with nothing to pick. */}
|
|
1943
|
+
{(onSaveThumbnail || onSaveSnapshot) && category === 'video' ? (
|
|
1944
|
+
<Tooltip content={
|
|
1945
|
+
onSaveThumbnail
|
|
1946
|
+
? 'Pick which moment the thumbnail comes from, and keep stills'
|
|
1947
|
+
: 'Keep a full-size picture of a moment in this film'
|
|
1948
|
+
}>
|
|
1949
|
+
<button
|
|
1950
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
1951
|
+
type='button'
|
|
1952
|
+
className='cbgd-order-btn'
|
|
1953
|
+
onClick={() => {
|
|
1954
|
+
/*
|
|
1955
|
+
* 🔴 Carry the PLAYHEAD across, read off the DOM rather than plumbed through.
|
|
1956
|
+
* The stage player is Vidstack's and owns its own time; this is one number at
|
|
1957
|
+
* one moment, and threading a prop for it would couple the player primitive
|
|
1958
|
+
* to a control only the gallery offers. Owner, 2026-08-13, about the same
|
|
1959
|
+
* gesture in collections: *"should open to the same spot in the timeline I
|
|
1960
|
+
* click it at because that's usually about where I want the snapshot."*
|
|
1961
|
+
*/
|
|
1962
|
+
const stage = stageRef.current?.querySelector<HTMLVideoElement>(
|
|
1963
|
+
'.cbmg-stage-video, video',
|
|
1964
|
+
);
|
|
1965
|
+
const at = stage && Number.isFinite(stage.currentTime) ? stage.currentTime : 0;
|
|
1966
|
+
setGrabbing({ item: selected, at });
|
|
1967
|
+
}}
|
|
1968
|
+
>
|
|
1969
|
+
{onSaveThumbnail
|
|
1970
|
+
? selected.posterUrl
|
|
1971
|
+
? '🖼 Change thumbnail'
|
|
1972
|
+
: '🖼 Choose thumbnail'
|
|
1973
|
+
: '📷 Take a picture'}
|
|
1974
|
+
</button>
|
|
1975
|
+
</Tooltip>
|
|
1976
|
+
) : null}
|
|
1977
|
+
{onSaveEdit && category === 'image' ? (
|
|
1978
|
+
<Tooltip content='Turn, mirror, crop or re-light this picture'>
|
|
1979
|
+
<button
|
|
1980
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
1981
|
+
type='button'
|
|
1982
|
+
className='cbgd-order-btn'
|
|
1983
|
+
onClick={() => setEditingPicture(selected)}
|
|
1984
|
+
// The commonest press by far is one turn on a scan or a phone photograph stored
|
|
1985
|
+
// a quarter turn from how it should read, which is why the tooltip leads on it.
|
|
1986
|
+
>
|
|
1987
|
+
⟳ Edit picture
|
|
1988
|
+
</button>
|
|
1989
|
+
</Tooltip>
|
|
1990
|
+
) : null}
|
|
1991
|
+
{/* The film's own version of the button above. Offered on video ONLY — an image
|
|
1992
|
+
already has the fuller editor, and two controls that both say "turn" on the same
|
|
1993
|
+
item is the confusion this split was made to avoid. */}
|
|
1994
|
+
{onSaveOrientation && category === 'video' ? (
|
|
1995
|
+
<Tooltip content='Fix a clip filmed sideways — stored, never re-encoded'>
|
|
1996
|
+
<button
|
|
1997
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
1998
|
+
type='button'
|
|
1999
|
+
className='cbgd-order-btn'
|
|
2000
|
+
onClick={() => setTurningVideo(selected)}
|
|
2001
|
+
>
|
|
2002
|
+
⟳ Turn video
|
|
2003
|
+
</button>
|
|
2004
|
+
</Tooltip>
|
|
2005
|
+
) : null}
|
|
2006
|
+
{onTrimVideo && category === 'video' ? (
|
|
2007
|
+
<Tooltip content='Mark sections to cut out — a trimmed copy is made beside the original'>
|
|
2008
|
+
<button
|
|
2009
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
2010
|
+
type='button'
|
|
2011
|
+
className='cbgd-order-btn'
|
|
2012
|
+
onClick={() => setTrimmingVideo(selected)}
|
|
2013
|
+
>
|
|
2014
|
+
✂ Trim
|
|
2015
|
+
</button>
|
|
2016
|
+
</Tooltip>
|
|
2017
|
+
) : null}
|
|
2018
|
+
{pictureControls && (category === 'image' || category === 'video') ? (
|
|
2019
|
+
<Tooltip content='Brightness, contrast and colour for what you are looking at'>
|
|
2020
|
+
<button
|
|
2021
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
2022
|
+
type='button'
|
|
2023
|
+
className={`cbgd-order-btn${showPicture || isLightAdjusted(light) ? ' is-active' : ''}`}
|
|
2024
|
+
aria-pressed={showPicture}
|
|
2025
|
+
onClick={() => setShowPicture((on) => !on)}
|
|
2026
|
+
// Offered for pictures as well as video: a dark photograph is exactly as hard
|
|
2027
|
+
// to look at as a dark clip, and the stage renders both.
|
|
2028
|
+
>
|
|
2029
|
+
☀ Picture{isLightAdjusted(light) ? ' ·' : ''}
|
|
2030
|
+
</button>
|
|
2031
|
+
</Tooltip>
|
|
2032
|
+
) : null}
|
|
2033
|
+
{/* The sliders ride the SAME wrapping row as the buttons rather than getting a slot
|
|
2034
|
+
of their own on `DenseGalleryDetail`. A second slot would be a layout every
|
|
2035
|
+
consumer inherits for a control most of them never open; the row already wraps. */}
|
|
2036
|
+
{showPicture ? (
|
|
2037
|
+
<span className='cbmg-picture-sliders'>
|
|
2038
|
+
{(
|
|
2039
|
+
[
|
|
2040
|
+
['brightness', 'Brightness'],
|
|
2041
|
+
['contrast', 'Contrast'],
|
|
2042
|
+
['saturation', 'Colour'],
|
|
2043
|
+
] as const
|
|
2044
|
+
).map(([key, label]) => (
|
|
2045
|
+
<label key={key}>
|
|
2046
|
+
<span>{label}</span>
|
|
2047
|
+
<input
|
|
2048
|
+
// guardrails-ignore no-raw-inputs: a plain control inside a Tailwind-free, plain-CSS row. The Field layer has no slider, and its label chrome would duplicate the label already beside this one.
|
|
2049
|
+
type='range'
|
|
2050
|
+
min={LIGHT_RANGE.min}
|
|
2051
|
+
max={LIGHT_RANGE.max}
|
|
2052
|
+
step={LIGHT_RANGE.step}
|
|
2053
|
+
value={light[key]}
|
|
2054
|
+
onChange={(event) =>
|
|
2055
|
+
setLight((l) => ({ ...l, [key]: Number(event.target.value) }))
|
|
2056
|
+
}
|
|
2057
|
+
/>
|
|
2058
|
+
</label>
|
|
2059
|
+
))}
|
|
2060
|
+
<button
|
|
2061
|
+
// guardrails-ignore no-raw-action-button: see above.
|
|
2062
|
+
type='button'
|
|
2063
|
+
className='cbgd-order-btn'
|
|
2064
|
+
disabled={!isLightAdjusted(light)}
|
|
2065
|
+
onClick={() => setLight(NO_LIGHT)}
|
|
2066
|
+
>
|
|
2067
|
+
Reset
|
|
2068
|
+
</button>
|
|
2069
|
+
</span>
|
|
2070
|
+
) : null}
|
|
2071
|
+
{detailActions?.(selected)}
|
|
2072
|
+
{downloadHref ? (
|
|
2073
|
+
<Tooltip content={`Download ${selected.name}`}>
|
|
2074
|
+
<a
|
|
2075
|
+
className='cbgd-order-btn'
|
|
2076
|
+
href={downloadHref}
|
|
2077
|
+
download={selected.name}
|
|
2078
|
+
>
|
|
2079
|
+
⬇ Download
|
|
2080
|
+
</a>
|
|
2081
|
+
</Tooltip>
|
|
2082
|
+
) : null}
|
|
2083
|
+
{onDelete ? (
|
|
2084
|
+
<DeleteButton
|
|
2085
|
+
itemLabel={CATEGORY_LABEL[category].toLowerCase()}
|
|
2086
|
+
tooltip='Delete this item'
|
|
2087
|
+
onDelete={async () => {
|
|
2088
|
+
await onDelete(selected);
|
|
2089
|
+
select(null);
|
|
2090
|
+
}}
|
|
2091
|
+
>
|
|
2092
|
+
✕ Delete
|
|
2093
|
+
</DeleteButton>
|
|
2094
|
+
) : null}
|
|
2095
|
+
<button
|
|
2096
|
+
// guardrails-ignore no-raw-action-button: back-to-grid navigation, styled by
|
|
2097
|
+
// the dense gallery's own plain CSS (plugin-media-gallery precedent).
|
|
2098
|
+
type='button'
|
|
2099
|
+
className='cbgd-order-btn'
|
|
2100
|
+
onClick={() => select(null)}
|
|
2101
|
+
>
|
|
2102
|
+
Back to grid
|
|
2103
|
+
</button>
|
|
2104
|
+
</>
|
|
2105
|
+
}
|
|
2106
|
+
relatedLabel='More files'
|
|
2107
|
+
itemCount={others.length}
|
|
2108
|
+
loading={loading}
|
|
2109
|
+
onNearEnd={onNearEnd}
|
|
2110
|
+
minColumnWidth={minColumnWidth}
|
|
2111
|
+
/*
|
|
2112
|
+
* 🔴 The rows/tiles toggle reaches THIS screen too (2026-09-10).
|
|
2113
|
+
*
|
|
2114
|
+
* Owner: *"toggling to rows from thumbnails did not work in the gallery with a video
|
|
2115
|
+
* active."* The detail view drew tiles unconditionally, so the control was live, the
|
|
2116
|
+
* preference was written, and nothing changed — a pressed button doing provably
|
|
2117
|
+
* nothing. It is the same `GalleryTable` the browse view uses, over the same `others`
|
|
2118
|
+
* the tiles would have been, so the two screens cannot drift into two tables.
|
|
2119
|
+
*/
|
|
2120
|
+
{...(viewMode === 'table'
|
|
2121
|
+
? {
|
|
2122
|
+
relatedBody: (
|
|
2123
|
+
<GalleryTable
|
|
2124
|
+
items={others}
|
|
2125
|
+
cache={mediaCache}
|
|
2126
|
+
order={order}
|
|
2127
|
+
onOrderChange={setOrder}
|
|
2128
|
+
onOpen={select}
|
|
2129
|
+
{...(onNearEnd ? { onNearEnd } : {})}
|
|
2130
|
+
{...(loading === undefined ? {} : { loading })}
|
|
2131
|
+
/* 🔴 The same `thumbAutoplay` the tiles take. Owner, 2026-09-11: *"in table
|
|
2132
|
+
view the play all thumbnails isn't working but if I go back to grid view it
|
|
2133
|
+
works."* This is the RELATED list under an open file, and it is the same
|
|
2134
|
+
table as the browse view's — so leaving it out here would fix the toggle on
|
|
2135
|
+
one of the two screens it is wrong on. */
|
|
2136
|
+
autoPreview={thumbAutoplay}
|
|
2137
|
+
/>
|
|
2138
|
+
),
|
|
2139
|
+
}
|
|
2140
|
+
: {})}
|
|
2141
|
+
renderTile={(index) => {
|
|
2142
|
+
const item = others[index];
|
|
2143
|
+
return item ? (
|
|
2144
|
+
<GalleryTile
|
|
2145
|
+
key={item.id}
|
|
2146
|
+
item={item}
|
|
2147
|
+
cache={mediaCache}
|
|
2148
|
+
onOpen={() => select(item)}
|
|
2149
|
+
// The toggle means what it says on both screens — "Preview all" that stopped
|
|
2150
|
+
// applying the moment you opened something would be a different feature.
|
|
2151
|
+
autoPreview={thumbAutoplay}
|
|
2152
|
+
/>
|
|
2153
|
+
) : null;
|
|
2154
|
+
}}
|
|
2155
|
+
/>
|
|
2156
|
+
</>
|
|
2157
|
+
);
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
return (
|
|
2161
|
+
<DenseGalleryShell<MediaGalleryOrder>
|
|
2162
|
+
title={title}
|
|
2163
|
+
order={{
|
|
2164
|
+
value: order,
|
|
2165
|
+
options: GALLERY_ORDER_OPTIONS,
|
|
2166
|
+
onChange: setOrder,
|
|
2167
|
+
ariaLabel: 'Sort files',
|
|
2168
|
+
}}
|
|
2169
|
+
query={query}
|
|
2170
|
+
onQueryChange={setQuery}
|
|
2171
|
+
searchPlaceholder={searchPlaceholder}
|
|
2172
|
+
chrome={chrome}
|
|
2173
|
+
headerExtra={
|
|
2174
|
+
<>
|
|
2175
|
+
{/*
|
|
2176
|
+
* Grid ⇄ table. Two pills rather than one that toggles, because a single button
|
|
2177
|
+
* labelled with the view you are NOT in is the control everyone misreads — and a
|
|
2178
|
+
* pressed pair says which one is live without the reader having to work it out.
|
|
2179
|
+
*/}
|
|
2180
|
+
{/* A `<fieldset>`, matching `OrderPills` next to it — a group of related controls
|
|
2181
|
+
with a name, which is what `role="group"` on a span was only pretending to be. */}
|
|
2182
|
+
<fieldset className='cbgd-order' aria-label='How files are shown'>
|
|
2183
|
+
{(
|
|
2184
|
+
[
|
|
2185
|
+
{ mode: 'grid', glyph: '▦', label: 'Grid', hint: 'Show files as thumbnails' },
|
|
2186
|
+
{
|
|
2187
|
+
mode: 'table',
|
|
2188
|
+
glyph: '☰',
|
|
2189
|
+
label: 'Table',
|
|
2190
|
+
hint: 'Show files as rows with size, length and date',
|
|
2191
|
+
},
|
|
2192
|
+
] as const
|
|
2193
|
+
).map((option) => (
|
|
2194
|
+
<Tooltip content={option.hint} key={option.mode}>
|
|
2195
|
+
<button
|
|
2196
|
+
// guardrails-ignore no-raw-action-button: header pill styled by the dense
|
|
2197
|
+
// gallery's own plain CSS, matching its sort neighbours.
|
|
2198
|
+
type='button'
|
|
2199
|
+
className={`cbgd-order-btn${viewMode === option.mode ? ' is-active' : ''}`}
|
|
2200
|
+
aria-pressed={viewMode === option.mode}
|
|
2201
|
+
onClick={() => setViewMode(option.mode)}
|
|
2202
|
+
>
|
|
2203
|
+
<span aria-hidden='true'>{option.glyph}</span> {option.label}
|
|
2204
|
+
</button>
|
|
2205
|
+
</Tooltip>
|
|
2206
|
+
))}
|
|
2207
|
+
</fieldset>
|
|
2208
|
+
{/* 🔴 Off by default and remembered — `readThumbAutoplay` says why the default is a
|
|
2209
|
+
requirement rather than a taste. Rendered only when there is a video to preview:
|
|
2210
|
+
a toggle that provably does nothing to the grid in front of you is worse than an
|
|
2211
|
+
absent one.
|
|
2212
|
+
|
|
2213
|
+
🔴 And rendered in BOTH views since 2026-09-11. It used to carry
|
|
2214
|
+
`viewMode === 'grid' &&`, on the note *"the TABLE has no tiles to preview, so it is
|
|
2215
|
+
not offered there"* — which was true of the table and is not any more: a video row
|
|
2216
|
+
previews its thumbnail exactly as a tile does (`GalleryTable`'s `autoPreview`).
|
|
2217
|
+
That gate was also only half the owner's report — *"in table view the play all
|
|
2218
|
+
thumbnails isn't working but if I go back to grid view it works"* — because the app
|
|
2219
|
+
he hit it in renders `chrome='none'` and drives the toggle from its activity bar, so
|
|
2220
|
+
there the control was present and inert rather than absent. Both halves are fixed
|
|
2221
|
+
together, or the two surfaces disagree about whether the feature exists. */}
|
|
2222
|
+
{hasPreviewable ? (
|
|
2223
|
+
<Tooltip
|
|
2224
|
+
content={
|
|
2225
|
+
thumbAutoplay
|
|
2226
|
+
? 'Stop previewing every clip — hover one to preview it'
|
|
2227
|
+
: 'Preview every clip at once, without hovering'
|
|
2228
|
+
}
|
|
2229
|
+
>
|
|
2230
|
+
<button
|
|
2231
|
+
// guardrails-ignore no-raw-action-button: header pill styled by the dense
|
|
2232
|
+
// gallery's own plain CSS, matching its sort neighbours.
|
|
2233
|
+
type='button'
|
|
2234
|
+
className={`cbgd-order-btn${thumbAutoplay ? ' is-active' : ''}`}
|
|
2235
|
+
aria-pressed={thumbAutoplay}
|
|
2236
|
+
onClick={() => setThumbAutoplay(!thumbAutoplay)}
|
|
2237
|
+
>
|
|
2238
|
+
▶ Preview all
|
|
2239
|
+
</button>
|
|
2240
|
+
</Tooltip>
|
|
2241
|
+
) : null}
|
|
2242
|
+
{headerExtra}
|
|
2243
|
+
</>
|
|
2244
|
+
}
|
|
2245
|
+
filterStrip={
|
|
2246
|
+
<KindChips
|
|
2247
|
+
options={kindOptions}
|
|
2248
|
+
value={kind}
|
|
2249
|
+
onChange={setKind}
|
|
2250
|
+
tags={tags}
|
|
2251
|
+
activeTag={tag}
|
|
2252
|
+
onTagChange={setTag}
|
|
2253
|
+
/>
|
|
2254
|
+
}
|
|
2255
|
+
bulkBar={
|
|
2256
|
+
selectable ? (
|
|
2257
|
+
<BulkBar
|
|
2258
|
+
count={checks.count}
|
|
2259
|
+
total={displayItems.length}
|
|
2260
|
+
headerState={checks.headerState}
|
|
2261
|
+
onToggleAll={checks.toggleAll}
|
|
2262
|
+
onClear={() => {
|
|
2263
|
+
checks.clear();
|
|
2264
|
+
setSelectArmed(false);
|
|
2265
|
+
}}
|
|
2266
|
+
{...(selectionReveal === 'on-demand'
|
|
2267
|
+
? { armed: selectArmed, onToggleArmed: () => setSelectArmed((on) => !on) }
|
|
2268
|
+
: {})}
|
|
2269
|
+
onDelete={
|
|
2270
|
+
onBulkDelete
|
|
2271
|
+
? async () => {
|
|
2272
|
+
await onBulkDelete(checkedItems);
|
|
2273
|
+
checks.clear();
|
|
2274
|
+
}
|
|
2275
|
+
: undefined
|
|
2276
|
+
}
|
|
2277
|
+
extra={bulkActions?.(checkedItems, checks.clear)}
|
|
2278
|
+
/>
|
|
2279
|
+
) : null
|
|
2280
|
+
}
|
|
2281
|
+
itemCount={displayItems.length}
|
|
2282
|
+
loading={loading}
|
|
2283
|
+
onNearEnd={onNearEnd}
|
|
2284
|
+
empty={empty ?? <div className='cbgd-empty'>No files yet.</div>}
|
|
2285
|
+
emptyAction={emptyAction}
|
|
2286
|
+
minColumnWidth={minColumnWidth}
|
|
2287
|
+
body={
|
|
2288
|
+
viewMode === 'table' ? (
|
|
2289
|
+
<GalleryTable
|
|
2290
|
+
items={displayItems}
|
|
2291
|
+
cache={mediaCache}
|
|
2292
|
+
order={order}
|
|
2293
|
+
// 🔴 The table drives the gallery's OWN sort. Two views with two sorts is a
|
|
2294
|
+
// question nobody should have to answer; see GalleryTable's header.
|
|
2295
|
+
onOrderChange={setOrder}
|
|
2296
|
+
onOpen={select}
|
|
2297
|
+
{...(onNearEnd ? { onNearEnd } : {})}
|
|
2298
|
+
{...(loading === undefined ? {} : { loading })}
|
|
2299
|
+
{...(empty === undefined ? {} : { empty })}
|
|
2300
|
+
/* See the related table in the detail view above — "Preview all" has to mean the
|
|
2301
|
+
same thing in both views or it is two features wearing one label. */
|
|
2302
|
+
autoPreview={thumbAutoplay}
|
|
2303
|
+
{...(selectable
|
|
2304
|
+
? {
|
|
2305
|
+
selection: (item: MediaGalleryItem) => ({
|
|
2306
|
+
selected: checks.isSelected(item.id),
|
|
2307
|
+
onToggle: (shiftKey: boolean) => checks.toggle(item.id, { shiftKey }),
|
|
2308
|
+
}),
|
|
2309
|
+
}
|
|
2310
|
+
: {})}
|
|
2311
|
+
{...(onItemDragStart ? { drag: tileDrag } : {})}
|
|
2312
|
+
/>
|
|
2313
|
+
) : null
|
|
2314
|
+
}
|
|
2315
|
+
renderTile={(index) => {
|
|
2316
|
+
const item = displayItems[index];
|
|
2317
|
+
return item ? (
|
|
2318
|
+
<GalleryTile
|
|
2319
|
+
key={item.id}
|
|
2320
|
+
item={item}
|
|
2321
|
+
cache={mediaCache}
|
|
2322
|
+
onOpen={() => select(item)}
|
|
2323
|
+
selection={tileSelection(item)}
|
|
2324
|
+
drag={tileDrag(item)}
|
|
2325
|
+
autoPreview={thumbAutoplay}
|
|
2326
|
+
/>
|
|
2327
|
+
) : null;
|
|
2328
|
+
}}
|
|
2329
|
+
/>
|
|
2330
|
+
);
|
|
2331
|
+
}
|
|
2332
|
+
|
|
2333
|
+
const isItem = (i: MediaGalleryItem | undefined): i is MediaGalleryItem => i !== undefined;
|
|
2334
|
+
|
|
2335
|
+
/**
|
|
2336
|
+
* The multi-select bar. Always mounted while `selectable` (never conditionally, so the grid
|
|
2337
|
+
* does not jump the moment the first box is ticked) — the destructive half only appears
|
|
2338
|
+
* once something is actually selected.
|
|
2339
|
+
*/
|
|
2340
|
+
function BulkBar({
|
|
2341
|
+
count,
|
|
2342
|
+
total,
|
|
2343
|
+
headerState,
|
|
2344
|
+
armed,
|
|
2345
|
+
onToggleArmed,
|
|
2346
|
+
onToggleAll,
|
|
2347
|
+
onClear,
|
|
2348
|
+
onDelete,
|
|
2349
|
+
extra,
|
|
2350
|
+
}: {
|
|
2351
|
+
count: number;
|
|
2352
|
+
total: number;
|
|
2353
|
+
headerState: CheckboxHeaderState;
|
|
2354
|
+
/** Present only under `selectionReveal='on-demand'`; absent means the boxes always show. */
|
|
2355
|
+
armed?: boolean;
|
|
2356
|
+
onToggleArmed?: () => void;
|
|
2357
|
+
onToggleAll: () => void;
|
|
2358
|
+
onClear: () => void;
|
|
2359
|
+
onDelete?: () => Promise<void>;
|
|
2360
|
+
/** App-specific actions, rendered before Delete. See `bulkActions` on the gallery. */
|
|
2361
|
+
extra?: ReactNode;
|
|
2362
|
+
}) {
|
|
2363
|
+
return (
|
|
2364
|
+
<div className='cbmg-bulkbar'>
|
|
2365
|
+
{onToggleArmed ? (
|
|
2366
|
+
<Tooltip content={armed ? 'Hide the tick boxes again' : 'Show a tick box on every tile'}>
|
|
2367
|
+
<button
|
|
2368
|
+
// guardrails-ignore no-raw-action-button: action pill styled by the dense
|
|
2369
|
+
// gallery's own plain CSS, matching its neighbors.
|
|
2370
|
+
type='button'
|
|
2371
|
+
className={`cbgd-order-btn${armed ? ' is-active' : ''}`}
|
|
2372
|
+
aria-pressed={armed === true}
|
|
2373
|
+
onClick={onToggleArmed}
|
|
2374
|
+
>
|
|
2375
|
+
{armed ? 'Done selecting' : 'Select'}
|
|
2376
|
+
</button>
|
|
2377
|
+
</Tooltip>
|
|
2378
|
+
) : null}
|
|
2379
|
+
<label className='cbmg-bulkbar-all'>
|
|
2380
|
+
<input
|
|
2381
|
+
// guardrails-ignore no-raw-inputs: a plain control inside a Tailwind-free, plain-CSS row. The Field layer has no slider, and its label chrome would duplicate the label already beside this one.
|
|
2382
|
+
// guardrails-ignore no-raw-inputs: plain-CSS module — see TileSelect.
|
|
2383
|
+
type='checkbox'
|
|
2384
|
+
checked={headerState === true}
|
|
2385
|
+
ref={(el) => {
|
|
2386
|
+
if (el) el.indeterminate = headerState === 'indeterminate';
|
|
2387
|
+
}}
|
|
2388
|
+
readOnly
|
|
2389
|
+
onClick={onToggleAll}
|
|
2390
|
+
disabled={total === 0}
|
|
2391
|
+
/>
|
|
2392
|
+
<span>{count > 0 ? `${count} selected` : 'Select all'}</span>
|
|
2393
|
+
</label>
|
|
2394
|
+
{count > 0 ? (
|
|
2395
|
+
<>
|
|
2396
|
+
<span className='cbmg-bulkbar-spacer' />
|
|
2397
|
+
{/* App actions come BEFORE Delete on purpose: Delete is the destructive one and
|
|
2398
|
+
belongs at the end, furthest from the pointer's resting place after the
|
|
2399
|
+
selection is made. */}
|
|
2400
|
+
{extra}
|
|
2401
|
+
{onDelete ? (
|
|
2402
|
+
<DeleteButton
|
|
2403
|
+
size='sm'
|
|
2404
|
+
// The gallery holds ANY binary kind, so the copy says "item", not "file".
|
|
2405
|
+
// An explicit accessible name, because the visible label is a glyph + a
|
|
2406
|
+
// count — "✕ Delete 2" tells a screen reader nothing about what it deletes.
|
|
2407
|
+
aria-label={`Delete the ${count} selected item${count === 1 ? '' : 's'}`}
|
|
2408
|
+
tooltip={`Delete the ${count} selected item${count === 1 ? '' : 's'}`}
|
|
2409
|
+
confirmOptions={{
|
|
2410
|
+
title: `Delete ${count} item${count === 1 ? '' : 's'}?`,
|
|
2411
|
+
message: 'This cannot be undone.',
|
|
2412
|
+
}}
|
|
2413
|
+
onDelete={onDelete}
|
|
2414
|
+
>
|
|
2415
|
+
✕ Delete {count}
|
|
2416
|
+
</DeleteButton>
|
|
2417
|
+
) : null}
|
|
2418
|
+
<button
|
|
2419
|
+
// guardrails-ignore no-raw-action-button: action pill styled by the dense
|
|
2420
|
+
// gallery's own plain CSS, matching its neighbors.
|
|
2421
|
+
type='button'
|
|
2422
|
+
className='cbgd-order-btn'
|
|
2423
|
+
onClick={onClear}
|
|
2424
|
+
>
|
|
2425
|
+
Clear
|
|
2426
|
+
</button>
|
|
2427
|
+
</>
|
|
2428
|
+
) : null}
|
|
2429
|
+
</div>
|
|
2430
|
+
);
|
|
2431
|
+
}
|