cursedbelt 5.86.0 → 5.87.1
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/looks.css +4 -4
- package/dist/react/Toast.js +2 -2
- package/dist/react/Toast.js.map +1 -1
- package/dist/react/VirtualCardGrid.d.ts +1 -1
- package/dist/react/VirtualCardGrid.js +1 -1
- package/dist/react/activity-bar/ActivityBar.d.ts +2 -2
- package/dist/react/activity-bar/ActivityBar.js +1 -1
- package/dist/react/activity-bar/activityBar.css +4 -4
- package/dist/react/analytics/AnalyticsPanel.d.ts +1 -1
- package/dist/react/analytics/AnalyticsPanel.js +1 -1
- package/dist/react/canvas-hud/CanvasMinimap.d.ts +1 -1
- package/dist/react/canvas-hud/HudControls.d.ts +2 -2
- package/dist/react/canvas-hud/alignment.d.ts +2 -2
- package/dist/react/canvas-hud/alignment.js +3 -3
- package/dist/react/canvas-hud/alignment.js.map +1 -1
- package/dist/react/canvas-hud/viewport.d.ts +1 -1
- package/dist/react/canvas-hud/viewport.js +1 -1
- package/dist/react/charts/BarChart.d.ts +2 -2
- package/dist/react/charts/HeatmapChart.d.ts +1 -1
- package/dist/react/charts/HeatmapChart.js +1 -1
- package/dist/react/charts/IntervalTimeline.d.ts +2 -2
- package/dist/react/charts/IntervalTimeline.d.ts.map +1 -1
- package/dist/react/charts/categorical.d.ts +11 -11
- package/dist/react/charts/categorical.js +9 -9
- package/dist/react/charts/categorical.js.map +1 -1
- package/dist/react/charts/ink.d.ts +5 -5
- package/dist/react/charts/ink.js +5 -5
- package/dist/react/charts/tokens.d.ts +1 -1
- package/dist/react/charts/tokens.js +1 -1
- package/dist/react/chat/Bubble.js +1 -1
- package/dist/react/chat/Bubble.js.map +1 -1
- package/dist/react/chat/DateMarker.js +1 -1
- package/dist/react/chat/MessageComposer.d.ts +1 -1
- package/dist/react/chat/types.d.ts +1 -1
- package/dist/react/chat/usePresence.d.ts +2 -2
- package/dist/react/chat/usePresence.js +1 -1
- package/dist/react/code-editor/markdownRules.js +1 -1
- package/dist/react/code-editor/markdownRules.js.map +1 -1
- package/dist/react/components/Badge.js +1 -1
- package/dist/react/components/Badge.js.map +1 -1
- package/dist/react/components/Button.js +5 -5
- package/dist/react/components/Button.js.map +1 -1
- package/dist/react/components/ChartTablePanel.js +1 -1
- package/dist/react/components/ChartTablePanel.js.map +1 -1
- package/dist/react/components/Checkbox.js +2 -2
- package/dist/react/components/Checkbox.js.map +1 -1
- package/dist/react/components/ChoiceGroup.d.ts +1 -1
- package/dist/react/components/ChoiceGroup.js +1 -1
- package/dist/react/components/CodeChip.d.ts +1 -1
- package/dist/react/components/CodeChip.js +1 -1
- package/dist/react/components/ColorSwatches.d.ts +10 -10
- package/dist/react/components/ColorSwatches.d.ts.map +1 -1
- package/dist/react/components/ColorSwatches.js +10 -10
- package/dist/react/components/ColorSwatches.js.map +1 -1
- package/dist/react/components/DataTable/DataTable.d.ts +2 -2
- package/dist/react/components/DataTable/DataTable.js +8 -8
- package/dist/react/components/DataTable/DataTable.js.map +1 -1
- package/dist/react/components/DataTable/SearchBox.js +2 -2
- package/dist/react/components/DataTable/SortHeader.js +1 -1
- package/dist/react/components/DataTable/SortHeader.js.map +1 -1
- package/dist/react/components/DataTable/TableFilterBuilder.d.ts +1 -1
- package/dist/react/components/DataTable/TableFilterBuilder.js +1 -1
- package/dist/react/components/DropdownMenu.js +1 -1
- package/dist/react/components/Field.d.ts +1 -1
- package/dist/react/components/FormPreviewLayout.d.ts +1 -1
- package/dist/react/components/FormPreviewLayout.js +1 -1
- package/dist/react/components/Heat.d.ts +6 -6
- package/dist/react/components/Heat.js +1 -1
- package/dist/react/components/IconPicker.d.ts +8 -8
- package/dist/react/components/IconPicker.d.ts.map +1 -1
- package/dist/react/components/IconPicker.js +6 -6
- package/dist/react/components/IconPicker.js.map +1 -1
- package/dist/react/components/InfoHint.d.ts +1 -1
- package/dist/react/components/InfoHint.js +1 -1
- package/dist/react/components/InheritBadge.js +2 -2
- package/dist/react/components/ListToolbar.d.ts +1 -1
- package/dist/react/components/ListToolbar.js +1 -1
- package/dist/react/components/Menu.d.ts +1 -1
- package/dist/react/components/Menu.d.ts.map +1 -1
- package/dist/react/components/Modal.js +5 -5
- package/dist/react/components/Modal.js.map +1 -1
- package/dist/react/components/Page.d.ts +1 -1
- package/dist/react/components/Page.js +1 -1
- package/dist/react/components/PaneSplit.d.ts +1 -1
- package/dist/react/components/PathText.d.ts +1 -1
- package/dist/react/components/PathText.js +1 -1
- package/dist/react/components/Popover.d.ts +1 -1
- package/dist/react/components/PropertyList.d.ts +1 -1
- package/dist/react/components/PropertyList.js +1 -1
- package/dist/react/components/PropertyPicker.d.ts +2 -2
- package/dist/react/components/PropertyPicker.js +2 -2
- package/dist/react/components/RatingField.js +1 -1
- package/dist/react/components/RatingField.js.map +1 -1
- package/dist/react/components/SaveIndicator.d.ts +2 -2
- package/dist/react/components/SaveIndicator.js +2 -2
- package/dist/react/components/SearchInput.d.ts +1 -1
- package/dist/react/components/SearchInput.d.ts.map +1 -1
- package/dist/react/components/SecretInput.d.ts +1 -1
- package/dist/react/components/Section.d.ts +1 -1
- package/dist/react/components/SectionNav.d.ts +3 -3
- package/dist/react/components/SectionNav.d.ts.map +1 -1
- package/dist/react/components/SectionNav.js +2 -2
- package/dist/react/components/Slider.js +1 -1
- package/dist/react/components/StarRating.js +1 -1
- package/dist/react/components/SwatchPicker.d.ts +6 -6
- package/dist/react/components/SwatchPicker.d.ts.map +1 -1
- package/dist/react/components/SwatchPicker.js +3 -3
- package/dist/react/components/SwatchPicker.js.map +1 -1
- package/dist/react/components/Tooltip.js +1 -1
- package/dist/react/components/TreeView.js +1 -1
- package/dist/react/components/TreeView.js.map +1 -1
- package/dist/react/components/TruncatedText.d.ts +1 -1
- package/dist/react/components/TruncatedText.js +1 -1
- package/dist/react/components/UnstyledButton.d.ts +2 -2
- package/dist/react/components/UnstyledButton.js +2 -2
- package/dist/react/components/auth/AuthCard.js +1 -1
- package/dist/react/components/auth/AuthCard.js.map +1 -1
- package/dist/react/components/buildFreshness.css +2 -2
- package/dist/react/components/calendar/MonthGrid.js +2 -2
- package/dist/react/components/calendar/MonthGrid.js.map +1 -1
- package/dist/react/components/calendar/colorUtils.js +2 -2
- package/dist/react/components/dialog.js +1 -1
- package/dist/react/components/fieldErrorText.d.ts +1 -1
- package/dist/react/components/fieldErrorText.js +1 -1
- package/dist/react/components/paneSplit.css +1 -1
- package/dist/react/deep-link/links.d.ts +1 -1
- package/dist/react/deep-link/resume.js +1 -1
- package/dist/react/diff-viewer/DiffViewer.css +1 -1
- package/dist/react/engagement/beacon.d.ts +8 -1
- package/dist/react/engagement/beacon.d.ts.map +1 -1
- package/dist/react/engagement/beacon.js +22 -7
- package/dist/react/engagement/beacon.js.map +1 -1
- package/dist/react/engagement/beaconClient.d.ts +27 -0
- package/dist/react/engagement/beaconClient.d.ts.map +1 -1
- package/dist/react/engagement/beaconClient.js +45 -0
- package/dist/react/engagement/beaconClient.js.map +1 -1
- package/dist/react/engagement/index.d.ts +2 -2
- package/dist/react/engagement/index.d.ts.map +1 -1
- package/dist/react/engagement/index.js +3 -3
- package/dist/react/engagement/index.js.map +1 -1
- package/dist/react/file-tree/FileTree.d.ts +9 -9
- package/dist/react/file-tree/FileTree.js +13 -13
- package/dist/react/file-tree/FileTree.js.map +1 -1
- package/dist/react/file-tree/FolderViewMenus.d.ts +3 -3
- package/dist/react/file-tree/FolderViewMenus.d.ts.map +1 -1
- package/dist/react/file-tree/FolderViewMenus.js +1 -1
- package/dist/react/file-tree/FolderViewMenus.js.map +1 -1
- package/dist/react/file-tree/fileTree.css +14 -14
- package/dist/react/file-tree/fileTreeSelection.d.ts +3 -3
- package/dist/react/file-tree/fileTreeSelection.js +4 -4
- package/dist/react/file-tree/folderView.d.ts +3 -3
- package/dist/react/file-tree/folderView.d.ts.map +1 -1
- package/dist/react/file-tree/folderView.js +3 -3
- package/dist/react/file-tree/folderView.js.map +1 -1
- package/dist/react/filter-rail/FilterRail.d.ts +3 -3
- package/dist/react/filter-rail/FilterRail.d.ts.map +1 -1
- package/dist/react/filter-rail/FilterRail.js +1 -1
- package/dist/react/filter-rail/RailSection.d.ts +1 -1
- package/dist/react/filter-rail/railResize.d.ts +1 -1
- package/dist/react/filter-rail/railResize.js +1 -1
- package/dist/react/folder-tree/FolderBreadcrumb.d.ts +1 -1
- package/dist/react/folder-tree/NewFolderControl.js +1 -1
- package/dist/react/hooks/keyboardDnd.d.ts +1 -1
- package/dist/react/hooks/keyboardDnd.d.ts.map +1 -1
- package/dist/react/hooks/keyboardDnd.js +2 -2
- package/dist/react/hooks/keyboardDnd.js.map +1 -1
- package/dist/react/hooks/pointerDnd.d.ts +2 -2
- package/dist/react/hooks/pointerDnd.d.ts.map +1 -1
- package/dist/react/hooks/pointerDnd.js +1 -1
- package/dist/react/hooks/usePointerDrag.d.ts +2 -2
- package/dist/react/icons.d.ts +9 -9
- package/dist/react/icons.d.ts.map +1 -1
- package/dist/react/icons.js +10 -10
- package/dist/react/icons.js.map +1 -1
- package/dist/react/layoutEngine/LayoutRenderer.js +1 -1
- package/dist/react/layoutEngine/LayoutRenderer.js.map +1 -1
- package/dist/react/lib/cn.d.ts +3 -3
- package/dist/react/lib/cn.js +4 -4
- package/dist/react/lib/field.d.ts +1 -1
- package/dist/react/lib/floatingContainer.d.ts +1 -1
- package/dist/react/lib/floatingContainer.js +1 -1
- package/dist/react/lib/floatingStyles.d.ts +1 -1
- package/dist/react/lib/floatingStyles.js +2 -2
- package/dist/react/lib/floatingStyles.js.map +1 -1
- package/dist/react/lib/hoverIntent.d.ts +6 -6
- package/dist/react/lib/hoverIntent.js +6 -6
- package/dist/react/lib/infoHint.d.ts +1 -1
- package/dist/react/lib/infoHint.js +1 -1
- package/dist/react/lib/overlayMotion.d.ts +1 -1
- package/dist/react/lib/overlayMotion.d.ts.map +1 -1
- package/dist/react/lib/overlayMotion.js +1 -1
- package/dist/react/lib/overlayMotion.js.map +1 -1
- package/dist/react/lib/press.d.ts +1 -1
- package/dist/react/lib/press.js +1 -1
- package/dist/react/lib/selectField.d.ts +2 -2
- package/dist/react/lib/selectField.d.ts.map +1 -1
- package/dist/react/lib/selectField.js +2 -2
- package/dist/react/lib/selectField.js.map +1 -1
- package/dist/react/look/AppearanceMenu.d.ts +1 -1
- package/dist/react/look/AppearanceMenu.js +1 -1
- package/dist/react/look/LookPicker.d.ts +3 -3
- package/dist/react/look/LookPicker.js +3 -3
- package/dist/react/look/lookStore.d.ts +1 -1
- package/dist/react/look/lookStore.js +4 -4
- package/dist/react/look/lookStore.js.map +1 -1
- package/dist/react/master-lock/MasterLockDialog.js +2 -2
- package/dist/react/master-lock/MasterLockDialog.js.map +1 -1
- package/dist/react/master-lock/MasterLockProvider.d.ts +1 -1
- package/dist/react/media/DenseGalleryShell.d.ts +3 -3
- package/dist/react/media/FocusViewer.js +3 -3
- package/dist/react/media/FocusViewer.js.map +1 -1
- package/dist/react/media/FrameGrabber.js +3 -3
- package/dist/react/media/FrameGrabber.js.map +1 -1
- package/dist/react/media/HoverScrubVideoThumb.d.ts +1 -1
- package/dist/react/media/HoverScrubVideoThumb.js +1 -1
- package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
- package/dist/react/media/MediaCell.d.ts +1 -1
- package/dist/react/media/MediaCell.js +1 -1
- package/dist/react/media/MediaResize.d.ts +1 -1
- package/dist/react/media/MediaThumb.d.ts +1 -1
- package/dist/react/media/PictureControls.d.ts +1 -1
- package/dist/react/media/PictureControls.js +2 -2
- package/dist/react/media/PictureControls.js.map +1 -1
- package/dist/react/media/PictureEditor.js +2 -2
- package/dist/react/media/PictureEditor.js.map +1 -1
- package/dist/react/media/PlayerStrip.d.ts +4 -4
- package/dist/react/media/PlayerStrip.d.ts.map +1 -1
- package/dist/react/media/PlayerStrip.js +2 -2
- package/dist/react/media/VideoPlayer.d.ts +3 -3
- package/dist/react/media/VideoPlayer.js +5 -5
- package/dist/react/media/VideoTurner.js +1 -1
- package/dist/react/media/VideoTurner.js.map +1 -1
- package/dist/react/media/VirtualizedRows.d.ts +1 -1
- package/dist/react/media/denseGallery.css +7 -7
- package/dist/react/media/focusViewer.css +2 -2
- package/dist/react/media/gifEncode.d.ts +4 -4
- package/dist/react/media/gifEncode.d.ts.map +1 -1
- package/dist/react/media/gifEncode.js +8 -8
- package/dist/react/media/gifEncode.js.map +1 -1
- package/dist/react/media/gifRecord.js +1 -1
- package/dist/react/media/gifRecord.js.map +1 -1
- package/dist/react/media/hlsSource.js +2 -2
- package/dist/react/media/hlsSource.js.map +1 -1
- package/dist/react/media/mediaResize.css +3 -3
- package/dist/react/media/pictureEdit.d.ts +1 -1
- package/dist/react/media/pictureEdit.js +4 -4
- package/dist/react/media/pictureEdit.js.map +1 -1
- package/dist/react/media/pictureEditor.css +6 -6
- package/dist/react/media/playerSpaceKey.js +3 -3
- package/dist/react/media/playerStrip.css +11 -11
- package/dist/react/media/posterFraming.d.ts +2 -2
- package/dist/react/media/posterFraming.d.ts.map +1 -1
- package/dist/react/media/posterFraming.js +4 -4
- package/dist/react/media/posterFraming.js.map +1 -1
- package/dist/react/media/sourceFault.d.ts +2 -2
- package/dist/react/media/sourceFault.js +1 -1
- package/dist/react/media/stageResize.d.ts +1 -1
- package/dist/react/media/stageResize.js +1 -1
- package/dist/react/media/surfaceGesture.d.ts +1 -1
- package/dist/react/media/surfaceGesture.js +1 -1
- package/dist/react/media/types.d.ts +1 -1
- package/dist/react/media/videoChapterEditor.css +1 -1
- package/dist/react/media/videoChapters.d.ts +1 -1
- package/dist/react/media/videoChapters.js +1 -1
- package/dist/react/media/videoCutEditor.css +2 -2
- package/dist/react/media/videoEnhance.d.ts +2 -2
- package/dist/react/media/videoEnhance.js +2 -2
- package/dist/react/media/videoPoster.d.ts +3 -3
- package/dist/react/media/videoPoster.d.ts.map +1 -1
- package/dist/react/media/videoPoster.js +4 -4
- package/dist/react/media/videoPoster.js.map +1 -1
- package/dist/react/media/videoRegion.d.ts +8 -8
- package/dist/react/media/videoRegion.js +8 -8
- package/dist/react/media-gallery/MediaGallery.d.ts +2 -2
- package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
- package/dist/react/media-gallery/MediaGallery.js +17 -17
- package/dist/react/media-gallery/MediaGallery.js.map +1 -1
- package/dist/react/media-gallery/MediaMetaEditor.js +1 -1
- package/dist/react/media-gallery/galleryDeepLink.d.ts +1 -1
- package/dist/react/media-gallery/galleryDeepLink.js +2 -2
- package/dist/react/media-gallery/galleryItemMedia.d.ts +1 -1
- package/dist/react/media-gallery/galleryItemMedia.js +1 -1
- package/dist/react/media-gallery/galleryReturn.d.ts +1 -1
- package/dist/react/media-gallery/galleryReturn.js +2 -2
- package/dist/react/media-gallery/mediaGallery.css +10 -10
- package/dist/react/media-gallery/mediaGalleryModel.d.ts +1 -1
- package/dist/react/media-gallery/mediaGalleryModel.js +1 -1
- package/dist/react/media-gallery/playbackPreferences.d.ts +3 -3
- package/dist/react/media-gallery/playbackPreferences.js +2 -2
- package/dist/react/media-gallery/playbackRun.d.ts +1 -1
- package/dist/react/media-gallery/playbackRun.js +1 -1
- package/dist/react/media-gallery/preferenceSync.js +1 -1
- package/dist/react/namespace/NamespaceTargetCapsule.d.ts +1 -1
- package/dist/react/nav/BreadcrumbTrail.d.ts +1 -1
- package/dist/react/nav/BreadcrumbTrail.js +1 -1
- package/dist/react/nav/Breadcrumbs.d.ts +1 -1
- package/dist/react/nav/Breadcrumbs.js +1 -1
- package/dist/react/nav/HeaderSearch.d.ts +3 -3
- package/dist/react/nav/HeaderSearch.d.ts.map +1 -1
- package/dist/react/nav/HeaderSearch.js +2 -2
- package/dist/react/nav/PlaceBar.d.ts +1 -1
- package/dist/react/nav/PlaceBar.js +2 -2
- package/dist/react/nav/SearchResults.d.ts +2 -2
- package/dist/react/nav/SearchResults.d.ts.map +1 -1
- package/dist/react/nav/SearchResults.js +1 -1
- package/dist/react/nav/TopBar.js +1 -1
- package/dist/react/nav/breadcrumbStore.js +1 -1
- package/dist/react/nav/navShared.d.ts +1 -1
- package/dist/react/palette/CommandPalette.js +1 -1
- package/dist/react/palette/CommandPalette.js.map +1 -1
- package/dist/react/pdf-viewer/PdfPage.js +1 -1
- package/dist/react/pdf-viewer/PdfPage.js.map +1 -1
- package/dist/react/spreadsheet/SpreadsheetGrid.d.ts +1 -1
- package/dist/react/spreadsheet/useGlideTheme.js +2 -2
- package/dist/react/workbook-viewer/WorkbookViewer.js +1 -1
- package/dist/react/workbook-viewer/WorkbookViewer.js.map +1 -1
- package/dist/styles-areas/notifications.css +1 -1
- package/dist/styles-static.css +1 -1
- package/dist/styles.css +1 -1
- package/dist/testing/appleWalk.d.ts +7 -0
- package/dist/testing/appleWalk.d.ts.map +1 -1
- package/dist/testing/appleWalk.js +19 -1
- package/dist/testing/appleWalk.js.map +1 -1
- package/dist/testing/designAudit.d.ts +2 -2
- package/dist/testing/designAudit.js +3 -3
- package/dist/testing/designAudit.js.map +1 -1
- package/dist/testing/phoneRules.d.ts +4 -4
- package/dist/testing/phoneRules.js +4 -4
- package/dist/testing/phoneRules.js.map +1 -1
- package/dist/theme.css +10 -10
- package/package.json +1 -1
- package/scripts/attributesForwarded.ts +1 -1
- package/scripts/checkAreaStyles.ts +2 -2
- package/scripts/cssRules.ts +2 -2
- package/scripts/demoCoverage.ts +1 -1
- package/scripts/demoServer.ts +1 -1
- package/scripts/generateStaticStyles.ts +1 -1
- package/scripts/guardrailsEnforce.spec.ts +14 -14
- package/scripts/guardrailsEnforce.ts +25 -25
- package/scripts/paths.ts +1 -1
- package/scripts/styleAreas.ts +2 -2
- package/scripts/testTmpRoot.ts +1 -1
- package/src/buildIsStaged.spec.ts +1 -1
- package/src/iframesMakeNoRealRequest.spec.ts +1 -1
- package/src/looks.css +4 -4
- package/src/looks.spec.ts +3 -3
- package/src/namedSubpathsResolve.spec.ts +2 -2
- package/src/publishShape.spec.ts +1 -1
- package/src/react/Toast.spec.tsx +1 -1
- package/src/react/Toast.tsx +2 -2
- package/src/react/VirtualCardGrid.spec.tsx +1 -1
- package/src/react/VirtualCardGrid.tsx +3 -3
- package/src/react/activity-bar/ActivityBar.spec.tsx +2 -2
- package/src/react/activity-bar/ActivityBar.tsx +4 -4
- package/src/react/activity-bar/activityBar.css +4 -4
- package/src/react/analytics/AnalyticsPanel.tsx +1 -1
- package/src/react/canvas-hud/CanvasMinimap.tsx +1 -1
- package/src/react/canvas-hud/HudControls.spec.tsx +1 -1
- package/src/react/canvas-hud/HudControls.tsx +2 -2
- package/src/react/canvas-hud/alignment.spec.tsx +4 -4
- package/src/react/canvas-hud/alignment.ts +3 -3
- package/src/react/canvas-hud/viewport.spec.ts +1 -1
- package/src/react/canvas-hud/viewport.ts +1 -1
- package/src/react/charts/BarChart.tsx +2 -2
- package/src/react/charts/HeatmapChart.spec.ts +1 -1
- package/src/react/charts/HeatmapChart.tsx +1 -1
- package/src/react/charts/IntervalTimeline.color.spec.tsx +6 -6
- package/src/react/charts/IntervalTimeline.tsx +2 -2
- package/src/react/charts/Treemap.tsx +1 -1
- package/src/react/charts/accentCollision.spec.ts +1 -1
- package/src/react/charts/categorical.spec.ts +3 -3
- package/src/react/charts/categorical.ts +12 -12
- package/src/react/charts/ink.spec.ts +1 -1
- package/src/react/charts/ink.ts +5 -5
- package/src/react/charts/tokens.ts +1 -1
- package/src/react/chat/Bubble.tsx +1 -1
- package/src/react/chat/DateMarker.tsx +2 -2
- package/src/react/chat/MessageComposer.tsx +1 -1
- package/src/react/chat/PresenceRoster.tsx +2 -2
- package/src/react/chat/types.ts +1 -1
- package/src/react/chat/usePresence.ts +2 -2
- package/src/react/code-editor/markdownRules.ts +1 -1
- package/src/react/components/AvatarStack.spec.tsx +2 -2
- package/src/react/components/AvatarStack.tsx +2 -2
- package/src/react/components/Badge.capsule.spec.ts +6 -6
- package/src/react/components/Badge.tsx +1 -1
- package/src/react/components/Button.spec.tsx +1 -1
- package/src/react/components/Button.tsx +5 -5
- package/src/react/components/ChartTablePanel.tsx +1 -1
- package/src/react/components/Checkbox.spec.tsx +2 -2
- package/src/react/components/Checkbox.tsx +2 -2
- package/src/react/components/ChoiceGroup.tsx +1 -1
- package/src/react/components/CodeChip.spec.tsx +1 -1
- package/src/react/components/CodeChip.tsx +1 -1
- package/src/react/components/ColorSwatches.spec.tsx +9 -9
- package/src/react/components/ColorSwatches.tsx +16 -16
- package/src/react/components/CommentThread.tsx +1 -1
- package/src/react/components/ConnectionHealer.tsx +1 -1
- package/src/react/components/DataTable/DataTable.spec.tsx +2 -2
- package/src/react/components/DataTable/DataTable.tsx +10 -10
- package/src/react/components/DataTable/SearchBox.tsx +2 -2
- package/src/react/components/DataTable/SortHeader.tsx +1 -1
- package/src/react/components/DataTable/TableFilterBuilder.tsx +1 -1
- package/src/react/components/DataTable/selection.spec.tsx +1 -1
- package/src/react/components/DataTable/virtualize.spec.tsx +1 -1
- package/src/react/components/DropdownMenu.tsx +1 -1
- package/src/react/components/Field.tsx +1 -1
- package/src/react/components/FormPreviewLayout.tsx +1 -1
- package/src/react/components/Heat.spec.tsx +1 -1
- package/src/react/components/Heat.tsx +6 -6
- package/src/react/components/IconPicker.spec.tsx +1 -1
- package/src/react/components/IconPicker.tsx +9 -9
- package/src/react/components/InfoHint.spec.tsx +2 -2
- package/src/react/components/InfoHint.tsx +1 -1
- package/src/react/components/InheritBadge.tsx +2 -2
- package/src/react/components/IsolatedFrame.tsx +1 -1
- package/src/react/components/ListToolbar.tsx +1 -1
- package/src/react/components/Menu.tsx +1 -1
- package/src/react/components/Modal.tsx +5 -5
- package/src/react/components/Page.spec.tsx +1 -1
- package/src/react/components/Page.tsx +2 -2
- package/src/react/components/PaneSplit.tsx +1 -1
- package/src/react/components/PathText.tsx +1 -1
- package/src/react/components/PointerDrag.spec.tsx +1 -1
- package/src/react/components/Popover.spec.tsx +2 -2
- package/src/react/components/Popover.tsx +1 -1
- package/src/react/components/PropertyList.tsx +1 -1
- package/src/react/components/PropertyPicker.tsx +2 -2
- package/src/react/components/RatingField.tsx +1 -1
- package/src/react/components/SaveIndicator.tsx +2 -2
- package/src/react/components/SearchInput.tsx +1 -1
- package/src/react/components/SecretInput.tsx +1 -1
- package/src/react/components/Section.tsx +1 -1
- package/src/react/components/SectionNav.spec.tsx +3 -3
- package/src/react/components/SectionNav.tsx +3 -3
- package/src/react/components/SelectField.spec.tsx +1 -1
- package/src/react/components/Slider.tsx +1 -1
- package/src/react/components/StarRating.spec.tsx +4 -4
- package/src/react/components/StarRating.tsx +3 -3
- package/src/react/components/SwatchPicker.spec.tsx +4 -4
- package/src/react/components/SwatchPicker.tsx +9 -9
- package/src/react/components/Tooltip.spec.tsx +3 -3
- package/src/react/components/Tooltip.tsx +1 -1
- package/src/react/components/TreeView.tsx +1 -1
- package/src/react/components/TruncatedText.tsx +1 -1
- package/src/react/components/UnstyledButton.tsx +2 -2
- package/src/react/components/auth/AuthCard.tsx +1 -1
- package/src/react/components/buildFreshness.css +2 -2
- package/src/react/components/calendar/EventChip.spec.tsx +2 -2
- package/src/react/components/calendar/MonthGrid.tsx +2 -2
- package/src/react/components/calendar/colorUtils.ts +2 -2
- package/src/react/components/dialog.tsx +1 -1
- package/src/react/components/fieldErrorText.tsx +1 -1
- package/src/react/components/paneSplit.css +1 -1
- package/src/react/components/sharing/ShareEditor.tsx +1 -1
- package/src/react/deep-link/links.spec.ts +1 -1
- package/src/react/deep-link/links.ts +1 -1
- package/src/react/deep-link/resume.spec.tsx +1 -1
- package/src/react/deep-link/resume.ts +1 -1
- package/src/react/diff-viewer/DiffViewer.css +1 -1
- package/src/react/engagement/beacon.spec.tsx +62 -0
- package/src/react/engagement/beacon.tsx +32 -7
- package/src/react/engagement/beaconClient.spec.ts +44 -1
- package/src/react/engagement/beaconClient.ts +50 -0
- package/src/react/engagement/index.ts +4 -2
- package/src/react/file-tree/FileTree.spec.tsx +13 -13
- package/src/react/file-tree/FileTree.tsx +22 -22
- package/src/react/file-tree/FolderViewMenus.tsx +3 -3
- package/src/react/file-tree/FolderViewPanels.tsx +1 -1
- package/src/react/file-tree/fileTree.css +14 -14
- package/src/react/file-tree/fileTreeGeometry.spec.ts +5 -5
- package/src/react/file-tree/fileTreeSelection.ts +4 -4
- package/src/react/file-tree/folderView.spec.ts +1 -1
- package/src/react/file-tree/folderView.ts +3 -3
- package/src/react/filter-rail/FilterRail.spec.tsx +1 -1
- package/src/react/filter-rail/FilterRail.tsx +4 -4
- package/src/react/filter-rail/RailSection.spec.tsx +2 -2
- package/src/react/filter-rail/RailSection.tsx +1 -1
- package/src/react/filter-rail/railResize.tsx +1 -1
- package/src/react/folder-tree/FolderBreadcrumb.tsx +1 -1
- package/src/react/folder-tree/NewFolderControl.tsx +1 -1
- package/src/react/hooks/keyboardDnd.spec.tsx +1 -1
- package/src/react/hooks/keyboardDnd.tsx +2 -2
- package/src/react/hooks/pointerDnd.spec.ts +3 -3
- package/src/react/hooks/pointerDnd.ts +2 -2
- package/src/react/hooks/useOutsidePress.spec.tsx +1 -1
- package/src/react/hooks/usePointerDrag.ts +2 -2
- package/src/react/icons.tsx +11 -11
- package/src/react/keep-awake/keepAwakeEngine.spec.ts +1 -1
- package/src/react/layoutEngine/LayoutConfigDialog.tsx +1 -1
- package/src/react/layoutEngine/LayoutRenderer.tsx +1 -1
- package/src/react/layoutEngine/gridClasses.spec.ts +3 -3
- package/src/react/lib/cn.spec.ts +1 -1
- package/src/react/lib/cn.ts +4 -4
- package/src/react/lib/directUpload.spec.ts +1 -1
- package/src/react/lib/field.ts +1 -1
- package/src/react/lib/floatingContainer.ts +1 -1
- package/src/react/lib/floatingStyles.spec.ts +1 -1
- package/src/react/lib/floatingStyles.ts +2 -2
- package/src/react/lib/hoverIntent.ts +6 -6
- package/src/react/lib/infoHint.ts +1 -1
- package/src/react/lib/overlayMotion.ts +1 -1
- package/src/react/lib/press.ts +1 -1
- package/src/react/lib/selectField.ts +2 -2
- package/src/react/lib/zodResolver.ts +1 -1
- package/src/react/look/AppearanceMenu.tsx +1 -1
- package/src/react/look/LookPicker.tsx +3 -3
- package/src/react/look/lookStore.ts +4 -4
- package/src/react/markdown/MarkdownDoc.spec.tsx +1 -1
- package/src/react/master-detail/MasterDetail.tsx +1 -1
- package/src/react/master-lock/MasterLockDialog.tsx +2 -2
- package/src/react/master-lock/MasterLockProvider.spec.tsx +1 -1
- package/src/react/master-lock/MasterLockProvider.tsx +1 -1
- package/src/react/media/DenseGalleryShell.tsx +3 -3
- package/src/react/media/FocusViewer.tsx +3 -3
- package/src/react/media/FrameGrabber.spec.tsx +2 -2
- package/src/react/media/FrameGrabber.tsx +3 -3
- package/src/react/media/HoverScrubVideoThumb.tsx +3 -3
- package/src/react/media/MediaCell.tsx +1 -1
- package/src/react/media/MediaResize.spec.tsx +4 -4
- package/src/react/media/MediaResize.tsx +1 -1
- package/src/react/media/MediaThumb.tsx +1 -1
- package/src/react/media/PictureControls.tsx +2 -2
- package/src/react/media/PictureEditor.tsx +2 -2
- package/src/react/media/PlayerStrip.tsx +9 -9
- package/src/react/media/VideoChapterEditor.tsx +1 -1
- package/src/react/media/VideoCutEditor.spec.tsx +1 -1
- package/src/react/media/VideoCutEditor.tsx +1 -1
- package/src/react/media/VideoPlayer.spec.tsx +7 -7
- package/src/react/media/VideoPlayer.tsx +6 -6
- package/src/react/media/VideoTurner.tsx +1 -1
- package/src/react/media/VirtualizedRows.tsx +1 -1
- package/src/react/media/denseGallery.css +7 -7
- package/src/react/media/focusViewer.css +2 -2
- package/src/react/media/focusViewer.css.spec.ts +1 -1
- package/src/react/media/gifEncode.spec.ts +2 -2
- package/src/react/media/gifEncode.ts +9 -9
- package/src/react/media/gifRecord.ts +1 -1
- package/src/react/media/hlsSource.recovery.spec.ts +2 -2
- package/src/react/media/hlsSource.spec.ts +1 -1
- package/src/react/media/hlsSource.ts +2 -2
- package/src/react/media/mediaResize.css +3 -3
- package/src/react/media/pictureEdit.spec.ts +5 -5
- package/src/react/media/pictureEdit.ts +4 -4
- package/src/react/media/pictureEditor.css +6 -6
- package/src/react/media/playerSpaceKey.ts +3 -3
- package/src/react/media/playerStrip.css +11 -11
- package/src/react/media/playerStrip.spec.tsx +9 -9
- package/src/react/media/posterFraming.spec.ts +4 -4
- package/src/react/media/posterFraming.ts +5 -5
- package/src/react/media/sourceFault.tsx +2 -2
- package/src/react/media/stageResize.ts +1 -1
- package/src/react/media/surfaceGesture.ts +1 -1
- package/src/react/media/types.ts +1 -1
- package/src/react/media/videoChapterEditor.css +1 -1
- package/src/react/media/videoChapters.spec.ts +1 -1
- package/src/react/media/videoChapters.ts +1 -1
- package/src/react/media/videoCutEditor.css +2 -2
- package/src/react/media/videoEnhance.spec.ts +1 -1
- package/src/react/media/videoEnhance.ts +2 -2
- package/src/react/media/videoPoster.spec.ts +3 -3
- package/src/react/media/videoPoster.ts +5 -5
- package/src/react/media/videoRegion.spec.ts +7 -7
- package/src/react/media/videoRegion.ts +8 -8
- package/src/react/media-gallery/GalleryTable.tsx +1 -1
- package/src/react/media-gallery/MediaGallery.spec.tsx +11 -11
- package/src/react/media-gallery/MediaGallery.tsx +23 -23
- package/src/react/media-gallery/MediaMetaEditor.tsx +1 -1
- package/src/react/media-gallery/galleryDeepLink.ts +2 -2
- package/src/react/media-gallery/galleryItemMedia.spec.tsx +1 -1
- package/src/react/media-gallery/galleryItemMedia.tsx +1 -1
- package/src/react/media-gallery/galleryReturn.ts +2 -2
- package/src/react/media-gallery/mediaGallery.css +10 -10
- package/src/react/media-gallery/mediaGalleryModel.ts +1 -1
- package/src/react/media-gallery/playbackPreferences.ts +3 -3
- package/src/react/media-gallery/playbackRun.spec.ts +1 -1
- package/src/react/media-gallery/playbackRun.ts +1 -1
- package/src/react/media-gallery/preferenceSync.ts +1 -1
- package/src/react/namespace/NamespaceTargetCapsule.tsx +1 -1
- package/src/react/nav/BreadcrumbTrail.tsx +1 -1
- package/src/react/nav/Breadcrumbs.tsx +1 -1
- package/src/react/nav/HeaderSearch.tsx +3 -3
- package/src/react/nav/PlaceBar.spec.tsx +4 -4
- package/src/react/nav/PlaceBar.tsx +4 -4
- package/src/react/nav/SearchResults.tsx +2 -2
- package/src/react/nav/TopBar.spec.tsx +1 -1
- package/src/react/nav/TopBar.tsx +1 -1
- package/src/react/nav/breadcrumbStore.ts +1 -1
- package/src/react/nav/breadcrumbSystem.spec.tsx +1 -1
- package/src/react/nav/navShared.tsx +1 -1
- package/src/react/palette/CommandPalette.spec.tsx +1 -1
- package/src/react/palette/CommandPalette.tsx +1 -1
- package/src/react/pdf-viewer/PdfPage.tsx +1 -1
- package/src/react/spreadsheet/SpreadsheetGrid.tsx +1 -1
- package/src/react/spreadsheet/useGlideTheme.ts +2 -2
- package/src/react/workbook-viewer/WorkbookViewer.tsx +1 -1
- package/src/shippedFilesAreTracked.spec.ts +2 -2
- package/src/styles-areas/notifications.css +1 -1
- package/src/styles-static.css +1 -1
- package/src/styles.css +1 -1
- package/src/stylesAreas.spec.ts +1 -1
- package/src/stylesStaticMatches.spec.ts +2 -2
- package/src/stylesUtilitiesMatches.spec.ts +4 -4
- package/src/testing/appleWalk.ts +17 -1
- package/src/testing/designAudit.ts +4 -4
- package/src/testing/phoneRules.spec.ts +1 -1
- package/src/testing/phoneRules.ts +7 -7
- package/src/theme.css +10 -10
- package/src/themeColorsResolve.spec.ts +5 -5
- package/src/themeDarkScopeAliases.spec.ts +1 -1
- package/src/verifyGraph.spec.ts +1 -1
|
@@ -30,7 +30,7 @@ export interface TruncatedTextProps {
|
|
|
30
30
|
* ── Why this exists ─────────────────────────────────────────────────────────
|
|
31
31
|
* `<span className='truncate' title={value}>` is the fleet's most-repeated line
|
|
32
32
|
* and it is a `DESIGN.md` §4 violation everywhere it appears: the native `title`
|
|
33
|
-
* is drawn by the OS after 1–2 seconds, in its own
|
|
33
|
+
* is drawn by the OS after 1–2 seconds, in its own gray box, in the wrong theme,
|
|
34
34
|
* and it does not exist at all on the owner's phone. It is also the exact defect
|
|
35
35
|
* the owner reported against family ("title should show on hover faster") — the
|
|
36
36
|
* delay is the operating system's, so no amount of CSS or JS can tune it. The
|
|
@@ -8,7 +8,7 @@ import { Tooltip } from './Tooltip.js';
|
|
|
8
8
|
* ── Why this exists ─────────────────────────────────────────────────────────
|
|
9
9
|
* `<span className='truncate' title={value}>` is the fleet's most-repeated line
|
|
10
10
|
* and it is a `DESIGN.md` §4 violation everywhere it appears: the native `title`
|
|
11
|
-
* is drawn by the OS after 1–2 seconds, in its own
|
|
11
|
+
* is drawn by the OS after 1–2 seconds, in its own gray box, in the wrong theme,
|
|
12
12
|
* and it does not exist at all on the owner's phone. It is also the exact defect
|
|
13
13
|
* the owner reported against family ("title should show on hover faster") — the
|
|
14
14
|
* delay is the operating system's, so no amount of CSS or JS can tune it. The
|
|
@@ -14,11 +14,11 @@ export interface UnstyledButtonProps extends ButtonHTMLAttributes<HTMLButtonElem
|
|
|
14
14
|
ref?: Ref<HTMLButtonElement>;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* A `<button>` that brings none of the belt's look and all of its
|
|
17
|
+
* A `<button>` that brings none of the belt's look and all of its behavior.
|
|
18
18
|
*
|
|
19
19
|
* Mantine's name for the same thing. For a control whose look is the caller's own — a tab
|
|
20
20
|
* in a deck, a pin in a sidebar, a breadcrumb step — that still has to explain itself and
|
|
21
|
-
* still has to refuse a press it cannot
|
|
21
|
+
* still has to refuse a press it cannot honor. {@link Button} with `asChild` would restyle
|
|
22
22
|
* the child with the button's variants; this adds no class at all, so `className` is the
|
|
23
23
|
* whole of its look.
|
|
24
24
|
*
|
|
@@ -2,11 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Tooltip } from './Tooltip.js';
|
|
3
3
|
import { RAW_BUTTON } from '../lib/cn.js';
|
|
4
4
|
/**
|
|
5
|
-
* A `<button>` that brings none of the belt's look and all of its
|
|
5
|
+
* A `<button>` that brings none of the belt's look and all of its behavior.
|
|
6
6
|
*
|
|
7
7
|
* Mantine's name for the same thing. For a control whose look is the caller's own — a tab
|
|
8
8
|
* in a deck, a pin in a sidebar, a breadcrumb step — that still has to explain itself and
|
|
9
|
-
* still has to refuse a press it cannot
|
|
9
|
+
* still has to refuse a press it cannot honor. {@link Button} with `asChild` would restyle
|
|
10
10
|
* the child with the button's variants; this adds no class at all, so `className` is the
|
|
11
11
|
* whole of its look.
|
|
12
12
|
*
|
|
@@ -12,7 +12,7 @@ import { Surface } from '../Surface.js';
|
|
|
12
12
|
*/
|
|
13
13
|
export function AuthCard({ title, subtitle, logo, footer, fullScreen = true, aurora = false, children, className, ...rest }) {
|
|
14
14
|
return (_jsxs("div", { ...rest, className: cn('flex w-full flex-col items-center justify-center gap-6 p-4',
|
|
15
|
-
// The page
|
|
15
|
+
// The page color belongs to the full-screen page only. Embedded, the card sits on its
|
|
16
16
|
// host's surface — painting `bg-background` there drew a slab around it, a box on a box
|
|
17
17
|
// inside the host's panel (forge task 2466).
|
|
18
18
|
aurora ? 'dark cb-aurora cb-auth-aurora' : fullScreen && 'bg-background', fullScreen && 'min-h-dvh', className), children: [aurora ? _jsx(AmbientBackdrop, { position: 'absolute' }) : null, _jsxs("div", { className: 'flex w-full max-w-sm flex-col gap-6', children: [(logo != null || title != null || subtitle != null) && (_jsxs("div", { className: 'flex flex-col items-center gap-2 text-center', children: [logo != null ? _jsx("div", { className: 'mb-1', children: logo }) : null, title != null ? (_jsx("h1", { className: cn('text-2xl font-semibold text-foreground', aurora && 'cb-gradient-text'), children: title })) : null, subtitle != null ? _jsx("p", { className: 'text-sm text-muted-foreground', children: subtitle }) : null] })), _jsx(Surface, { level: aurora ? 'glass' : 'raised', pad: 'lg', radius: 'xl', className: 'w-full', children: children }), footer != null ? (_jsx("div", { className: 'text-center text-sm text-muted-foreground', children: footer })) : null] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthCard.js","sourceRoot":"","sources":["../../../../src/react/components/auth/AuthCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAkCxC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACO;IACd,OAAO,CACL,kBACM,IAAI,EACR,SAAS,EAAE,EAAE,CACX,4DAA4D;QAC5D,
|
|
1
|
+
{"version":3,"file":"AuthCard.js","sourceRoot":"","sources":["../../../../src/react/components/auth/AuthCard.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAkCxC;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACO;IACd,OAAO,CACL,kBACM,IAAI,EACR,SAAS,EAAE,EAAE,CACX,4DAA4D;QAC5D,sFAAsF;QACtF,wFAAwF;QACxF,6CAA6C;QAC7C,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,UAAU,IAAI,eAAe,EACxE,UAAU,IAAI,WAAW,EACzB,SAAS,CACV,aAIA,MAAM,CAAC,CAAC,CAAC,KAAC,eAAe,IAAC,QAAQ,EAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAExD,eAAK,SAAS,EAAC,qCAAqC,aACjD,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CACtD,eAAK,SAAS,EAAC,8CAA8C,aAC1D,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,MAAM,YAAE,IAAI,GAAO,CAAC,CAAC,CAAC,IAAI,EACxD,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CACf,aACE,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,MAAM,IAAI,kBAAkB,CAC7B,YAEA,KAAK,GACH,CACN,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAK,CAAC,CAAC,CAAC,IAAI,IAClF,CACP,EAED,KAAC,OAAO,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,YACjF,QAAQ,GACD,EAET,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,2CAA2C,YAAE,MAAM,GAAO,CAC1E,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
border-block-start: 1px solid var(--border);
|
|
27
27
|
background: var(--surface-raised, var(--card));
|
|
28
28
|
color: var(--foreground);
|
|
29
|
-
/* A cast shadow lifting the bar off the page, not a surface
|
|
29
|
+
/* A cast shadow lifting the bar off the page, not a surface color — it darkens whatever
|
|
30
30
|
is behind it, in both themes, and a token would tint a shadow.
|
|
31
31
|
guardrails-ignore no-hardcoded-colors: see above. */
|
|
32
32
|
box-shadow: 0 -6px 24px -12px rgb(0 0 0 / 0.35);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
/* The one bit of
|
|
35
|
+
/* The one bit of color — an update is information, not a failure, so it is the accent and
|
|
36
36
|
not the destructive tone. */
|
|
37
37
|
.cbbf-dot {
|
|
38
38
|
inline-size: 0.5rem;
|
|
@@ -38,8 +38,8 @@ export function MonthGrid({ monthDate, weekStart = 'sunday', renderDay, onSelect
|
|
|
38
38
|
: ctx.inMonth
|
|
39
39
|
? 'text-foreground'
|
|
40
40
|
: // 🔴 Muted AND faded. `text-muted-foreground` alone was the same
|
|
41
|
-
// weight and very nearly the same
|
|
42
|
-
// "July 26–31 use the exact same bold font size and dark
|
|
41
|
+
// weight and very nearly the same color as the current month, so
|
|
42
|
+
// "July 26–31 use the exact same bold font size and dark coloring
|
|
43
43
|
// as August" was a fair reading of the screen. Faded to 85%, not 50%:
|
|
44
44
|
// half-strength muted text scored 2.32:1 (FND-9, forge task 2628);
|
|
45
45
|
// at 85% it clears 4.5:1 (80% was 4.48:1) and still reads a step below the month.
|
|
@@ -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,iBAAiB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA6CxC;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,SAAS,GAAG,QAAQ,EACpB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,GAAG,OAAO,EACzB,aAAa,EACb,SAAS,EACT,GAAG,IAAI,EACQ;IACf,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEvC,OAAO,CACL,KAAC,OAAO,OAAK,IAAI,EAAE,OAAO,QAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,YAClH,iCACa,gBAAgB,aAG3B,cACE,SAAS,EAAC,gFAAgF,iBAC9E,MAAM,YAEjB,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxC,cAEE,SAAS,EAAC,2GAA2G,YAEpH,KAAK,IAHD,KAAK,CAIN,CACP,CAAC,GACE,EAGN,cAAK,SAAS,EAAC,0CAA0C,YACtD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAClB,MAAM,GAAG,GAAiB;4BACxB,MAAM,EAAE,IAAI,CAAC,GAAG;4BAChB,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnC,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK;yBAC5B,CAAC;wBAEF,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC;wBAEtC,OAAO,CAIL,eAEE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7D,SAAS,EAAE,EAAE;4BACX,sEAAsE;4BACtE,wEAAwE;4BACxE,wEAAwE;4BACxE,2EAA2E;4BAC3E,mHAAmH,EACnH,aAAa,EACb,SAAS,IAAI,kCAAkC;4BAC/C,yEAAyE;4BACzE,qEAAqE;4BACrE,CAAC,GAAG,CAAC,OAAO,IAAI,aAAa,CAC9B,aAED,eAAK,SAAS,EAAC,0CAA0C,aACvD,eACE,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,GAAG,CAAC,OAAO;gDACT,CAAC,CAAC,8CAA8C;gDAChD,CAAC,CAAC,GAAG,CAAC,OAAO;oDACX,CAAC,CAAC,iBAAiB;oDACnB,CAAC,CAAC,iEAAiE;wDACjE,kEAAkE;wDAClE,
|
|
1
|
+
{"version":3,"file":"MonthGrid.js","sourceRoot":"","sources":["../../../../src/react/components/calendar/MonthGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -46,11 +46,11 @@ const FALLBACK = COLOR_MAP.slate;
|
|
|
46
46
|
// ─── Hex detection + contrast ─────────────────────────────────────────────────
|
|
47
47
|
export const isHexColor = (color) => !!color && /^#[0-9a-f]{6}$/i.test(color);
|
|
48
48
|
/**
|
|
49
|
-
* A custom
|
|
49
|
+
* A custom color drawn the way the named ones are: a soft tint of the hue with ink of the same hue
|
|
50
50
|
* pulled toward the theme's foreground — so it reads in light AND dark, and sits beside the
|
|
51
51
|
* `bg-sky-100 text-sky-800` chips as a peer. Until forge task 2591 a hex was a SOLID fill with
|
|
52
52
|
* white or black text, the loudest mark on the grid whatever it meant (Google Calendar and Linear
|
|
53
|
-
* both tint a custom
|
|
53
|
+
* both tint a custom color rather than fill with it).
|
|
54
54
|
*/
|
|
55
55
|
const hexChip = (hex) => ({
|
|
56
56
|
backgroundColor: `color-mix(in srgb, ${hex} 18%, transparent)`,
|
|
@@ -65,7 +65,7 @@ export const DialogContent = forwardRef(({ className, overlayClassName, children
|
|
|
65
65
|
/*
|
|
66
66
|
🔴 Where the dialog mounts is the app's, exactly as for a Popover or a DropdownMenu. An app
|
|
67
67
|
whose tokens live on its own root (desk keeps every variable on `.cs-root`) got a dialog in
|
|
68
|
-
`document.body` drawn with no
|
|
68
|
+
`document.body` drawn with no colors at all, and a full-screen element hid it outright.
|
|
69
69
|
*/
|
|
70
70
|
const container = useFloatingContainer();
|
|
71
71
|
return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, { className: overlayClassName }), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('z-50 outline-none', className), onPointerDownOutside: (event) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* The inline error row a {@link Field} draws under its control — icon,
|
|
3
|
+
* The inline error row a {@link Field} draws under its control — icon, color and size in one
|
|
4
4
|
* place. Internal: a control that cannot sit in a `Field` (SignupForm's terms checkbox, whose
|
|
5
5
|
* label is the checkbox's own) draws this, so its error reads like every other one (forge task
|
|
6
6
|
* 2466 found that checkbox's error with no icon, as a bare red line).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { AlertCircle } from 'lucide-react';
|
|
3
3
|
/**
|
|
4
|
-
* The inline error row a {@link Field} draws under its control — icon,
|
|
4
|
+
* The inline error row a {@link Field} draws under its control — icon, color and size in one
|
|
5
5
|
* place. Internal: a control that cannot sit in a `Field` (SignupForm's terms checkbox, whose
|
|
6
6
|
* label is the checkbox's own) draws this, so its error reads like every other one (forge task
|
|
7
7
|
* 2466 found that checkbox's error with no icon, as a bare red line).
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Knobs:
|
|
11
11
|
* --cb-panesplit-ground what the seam's track is painted — set it to the panes' background
|
|
12
|
-
* --cb-panesplit-line the hairline's
|
|
12
|
+
* --cb-panesplit-line the hairline's color (default `--border`)
|
|
13
13
|
* --cb-panesplit-reach the seam's track, the size of the hit area (default 5px)
|
|
14
14
|
* --cb-panesplit-active the line on hover and focus (default `--ring`)
|
|
15
15
|
*/
|
|
@@ -126,7 +126,7 @@ export interface DeepLinks<V extends string = string> {
|
|
|
126
126
|
paramsOf(view: V): readonly string[];
|
|
127
127
|
/** True when this href carries no place at all — the bare entry resume restores. */
|
|
128
128
|
isBare(raw: string): boolean;
|
|
129
|
-
/** Structural equality, so a no-op navigation can be
|
|
129
|
+
/** Structural equality, so a no-op navigation can be recognized as one. */
|
|
130
130
|
equals(a: DeepLinkLocation<V>, b: DeepLinkLocation<V>): boolean;
|
|
131
131
|
}
|
|
132
132
|
export declare function defineDeepLinks<V extends string>(options: DeepLinksOptions<V>): DeepLinks<V>;
|
|
@@ -115,7 +115,7 @@ export function useResume(options) {
|
|
|
115
115
|
* Every one of them — `navigateTo`, `client`, `canRestore` — has an identity
|
|
116
116
|
* that changes when the location changes, so a dependency list naming them
|
|
117
117
|
* re-runs the effect mid-read. The re-run bailed on `attempted`, its cleanup
|
|
118
|
-
*
|
|
118
|
+
* canceled the read in flight, `ready` never became true, and NOTHING WAS
|
|
119
119
|
* EVER RECORDED. It was invisible in a hook test (the read resolved before
|
|
120
120
|
* anything re-rendered) and reproduced every time in a browser, which is why
|
|
121
121
|
* `apps/music/__smoke/deepLinks.spec.ts` exists.
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
opacity: 1 !important;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
/* Syntax
|
|
60
|
+
/* Syntax colors from cursedbelt's text-safe tone tokens, for both themes (the tokens flip
|
|
61
61
|
* under `.dark`). The library ships GitHub's literal palette (#d73a49, #e36209, #6f42c1,
|
|
62
62
|
* #005cc5), which measured 3.5-4.3:1 on white and on the added/removed line tints. Every
|
|
63
63
|
* token below clears 4.5:1 on the plain, added, removed and highlighted backgrounds, light
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReportPlaceOptions } from "./beaconClient.js";
|
|
1
|
+
import { type ReportActionOptions, type ReportPlaceOptions } from "./beaconClient.js";
|
|
2
2
|
/**
|
|
3
3
|
* Report `place` whenever it changes.
|
|
4
4
|
*
|
|
@@ -8,6 +8,13 @@ import { type ReportPlaceOptions } from "./beaconClient.js";
|
|
|
8
8
|
* placeholder becomes a real row in the console.
|
|
9
9
|
*/
|
|
10
10
|
export declare function useEngagementBeacon(place: string | null, options?: ReportPlaceOptions): void;
|
|
11
|
+
/**
|
|
12
|
+
* A press handler that reports `action` as used (forge task 3470) — `const onSearch =
|
|
13
|
+
* useEngagementAction("search")`, then call it where the feature RUNS. Stable across renders, so it
|
|
14
|
+
* can sit in a dependency list; fire-and-forget, like everything here. `reportAction` says what it
|
|
15
|
+
* may and may not carry.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useEngagementAction(action: string, options?: ReportActionOptions): () => void;
|
|
11
18
|
/**
|
|
12
19
|
* Report wherever the browser IS, and keep reporting as it moves.
|
|
13
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/beacon.tsx"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"beacon.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/beacon.tsx"],"names":[],"mappings":"AAQA,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAIvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAWhG;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,IAAI,CAKjG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI,CASxE;AAED;;;;;;;;GAQG;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGnE"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* no DOM) can import `reportPlace` without pulling React in, and so the app's
|
|
6
6
|
* own router stays the thing that decides what "a place" is.
|
|
7
7
|
*/
|
|
8
|
-
import { useEffect } from "react";
|
|
9
|
-
import { reportPlace, startLocationBeacon } from "./beaconClient.js";
|
|
8
|
+
import { useCallback, useEffect } from "react";
|
|
9
|
+
import { reportAction, reportPlace, startLocationBeacon, } from "./beaconClient.js";
|
|
10
10
|
/**
|
|
11
11
|
* Report `place` whenever it changes.
|
|
12
12
|
*
|
|
@@ -16,14 +16,29 @@ import { reportPlace, startLocationBeacon } from "./beaconClient.js";
|
|
|
16
16
|
* placeholder becomes a real row in the console.
|
|
17
17
|
*/
|
|
18
18
|
export function useEngagementBeacon(place, options = {}) {
|
|
19
|
-
|
|
19
|
+
// 🔴 Every field, not just `basePath` (forge task 3538): rebuilding the object as `{ basePath }`
|
|
20
|
+
// dropped `assumeSignedIn`, so desk — whose door is Cloudflare Access, with no session route —
|
|
21
|
+
// still probed `/api/auth/session` and its 404 put a console error on every page.
|
|
22
|
+
const { basePath, fetchImpl, sessionPath, assumeSignedIn } = options;
|
|
20
23
|
useEffect(() => {
|
|
21
24
|
if (!place)
|
|
22
25
|
return;
|
|
23
26
|
// Fire and forget; `reportPlace` never rejects. Not awaited on purpose —
|
|
24
27
|
// a route change must not wait on telemetry.
|
|
25
|
-
void reportPlace(place,
|
|
26
|
-
}, [place, basePath]);
|
|
28
|
+
void reportPlace(place, { basePath, fetchImpl, sessionPath, assumeSignedIn });
|
|
29
|
+
}, [place, basePath, fetchImpl, sessionPath, assumeSignedIn]);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A press handler that reports `action` as used (forge task 3470) — `const onSearch =
|
|
33
|
+
* useEngagementAction("search")`, then call it where the feature RUNS. Stable across renders, so it
|
|
34
|
+
* can sit in a dependency list; fire-and-forget, like everything here. `reportAction` says what it
|
|
35
|
+
* may and may not carry.
|
|
36
|
+
*/
|
|
37
|
+
export function useEngagementAction(action, options = {}) {
|
|
38
|
+
const { basePath, fetchImpl, sessionPath, assumeSignedIn, place } = options;
|
|
39
|
+
return useCallback(() => {
|
|
40
|
+
void reportAction(action, { basePath, fetchImpl, sessionPath, assumeSignedIn, place });
|
|
41
|
+
}, [action, basePath, fetchImpl, sessionPath, assumeSignedIn, place]);
|
|
27
42
|
}
|
|
28
43
|
/**
|
|
29
44
|
* Report wherever the browser IS, and keep reporting as it moves.
|
|
@@ -40,11 +55,11 @@ export function useEngagementBeacon(place, options = {}) {
|
|
|
40
55
|
* de-duplicates, so a re-render costs nothing.
|
|
41
56
|
*/
|
|
42
57
|
export function useLocationBeacon(options = {}) {
|
|
43
|
-
const basePath = options
|
|
58
|
+
const { basePath, fetchImpl, sessionPath, assumeSignedIn } = options;
|
|
44
59
|
// Delegates to the plain-JS starter so there is ONE implementation of the
|
|
45
60
|
// listener set. Most apps call `startLocationBeacon()` from `main.tsx`
|
|
46
61
|
// instead; this exists for a shell that would rather own the lifetime.
|
|
47
|
-
useEffect(() => startLocationBeacon(
|
|
62
|
+
useEffect(() => startLocationBeacon({ basePath, fetchImpl, sessionPath, assumeSignedIn }), [basePath, fetchImpl, sessionPath, assumeSignedIn]);
|
|
48
63
|
}
|
|
49
64
|
/**
|
|
50
65
|
* The location beacon as an element, for a shell that mounts declaratively.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../src/react/engagement/beacon.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"beacon.js","sourceRoot":"","sources":["../../../src/react/engagement/beacon.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAGN,YAAY,EACZ,WAAW,EACX,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAoB,EAAE,UAA8B,EAAE;IACzF,iGAAiG;IACjG,+FAA+F;IAC/F,kFAAkF;IAClF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrE,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,yEAAyE;QACzE,6CAA6C;QAC7C,KAAK,WAAW,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,UAA+B,EAAE;IACpF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC5E,OAAO,WAAW,CAAC,GAAG,EAAE;QACvB,KAAK,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACrE,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,SAAS,CACR,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAC/E,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAClD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC5D,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -94,6 +94,33 @@ export declare function resetEngagementBeacon(): void;
|
|
|
94
94
|
* settle it without a timer.
|
|
95
95
|
*/
|
|
96
96
|
export declare function reportPlace(place: string, options?: ReportPlaceOptions): Promise<boolean>;
|
|
97
|
+
export interface ReportActionOptions extends ReportPlaceOptions {
|
|
98
|
+
/**
|
|
99
|
+
* The place the action happened on. Defaults to where the browser IS — the server resolves it
|
|
100
|
+
* against the manifest exactly as it resolves a view, so the default is right for every app.
|
|
101
|
+
*/
|
|
102
|
+
place?: string;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Report that a FEATURE was used — `reportAction("search")` — beside the place it was used on
|
|
106
|
+
* (forge task 3470). Returns whether anything was sent.
|
|
107
|
+
*
|
|
108
|
+
* The owner's question is "what features do they use and ignore"; a page view cannot answer it,
|
|
109
|
+
* because one page holds several features. So the app names the action at the press, from the
|
|
110
|
+
* `actions` list its `routes.manifest.json` declares. The privacy contract is the place's:
|
|
111
|
+
*
|
|
112
|
+
* · 🔴 a NAME, never a value. `reportAction("search")` when a search RUNS — never the query,
|
|
113
|
+
* and never once per keystroke (call it where the search commits, not in an onChange). There
|
|
114
|
+
* is no parameter for a value, so there is nowhere to put one.
|
|
115
|
+
* · an undeclared name records as `other` server-side, so a missing manifest entry shows up as
|
|
116
|
+
* a row rather than as a feature nobody uses.
|
|
117
|
+
* · the same silence: session-probed (the probe's answer is shared with `reportPlace`, one per
|
|
118
|
+
* page load), fire-and-forget, never throws, never logs.
|
|
119
|
+
*
|
|
120
|
+
* NOT de-duplicated, unlike `reportPlace`: three plays are three uses. Only call it from apps
|
|
121
|
+
* whose recorder was mounted WITH `actions` — elsewhere `/action` is a 404 in the console.
|
|
122
|
+
*/
|
|
123
|
+
export declare function reportAction(action: string, options?: ReportActionOptions): Promise<boolean>;
|
|
97
124
|
/** Detaches the listeners `startLocationBeacon` installed. */
|
|
98
125
|
export type StopBeacon = () => void;
|
|
99
126
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconClient.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/beaconClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAYD,8DAA8D;AAC9D,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAyBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC;AAIpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,kBAAuB,GAAG,UAAU,CAehF"}
|
|
1
|
+
{"version":3,"file":"beaconClient.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/beaconClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAYD,8DAA8D;AAC9D,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAyBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC9D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBtG;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC;AAIpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,kBAAuB,GAAG,UAAU,CAehF"}
|
|
@@ -163,6 +163,51 @@ export async function reportPlace(place, options = {}) {
|
|
|
163
163
|
return false;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Report that a FEATURE was used — `reportAction("search")` — beside the place it was used on
|
|
168
|
+
* (forge task 3470). Returns whether anything was sent.
|
|
169
|
+
*
|
|
170
|
+
* The owner's question is "what features do they use and ignore"; a page view cannot answer it,
|
|
171
|
+
* because one page holds several features. So the app names the action at the press, from the
|
|
172
|
+
* `actions` list its `routes.manifest.json` declares. The privacy contract is the place's:
|
|
173
|
+
*
|
|
174
|
+
* · 🔴 a NAME, never a value. `reportAction("search")` when a search RUNS — never the query,
|
|
175
|
+
* and never once per keystroke (call it where the search commits, not in an onChange). There
|
|
176
|
+
* is no parameter for a value, so there is nowhere to put one.
|
|
177
|
+
* · an undeclared name records as `other` server-side, so a missing manifest entry shows up as
|
|
178
|
+
* a row rather than as a feature nobody uses.
|
|
179
|
+
* · the same silence: session-probed (the probe's answer is shared with `reportPlace`, one per
|
|
180
|
+
* page load), fire-and-forget, never throws, never logs.
|
|
181
|
+
*
|
|
182
|
+
* NOT de-duplicated, unlike `reportPlace`: three plays are three uses. Only call it from apps
|
|
183
|
+
* whose recorder was mounted WITH `actions` — elsewhere `/action` is a 404 in the console.
|
|
184
|
+
*/
|
|
185
|
+
export async function reportAction(action, options = {}) {
|
|
186
|
+
if (!action)
|
|
187
|
+
return false;
|
|
188
|
+
const doFetch = options.fetchImpl ?? globalThis.fetch;
|
|
189
|
+
if (typeof doFetch !== "function")
|
|
190
|
+
return false;
|
|
191
|
+
if (options.assumeSignedIn !== true) {
|
|
192
|
+
sessionAnswer ??= hasSession(options);
|
|
193
|
+
if (!(await sessionAnswer))
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
const place = options.place ?? (typeof window === "undefined" ? "/" : currentLocationPlace());
|
|
197
|
+
try {
|
|
198
|
+
await doFetch(`${options.basePath ?? ENGAGEMENT_BASE_PATH}/action`, {
|
|
199
|
+
method: "POST",
|
|
200
|
+
headers: { "content-type": "application/json" },
|
|
201
|
+
credentials: "same-origin",
|
|
202
|
+
body: JSON.stringify({ place, action }),
|
|
203
|
+
keepalive: true,
|
|
204
|
+
});
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
166
211
|
let running = null;
|
|
167
212
|
/**
|
|
168
213
|
* Start reporting wherever the browser is, and keep reporting as it moves.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconClient.js","sourceRoot":"","sources":["../../../src/react/engagement/beaconClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAmBhD;;;;;;;;GAQG;AACH,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB;IACpC,YAAY,GAAG,IAAI,CAAC;IACpB,aAAa,GAAG,IAAI,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,UAAU,CAAC,OAA2B;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,EAAE;YAC9D,WAAW,EAAE,aAAa;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;QACtE,OAAO,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,KAAa,EACb,UAA8B,EAAE;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAEhD,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,4CAA4C;IAC5C,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACrC,aAAa,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACzC,YAAY,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACJ,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,OAAO,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,mEAAmE;YACnE,6DAA6D;YAC7D,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;YAC/B,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,8DAA8D;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAKD,IAAI,OAAO,GAAsB,IAAI,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA8B,EAAE;IACnE,OAAO,EAAE,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,KAAK,WAAW,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,IAAI,EAAE,CAAC;IACP,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAe,GAAG,EAAE;QAC7B,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,GAAG,IAAI,CAAC;IACtC,CAAC,CAAC;IACF,OAAO,GAAG,IAAI,CAAC;IACf,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"beaconClient.js","sourceRoot":"","sources":["../../../src/react/engagement/beaconClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAmBhD;;;;;;;;GAQG;AACH,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB;IACpC,YAAY,GAAG,IAAI,CAAC;IACpB,aAAa,GAAG,IAAI,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,UAAU,CAAC,OAA2B;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,EAAE;YAC9D,WAAW,EAAE,aAAa;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;QACtE,OAAO,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,KAAa,EACb,UAA8B,EAAE;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAEhD,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,4CAA4C;IAC5C,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACrC,aAAa,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACzC,YAAY,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACJ,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,OAAO,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,mEAAmE;YACnE,6DAA6D;YAC7D,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;YAC/B,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,8DAA8D;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAUD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,UAA+B,EAAE;IACnF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACrC,aAAa,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC;QACJ,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,SAAS,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACvC,SAAS,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAKD,IAAI,OAAO,GAAsB,IAAI,CAAC;AAEtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA8B,EAAE;IACnE,OAAO,EAAE,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,GAAS,EAAE;QACvB,KAAK,WAAW,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,IAAI,EAAE,CAAC;IACP,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAe,GAAG,EAAE;QAC7B,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,GAAG,IAAI,CAAC;IACtC,CAAC,CAAC;IACF,OAAO,GAAG,IAAI,CAAC;IACf,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ENGAGEMENT_BASE_PATH, type ReportPlaceOptions, reportPlace, resetEngagementBeacon, SESSION_PATH, type StopBeacon, startLocationBeacon, currentLocationPlace, } from './beaconClient.js';
|
|
2
|
-
export { EngagementBeacon, useEngagementBeacon, useLocationBeacon } from './beacon.js';
|
|
1
|
+
export { ENGAGEMENT_BASE_PATH, type ReportActionOptions, type ReportPlaceOptions, reportAction, reportPlace, resetEngagementBeacon, SESSION_PATH, type StopBeacon, startLocationBeacon, currentLocationPlace, } from './beaconClient.js';
|
|
2
|
+
export { EngagementBeacon, useEngagementAction, useEngagementBeacon, useLocationBeacon } from './beacon.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,KAAK,UAAU,EACf,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/engagement/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,KAAK,UAAU,EACf,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// `cursedbelt/react/engagement-beacon` — the engagement beacon: `reportPlace` and
|
|
1
|
+
// `cursedbelt/react/engagement-beacon` — the engagement beacon: `reportPlace`, `reportAction` and
|
|
2
2
|
// `startLocationBeacon` (plain JS, no React) and the React hooks over them.
|
|
3
|
-
export { ENGAGEMENT_BASE_PATH, reportPlace, resetEngagementBeacon, SESSION_PATH, startLocationBeacon, currentLocationPlace, } from './beaconClient.js';
|
|
4
|
-
export { EngagementBeacon, useEngagementBeacon, useLocationBeacon } from './beacon.js';
|
|
3
|
+
export { ENGAGEMENT_BASE_PATH, reportAction, reportPlace, resetEngagementBeacon, SESSION_PATH, startLocationBeacon, currentLocationPlace, } from './beaconClient.js';
|
|
4
|
+
export { EngagementBeacon, useEngagementAction, useEngagementBeacon, useLocationBeacon } from './beacon.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/engagement/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/engagement/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,4EAA4E;AAC5E,OAAO,EACN,oBAAoB,EAGpB,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,YAAY,EAEZ,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* ── Where it came from ──────────────────────────────────────────────────────────────────
|
|
10
10
|
* Owner, 2026-09-08: *"the spreadsheet app has a much better file tree sidebar than
|
|
11
11
|
* collections has. Add the file tree viewer from it into cb so apps like collections can
|
|
12
|
-
* use it."* This is `cursed-embeddable-spreadsheet`'s `FileTree`,
|
|
12
|
+
* use it."* This is `cursed-embeddable-spreadsheet`'s `FileTree`, generalized: its workbook
|
|
13
13
|
* /sheet/note vocabulary is gone, its manual sibling order became the opt-in
|
|
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.
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
* ── 🔴 The graduation verdict, 2026-09-13: this one stays, and it grew ──────────────────
|
|
18
18
|
* `cursedesk` has a `FileTree.tsx` of its own — the same ancestor, kept in step by hand ever
|
|
19
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
|
|
20
|
+
* the app's tree with the workbook/sheet/note/merge vocabulary generalized away, and it has
|
|
21
21
|
* external drags, `canDrop`, `acceptsDrop`, reordering, filtering, access marks, counts and
|
|
22
22
|
* the three render slots, none of which the app's has.
|
|
23
23
|
*
|
|
24
|
-
* But the app's carried SIX
|
|
24
|
+
* But the app's carried SIX behaviors this did not, every one of them general, and adopting
|
|
25
25
|
* this tree without them would have been a regression on a 200-row library rather than a
|
|
26
26
|
* graduation. They are here now and each says so where it lives:
|
|
27
27
|
*
|
|
@@ -180,7 +180,7 @@ export interface FileTreeProps {
|
|
|
180
180
|
* folder the library is filtered by. Those are singular questions with singular answers,
|
|
181
181
|
* and a tree that silently became multi-select would break "what am I looking at" in two
|
|
182
182
|
* shipped apps on the day it published. So a consumer that passes neither this nor
|
|
183
|
-
* {@link onSelectionChange} gets EXACTLY today's
|
|
183
|
+
* {@link onSelectionChange} gets EXACTLY today's behavior, byte for byte.
|
|
184
184
|
*
|
|
185
185
|
* Omit it and the selection is `[selectedId]`, which is what makes ⌘-click work for a
|
|
186
186
|
* consumer that stores only the one id and grows into the array afterwards.
|
|
@@ -218,7 +218,7 @@ export interface FileTreeProps {
|
|
|
218
218
|
* persisted is still the collapse it persisted — on the next mount the tree reads it back
|
|
219
219
|
* unchanged. Shutting one of them by hand drops it from the overlay and the persisted value
|
|
220
220
|
* decides again; nothing about it is ever written out. That is the whole of the objection
|
|
221
|
-
* limit 1 records, answered without giving up the
|
|
221
|
+
* limit 1 records, answered without giving up the behavior he asked for.
|
|
222
222
|
*
|
|
223
223
|
* Off unless it is wired, like every other verb here: a consumer that passes nothing gets
|
|
224
224
|
* byte for byte today's reveal.
|
|
@@ -276,7 +276,7 @@ export interface FileTreeProps {
|
|
|
276
276
|
/**
|
|
277
277
|
* What the pinned section is called — its heading, and its `aria-label`. Default `Pinned`.
|
|
278
278
|
*
|
|
279
|
-
* An app whose vocabulary differs ("
|
|
279
|
+
* An app whose vocabulary differs ("Favorites", "Starred") passes its own, for the same
|
|
280
280
|
* reason {@link accessCopy} exists: the mechanism is general and the words are not.
|
|
281
281
|
*/
|
|
282
282
|
pinnedLabel?: string;
|
|
@@ -367,7 +367,7 @@ export interface FileTreeProps {
|
|
|
367
367
|
* delete all the selected files"*.
|
|
368
368
|
*
|
|
369
369
|
* Without it, ⌫ on a multi-selection deletes the focused row alone, which is today's
|
|
370
|
-
*
|
|
370
|
+
* behavior and a consumer that never asked for the plural keeps it. The nodes are handed
|
|
371
371
|
* over rather than the ids, because a confirmation dialog needs their names.
|
|
372
372
|
*/
|
|
373
373
|
onDeleteMany?: (nodes: readonly FileTreeNode[]) => void;
|
|
@@ -394,7 +394,7 @@ export interface FileTreeProps {
|
|
|
394
394
|
*
|
|
395
395
|
* 🔴 Nothing is created until the name is committed. A folder made first and renamed
|
|
396
396
|
* afterwards is a row that spent a moment called "untitled", and a row in the way if the
|
|
397
|
-
* field is
|
|
397
|
+
* field is canceled.
|
|
398
398
|
*
|
|
399
399
|
* `wrap` is the same draft asked to close AROUND rows that already exist — *"allow make
|
|
400
400
|
* dir from file where dir wraps file location and gets name of file"*, which is Finder's
|
|
@@ -453,7 +453,7 @@ export interface FileTreeProps {
|
|
|
453
453
|
*
|
|
454
454
|
* 🔴 A tree whose folders are DERIVED has nothing to wrap with. `apps/music` builds a
|
|
455
455
|
* folder out of the `folder` column of the tracks inside it, so there is no folder for this
|
|
456
|
-
* gesture to make — and offering a name field that cannot be
|
|
456
|
+
* gesture to make — and offering a name field that cannot be honored is the "control that
|
|
457
457
|
* fails on commit" this component refuses everywhere else. See `refuseWrap`.
|
|
458
458
|
*
|
|
459
459
|
* A row the consumer marked `draggable: false` is refused without asking, because wrapping
|