cursedbelt 1.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/dist/client/index.js +1 -1
- package/dist/core/category/index.d.ts.map +1 -1
- package/dist/core/category/index.js +2 -1
- package/dist/core/category/index.js.map +1 -1
- package/dist/core/category/types.js +1 -1
- package/dist/core/category/types.js.map +1 -1
- package/dist/core/file-tree/fileTreeModel.d.ts +49 -0
- package/dist/core/file-tree/fileTreeModel.d.ts.map +1 -1
- package/dist/core/file-tree/fileTreeModel.js +84 -0
- package/dist/core/file-tree/fileTreeModel.js.map +1 -1
- package/dist/core/layout/index.js +1 -1
- package/dist/core/layout/index.js.map +1 -1
- package/dist/core/media/index.js +1 -1
- package/dist/core/media/index.js.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.js +1 -1
- package/dist/core/media/uploadLimits.js.map +1 -1
- package/dist/core/sharing/model.d.ts +1 -1
- package/dist/ctgr/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react/activity-bar/ActivityBar.d.ts +17 -0
- package/dist/react/activity-bar/ActivityBar.d.ts.map +1 -1
- package/dist/react/activity-bar/ActivityBar.js.map +1 -1
- package/dist/react/analytics/index.d.ts +1 -1
- package/dist/react/analytics/index.js +1 -1
- package/dist/react/chat/MessageComposer.d.ts.map +1 -1
- package/dist/react/chat/MessageComposer.js +5 -4
- package/dist/react/chat/MessageComposer.js.map +1 -1
- package/dist/react/components/Button.d.ts.map +1 -1
- package/dist/react/components/Button.js +3 -2
- package/dist/react/components/Button.js.map +1 -1
- 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 +29 -12
- package/dist/react/components/Checkbox.js.map +1 -1
- package/dist/react/components/CodeArea.d.ts.map +1 -1
- package/dist/react/components/CodeArea.js +2 -1
- package/dist/react/components/CodeArea.js.map +1 -1
- package/dist/react/components/Collapsible.d.ts.map +1 -1
- package/dist/react/components/Collapsible.js +2 -1
- package/dist/react/components/Collapsible.js.map +1 -1
- package/dist/react/components/ComboboxField.d.ts.map +1 -1
- package/dist/react/components/ComboboxField.js +3 -2
- package/dist/react/components/ComboboxField.js.map +1 -1
- package/dist/react/components/CopyButton.d.ts.map +1 -1
- package/dist/react/components/CopyButton.js +2 -1
- package/dist/react/components/CopyButton.js.map +1 -1
- package/dist/react/components/DataTable/ColumnChecklist.d.ts.map +1 -1
- package/dist/react/components/DataTable/ColumnChecklist.js +2 -1
- package/dist/react/components/DataTable/ColumnChecklist.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/SortHeader.d.ts.map +1 -1
- package/dist/react/components/DataTable/SortHeader.js +2 -1
- package/dist/react/components/DataTable/SortHeader.js.map +1 -1
- 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/{FilterBuilder.js → TableFilterBuilder.js} +26 -3
- package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -0
- package/dist/react/components/DataTable/Toolbar.d.ts +1 -1
- package/dist/react/components/DataTable/Toolbar.js +3 -3
- package/dist/react/components/DataTable/Toolbar.js.map +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.d.ts.map +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.js +2 -1
- package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
- package/dist/react/components/DataTable/index.d.ts +1 -1
- package/dist/react/components/DataTable/index.d.ts.map +1 -1
- package/dist/react/components/DataTable/index.js +4 -1
- package/dist/react/components/DataTable/index.js.map +1 -1
- package/dist/react/components/DragHandle.d.ts.map +1 -1
- package/dist/react/components/DragHandle.js +2 -1
- package/dist/react/components/DragHandle.js.map +1 -1
- package/dist/react/components/EmojiField.d.ts.map +1 -1
- package/dist/react/components/EmojiField.js +2 -1
- package/dist/react/components/EmojiField.js.map +1 -1
- package/dist/react/components/EventTimeline.d.ts +3 -2
- package/dist/react/components/EventTimeline.d.ts.map +1 -1
- package/dist/react/components/EventTimeline.js +3 -2
- package/dist/react/components/EventTimeline.js.map +1 -1
- package/dist/react/components/IconButton.d.ts +1 -1
- package/dist/react/components/IconButton.js +1 -1
- package/dist/react/components/InfoHint.d.ts.map +1 -1
- package/dist/react/components/InfoHint.js +5 -4
- package/dist/react/components/InfoHint.js.map +1 -1
- package/dist/react/components/InheritBadge.js +1 -1
- package/dist/react/components/InheritBadge.js.map +1 -1
- package/dist/react/components/InlineEditableText.d.ts.map +1 -1
- package/dist/react/components/InlineEditableText.js +2 -1
- package/dist/react/components/InlineEditableText.js.map +1 -1
- package/dist/react/components/MeterList.d.ts.map +1 -1
- package/dist/react/components/MeterList.js +2 -1
- package/dist/react/components/MeterList.js.map +1 -1
- package/dist/react/components/PathText.d.ts +2 -2
- package/dist/react/components/PathText.d.ts.map +1 -1
- package/dist/react/components/PathText.js +2 -1
- package/dist/react/components/PathText.js.map +1 -1
- package/dist/react/components/RatingField.d.ts.map +1 -1
- package/dist/react/components/RatingField.js +2 -1
- package/dist/react/components/RatingField.js.map +1 -1
- package/dist/react/components/SecretInput.js +3 -2
- package/dist/react/components/SecretInput.js.map +1 -1
- package/dist/react/components/SegmentedControl.d.ts.map +1 -1
- package/dist/react/components/SegmentedControl.js +2 -1
- package/dist/react/components/SegmentedControl.js.map +1 -1
- package/dist/react/components/StarRating.d.ts.map +1 -1
- package/dist/react/components/StarRating.js +9 -5
- package/dist/react/components/StarRating.js.map +1 -1
- package/dist/react/components/StatStrip.d.ts.map +1 -1
- package/dist/react/components/StatStrip.js +2 -1
- package/dist/react/components/StatStrip.js.map +1 -1
- package/dist/react/components/StatTile.d.ts.map +1 -1
- package/dist/react/components/StatTile.js +3 -2
- package/dist/react/components/StatTile.js.map +1 -1
- package/dist/react/components/Tabs.d.ts.map +1 -1
- package/dist/react/components/Tabs.js +2 -1
- package/dist/react/components/Tabs.js.map +1 -1
- package/dist/react/components/TruncatedText.d.ts +2 -1
- package/dist/react/components/TruncatedText.d.ts.map +1 -1
- package/dist/react/components/TruncatedText.js +2 -1
- package/dist/react/components/TruncatedText.js.map +1 -1
- package/dist/react/components/calendar/MonthGrid.d.ts.map +1 -1
- package/dist/react/components/calendar/MonthGrid.js +2 -1
- package/dist/react/components/calendar/MonthGrid.js.map +1 -1
- package/dist/react/components/calendar/WeekView.d.ts.map +1 -1
- package/dist/react/components/calendar/WeekView.js +2 -1
- package/dist/react/components/calendar/WeekView.js.map +1 -1
- 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/file-tree/FileTree.d.ts +50 -1
- package/dist/react/file-tree/FileTree.d.ts.map +1 -1
- package/dist/react/file-tree/FileTree.js +234 -6
- package/dist/react/file-tree/FileTree.js.map +1 -1
- package/dist/react/file-tree/fileTree.css +52 -0
- package/dist/react/filter-rail/FilterRail.d.ts.map +1 -1
- package/dist/react/filter-rail/FilterRail.js +5 -4
- package/dist/react/filter-rail/FilterRail.js.map +1 -1
- package/dist/react/folder-tree/FolderTreeRail.d.ts.map +1 -1
- package/dist/react/folder-tree/FolderTreeRail.js +2 -1
- package/dist/react/folder-tree/FolderTreeRail.js.map +1 -1
- package/dist/react/index.d.ts +5 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +5 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/layoutEngine/index.js +1 -1
- package/dist/react/layoutEngine/index.js.map +1 -1
- package/dist/react/lib/field.d.ts.map +1 -1
- package/dist/react/lib/field.js +3 -2
- package/dist/react/lib/field.js.map +1 -1
- package/dist/react/lib/floatingStyles.d.ts.map +1 -1
- package/dist/react/lib/floatingStyles.js +2 -1
- package/dist/react/lib/floatingStyles.js.map +1 -1
- 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/media/VideoTrimmer.d.ts +1 -1
- package/dist/react/media/VideoTrimmer.js +1 -1
- package/dist/react/media/denseGallery.css +3 -3
- package/dist/react/media/ffmpegWasm.js +2 -2
- package/dist/react/media/ffmpegWasm.js.map +1 -1
- package/dist/react/media/videoPlayer.css +42 -0
- package/dist/react/namespace/NamespaceTargetCapsule.d.ts +2 -2
- package/dist/react/namespace/NamespaceTargetCapsule.d.ts.map +1 -1
- package/dist/react/nav/BreadcrumbTrail.d.ts.map +1 -1
- package/dist/react/nav/BreadcrumbTrail.js +4 -3
- package/dist/react/nav/BreadcrumbTrail.js.map +1 -1
- package/dist/react/nav/HubTileGrid.d.ts.map +1 -1
- package/dist/react/nav/HubTileGrid.js +2 -1
- package/dist/react/nav/HubTileGrid.js.map +1 -1
- package/dist/react/nav/SideNav.d.ts.map +1 -1
- package/dist/react/nav/SideNav.js +4 -3
- package/dist/react/nav/SideNav.js.map +1 -1
- package/dist/react/nav/SideNavCustomize.d.ts.map +1 -1
- package/dist/react/nav/SideNavCustomize.js +2 -1
- package/dist/react/nav/SideNavCustomize.js.map +1 -1
- package/dist/react/palette/CommandPalette.d.ts.map +1 -1
- package/dist/react/palette/CommandPalette.js +3 -2
- package/dist/react/palette/CommandPalette.js.map +1 -1
- package/dist/server/drivers/pooledControlStores.pg.test.js +1 -0
- package/dist/server/drivers/pooledControlStores.pg.test.js.map +1 -1
- package/dist/server/drivers/pooledIdentityStore.pg.test.js +1 -0
- package/dist/server/drivers/pooledIdentityStore.pg.test.js.map +1 -1
- package/dist/server/drivers/retentionPolicy.pg.test.js +1 -0
- package/dist/server/drivers/retentionPolicy.pg.test.js.map +1 -1
- package/dist/server/guard/argon2Binding.d.ts +1 -1
- package/dist/server/guard/argon2Binding.js +1 -1
- package/dist/server/incidents/store.d.ts +3 -3
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/master-lock/masterLock.d.ts +1 -1
- package/dist/server/media-bun/index.js +1 -1
- package/dist/server/media-bun/index.js.map +1 -1
- 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/retention/archive.d.ts +3 -4
- package/dist/server/retention/archive.d.ts.map +1 -1
- package/dist/server/retention/archive.js +20 -15
- package/dist/server/retention/archive.js.map +1 -1
- package/dist/server/retention/index.d.ts +1 -1
- package/dist/server/retention/index.js +1 -1
- package/dist/server/retention/policy.d.ts +2 -2
- package/dist/server/retention/policy.d.ts.map +1 -1
- package/dist/server/retention/policy.js +1 -1
- package/dist/server/retention/store.d.ts.map +1 -1
- package/dist/server/retention/store.js +27 -20
- package/dist/server/retention/store.js.map +1 -1
- package/dist/server/runtime/localHost.d.ts +10 -5
- package/dist/server/runtime/localHost.d.ts.map +1 -1
- package/dist/server/runtime/localHost.js +12 -8
- package/dist/server/runtime/localHost.js.map +1 -1
- package/dist/server/runtime/meterRollup.pg.test.js +1 -0
- package/dist/server/runtime/meterRollup.pg.test.js.map +1 -1
- package/dist/server/runtime/recipe.d.ts +4 -4
- package/dist/server/runtime/retentionJob.pg.test.js +1 -0
- package/dist/server/runtime/retentionJob.pg.test.js.map +1 -1
- package/dist/server/search/pgSearchProvider.pg.test.js +1 -0
- package/dist/server/search/pgSearchProvider.pg.test.js.map +1 -1
- package/dist/shared/errors.d.ts +1 -1
- package/dist/shared/errors.js +1 -1
- package/dist/styles-static.css +391 -0
- package/dist/styles.css +27 -0
- package/package.json +19 -167
- package/scripts/generateStaticStyles.ts +122 -0
- package/scripts/publicSurface.ts +455 -0
- package/scripts/testTmpRoot.ts +34 -5
- package/src/client/index.ts +1 -1
- package/src/core/category/index.ts +2 -1
- package/src/core/category/types.ts +1 -1
- package/src/core/file-tree/fileTreeModel.spec.ts +134 -0
- package/src/core/file-tree/fileTreeModel.ts +104 -0
- package/src/core/layout/index.ts +1 -1
- package/src/core/media/index.ts +1 -1
- package/src/core/media/types.ts +1 -1
- package/src/core/media/uploadLimits.ts +1 -1
- package/src/core/sharing/model.ts +1 -1
- package/src/ctgr/index.ts +1 -1
- package/src/declaredDepsAreImported.spec.ts +87 -0
- package/src/demoFixture.spec.ts +133 -0
- package/src/index.ts +1 -1
- package/src/lockfileIsTracked.spec.ts +50 -0
- package/src/namedSubpathsResolve.spec.ts +119 -0
- package/src/publicSurface.spec.ts +72 -0
- package/src/react/activity-bar/ActivityBar.tsx +17 -0
- package/src/react/analytics/index.ts +1 -1
- package/src/react/chat/MessageComposer.tsx +5 -4
- package/src/react/components/Button.tsx +3 -2
- package/src/react/components/Checkbox.spec.tsx +51 -0
- package/src/react/components/Checkbox.tsx +68 -26
- package/src/react/components/CodeArea.tsx +2 -1
- package/src/react/components/CodeChip.spec.tsx +2 -2
- package/src/react/components/Collapsible.tsx +2 -1
- package/src/react/components/ComboboxField.tsx +3 -2
- package/src/react/components/CopyButton.tsx +2 -1
- package/src/react/components/CopyableText.spec.tsx +1 -1
- package/src/react/components/DataTable/ColumnChecklist.tsx +2 -1
- package/src/react/components/DataTable/Pagination.tsx +2 -1
- package/src/react/components/DataTable/SortHeader.tsx +2 -1
- package/src/react/components/DataTable/{FilterBuilder.tsx → TableFilterBuilder.tsx} +33 -5
- package/src/react/components/DataTable/Toolbar.tsx +3 -3
- package/src/react/components/DataTable/cells/LinkCell.tsx +2 -1
- package/src/react/components/DataTable/index.ts +8 -1
- package/src/react/components/DragHandle.tsx +2 -1
- package/src/react/components/EmojiField.tsx +2 -1
- package/src/react/components/EventTimeline.tsx +3 -2
- package/src/react/components/FileLocation.spec.tsx +1 -1
- package/src/react/components/IconButton.tsx +1 -1
- package/src/react/components/InfoHint.tsx +5 -4
- package/src/react/components/InheritBadge.tsx +1 -1
- package/src/react/components/InlineEditableText.tsx +2 -1
- package/src/react/components/MeterList.tsx +2 -1
- package/src/react/components/PathText.tsx +4 -3
- package/src/react/components/RatingField.tsx +2 -1
- package/src/react/components/SecretInput.tsx +3 -3
- package/src/react/components/SegmentedControl.tsx +2 -2
- package/src/react/components/StarRating.spec.tsx +2 -2
- package/src/react/components/StarRating.tsx +9 -5
- package/src/react/components/StatStrip.tsx +2 -1
- package/src/react/components/StatTile.tsx +3 -3
- package/src/react/components/Tabs.spec.tsx +3 -2
- package/src/react/components/Tabs.tsx +2 -1
- package/src/react/components/TruncatedText.tsx +2 -1
- package/src/react/components/calendar/MonthGrid.spec.tsx +2 -1
- package/src/react/components/calendar/MonthGrid.tsx +2 -1
- package/src/react/components/calendar/WeekView.tsx +2 -1
- package/src/react/components/revealOnHover.ts +3 -2
- package/src/react/file-tree/FileTree.spec.tsx +248 -0
- package/src/react/file-tree/FileTree.tsx +304 -4
- package/src/react/file-tree/fileTree.css +52 -0
- package/src/react/file-tree/fileTreeGeometry.fixture.json +151 -0
- package/src/react/file-tree/fileTreeGeometry.spec.ts +33 -52
- package/src/react/filter-rail/FilterRail.spec.tsx +2 -1
- package/src/react/filter-rail/FilterRail.tsx +5 -4
- package/src/react/folder-tree/FolderTreeRail.tsx +2 -1
- package/src/react/index.ts +13 -3
- package/src/react/layoutEngine/index.ts +1 -1
- package/src/react/layoutEngine/types.ts +1 -1
- package/src/react/lib/field.ts +4 -2
- package/src/react/lib/floatingStyles.spec.ts +2 -1
- package/src/react/lib/floatingStyles.ts +3 -1
- package/src/react/lib/tapTarget.ts +100 -0
- package/src/react/media/MaskPainter.tsx +2 -2
- package/src/react/media/VideoTrimmer.tsx +1 -1
- package/src/react/media/denseGallery.css +3 -3
- package/src/react/media/ffmpegWasm.ts +2 -2
- package/src/react/media/videoPlayer.css +42 -0
- package/src/react/namespace/NamespaceTargetCapsule.tsx +2 -2
- package/src/react/nav/BreadcrumbTrail.tsx +4 -3
- package/src/react/nav/HubTileGrid.tsx +2 -1
- package/src/react/nav/SideNav.tsx +4 -3
- package/src/react/nav/SideNavCustomize.tsx +2 -1
- package/src/react/palette/CommandPalette.tsx +3 -2
- package/src/server/ctgr.ts +1 -1
- package/src/server/drivers/pooledControlStores.pg.test.ts +1 -0
- package/src/server/drivers/pooledIdentityStore.pg.test.ts +1 -0
- package/src/server/drivers/retentionPolicy.pg.test.ts +1 -0
- package/src/server/guard/argon2Binding.ts +1 -1
- package/src/server/incidents/store.ts +3 -3
- package/src/server/index.ts +1 -1
- package/src/server/master-lock/masterLock.spec.ts +18 -2
- package/src/server/master-lock/masterLock.ts +1 -1
- package/src/server/media-bun/image.spec.ts +1 -0
- package/src/server/media-bun/index.ts +1 -1
- package/src/server/media-bun/video.spec.ts +1 -0
- package/src/server/paths/appDataHome.spec.ts +87 -0
- package/src/server/paths/appDataHome.ts +84 -0
- package/src/server/retention/archive.spec.ts +26 -4
- package/src/server/retention/archive.ts +20 -15
- package/src/server/retention/index.ts +1 -1
- package/src/server/retention/policy.ts +2 -2
- package/src/server/retention/store.spec.ts +38 -10
- package/src/server/retention/store.ts +26 -19
- package/src/server/runtime/localHost.spec.ts +22 -3
- package/src/server/runtime/localHost.ts +12 -9
- package/src/server/runtime/meterRollup.pg.test.ts +1 -0
- package/src/server/runtime/recipe.ts +4 -4
- package/src/server/runtime/retentionJob.pg.test.ts +1 -0
- package/src/server/search/pgSearchProvider.pg.test.ts +1 -0
- package/src/server/storage/binaryServerProcessing.integration.spec.ts +6 -2
- package/src/server/storage/chunked.integration.spec.ts +5 -2
- package/src/server/storage/fileUploadClient-chunked.integration.spec.ts +5 -2
- package/src/server/storage/files/adapter.photo.display.spec.ts +1 -0
- package/src/server/storage/imageThumbnail.spec.ts +1 -0
- package/src/server/storage/transcode.integration.spec.ts +5 -2
- package/src/server/storage/videoProcessor.posterOnly.spec.ts +1 -0
- package/src/shared/errors.ts +1 -1
- package/src/skippedTestsAreAnswered.spec.ts +215 -0
- package/src/styles-static.css +391 -0
- package/src/styles.css +27 -0
- package/src/stylesStaticMatches.spec.ts +134 -0
- package/src/tapTargetStylesheet.spec.ts +150 -0
- package/src/testTmpRoot.spec.ts +102 -0
- package/dist/core/duplicates/index.d.ts +0 -116
- package/dist/core/duplicates/index.d.ts.map +0 -1
- package/dist/core/duplicates/index.js +0 -178
- package/dist/core/duplicates/index.js.map +0 -1
- package/dist/core/namespace/helpers.d.ts +0 -14
- package/dist/core/namespace/helpers.d.ts.map +0 -1
- package/dist/core/namespace/helpers.js +0 -29
- package/dist/core/namespace/helpers.js.map +0 -1
- package/dist/core/namespace/index.d.ts +0 -4
- package/dist/core/namespace/index.d.ts.map +0 -1
- package/dist/core/namespace/index.js +0 -6
- package/dist/core/namespace/index.js.map +0 -1
- package/dist/core/namespace/memoryStore.d.ts +0 -19
- package/dist/core/namespace/memoryStore.d.ts.map +0 -1
- package/dist/core/namespace/memoryStore.js +0 -70
- package/dist/core/namespace/memoryStore.js.map +0 -1
- package/dist/core/namespace/types.d.ts +0 -44
- package/dist/core/namespace/types.d.ts.map +0 -1
- package/dist/core/namespace/types.js +0 -8
- package/dist/core/namespace/types.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 -78
- package/dist/game/react/useGameEngine.js.map +0 -1
- package/dist/react/canvas/CanvasNavHUD.d.ts +0 -64
- package/dist/react/canvas/CanvasNavHUD.d.ts.map +0 -1
- package/dist/react/canvas/CanvasNavHUD.js +0 -58
- package/dist/react/canvas/CanvasNavHUD.js.map +0 -1
- package/dist/react/canvas/fitLabel.d.ts +0 -53
- package/dist/react/canvas/fitLabel.d.ts.map +0 -1
- package/dist/react/canvas/fitLabel.js +0 -104
- package/dist/react/canvas/fitLabel.js.map +0 -1
- package/dist/react/canvas/index.d.ts +0 -4
- package/dist/react/canvas/index.d.ts.map +0 -1
- package/dist/react/canvas/index.js +0 -4
- package/dist/react/canvas/index.js.map +0 -1
- package/dist/react/canvas/lod.d.ts +0 -40
- package/dist/react/canvas/lod.d.ts.map +0 -1
- package/dist/react/canvas/lod.js +0 -37
- package/dist/react/canvas/lod.js.map +0 -1
- package/dist/react/components/DataTable/FilterBuilder.d.ts +0 -38
- package/dist/react/components/DataTable/FilterBuilder.d.ts.map +0 -1
- package/dist/react/components/DataTable/FilterBuilder.js.map +0 -1
- package/dist/react/seo/HeadProvider.d.ts +0 -14
- package/dist/react/seo/HeadProvider.d.ts.map +0 -1
- package/dist/react/seo/HeadProvider.js +0 -44
- package/dist/react/seo/HeadProvider.js.map +0 -1
- package/dist/react/seo/applyHeadToDocument.d.ts +0 -3
- package/dist/react/seo/applyHeadToDocument.d.ts.map +0 -1
- package/dist/react/seo/applyHeadToDocument.js +0 -66
- package/dist/react/seo/applyHeadToDocument.js.map +0 -1
- package/dist/react/seo/index.d.ts +0 -3
- package/dist/react/seo/index.d.ts.map +0 -1
- package/dist/react/seo/index.js +0 -7
- package/dist/react/seo/index.js.map +0 -1
- package/dist/react/timeline/ClipView.d.ts +0 -29
- package/dist/react/timeline/ClipView.d.ts.map +0 -1
- package/dist/react/timeline/ClipView.js +0 -53
- package/dist/react/timeline/ClipView.js.map +0 -1
- package/dist/react/timeline/Playhead.d.ts +0 -16
- package/dist/react/timeline/Playhead.d.ts.map +0 -1
- package/dist/react/timeline/Playhead.js +0 -26
- package/dist/react/timeline/Playhead.js.map +0 -1
- package/dist/react/timeline/TimeRuler.d.ts +0 -21
- package/dist/react/timeline/TimeRuler.d.ts.map +0 -1
- package/dist/react/timeline/TimeRuler.js +0 -31
- package/dist/react/timeline/TimeRuler.js.map +0 -1
- package/dist/react/timeline/TimelineSurface.d.ts +0 -29
- package/dist/react/timeline/TimelineSurface.d.ts.map +0 -1
- package/dist/react/timeline/TimelineSurface.js +0 -56
- package/dist/react/timeline/TimelineSurface.js.map +0 -1
- package/dist/react/timeline/TrackLane.d.ts +0 -31
- package/dist/react/timeline/TrackLane.d.ts.map +0 -1
- package/dist/react/timeline/TrackLane.js +0 -32
- package/dist/react/timeline/TrackLane.js.map +0 -1
- package/dist/react/timeline/index.d.ts +0 -6
- package/dist/react/timeline/index.d.ts.map +0 -1
- package/dist/react/timeline/index.js +0 -12
- package/dist/react/timeline/index.js.map +0 -1
- package/dist/server/private-media/index.d.ts +0 -7
- package/dist/server/private-media/index.d.ts.map +0 -1
- package/dist/server/private-media/index.js +0 -13
- package/dist/server/private-media/index.js.map +0 -1
- package/dist/server/seo/index.d.ts +0 -3
- package/dist/server/seo/index.d.ts.map +0 -1
- package/dist/server/seo/index.js +0 -6
- package/dist/server/seo/index.js.map +0 -1
- package/dist/server/seo/mountSeoRoutes.d.ts +0 -9
- package/dist/server/seo/mountSeoRoutes.d.ts.map +0 -1
- package/dist/server/seo/mountSeoRoutes.js +0 -19
- package/dist/server/seo/mountSeoRoutes.js.map +0 -1
- package/dist/server/seo/serveHeadInjectedIndex.d.ts +0 -9
- package/dist/server/seo/serveHeadInjectedIndex.d.ts.map +0 -1
- package/dist/server/seo/serveHeadInjectedIndex.js +0 -20
- package/dist/server/seo/serveHeadInjectedIndex.js.map +0 -1
- package/dist/upload.d.ts +0 -148
- package/dist/upload.d.ts.map +0 -1
- package/dist/upload.js +0 -159
- package/dist/upload.js.map +0 -1
- package/dist/verify/runtime/index.d.ts +0 -16
- package/dist/verify/runtime/index.d.ts.map +0 -1
- package/dist/verify/runtime/index.js +0 -16
- package/dist/verify/runtime/index.js.map +0 -1
- package/scripts/demoCheck.ts +0 -42
- package/src/core/duplicates/index.spec.ts +0 -116
- package/src/core/duplicates/index.ts +0 -203
- package/src/core/namespace/helpers.ts +0 -31
- package/src/core/namespace/index.ts +0 -12
- package/src/core/namespace/memoryStore.ts +0 -77
- package/src/core/namespace/namespace.spec.ts +0 -117
- package/src/core/namespace/types.ts +0 -53
- package/src/game/core/DisposeRegistry.spec.ts +0 -53
- package/src/game/core/DisposeRegistry.ts +0 -70
- package/src/game/core/drawBudget.spec.ts +0 -51
- package/src/game/core/drawBudget.ts +0 -75
- package/src/game/core/fixedTimestep.spec.ts +0 -91
- package/src/game/core/fixedTimestep.ts +0 -79
- package/src/game/core/index.ts +0 -16
- package/src/game/core/inputCollector.spec.ts +0 -29
- package/src/game/core/inputCollector.ts +0 -245
- package/src/game/core/resizeCanvas.ts +0 -31
- package/src/game/react/index.ts +0 -10
- package/src/game/react/useGameEngine.ts +0 -125
- package/src/react/canvas/CanvasNavHUD.spec.tsx +0 -62
- package/src/react/canvas/CanvasNavHUD.tsx +0 -210
- package/src/react/canvas/fitLabel.spec.ts +0 -82
- package/src/react/canvas/fitLabel.ts +0 -150
- package/src/react/canvas/index.ts +0 -15
- package/src/react/canvas/lod.ts +0 -53
- package/src/react/seo/HeadProvider.tsx +0 -67
- package/src/react/seo/applyHeadToDocument.ts +0 -73
- package/src/react/seo/index.ts +0 -12
- package/src/react/seo/seo.spec.tsx +0 -101
- package/src/react/timeline/ClipView.tsx +0 -146
- package/src/react/timeline/Playhead.tsx +0 -63
- package/src/react/timeline/TimeRuler.tsx +0 -85
- package/src/react/timeline/TimelineSurface.tsx +0 -157
- package/src/react/timeline/TrackLane.tsx +0 -87
- package/src/react/timeline/index.ts +0 -12
- package/src/react/timeline/timeline.spec.tsx +0 -175
- package/src/server/private-media/index.ts +0 -45
- package/src/server/seo/index.ts +0 -8
- package/src/server/seo/mountSeoRoutes.ts +0 -37
- package/src/server/seo/seo.spec.ts +0 -128
- package/src/server/seo/serveHeadInjectedIndex.ts +0 -36
- package/src/upload.spec.ts +0 -300
- package/src/upload.ts +0 -288
- package/src/verify/runtime/index.ts +0 -64
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useId, useRef, useState } from 'react';
|
|
3
3
|
import { cn } from '../lib/cn';
|
|
4
4
|
import { Tooltip } from './Tooltip';
|
|
5
|
+
import { TAP_TARGET, TAP_TARGET_HEIGHT } from '../lib/tapTarget';
|
|
5
6
|
const SIZE_CLASS = {
|
|
6
7
|
sm: 'h-3.5',
|
|
7
8
|
md: 'h-5',
|
|
@@ -43,10 +44,13 @@ export function StarRating({ value, onChange, label, step = 1, max = 5, size = '
|
|
|
43
44
|
return (_jsx("button", {
|
|
44
45
|
// guardrails-ignore no-raw-action-button: a star is a GLYPH, not a chrome control — Button/IconButton bring a border, a background, a hover fill and a locked `icon*` size, and five of those in a table cell is a toolbar where a rating should be. This IS the rating primitive; what the rule protects (the ≥44px coarse-pointer target, the visible focus ring, `type='button'`) is carried here explicitly and pinned by StarRating.spec.tsx.
|
|
45
46
|
type: 'button',
|
|
46
|
-
// ≥44px on a coarse pointer without growing the PAINTED star
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
|
|
47
|
+
// ≥44px on a coarse pointer without growing the PAINTED star: this
|
|
48
|
+
// button has no background of its own, so the floor can sit on it
|
|
49
|
+
// directly. (Checkbox cannot do that — its control IS the painted
|
|
50
|
+
// box, so its floor lives on the `<label>` around it instead.) A
|
|
51
|
+
// 20px star with a 44px target is the whole reason music could stop
|
|
52
|
+
// hiding its rating on a phone.
|
|
53
|
+
className: cn('inline-flex cursor-pointer items-center justify-center rounded-sm bg-transparent p-0', TAP_TARGET, 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', height), "aria-label": star === value ? `Clear the rating${about}` : `Rate ${star} out of ${max}${about}`, "aria-pressed": star <= value, onPointerEnter: () => setHover(star), onPointerLeave: () => setHover(null), onFocus: () => setHover(star), onBlur: () => setHover(null), onClick: (event) => {
|
|
50
54
|
// A rating control very often sits inside a row that is itself
|
|
51
55
|
// click-to-open (music's track row plays the track). Without
|
|
52
56
|
// this, rating something also activates it.
|
|
@@ -76,7 +80,7 @@ export function StarRating({ value, onChange, label, step = 1, max = 5, size = '
|
|
|
76
80
|
}
|
|
77
81
|
return whole;
|
|
78
82
|
};
|
|
79
|
-
return (_jsx("div", { ref: rowRef, role: 'slider', "aria-label": label ? `rating for ${label}` : 'rating', "aria-valuemin": 0, "aria-valuemax": max, "aria-valuenow": value, "aria-valuetext": value ? `${value} of ${max} stars` : 'unrated', tabIndex: 0, className: cn('inline-flex w-fit cursor-pointer gap-0.5 outline-none',
|
|
83
|
+
return (_jsx("div", { ref: rowRef, role: 'slider', "aria-label": label ? `rating for ${label}` : 'rating', "aria-valuemin": 0, "aria-valuemax": max, "aria-valuenow": value, "aria-valuetext": value ? `${value} of ${max} stars` : 'unrated', tabIndex: 0, className: cn('inline-flex w-fit cursor-pointer gap-0.5 outline-none', `${TAP_TARGET_HEIGHT} pointer-coarse:items-center`, 'focus-visible:ring-2 focus-visible:ring-ring', height, className), onPointerMove: (e) => setHover(fromPointer(e.clientX)), onPointerLeave: () => setHover(null), onPointerDown: (e) => {
|
|
80
84
|
const next = fromPointer(e.clientX);
|
|
81
85
|
e.stopPropagation();
|
|
82
86
|
onChange?.(next === value ? 0 : next);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StarRating.js","sourceRoot":"","sources":["../../../src/react/components/StarRating.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"StarRating.js","sourceRoot":"","sources":["../../../src/react/components/StarRating.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatStrip.d.ts","sourceRoot":"","sources":["../../../src/react/components/StatStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAMtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"StatStrip.d.ts","sourceRoot":"","sources":["../../../src/react/components/StatStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAMtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,yEAAyE;IACzE,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB;0DACsD;IACtD,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;wEACoE;IACpE,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,WAA0B,EAAE,IAAY,EAAE,SAAS,EAAE,EAAE,cAAc,+BA8DvG"}
|
|
@@ -4,6 +4,7 @@ import { cn } from '../lib/cn';
|
|
|
4
4
|
import { ScrollArea } from './ScrollArea';
|
|
5
5
|
import { Surface } from './Surface';
|
|
6
6
|
import { Sparkline } from './Sparkline';
|
|
7
|
+
import { TAP_TARGET_ALWAYS } from '../lib/tapTarget';
|
|
7
8
|
const TONE_DOT = {
|
|
8
9
|
success: 'bg-success',
|
|
9
10
|
warning: 'bg-warning',
|
|
@@ -11,7 +12,7 @@ const TONE_DOT = {
|
|
|
11
12
|
neutral: 'bg-border-strong',
|
|
12
13
|
};
|
|
13
14
|
function ItemBody({ item, orientation }) {
|
|
14
|
-
return (_jsxs(_Fragment, { children: [_jsxs("span", { className: 'cb-meta-label flex items-center gap-1.5', children: [item.tone ? (_jsx("span", { "aria-hidden": true, className: cn('size-1.5 shrink-0 rounded-full', TONE_DOT[item.tone]) })) : null, _jsx("span", { className: 'truncate', children: item.label }), item.actionHint ? (_jsx("span", { className: cn('ml-auto text-caption font-medium normal-case tracking-normal text-muted-foreground',
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsxs("span", { className: 'cb-meta-label flex items-center gap-1.5', children: [item.tone ? (_jsx("span", { "aria-hidden": true, className: cn('size-1.5 shrink-0 rounded-full', TONE_DOT[item.tone]) })) : null, _jsx("span", { className: 'truncate', children: item.label }), item.actionHint ? (_jsx("span", { className: cn('ml-auto text-caption font-medium normal-case tracking-normal text-muted-foreground', `opacity-0 transition-opacity group-hover/stat:opacity-100 group-focus-visible/stat:opacity-100 ${TAP_TARGET_ALWAYS}`), children: item.actionHint })) : null] }), _jsx("span", { className: cn('font-semibold leading-tight tabular-nums text-foreground', orientation === 'horizontal' ? 'text-lg' : 'text-base'), children: item.value }), item.sub ? _jsx("span", { className: 'text-xs text-muted-foreground', children: item.sub }) : null, item.spark ? _jsx(Sparkline, { data: item.spark, className: 'h-5' }) : null] }));
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* A condensed KPI strip: metric name, value, and context inline on ONE compact
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatStrip.js","sourceRoot":"","sources":["../../../src/react/components/StatStrip.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"StatStrip.js","sourceRoot":"","sources":["../../../src/react/components/StatStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatTile.d.ts","sourceRoot":"","sources":["../../../src/react/components/StatTile.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StatTile.d.ts","sourceRoot":"","sources":["../../../src/react/components/StatTile.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;qEAIqE;AACrE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AASxE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kEAAkE;IAClE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;qFACiF;IACjF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC3C;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,SAAS,CAAC;QACjB;;;;;WAKG;QACH,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;QAC/B,4EAA4E;QAC5E,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QACpC,4EAA4E;QAC5E,KAAK,CAAC,EAAE,SAAS,CAAC;KACnB,CAAC;CACH;AAgDD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,KAAK,GACN,EAAE,aAAa,+BAmHf"}
|
|
@@ -5,6 +5,7 @@ import { CopyButton } from './CopyButton';
|
|
|
5
5
|
import { Sparkline } from './Sparkline';
|
|
6
6
|
import { TruncatedText } from './TruncatedText';
|
|
7
7
|
import { Tooltip } from './Tooltip';
|
|
8
|
+
import { TAP_TARGET_ALWAYS } from '../lib/tapTarget';
|
|
8
9
|
const TONE_BAR = {
|
|
9
10
|
success: 'bg-success',
|
|
10
11
|
warning: 'bg-warning',
|
|
@@ -19,7 +20,7 @@ const VALUE_SIZE = { sm: 'text-base', md: 'text-2xl', lg: 'text-3xl' };
|
|
|
19
20
|
* an unnamed group-hover would make all eight copy buttons appear at once the
|
|
20
21
|
* moment the pointer entered the panel.
|
|
21
22
|
*/
|
|
22
|
-
const REVEAL_ON_TILE_HOVER =
|
|
23
|
+
const REVEAL_ON_TILE_HOVER = `opacity-0 transition-opacity group-hover/tile:opacity-100 focus-visible:opacity-100 ${TAP_TARGET_ALWAYS}`;
|
|
23
24
|
/** Color by SEMANTIC direction, never by the sign of the number. */
|
|
24
25
|
const DELTA_CLASS = {
|
|
25
26
|
good: 'text-success',
|
|
@@ -63,7 +64,7 @@ function valueClass(value, valueSize) {
|
|
|
63
64
|
*/
|
|
64
65
|
export function StatTile({ label, value, sub, spark, progress, color, icon, tone, valueSize, onPress, actionHint, help, copyValue, delta, }) {
|
|
65
66
|
const pct = progress && progress.max > 0 ? Math.round((progress.value / progress.max) * 100) : null;
|
|
66
|
-
const body = (_jsxs("div", { className: cn('flex min-w-0 flex-col justify-between gap-2', tone && 'flex-1'), children: [_jsxs("div", { className: 'flex items-center justify-between gap-2', children: [_jsxs("span", { className: 'flex min-w-0 items-center gap-1', children: [_jsx(TruncatedText, { className: 'cb-meta-label min-w-0', children: label }), help ? (_jsxs(_Fragment, { children: [_jsx(Tooltip, { content: help, multiline: true, maxWidth: 300, mobile: 'tap', children: _jsx("span", { "aria-hidden": true, className: 'inline-flex size-4 shrink-0 cursor-help items-center justify-center rounded-full text-muted-foreground', children: _jsx(Info, { className: 'size-3.5' }) }) }), _jsxs("span", { className: 'sr-only', "data-cb-stat-help": true, children: [`What "${label}" means: `, help] })] })) : null] }), onPress && actionHint ? (_jsx("span", { "aria-hidden": true, className:
|
|
67
|
+
const body = (_jsxs("div", { className: cn('flex min-w-0 flex-col justify-between gap-2', tone && 'flex-1'), children: [_jsxs("div", { className: 'flex items-center justify-between gap-2', children: [_jsxs("span", { className: 'flex min-w-0 items-center gap-1', children: [_jsx(TruncatedText, { className: 'cb-meta-label min-w-0', children: label }), help ? (_jsxs(_Fragment, { children: [_jsx(Tooltip, { content: help, multiline: true, maxWidth: 300, mobile: 'tap', children: _jsx("span", { "aria-hidden": true, className: 'inline-flex size-4 shrink-0 cursor-help items-center justify-center rounded-full text-muted-foreground', children: _jsx(Info, { className: 'size-3.5' }) }) }), _jsxs("span", { className: 'sr-only', "data-cb-stat-help": true, children: [`What "${label}" means: `, help] })] })) : null] }), onPress && actionHint ? (_jsx("span", { "aria-hidden": true, className: `text-caption font-medium text-muted-foreground opacity-0 transition-opacity group-hover/tile:opacity-100 group-focus-visible/tile:opacity-100 ${TAP_TARGET_ALWAYS}`, children: actionHint })) : null, copyValue ? (_jsx(CopyButton, { value: copyValue === true
|
|
67
68
|
? () => defaultCopyText(label, value, sub)
|
|
68
69
|
: copyValue, label: `Copy ${label}`, confirmToast: false, iconSize: 13, stopPropagation: true, className: cn('size-6 shrink-0 p-0', REVEAL_ON_TILE_HOVER) })) : null, icon ? _jsx("span", { className: 'text-muted-foreground', children: icon }) : null] }), _jsx("div", { className: cn(valueClass(value, valueSize), 'min-w-0 break-words font-semibold leading-tight tabular-nums'), style: color ? { color } : undefined, children: value }), delta ? (_jsxs("div", { className: 'flex min-w-0 items-baseline gap-1.5 text-xs', children: [_jsxs("span", { className: cn('shrink-0 tabular-nums font-medium', DELTA_CLASS[delta.direction ?? 'flat']), children: [_jsx("span", { "aria-hidden": true, className: 'mr-0.5 text-[0.6rem]', children: TREND_GLYPH[delta.trend ?? 'flat'] }), delta.value] }), delta.since ? (_jsx("span", { className: 'truncate text-muted-foreground', children: delta.since })) : null] })) : null, sub ? (_jsx(Tooltip, { content: typeof sub === 'string' ? sub : undefined, children: _jsx("div", { className: 'truncate text-xs text-muted-foreground', children: sub }) })) : null, spark ? _jsx(Sparkline, { data: spark }) : null, progress && pct != null ? (_jsxs("div", { children: [_jsx("div", { className: 'h-1.5 w-full overflow-hidden rounded-full bg-muted', children: _jsx("div", { className: cn('h-full rounded-full bg-accent-solid', progress.barClassName), style: { width: `${Math.min(100, pct)}%` } }) }), progress.label ? (_jsx("div", { className: 'mt-1 text-xs text-muted-foreground', children: progress.label })) : null] })) : null] }));
|
|
69
70
|
if (!tone)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatTile.js","sourceRoot":"","sources":["../../../src/react/components/StatTile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"StatTile.js","sourceRoot":"","sources":["../../../src/react/components/StatTile.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAChD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC9C,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,EACb,OAAqB,EACrB,IAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EAAE,SAAkB,GACjC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA+G5B"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as RadixTabs from '@radix-ui/react-tabs';
|
|
3
3
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { cn } from '../lib/cn';
|
|
5
|
+
import { TAP_TARGET } from '../lib/tapTarget';
|
|
5
6
|
/**
|
|
6
7
|
* Tabbed panels built on Radix `Tabs` — full tablist/tab/tabpanel ARIA pattern with
|
|
7
8
|
* roving focus and arrow-key navigation for free. Unlike {@link SegmentedControl}
|
|
@@ -56,7 +57,7 @@ export function Tabs({ items, value, defaultValue, onValueChange, variant = 'und
|
|
|
56
57
|
// an automated touch-target probe flags even though `min-h-11` already
|
|
57
58
|
// satisfies the height floor (orch-host task-sources mobile scan measured
|
|
58
59
|
// a "db" tab at 17×44px).
|
|
59
|
-
|
|
60
|
+
TAP_TARGET,
|
|
60
61
|
// Active underline tab: accent underline + accent text + semibold — the
|
|
61
62
|
// same accent-marks-the-active-view treatment as the sidebar nav, so the
|
|
62
63
|
// selected tab is unmistakable at a glance (not just a hairline shift).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/react/components/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,8 @@ export interface TruncatedTextProps {
|
|
|
38
38
|
*
|
|
39
39
|
* It also answers `DESIGN.md` §5's "node labels must never truncate with harsh,
|
|
40
40
|
* broken text string cuts" for the DOM case: the cut is still there, but the whole
|
|
41
|
-
* string is one hover away instead of lost.
|
|
41
|
+
* string is one hover away instead of lost. (The canvas/SVG half of that answer lived
|
|
42
|
+
* in `react/canvas`, removed with the unreferenced subpaths on 2026-09-13.)
|
|
42
43
|
*
|
|
43
44
|
* ── The hint is conditional, and measured at MOUNT ───────────────────────────
|
|
44
45
|
* A hover bubble that repeats a label you can already read in full is noise, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TruncatedText.d.ts","sourceRoot":"","sources":["../../../src/react/components/TruncatedText.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;sFACkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;sFAGkF;IAClF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8EAA8E;IAC9E,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED
|
|
1
|
+
{"version":3,"file":"TruncatedText.d.ts","sourceRoot":"","sources":["../../../src/react/components/TruncatedText.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,mFAAmF;IACnF,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;sFACkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;sFAGkF;IAClF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8EAA8E;IAC9E,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,EAAE,EAAE,GAAY,EAChB,KAAS,EACT,IAAI,EACJ,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BA4CpB"}
|
|
@@ -16,7 +16,8 @@ import { Tooltip } from './Tooltip';
|
|
|
16
16
|
*
|
|
17
17
|
* It also answers `DESIGN.md` §5's "node labels must never truncate with harsh,
|
|
18
18
|
* broken text string cuts" for the DOM case: the cut is still there, but the whole
|
|
19
|
-
* string is one hover away instead of lost.
|
|
19
|
+
* string is one hover away instead of lost. (The canvas/SVG half of that answer lived
|
|
20
|
+
* in `react/canvas`, removed with the unreferenced subpaths on 2026-09-13.)
|
|
20
21
|
*
|
|
21
22
|
* ── The hint is conditional, and measured at MOUNT ───────────────────────────
|
|
22
23
|
* A hover bubble that repeats a label you can already read in full is noise, so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../../../src/react/components/TruncatedText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAIL,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AA2B3D
|
|
1
|
+
{"version":3,"file":"TruncatedText.js","sourceRoot":"","sources":["../../../src/react/components/TruncatedText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAIL,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AA2B3D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,KAAK,GAAG,CAAC,EACT,IAAI,EACJ,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACY;IACnB,MAAM,GAAG,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,kFAAkF;QAClF,UAAU,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,CAAC;QACV,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QAClE,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,CACX,KAAC,GAAG,IACF,GAAG,EAAE,GAAG,KACJ,IAAI,EACR,SAAS,EAAE,EAAE,CACX,eAAe,EACf,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAC1C,SAAS,CACV,EACD,KAAK,EACH,KAAK,GAAG,CAAC;YACP,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE;YACjF,CAAC,CAAC,SAAS,YAGd,QAAQ,GACL,CACP,CAAC;IAEF,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,CACL,KAAC,OAAO,IAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,kBACtD,IAAI,GACG,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthGrid.d.ts","sourceRoot":"","sources":["../../../../src/react/components/calendar/MonthGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthGrid.d.ts","sourceRoot":"","sources":["../../../../src/react/components/calendar/MonthGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,GAAG,EAAE,IAAI,CAAC;IACV,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,SAAS,EAAE,IAAI,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qFAAqF;IACrF,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,SAAS,CAAC;IAC5C,iFAAiF;IACjF,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAClC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,SAAS,CAAC;IACnD;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,oEAAoE;IACpE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,SAAS,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,SAAoB,EACpB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAyB,EACzB,aAAa,EACb,SAAS,GACV,EAAE,cAAc,+BAoGhB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { dayStartMs, monthMatrix, todayKey, WEEKDAY_LABELS } from 'cwip/calendar';
|
|
3
3
|
import { cn } from '../../lib/cn';
|
|
4
|
+
import { TAP_TARGET_ALWAYS } from '../../lib/tapTarget';
|
|
4
5
|
/**
|
|
5
6
|
* The shared month-calendar shell: a weekday header + responsive 7-column 6-week
|
|
6
7
|
* grid. It owns layout, sizing, the day-number badge, and today's highlight.
|
|
@@ -44,7 +45,7 @@ export function MonthGrid({ monthDate, weekStart = 'sunday', renderDay, onSelect
|
|
|
44
45
|
// the keyboard path this grid documents keeps working. `pointer-
|
|
45
46
|
// coarse` is a question about the input DEVICE — a finger cannot
|
|
46
47
|
// hover, so on a touch screen the action is simply visible.
|
|
47
|
-
|
|
48
|
+
`opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 ${TAP_TARGET_ALWAYS}`), children: action }))] }), renderHoliday?.(ctx), renderDay(ctx)] }, cell.key));
|
|
48
49
|
}) })] }));
|
|
49
50
|
}
|
|
50
51
|
//# sourceMappingURL=MonthGrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthGrid.js","sourceRoot":"","sources":["../../../../src/react/components/calendar/MonthGrid.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthGrid.js","sourceRoot":"","sources":["../../../../src/react/components/calendar/MonthGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../../src/react/components/calendar/WeekView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAgB3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../../src/react/components/calendar/WeekView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAgB3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGpE,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,uDAAuD;IACvD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,MAAM,EACN,OAAY,EACZ,SAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,EAAE,aAAa,+BAkFf"}
|
|
@@ -5,6 +5,7 @@ import { cn } from '../../lib/cn';
|
|
|
5
5
|
import { IconButton } from '../IconButton';
|
|
6
6
|
import { EventChip } from './EventChip';
|
|
7
7
|
import { filterOccurrences } from './occurrences';
|
|
8
|
+
import { TAP_TARGET_ALWAYS } from '../../lib/tapTarget';
|
|
8
9
|
/** The seven local day keys of the week containing `date`. */
|
|
9
10
|
function weekKeys(date, weekStart) {
|
|
10
11
|
const anchor = dayKeyOf(date.getTime());
|
|
@@ -30,7 +31,7 @@ export function WeekView({ weekDate, events, filters = {}, weekStart = 'sunday',
|
|
|
30
31
|
return (_jsxs("div", { onClick: () => onSelectDay(day), className: cn('group flex min-h-[10rem] min-w-0 cursor-pointer flex-col gap-1 overflow-hidden', 'border-r border-border p-1 last:border-r-0', 'hover:bg-muted/30', dayKey === today && 'bg-accent/5'), children: [_jsx("div", { className: 'flex justify-end', children: _jsx(IconButton, { label: `Add event on ${day.toDateString()}`, onClick: (e) => {
|
|
31
32
|
e.stopPropagation();
|
|
32
33
|
onSelectDay(day);
|
|
33
|
-
}, className: cn('h-auto min-h-[44px] w-auto min-w-[44px] rounded p-1.5 text-muted-foreground', 'opacity-0 transition-opacity hover:bg-muted hover:text-foreground', 'focus:opacity-100 group-hover:opacity-100',
|
|
34
|
+
}, className: cn('h-auto min-h-[44px] w-auto min-w-[44px] rounded p-1.5 text-muted-foreground', 'opacity-0 transition-opacity hover:bg-muted hover:text-foreground', 'focus:opacity-100 group-hover:opacity-100', TAP_TARGET_ALWAYS), children: _jsx(Plus, { className: 'h-3.5 w-3.5' }) }) }), _jsx("div", { className: 'flex flex-col gap-0.5', children: dayOccs.map((occ) => (_jsx(EventChip, { occurrence: occ, color: occ.calendarId ? calendarColors?.get(occ.calendarId) : undefined, onClick: onSelectOccurrence }, occ.key))) })] }, dayKey));
|
|
34
35
|
}) })] }));
|
|
35
36
|
}
|
|
36
37
|
//# sourceMappingURL=WeekView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekView.js","sourceRoot":"","sources":["../../../../src/react/components/calendar/WeekView.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"WeekView.js","sourceRoot":"","sources":["../../../../src/react/components/calendar/WeekView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealOnHover.d.ts","sourceRoot":"","sources":["../../../src/react/components/revealOnHover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"revealOnHover.d.ts","sourceRoot":"","sources":["../../../src/react/components/revealOnHover.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,eAAO,MAAM,eAAe,sGAAgG,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TAP_TARGET_ALWAYS } from '../lib/tapTarget';
|
|
1
2
|
/** Hide until the parent `.group` is hovered/focused; always shown on touch. */
|
|
2
|
-
export const REVEAL_ON_HOVER =
|
|
3
|
+
export const REVEAL_ON_HOVER = `opacity-0 transition group-hover:opacity-100 focus-visible:opacity-100 ${TAP_TARGET_ALWAYS}`;
|
|
3
4
|
//# sourceMappingURL=revealOnHover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revealOnHover.js","sourceRoot":"","sources":["../../../src/react/components/revealOnHover.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"revealOnHover.js","sourceRoot":"","sources":["../../../src/react/components/revealOnHover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,0EAA0E,iBAAiB,EAAE,CAAC"}
|
|
@@ -14,6 +14,37 @@
|
|
|
14
14
|
* {@link FileTreeProps.allowReorder}, and everything that made it good — the gesture, the
|
|
15
15
|
* spring-open, the typeahead, the in-place rename — is here unchanged.
|
|
16
16
|
*
|
|
17
|
+
* ── 🔴 The graduation verdict, 2026-09-13: this one stays, and it grew ──────────────────
|
|
18
|
+
* `cursedesk` has a `FileTree.tsx` of its own — the same ancestor, kept in step by hand ever
|
|
19
|
+
* since. The pair was compared to decide which should be the shared one, and this is: it is
|
|
20
|
+
* the app's tree with the workbook/sheet/note/merge vocabulary generalised away, and it has
|
|
21
|
+
* external drags, `canDrop`, `acceptsDrop`, reordering, filtering, access marks, counts and
|
|
22
|
+
* the three render slots, none of which the app's has.
|
|
23
|
+
*
|
|
24
|
+
* But the app's carried SIX behaviours this did not, every one of them general, and adopting
|
|
25
|
+
* this tree without them would have been a regression on a 200-row library rather than a
|
|
26
|
+
* graduation. They are here now and each says so where it lives:
|
|
27
|
+
*
|
|
28
|
+
* 1. **Reveal** — the selected row is scrolled into view, and a shut folder holding it is
|
|
29
|
+
* marked and scrolled to instead of being forced open (see the effect below).
|
|
30
|
+
* 2. **The path is marked** — `data-ancestor` on the folders between the root and the
|
|
31
|
+
* selection, `data-holds-open` on the shut one holding it (`openPath`).
|
|
32
|
+
* 3. **Escape cancels a drag** (`beginDrag`), which `pointercancel` never did.
|
|
33
|
+
* 4. **⌥→ / ⌥← move the focused row** (`resolveKeyboardMove`) — the keyboard's half of the
|
|
34
|
+
* drag, and the only half touch has.
|
|
35
|
+
* 5. **The drag chip says where it is going**, not only what is held (`describeDrop`).
|
|
36
|
+
* 6. **The click a finished drag leaves behind is swallowed** (`draggedJustNow`), and the
|
|
37
|
+
* keyboard comes back from a rename instead of being dropped on `<body>`.
|
|
38
|
+
*
|
|
39
|
+
* Two more joined them because they were the same gap wearing a different hat: `onRowMenu`
|
|
40
|
+
* (Shift+F10 / the Menu key, since the tool shelf is deliberately not a tab stop) and
|
|
41
|
+
* `aria-posinset`/`aria-setsize`.
|
|
42
|
+
*
|
|
43
|
+
* What did NOT come across is the app's vocabulary — workbooks, merge-into-a-tab, notes,
|
|
44
|
+
* derived extensions, `activeNoteId`/`activeMediaId` as separate props. A feature the app
|
|
45
|
+
* needs and a design system should not have is an argument for a prop, not for a copy: the
|
|
46
|
+
* three claimants collapse into one `selectedId`, and a kind-specific glyph is `renderIcon`.
|
|
47
|
+
*
|
|
17
48
|
* ── Pointer events, not HTML5 drag-and-drop, for INTERNAL drags ─────────────────────────
|
|
18
49
|
* The ghost image is a translucent screenshot nobody asked for, `dragover` fires at the
|
|
19
50
|
* mercy of the browser, and touch does not have HTML5 dnd at all. The drag only *starts*
|
|
@@ -96,6 +127,24 @@ export interface FileTreeProps {
|
|
|
96
127
|
} | null;
|
|
97
128
|
onDraftCommit?: (name: string) => void;
|
|
98
129
|
onDraftCancel?: () => void;
|
|
130
|
+
/**
|
|
131
|
+
* The focused row's own menu, reached by **Shift+F10** or the **Menu** key — the keyboard's
|
|
132
|
+
* route to whatever {@link renderTools} draws.
|
|
133
|
+
*
|
|
134
|
+
* 🔴 The shelf is deliberately NOT a tab stop of its own (that would be one extra stop per
|
|
135
|
+
* row, which is what the roving-tabindex rule above exists to prevent), so without this the
|
|
136
|
+
* ⋯ menu on every row is unreachable without a pointer. Shift+F10 and the Menu key are what
|
|
137
|
+
* every desktop application answers a context menu on, so it is not a shortcut anybody has
|
|
138
|
+
* to be told about.
|
|
139
|
+
*
|
|
140
|
+
* The point is handed in viewport coordinates — the focused row's bottom-right corner —
|
|
141
|
+
* which is what a popover anchors to. Wire it to the SAME call the shelf's own button
|
|
142
|
+
* makes, so the two cannot drift into meaning different things.
|
|
143
|
+
*/
|
|
144
|
+
onRowMenu?: (node: FileTreeNode, at: {
|
|
145
|
+
x: number;
|
|
146
|
+
y: number;
|
|
147
|
+
}) => void;
|
|
99
148
|
/** Trailing controls for a row — the tool shelf. Quiet at rest, never invisible. */
|
|
100
149
|
renderTools?: (node: FileTreeNode) => ReactNode;
|
|
101
150
|
/** Leading glyph. Defaults to a folder/file mark. */
|
|
@@ -118,5 +167,5 @@ export interface FileTreeProps {
|
|
|
118
167
|
ariaLabel?: string;
|
|
119
168
|
className?: string;
|
|
120
169
|
}
|
|
121
|
-
export declare function FileTree({ nodes, selectedId, onSelect, onOpen, collapsed: collapsedProp, onCollapsedChange, onMove, allowReorder, lockedReason, canDrop, unavailableReason, renamingId, onRenameStart, onRename, onRenameCancel, onDelete, draft, onDraftCommit, onDraftCancel, renderTools, renderIcon, renderAccessory, onDropExternal, acceptsExternalDrag, filter, empty, ariaLabel, className, }: FileTreeProps): JSX.Element;
|
|
170
|
+
export declare function FileTree({ nodes, selectedId, onSelect, onOpen, collapsed: collapsedProp, onCollapsedChange, onMove, allowReorder, lockedReason, canDrop, unavailableReason, renamingId, onRenameStart, onRename, onRenameCancel, onDelete, draft, onDraftCommit, onDraftCancel, onRowMenu, renderTools, renderIcon, renderAccessory, onDropExternal, acceptsExternalDrag, filter, empty, ariaLabel, className, }: FileTreeProps): JSX.Element;
|
|
122
171
|
//# sourceMappingURL=FileTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileTree.d.ts","sourceRoot":"","sources":["../../../src/react/file-tree/FileTree.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"FileTree.d.ts","sourceRoot":"","sources":["../../../src/react/file-tree/FileTree.tsx"],"names":[],"mappings":"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"}
|