@oh-just-another/react-ui 0.61.0 → 0.63.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/CHANGELOG.md +132 -0
- package/README.md +3 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/color/color-palette.d.ts.map +1 -0
- package/dist/color/color-palette.js.map +1 -0
- package/dist/color/color-swatch-picker.d.ts.map +1 -0
- package/dist/{color-swatch-picker.js → color/color-swatch-picker.js} +4 -3
- package/dist/color/color-swatch-picker.js.map +1 -0
- package/dist/{constants.d.ts → core/constants.d.ts} +66 -14
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/{constants.js → core/constants.js} +99 -14
- package/dist/core/constants.js.map +1 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/portal-container.d.ts.map +1 -0
- package/dist/core/portal-container.js.map +1 -0
- package/dist/core/use-fullscreen.d.ts +14 -0
- package/dist/core/use-fullscreen.d.ts.map +1 -0
- package/dist/core/use-fullscreen.js +38 -0
- package/dist/core/use-fullscreen.js.map +1 -0
- package/dist/core/use-quiet-gesture.d.ts +11 -0
- package/dist/core/use-quiet-gesture.d.ts.map +1 -0
- package/dist/core/use-quiet-gesture.js +61 -0
- package/dist/core/use-quiet-gesture.js.map +1 -0
- package/dist/core/use-quiet-viewport.d.ts +10 -0
- package/dist/core/use-quiet-viewport.d.ts.map +1 -0
- package/dist/core/use-quiet-viewport.js +40 -0
- package/dist/core/use-quiet-viewport.js.map +1 -0
- package/dist/index.d.ts +55 -50
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -50
- package/dist/index.js.map +1 -1
- package/dist/layout/diagram-bars.d.ts.map +1 -0
- package/dist/layout/diagram-bars.js.map +1 -0
- package/dist/layout/diagram-canvas.d.ts.map +1 -0
- package/dist/layout/diagram-canvas.js.map +1 -0
- package/dist/layout/diagram-root.d.ts.map +1 -0
- package/dist/{diagram-root.js → layout/diagram-root.js} +2 -2
- package/dist/layout/diagram-root.js.map +1 -0
- package/dist/{sidebar.d.ts → layout/sidebar.d.ts} +1 -0
- package/dist/layout/sidebar.d.ts.map +1 -0
- package/dist/layout/sidebar.js +38 -0
- package/dist/layout/sidebar.js.map +1 -0
- package/dist/layout/ui-layer.d.ts.map +1 -0
- package/dist/layout/ui-layer.js.map +1 -0
- package/dist/menus/command-palette.d.ts.map +1 -0
- package/dist/{command-palette.js → menus/command-palette.js} +2 -2
- package/dist/menus/command-palette.js.map +1 -0
- package/dist/menus/context-menu-controller.d.ts.map +1 -0
- package/dist/menus/context-menu-controller.js.map +1 -0
- package/dist/{context-menu.d.ts → menus/context-menu.d.ts} +12 -0
- package/dist/menus/context-menu.d.ts.map +1 -0
- package/dist/menus/context-menu.js +617 -0
- package/dist/menus/context-menu.js.map +1 -0
- package/dist/menus/link-drop-shape-menu.d.ts.map +1 -0
- package/dist/{link-drop-shape-menu.js → menus/link-drop-shape-menu.js} +4 -4
- package/dist/menus/link-drop-shape-menu.js.map +1 -0
- package/dist/{main-menu.d.ts → menus/main-menu.d.ts} +45 -2
- package/dist/menus/main-menu.d.ts.map +1 -0
- package/dist/menus/main-menu.js +260 -0
- package/dist/menus/main-menu.js.map +1 -0
- package/dist/overlays/file-drop-overlay.d.ts +15 -0
- package/dist/overlays/file-drop-overlay.d.ts.map +1 -0
- package/dist/overlays/file-drop-overlay.js +27 -0
- package/dist/overlays/file-drop-overlay.js.map +1 -0
- package/dist/overlays/frame-name-editor-overlay.d.ts.map +1 -0
- package/dist/{frame-name-editor-overlay.js → overlays/frame-name-editor-overlay.js} +1 -1
- package/dist/overlays/frame-name-editor-overlay.js.map +1 -0
- package/dist/overlays/help-button.d.ts.map +1 -0
- package/dist/{help-button.js → overlays/help-button.js} +3 -4
- package/dist/overlays/help-button.js.map +1 -0
- package/dist/overlays/help-dialog.d.ts.map +1 -0
- package/dist/{help-dialog.js → overlays/help-dialog.js} +4 -24
- package/dist/overlays/help-dialog.js.map +1 -0
- package/dist/overlays/link-badges.d.ts +14 -0
- package/dist/overlays/link-badges.d.ts.map +1 -0
- package/dist/overlays/link-badges.js +60 -0
- package/dist/overlays/link-badges.js.map +1 -0
- package/dist/overlays/link-caption-editor.d.ts.map +1 -0
- package/dist/{link-caption-editor.js → overlays/link-caption-editor.js} +3 -3
- package/dist/overlays/link-caption-editor.js.map +1 -0
- package/dist/overlays/link-hover-popup.d.ts.map +1 -0
- package/dist/{link-hover-popup.js → overlays/link-hover-popup.js} +5 -4
- package/dist/overlays/link-hover-popup.js.map +1 -0
- package/dist/overlays/merge-dialog.d.ts.map +1 -0
- package/dist/overlays/merge-dialog.js +39 -0
- package/dist/overlays/merge-dialog.js.map +1 -0
- package/dist/overlays/search-overlay.d.ts.map +1 -0
- package/dist/{search-overlay.js → overlays/search-overlay.js} +2 -2
- package/dist/overlays/search-overlay.js.map +1 -0
- package/dist/overlays/sticky-reactions.d.ts +2 -0
- package/dist/overlays/sticky-reactions.d.ts.map +1 -0
- package/dist/overlays/sticky-reactions.js +94 -0
- package/dist/overlays/sticky-reactions.js.map +1 -0
- package/dist/overlays/text-editor-overlay.d.ts.map +1 -0
- package/dist/{text-editor-overlay.js → overlays/text-editor-overlay.js} +37 -5
- package/dist/overlays/text-editor-overlay.js.map +1 -0
- package/dist/{comments-panel.d.ts → panels/comments-panel.d.ts} +4 -1
- package/dist/panels/comments-panel.d.ts.map +1 -0
- package/dist/panels/comments-panel.js +51 -0
- package/dist/panels/comments-panel.js.map +1 -0
- package/dist/panels/control-sets.d.ts +42 -0
- package/dist/panels/control-sets.d.ts.map +1 -0
- package/dist/panels/control-sets.js +63 -0
- package/dist/panels/control-sets.js.map +1 -0
- package/dist/panels/diff-panel.d.ts.map +1 -0
- package/dist/panels/diff-panel.js.map +1 -0
- package/dist/panels/drawing-panel.d.ts.map +1 -0
- package/dist/{drawing-panel.js → panels/drawing-panel.js} +3 -3
- package/dist/panels/drawing-panel.js.map +1 -0
- package/dist/panels/edge-style-panel.d.ts.map +1 -0
- package/dist/{edge-style-panel.js → panels/edge-style-panel.js} +1 -1
- package/dist/panels/edge-style-panel.js.map +1 -0
- package/dist/panels/frame-panel.d.ts.map +1 -0
- package/dist/{frame-panel.js → panels/frame-panel.js} +1 -1
- package/dist/panels/frame-panel.js.map +1 -0
- package/dist/{layer-panel.d.ts → panels/layer-panel.d.ts} +5 -1
- package/dist/panels/layer-panel.d.ts.map +1 -0
- package/dist/panels/layer-panel.js +52 -0
- package/dist/panels/layer-panel.js.map +1 -0
- package/dist/panels/library-panel.d.ts.map +1 -0
- package/dist/{library-panel.js → panels/library-panel.js} +4 -5
- package/dist/panels/library-panel.js.map +1 -0
- package/dist/panels/property-panel.d.ts.map +1 -0
- package/dist/panels/property-panel.js +1492 -0
- package/dist/panels/property-panel.js.map +1 -0
- package/dist/panels/selection-floating-panel.d.ts.map +1 -0
- package/dist/{selection-floating-panel.js → panels/selection-floating-panel.js} +24 -13
- package/dist/panels/selection-floating-panel.js.map +1 -0
- package/dist/panels/stats-panel.d.ts.map +1 -0
- package/dist/{stats-panel.js → panels/stats-panel.js} +1 -1
- package/dist/panels/stats-panel.js.map +1 -0
- package/dist/primitives/bottom-sheet.d.ts.map +1 -0
- package/dist/{bottom-sheet.js → primitives/bottom-sheet.js} +9 -22
- package/dist/primitives/bottom-sheet.js.map +1 -0
- package/dist/primitives/button-group.d.ts.map +1 -0
- package/dist/primitives/button-group.js.map +1 -0
- package/dist/primitives/css-var.d.ts +8 -0
- package/dist/primitives/css-var.d.ts.map +1 -0
- package/dist/primitives/css-var.js +11 -0
- package/dist/primitives/css-var.js.map +1 -0
- package/dist/primitives/float-panel.d.ts +35 -0
- package/dist/primitives/float-panel.d.ts.map +1 -0
- package/dist/primitives/float-panel.js +42 -0
- package/dist/primitives/float-panel.js.map +1 -0
- package/dist/primitives/icon-button.d.ts.map +1 -0
- package/dist/primitives/icon-button.js.map +1 -0
- package/dist/primitives/markdown.d.ts.map +1 -0
- package/dist/primitives/markdown.js.map +1 -0
- package/dist/primitives/modal.d.ts.map +1 -0
- package/dist/{modal.js → primitives/modal.js} +11 -9
- package/dist/primitives/modal.js.map +1 -0
- package/dist/{popover.d.ts → primitives/popover.d.ts} +1 -1
- package/dist/primitives/popover.d.ts.map +1 -0
- package/dist/{popover.js → primitives/popover.js} +7 -18
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/segmented-control.d.ts.map +1 -0
- package/dist/primitives/segmented-control.js.map +1 -0
- package/dist/primitives/slider.d.ts.map +1 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/switch.d.ts +24 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/switch.js +17 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/toast.d.ts.map +1 -0
- package/dist/{toast.js → primitives/toast.js} +12 -33
- package/dist/primitives/toast.js.map +1 -0
- package/dist/primitives/tooltip.d.ts.map +1 -0
- package/dist/{tooltip.js → primitives/tooltip.js} +3 -3
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/{palette.d.ts → toolbar/palette.d.ts} +6 -1
- package/dist/toolbar/palette.d.ts.map +1 -0
- package/dist/{palette.js → toolbar/palette.js} +39 -5
- package/dist/toolbar/palette.js.map +1 -0
- package/dist/{toolbar.d.ts → toolbar/toolbar.d.ts} +9 -0
- package/dist/toolbar/toolbar.d.ts.map +1 -0
- package/dist/{toolbar.js → toolbar/toolbar.js} +132 -62
- package/dist/toolbar/toolbar.js.map +1 -0
- package/dist/utils/format-time.d.ts.map +1 -0
- package/dist/utils/format-time.js.map +1 -0
- package/dist/utils/use-dismiss-timer.d.ts.map +1 -0
- package/dist/utils/use-dismiss-timer.js.map +1 -0
- package/dist/widgets/minimap.d.ts.map +1 -0
- package/dist/{minimap.js → widgets/minimap.js} +50 -36
- package/dist/widgets/minimap.js.map +1 -0
- package/dist/widgets/reset-to-content-button.d.ts +11 -0
- package/dist/widgets/reset-to-content-button.d.ts.map +1 -0
- package/dist/{reset-to-content-button.js → widgets/reset-to-content-button.js} +8 -9
- package/dist/widgets/reset-to-content-button.js.map +1 -0
- package/dist/widgets/versioning.d.ts.map +1 -0
- package/dist/{versioning.js → widgets/versioning.js} +3 -3
- package/dist/widgets/versioning.js.map +1 -0
- package/dist/widgets/zen-mode.d.ts.map +1 -0
- package/dist/widgets/zen-mode.js.map +1 -0
- package/package.json +9 -9
- package/src/styles.css +1596 -258
- package/dist/bottom-sheet.d.ts.map +0 -1
- package/dist/bottom-sheet.js.map +0 -1
- package/dist/button-group.d.ts.map +0 -1
- package/dist/button-group.js.map +0 -1
- package/dist/color-palette.d.ts.map +0 -1
- package/dist/color-palette.js.map +0 -1
- package/dist/color-swatch-picker.d.ts.map +0 -1
- package/dist/color-swatch-picker.js.map +0 -1
- package/dist/command-palette.d.ts.map +0 -1
- package/dist/command-palette.js.map +0 -1
- package/dist/comments-panel.d.ts.map +0 -1
- package/dist/comments-panel.js +0 -142
- package/dist/comments-panel.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/context-menu-controller.d.ts.map +0 -1
- package/dist/context-menu-controller.js.map +0 -1
- package/dist/context-menu.d.ts.map +0 -1
- package/dist/context-menu.js +0 -368
- package/dist/context-menu.js.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/diagram-bars.d.ts.map +0 -1
- package/dist/diagram-bars.js.map +0 -1
- package/dist/diagram-canvas.d.ts.map +0 -1
- package/dist/diagram-canvas.js.map +0 -1
- package/dist/diagram-root.d.ts.map +0 -1
- package/dist/diagram-root.js.map +0 -1
- package/dist/diff-panel.d.ts.map +0 -1
- package/dist/diff-panel.js.map +0 -1
- package/dist/drawing-panel.d.ts.map +0 -1
- package/dist/drawing-panel.js.map +0 -1
- package/dist/edge-style-panel.d.ts.map +0 -1
- package/dist/edge-style-panel.js.map +0 -1
- package/dist/format-time.d.ts.map +0 -1
- package/dist/format-time.js.map +0 -1
- package/dist/frame-name-editor-overlay.d.ts.map +0 -1
- package/dist/frame-name-editor-overlay.js.map +0 -1
- package/dist/frame-panel.d.ts.map +0 -1
- package/dist/frame-panel.js.map +0 -1
- package/dist/help-button.d.ts.map +0 -1
- package/dist/help-button.js.map +0 -1
- package/dist/help-dialog.d.ts.map +0 -1
- package/dist/help-dialog.js.map +0 -1
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js.map +0 -1
- package/dist/icon-button.d.ts.map +0 -1
- package/dist/icon-button.js.map +0 -1
- package/dist/layer-panel.d.ts.map +0 -1
- package/dist/layer-panel.js +0 -117
- package/dist/layer-panel.js.map +0 -1
- package/dist/library-panel.d.ts.map +0 -1
- package/dist/library-panel.js.map +0 -1
- package/dist/link-caption-editor.d.ts.map +0 -1
- package/dist/link-caption-editor.js.map +0 -1
- package/dist/link-drop-shape-menu.d.ts.map +0 -1
- package/dist/link-drop-shape-menu.js.map +0 -1
- package/dist/link-hover-popup.d.ts.map +0 -1
- package/dist/link-hover-popup.js.map +0 -1
- package/dist/main-menu.d.ts.map +0 -1
- package/dist/main-menu.js +0 -249
- package/dist/main-menu.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/merge-dialog.d.ts.map +0 -1
- package/dist/merge-dialog.js +0 -50
- package/dist/merge-dialog.js.map +0 -1
- package/dist/minimap.d.ts.map +0 -1
- package/dist/minimap.js.map +0 -1
- package/dist/modal.d.ts.map +0 -1
- package/dist/modal.js.map +0 -1
- package/dist/palette.d.ts.map +0 -1
- package/dist/palette.js.map +0 -1
- package/dist/popover.d.ts.map +0 -1
- package/dist/popover.js.map +0 -1
- package/dist/portal-container.d.ts.map +0 -1
- package/dist/portal-container.js.map +0 -1
- package/dist/property-panel.d.ts.map +0 -1
- package/dist/property-panel.js +0 -917
- package/dist/property-panel.js.map +0 -1
- package/dist/reset-to-content-button.d.ts +0 -10
- package/dist/reset-to-content-button.d.ts.map +0 -1
- package/dist/reset-to-content-button.js.map +0 -1
- package/dist/search-overlay.d.ts.map +0 -1
- package/dist/search-overlay.js.map +0 -1
- package/dist/segmented-control.d.ts.map +0 -1
- package/dist/segmented-control.js.map +0 -1
- package/dist/selection-floating-panel.d.ts.map +0 -1
- package/dist/selection-floating-panel.js.map +0 -1
- package/dist/sidebar.d.ts.map +0 -1
- package/dist/sidebar.js +0 -68
- package/dist/sidebar.js.map +0 -1
- package/dist/slider.d.ts.map +0 -1
- package/dist/slider.js.map +0 -1
- package/dist/stats-panel.d.ts.map +0 -1
- package/dist/stats-panel.js.map +0 -1
- package/dist/text-editor-overlay.d.ts.map +0 -1
- package/dist/text-editor-overlay.js.map +0 -1
- package/dist/toast.d.ts.map +0 -1
- package/dist/toast.js.map +0 -1
- package/dist/toolbar.d.ts.map +0 -1
- package/dist/toolbar.js.map +0 -1
- package/dist/tooltip.d.ts.map +0 -1
- package/dist/tooltip.js.map +0 -1
- package/dist/ui-layer.d.ts.map +0 -1
- package/dist/ui-layer.js.map +0 -1
- package/dist/use-dismiss-timer.d.ts.map +0 -1
- package/dist/use-dismiss-timer.js.map +0 -1
- package/dist/versioning.d.ts.map +0 -1
- package/dist/versioning.js.map +0 -1
- package/dist/zen-mode.d.ts.map +0 -1
- package/dist/zen-mode.js.map +0 -1
- /package/dist/{color-palette.d.ts → color/color-palette.d.ts} +0 -0
- /package/dist/{color-palette.js → color/color-palette.js} +0 -0
- /package/dist/{color-swatch-picker.d.ts → color/color-swatch-picker.d.ts} +0 -0
- /package/dist/{context.d.ts → core/context.d.ts} +0 -0
- /package/dist/{context.js → core/context.js} +0 -0
- /package/dist/{hooks.d.ts → core/hooks.d.ts} +0 -0
- /package/dist/{hooks.js → core/hooks.js} +0 -0
- /package/dist/{portal-container.d.ts → core/portal-container.d.ts} +0 -0
- /package/dist/{portal-container.js → core/portal-container.js} +0 -0
- /package/dist/{diagram-bars.d.ts → layout/diagram-bars.d.ts} +0 -0
- /package/dist/{diagram-bars.js → layout/diagram-bars.js} +0 -0
- /package/dist/{diagram-canvas.d.ts → layout/diagram-canvas.d.ts} +0 -0
- /package/dist/{diagram-canvas.js → layout/diagram-canvas.js} +0 -0
- /package/dist/{diagram-root.d.ts → layout/diagram-root.d.ts} +0 -0
- /package/dist/{ui-layer.d.ts → layout/ui-layer.d.ts} +0 -0
- /package/dist/{ui-layer.js → layout/ui-layer.js} +0 -0
- /package/dist/{command-palette.d.ts → menus/command-palette.d.ts} +0 -0
- /package/dist/{context-menu-controller.d.ts → menus/context-menu-controller.d.ts} +0 -0
- /package/dist/{context-menu-controller.js → menus/context-menu-controller.js} +0 -0
- /package/dist/{link-drop-shape-menu.d.ts → menus/link-drop-shape-menu.d.ts} +0 -0
- /package/dist/{frame-name-editor-overlay.d.ts → overlays/frame-name-editor-overlay.d.ts} +0 -0
- /package/dist/{help-button.d.ts → overlays/help-button.d.ts} +0 -0
- /package/dist/{help-dialog.d.ts → overlays/help-dialog.d.ts} +0 -0
- /package/dist/{link-caption-editor.d.ts → overlays/link-caption-editor.d.ts} +0 -0
- /package/dist/{link-hover-popup.d.ts → overlays/link-hover-popup.d.ts} +0 -0
- /package/dist/{merge-dialog.d.ts → overlays/merge-dialog.d.ts} +0 -0
- /package/dist/{search-overlay.d.ts → overlays/search-overlay.d.ts} +0 -0
- /package/dist/{text-editor-overlay.d.ts → overlays/text-editor-overlay.d.ts} +0 -0
- /package/dist/{diff-panel.d.ts → panels/diff-panel.d.ts} +0 -0
- /package/dist/{diff-panel.js → panels/diff-panel.js} +0 -0
- /package/dist/{drawing-panel.d.ts → panels/drawing-panel.d.ts} +0 -0
- /package/dist/{edge-style-panel.d.ts → panels/edge-style-panel.d.ts} +0 -0
- /package/dist/{frame-panel.d.ts → panels/frame-panel.d.ts} +0 -0
- /package/dist/{library-panel.d.ts → panels/library-panel.d.ts} +0 -0
- /package/dist/{property-panel.d.ts → panels/property-panel.d.ts} +0 -0
- /package/dist/{selection-floating-panel.d.ts → panels/selection-floating-panel.d.ts} +0 -0
- /package/dist/{stats-panel.d.ts → panels/stats-panel.d.ts} +0 -0
- /package/dist/{bottom-sheet.d.ts → primitives/bottom-sheet.d.ts} +0 -0
- /package/dist/{button-group.d.ts → primitives/button-group.d.ts} +0 -0
- /package/dist/{button-group.js → primitives/button-group.js} +0 -0
- /package/dist/{icon-button.d.ts → primitives/icon-button.d.ts} +0 -0
- /package/dist/{icon-button.js → primitives/icon-button.js} +0 -0
- /package/dist/{markdown.d.ts → primitives/markdown.d.ts} +0 -0
- /package/dist/{markdown.js → primitives/markdown.js} +0 -0
- /package/dist/{modal.d.ts → primitives/modal.d.ts} +0 -0
- /package/dist/{segmented-control.d.ts → primitives/segmented-control.d.ts} +0 -0
- /package/dist/{segmented-control.js → primitives/segmented-control.js} +0 -0
- /package/dist/{slider.d.ts → primitives/slider.d.ts} +0 -0
- /package/dist/{slider.js → primitives/slider.js} +0 -0
- /package/dist/{toast.d.ts → primitives/toast.d.ts} +0 -0
- /package/dist/{tooltip.d.ts → primitives/tooltip.d.ts} +0 -0
- /package/dist/{format-time.d.ts → utils/format-time.d.ts} +0 -0
- /package/dist/{format-time.js → utils/format-time.js} +0 -0
- /package/dist/{use-dismiss-timer.d.ts → utils/use-dismiss-timer.d.ts} +0 -0
- /package/dist/{use-dismiss-timer.js → utils/use-dismiss-timer.js} +0 -0
- /package/dist/{minimap.d.ts → widgets/minimap.d.ts} +0 -0
- /package/dist/{versioning.d.ts → widgets/versioning.d.ts} +0 -0
- /package/dist/{zen-mode.d.ts → widgets/zen-mode.d.ts} +0 -0
- /package/dist/{zen-mode.js → widgets/zen-mode.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,137 @@
|
|
|
1
1
|
# @oh-just-another/react-ui
|
|
2
2
|
|
|
3
|
+
## 0.63.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c738f81: Multi-selection and group toolbars follow the reference. Every element type declares an ordered control set for single and multi selections (`panels/control-sets.ts`); a selection of two or more elements shows the intersection of the members' multi sets — two shapes keep the shape controls minus the link, a shape + a text share the text controls, a shape + a frame share nothing — and mixed types keep the Filter. The shared tail gains an **Arrange** popover (align left / centre / right / top / middle / bottom, distribute from three) and **Group** / **Ungroup** buttons driven by the action registry; the comment button is single-selection only. A selected group stands for its leaf children (their shared controls, writes to them), shows Ungroup instead of Group and keeps align / distribute disabled while it is the only thing selected; editing inside a group (double-click) hides Group / Ungroup. Text controls no longer take a `labelMode` prop — they write through the label-aware `Editor.updateTextStyle` / `updateTextProps`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [c738f81]
|
|
12
|
+
- @oh-just-another/state@0.64.0
|
|
13
|
+
|
|
14
|
+
## 0.62.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- c989c1c: Canvas context menu (right-click on empty canvas): Paste, Unlock all, Add text / Add sticky note / Add comment, Set start view / Set current view as start, check rows for Show grid, Snap to grid, Snap objects, Show object size, Suggest object size, a "Mouse or trackpad" radio submenu, and Show all. `ContextMenuItem` actions gain `checked` (rendered as a leading check mark, `role="menuitemcheckbox"`). `<Diagram persistPreferences>` keeps `EditorPreferences` in `localStorage` (`bindPreferencesPersistence` / `loadPreferences` exported for hand-composed shells).
|
|
19
|
+
- 76463dd: Sticky reaction pills and the "+" add-reaction button are now painted by the canvas renderer (single visual source that tracks the shape 1:1 while dragging; pills also reach PNG / SVG exports); the DOM overlay only lays transparent click zones over the same rects (`stickyReactionLayout`) and hosts the emoji picker. Pills keep a constant on-screen size across zoom (low-zoom clamp `STICKY_REACTION_MIN_ZOOM`) and wrap onto new rows inline-block style instead of being dropped. The "+" button is hover-only chrome: shown for the sticky under the idle cursor (`Editor.hoveredStickyId` → `RenderSceneOptions.hoveredElement`), excluded from exports and read-only views. Static exports gained content switches (`RenderSceneOptions.content`, defaults in `EXPORT_CONTENT_DEFAULTS`) toggling sticky reactions / tags / author, wired to "Include in export" checkboxes in the Export… menu and to `downloadPng` / `downloadSvg` / `exportSceneToPng`.
|
|
20
|
+
- bb08cc6: Every chrome control is now 40px — grouped toolbar buttons, the selection floating panel, panel headers, dialog and sidebar buttons — matching the menu row height (`--du-button-size-sm` is an alias of `--du-control-size`). Glyphs scale with them through shared icon presets exported from `@oh-just-another/react-ui`: `CONTROL_ICON` (20px, inside controls), `ROW_ICON` (16px, menu / list rows), `MARK_ICON` (14px checks / chevrons), `BADGE_ICON` (12px chips). Inputs grow to 36px, small inline controls to 28px, colour swatches to 32px, help-dialog key pills to 24px.
|
|
21
|
+
- ef7a237: `ContextMenuItem` gains a `submenu` kind (nested panel opened on hover / click). The selection section of the context menu is regrouped into three submenus — Arrange (z-order, flip), Align (edge / centre alignment, distribute) and Layout (grid, stacks, auto-arrange) — and the z-order group leaves the selection toolbar.
|
|
22
|
+
- 8233dd1: Design tokens for the static chrome. The `:root` block of `styles.css` is now one documented token sheet grouped by type — colour (surfaces, text, accent, inverse), elevation, radius, spacing scale, control sizing, typography, layout (`--du-bar-height`, `--du-bar-clear`, `--du-side-panel-w`), menus, popovers, modals, toasts, tooltip, z-index scale and motion. Every hard-coded value in the mode toolbars, zoom controls, minimap, top bars, help / merge dialogs, `Modal`, `Toast`, `Tooltip`, `BottomSheet` and the tool-options dock now reads a token; their inline styles moved to classes (`du-modal-title/-subtitle/-close/-footer`, `du-toast*`, `du-sheet-*`, `du-minimap-dock`, `du-tool-options-dock`, `du-zoom-*`, `du-toolbar-divider`, `du-brand`). Removed the unused `TOOLBAR_SEPARATOR_HEIGHT` export — the separator height is `--du-icon-size`.
|
|
23
|
+
- 10eac46: Drop overlay: while an OS file is dragged over the canvas the editor shows a dashed frame, a drop glyph with "DROP" and a chip per accepted file kind. `FileDropHandler` gains presentation metadata — `label`, `kind` (`image` · `video` · `scene` · `text` · `data` · `file`) and `formats` — the built-in image and video handlers ship theirs; `Editor.getFileDropHandlers()` lists the registry. New `FileDropOverlay` component and `usePalettePlacement({ onFileDrag })` for hosts composing their own canvas.
|
|
24
|
+
- a6fe14d: Frame size presets. The frame toolbar gained a size-preset dropdown (A4, Letter, 16:9, 4:3, 1:1, Phone, Tablet, Browser — `FRAME_SIZE_PRESETS`, applied via the new `Editor.applyFramePreset`).
|
|
25
|
+
- e2ff8df: Image file tools. The image toolbar (single selection) gained a file-name input (renames the backing `BinaryFile`, undoable), Replace image (swaps the bytes while keeping position / size / crop), Download (original bytes with stored name / mime) and an Alt-text editor backed by the new `ImageElement.alt` field (serialized; surfaced to hosts for accessibility). New editor APIs: `renameBinaryFile`, `setImageAlt`, `replaceImageFile`.
|
|
26
|
+
- 5f08d13: Image shape masks: `ImageElement.mask` clips the drawn box to an ellipse, rounded rect (normalised `radius`) or arbitrary normalised polygon (presets in `IMAGE_MASK_POLYGON_PRESETS`), applied after `crop` and reaching every backend and PNG / SVG exports through the new `RenderTarget.clip`. `Editor.setImageMask(ids, mask | null)` sets/clears it (undoable); the image toolbar gained a mask picker next to Crop: aspect presets (Custom / Original / Circle / Square / Portrait / Landscape / Wide via `Editor.setImageAspectPreset` — centre-crop to the ratio, box refit, Circle adds an ellipse mask) plus shape tiles with a corner-radius slider.
|
|
27
|
+
- 1a9bf66: Elements carrying a safe `href` now show a persistent link badge at their top-right corner (new `LinkBadges` overlay, mounted by the editor shell). Clicking the badge opens the link; the hover popup and Cmd/Ctrl-click behaviour are unchanged. Badges track pan/zoom and also render in read-only mode.
|
|
28
|
+
- 350c6d3: Locked elements are now click-through: the pointer hit-test skips locked (and hidden) shapes and picks whatever lies beneath, instead of letting them shadow the shapes below. Locking a selection drops it. Unlocking moved to the right-click context menu ("Unlock", backed by the new `Editor.lockedElementAt` / `Editor.unlockElement`), and the selection toolbar gained a Lock button plus a "Lock" context-menu entry. `getElementAt` / `getElementAtIndexed` accept an optional `accept` predicate that skips rejected shapes and keeps scanning beneath them.
|
|
29
|
+
- b90174d: One spacing system for every menu surface. New `--du-menu-*` tokens (panel padding 6, min-width 220, row height 36 = button size, row padding 10, icon / check gutter 20, gap 8, font 13 / shortcut 11, separator 6) and `--du-modal-*` tokens (16×20 padding, radius 14, gap 12), with shared `.du-menu-panel` / `.du-menu-row` / `.du-menu-gutter` / `.du-menu-shortcut` / `.du-menu-sep` / `.du-menu-group-title` / `.du-modal-header` / `.du-modal-body` classes. The context menu, `MainMenu` (main and zoom menus), the Shapes and lines flyout, popover list rows and the Help dialog all use them, so rows, gutters and separators line up across the UI. The zoom-percentage trigger is flat like its neighbours.
|
|
30
|
+
- 6ca5ec9: Minimap: a schematic overview — white paper with every element's box in the system accent colour (no renderer pass) — that repaints only when the editor goes idle (`MINIMAP_IDLE_MS`): never during element drags, pans, pinches or wheel bursts, and once right after. `MINIMAP_THROTTLE_MS` is replaced by `MINIMAP_IDLE_MS`, `MINIMAP_BACKGROUND`, `MINIMAP_ELEMENT_COLOR`, `MINIMAP_ELEMENT_OPACITY`.
|
|
31
|
+
- 5ffb5cc: Mixed-type selections now follow the reference behaviour: the floating toolbar SHRINKS to the shared actions (z-order / align / duplicate / comment / lock) instead of showing per-type controls, and gains a Filter popover listing the selection's type buckets (Shapes / Sticky notes / Text / Images / Frames / Drawings / Emoji) with counts — picking one narrows the ACTUAL selection to that bucket, after which the full per-type toolbar returns.
|
|
32
|
+
- 26abd0c: `LayerPanel`, `CommentsPanel`, `CommentsPopover` and `Sidebar` drop their inline legacy styles for the shared side-panel chrome: `du-side-panel du-side-panel-static` cards, 40-px `du-panel-row` list rows with the menu hover / tonal selected states, `du-panel-input`, the new `du-button` / `du-button-primary` text button (also used by the merge dialog footer and sidebar tabs), and `du-thread*` for the floating thread. Icon glyphs replace the `+` / `×` / `⌄` text buttons. Sizes moved to CSS tokens (`--du-sidebar-w`, `--du-thread-w`, `--du-panel-row-h`); the `LAYER_PANEL_WIDTH`, `LAYER_TOGGLE_ICON_SIZE`, `LAYER_SWATCH_SIZE`, `COMMENTS_PANEL_WIDTH` exports are removed.
|
|
33
|
+
- 4df12dd: Style tokens aligned with the reference: radii 4 (items) / 8 (toolbars, dropdowns) / 12 (panels, dialogs); one elevation shadow for every floating surface; typography tokens `--du-font-size` 14 / `--du-font-size-sm` 12 / `--du-line-height` 20 used throughout; 40-px tool buttons with 4-px item radius inside 8-px groups; 16-px screen inset; menu rows 44 px high with 16-px padding, 24-px icon gutter and 240-px panels. The minimap container uses the same tokens.
|
|
34
|
+
- 745d7a9: Embedded shape labels and grouped style controls. Rectangles, ellipses, polygons and block arrows can now carry text inside their body (`ElementBase.label` — full text stack: wrapping, styled runs, lists, highlight; centered by default with `textAlign` / `textBaseline` overrides). Double-click opens the same inline editor text elements use (typing, caret, selection, Tab-nesting all work; an emptied label is stripped on commit). Labels render on every backend and serialize. The wire schema also gained the element-level `locked` / `hidden` flags that previously failed strict validation. The shape toolbar now groups border editing (color / width / dash / corners) and fill (color / opacity) into two popovers.
|
|
35
|
+
- 67b98bb: "Shapes and lines" toolbar button (reference behaviour): replaces the separate rectangle / ellipse / connector buttons with one trigger opening a flyout beside the toolbar — Line / Arrow / Elbow arrow (connector presets: routing + arrowhead, applied to new links AND the live preview via `Editor.armLineTool`), Rectangle / Oval / Rhombus / Triangle (`Editor.armShapeTool` — diamond and triangle draw as inscribed polygons through the same rubber-band gesture), and "More shapes" opening the template library (the standalone library toggle is gone from the dock — "More shapes" is now its only toolbar entry point; `hideLibraryButton` removes that row). Hotkeys R / O / L keep arming the stock tools; any tool switch resets the armed variant.
|
|
36
|
+
- 586b7ed: Sticky auto-fit text. New stickies start in Auto mode (`ShapeLabel.autoFit`): the rendered font size is derived — binary search over the shared text layout, memoized — so the text fills the card and scales with it. Picking an explicit size in the toolbar leaves Auto (reference behaviour); the "Auto" button in the font-size popover returns to it (`Editor.setLabelAutoFit`). The sticky toolbar branch also gained the label text controls (font family, size, style, alignment).
|
|
37
|
+
- d4c2c2f: Sticky notes and emoji elements. New plugin-style scene types: `sticky` (rounded card, background from `style.fill`, text via the shared embedded label with double-click editing, optional author-name strip) and `emoji` (single glyph at a given size). Both render on every backend, serialize through the custom-element schema, and are created from the shape library ("Sticky note" now produces a real sticky; new "Emoji" entry). The selection toolbar gained dedicated branches: sticky — S/M/L size presets, background color/opacity, Show-author toggle; emoji — a glyph picker. New editor APIs: `setStickySize`, `toggleStickyAuthor`, `setEmojiGlyph`.
|
|
38
|
+
- 24c33b3: Switch type now covers the full matrix: shape kinds (rectangle / ellipse / diamond) ↔ text ↔ sticky, any to any, bulk on multi-selection. The user text transplants between carriers (`TextElement.text` ↔ embedded `label`); converting INTO a sticky snaps the fill to the nearest colour of the new `STICKY_PALETTE` (a text's font colour never becomes the card colour); converting FROM a sticky drops its reactions / tags / author. The toolbar's type control gained Text and Sticky targets and now also appears for text and sticky selections.
|
|
39
|
+
- 0767227: Collapse the selection toolbar's "Switch type" segmented control into a single trigger that opens a menu of target kinds; the trigger shows the selection's current kind and always sits first in the toolbar.
|
|
40
|
+
- 993b46a: Text highlight color. New `TextStyle.highlight` paints a marker-style line-height stripe behind the glyphs on every backend, works per styled run (inline-edit range selection highlights just those characters) and round-trips through serialization. The text toolbar gained a Highlight control next to the text color.
|
|
41
|
+
- ef7388f: Text lists. Text elements gained per-paragraph attributes (`paragraphs`: bulleted / numbered kind + nesting level) that survive serialization. The layout engine indents list paragraphs, shrinks their wrap budget and keeps caret / click / selection geometry in lockstep; renderers draw derived markers ("•", auto-numbering per nesting level) on every backend. New editor APIs `setParagraphList` / `indentParagraphs` target the inline-edit selection's paragraphs while editing (whole element otherwise); typing keeps attributes aligned (Enter continues a list, deleting a line drops its attrs); Tab / Shift+Tab change nesting during editing. The text toolbar gained a two-row List dropdown (bulleted / ordered + indent ±).
|
|
42
|
+
- ea5c6a3: The text-alignment control is now a two-row dropdown: horizontal alignment (left/center/right → `textAlign`) over vertical alignment (top/middle/bottom → `textBaseline`).
|
|
43
|
+
- 31ace39: Selection toolbar and right-click context menu restructured to the target design. Toolbar branches now lead with their type cluster (shape: convert type → border → fill → link; text: font family → size → style → align → link → color) separated by dividers, and every branch shares the tail "z-order → align → actions → comment → lock → ⋯". New Comment button starts an annotation thread on the selected element. The context menu is regrouped into clipboard → styles → comments → z-order/layers (now with Bring forward / Send backward) → selection & arrange → lock → delete → viewport sections.
|
|
44
|
+
- d8bf8c1: Zoom menu: clicking the zoom percentage in the bottom bar opens a view menu — Enter / Exit full screen, Hide / Show minimap (`M`), Grid › (None / Dot grid / Line grid), an Object dimensions switch, Fit to screen and zoom presets (50 % … 2000 %). `Editor.setZoom(level)` sets an absolute zoom about the viewport centre. react-ui adds the `Switch` primitive, the `useFullscreen` hook, and `MainMenu` options `ariaLabel` / `placement` / `triggerClassName` / `triggerStyle` plus `MainMenu.Item` `trailing`. The `minimap` prop now seeds the runtime-toggleable minimap.
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- f12caa8: "Back to content" jumps to the element nearest the camera instead of fitting the whole scene: new `Editor.revealNearestContent(padding = 80)` (pure `computeRevealNearest` / `nearestElementBounds` in `zoom-pan`) centres that element at the current zoom, zooming out only when it does not fit — a lone small shape is no longer blown up to full screen and a large board is no longer shrunk to a speck. `ResetToContentButton` calls it.
|
|
49
|
+
- b8f70d6: Brand cell of the top bar shows the product logo. New `logo` prop on `Diagram` (default: the built-in `BrandLogo`, also exported; `null` drops the cell). The light / dark artwork lives in `packages/editor/assets/logo.svg` and `logo-dark.svg`, inlined by `scripts/gen-logo.mjs` (`pnpm gen:logo`, part of `build`); CSS (`.du-brand-logo-light/-dark`, `--du-brand-h`) shows the variant matching the theme. The `⌗` glyph and the playground's "Diagram" heading are gone.
|
|
50
|
+
- a1ea1b2: The canvas surface no longer draws a focus outline (it appeared after clicks on the canvas edge).
|
|
51
|
+
- c26b729: Toolbars and menus now share one rhythm: `--du-control-size` (40px) is the toolbar button height, the menu row height (Shapes and lines flyout, context / main / zoom menus) and the panel list row height; `--du-chrome-pad` (4px) is both the inset of a toolbar button group and the inset around a menu's rows. Menu rows go from 44px to 40px and menu panels from 8px to 4px inner padding as a result.
|
|
52
|
+
- 9e12fca: The context menu drops the viewport entries (Zoom in / out / reset / Fit to screen) and Clear canvas — they duplicate the static zoom bar and main menu.
|
|
53
|
+
- ab5af20: The context menu stays inside the window: it flips above the press point when there is no room below, keeps `MENU_VIEWPORT_PADDING_PX` from every edge, and scrolls when the window is shorter than the menu. Submenus open to the left when the right side has no room and are clamped the same way. Positioning is shared with `Popover` through the new `floatPanel` helper.
|
|
54
|
+
- 2e9c5c5: The context menu (and its submenus) now stack above every toolbar, floating panel and popover (`--du-z-context-menu`, 1700).
|
|
55
|
+
- 66481cd: Context menu rows "Copy as PNG", "Copy as SVG" and "Copy as text" copy the selection to the clipboard (transparent retina PNG; fitted SVG markup as text; text / labels one per line). New editor exports `copySelectionAsPng` / `copySelectionAsSvg` / `copySelectionAsText`, `selectionText`, `sceneToSvgMarkup`, `subsetScene`, `sceneBounds`, `fitViewportTo`, registered as `copy-as-png` / `copy-as-svg` / `copy-as-text` actions. The react-ui context menu shows the rows when the host registered those actions.
|
|
56
|
+
- 2105693: Crisp glyphs: icon presets moved to pixel-aligned lucide sizes — `CONTROL_ICON` 24 / 2 (the native grid, 2-px strokes), `ROW_ICON` and `MARK_ICON` 16 / 1.5 (1-px strokes), `BADGE_ICON` 12 / 2; `--du-icon-size` is 24. The vertical tool dock now sits on a whole-pixel offset (`top: round(50%, 1px); translate: 0 round(-50%, 1px)` on the new `.du-dock` wrapper) instead of a `translateY(-50%)` that landed on half pixels whenever the free space was odd and blurred every glyph in the dock.
|
|
57
|
+
- 3e5d81f: Floating chrome appears in place, instantly: `floatPanel` keeps a panel invisible until its first position resolves (menus, submenus, popovers no longer paint at the corner and jump), and the selection toolbar reveals with `visibility` instead of a fade. A library drag-to-place is now an element gesture — `Editor.placementId` is set from `beginPlacement` until commit / cancel — so the selection toolbar stays hidden and the minimap defers its repaint while the shape is being dragged in.
|
|
58
|
+
- b965236: The floating selection toolbar now hides for the duration of an element gesture (move / resize / rotate) and reappears `GESTURE_QUIET_MS` (200 ms) after it ends — per-frame floating-ui repositioning plus a full toolbar re-render was making dragged elements visibly lag.
|
|
59
|
+
- 2e2a9e7: Second review pass on shape labels and stickies. Label text is now strictly contained: when not even one line fits the padded body nothing paints outside the shape (no more tile artifacts after growing the font). Double-click places the caret at the click point instead of jumping to the (possibly clipped) text end. Cmd/Ctrl+A inside the inline editor is handled explicitly, removing a race with the selection mirror that made select-all intermittently need a second press. Labels are real rich text: styling with an active selection applies to just that range (styled runs) rather than the whole label. Stickies lost the folded corner (plain sheet with the bottom drop shadow), and emoji reactions became per-user toggles — your own click adds and then removes YOUR reaction (`toggleStickyReaction`, `reactions[].users`), so counters only grow through other collaborators.
|
|
60
|
+
- ab44aa8: The shape library list follows the menu rhythm: 40-px rows with the menu row padding / gap / font, section titles styled like `du-menu-group-title`, sections inset by `--du-menu-pad`.
|
|
61
|
+
- da647fc: The template library panel header now shows a "Shape library" title on the left (the close / import buttons stay on the right).
|
|
62
|
+
- 9b3bc01: `MainMenu` panels (root and nested) render through the portal container and position with `floatPanel`, like the context menu: they now stack at `--du-z-popover` above the selection floating toolbar and the minimap, flip / shift inside the viewport, and read their gaps (`--du-flyout-gap`, `--du-submenu-gap`) from the CSS tokens via the shared `cssPx` helper. Click-outside treats every open panel as inside the menu.
|
|
63
|
+
- 129c8b5: `MainMenu` submenus are coordinated per level: hovering a sibling submenu opens it and closes the previous one at once (no overlapping panels); hovering a plain item closes the open submenu after the short delay.
|
|
64
|
+
- f7cc2c0: `MainMenu.Item` gains `checked` — the row renders as `menuitemcheckbox` with a decorative trailing switch instead of nesting a `Switch` button inside the row button (invalid HTML, React warned on every open). `Switch` gains `presentational` for the same purpose.
|
|
65
|
+
- 64e97b9: Distance tokens for the chrome: `--du-dock-inset` (14px, canvas edge → vertical tool dock), `--du-flyout-gap` (14px, a bar → the menu / flyout it opens: Shapes and lines, main and zoom menus) and `--du-submenu-gap` (10px, parent menu column → nested menu). Nested menus no longer overlap their parent column after the tighter menu inset; the context-menu submenu reads its alignment from the live panel instead of a hard-coded 7px; the dock clears an open library by its real inset + width instead of a stale 12px constant.
|
|
66
|
+
- 0a4264b: Chrome distances tightened by 4px each (`--du-bar-inset` 12, `--du-dock-inset` 10, `--du-flyout-gap` 10, `--du-submenu-gap` 6). A nested main-menu panel now carries an invisible hover bridge over the gap to its parent column, so moving the pointer from the parent row into the child no longer closes it.
|
|
67
|
+
- 58c944b: The minimap's viewport frame follows a drag-pan: `Editor.endPanGesture` now notifies subscribers, so idle-gated observers that skip every notify while `panGesture` is set get the trailing change and repaint once the gesture ends.
|
|
68
|
+
- 3086875: Menu, submenu, flyout and list-row icons render on lucide's native 24-px grid (`ROW_ICON` 24 / 2) and marks on the half grid (`MARK_ICON` 12 / 2), so they are as crisp as the toolbar glyphs; the search-input glyph is 12 px. Dialogs stack above all floating chrome (`--du-z-modal` 1800, `--du-z-toast` 1900) — the selection toolbar no longer covers the Keyboard shortcuts dialog. The selection panel, popover and caption editor read their z-index from the tokens.
|
|
69
|
+
- 3f45f83: Chrome surfaces are opaque: `UI_SURFACE.bg` / `--du-ui-bg` drop the 0.95 alpha (`#ffffff` light, `#252525` dark), so toolbars and button groups no longer show the canvas grid through them. `bgSolid` / `--du-ui-bg-solid` now equal `bg`.
|
|
70
|
+
- 3b994bc: Segmented controls inside popovers (border width / style / corners, text style, …) are flat — no nested card background, border or shadow.
|
|
71
|
+
- 1bbb5f9: Canvas-anchored DOM overlays (link badges, sticky reaction bars) hide while the viewport is moving and reappear ~150 ms after it settles. Re-rendering them on every pan/zoom frame made React reconciliation a per-frame main-thread cost; with the render loop otherwise clean this was the last interaction-time hitch.
|
|
72
|
+
- b1e08de: "Replace image" is now "Replace media": `Editor.replaceImageFile` accepts GIFs and videos in addition to static images. The shape keeps its position and width (height refits to the new aspect — videos measure via a hidden looping `<video>`, same as the drop handler); animation fields (`animationKind` / `animationData` / `metadata.animated`) are rewritten to match the new media kind, and the crop resets when the media kind changes. The toolbar control's file picker accepts `image/*,video/*`.
|
|
73
|
+
- 8947a84: Menu / list row icons step down to 20 px (`ROW_ICON` 20 / 2, `--du-icon-size-sm` 20) — a size below the 24-px controls.
|
|
74
|
+
- 1abaca1: The selection toolbar groups its controls (`.du-sel-group`) and draws separators in CSS only between non-empty groups — no more doubled or stray dividers when an optional cluster (label text, crop, …) renders nothing for the selection. The `.du-sel-divider` element is gone.
|
|
75
|
+
- 7d15a0c: The Shapes and lines flyout marks the armed tool: the row matching the current shape kind or line preset is `menuitemradio` + `aria-checked` with the tonal selected style (stock `draw-edge` reads as Elbow arrow). `armShapeTool` / `armLineTool` notify subscribers once more after the variant is set, so listeners never observe the reset value.
|
|
76
|
+
- 8f8846b: The selection toolbar shows the text controls for every shape type that can carry text (rectangle, ellipse, polygon, block arrow, sticky) even before it has any — they display the defaults the first text will take. `updateLabelStyle` / `updateLabelProps` / `setLabelAutoFit` seed the label on a labelable shape that has none (create-on-write); the inline editor and the style APIs share one `seedLabel`.
|
|
77
|
+
- c22fb63: The selection toolbar drops the Align group and the Duplicate / Delete / Group / Ungroup actions — all of them live in the context menu (Align ›, and the top-level entries).
|
|
78
|
+
- 1b806ed: The selection toolbar no longer shows Flip horizontal / Flip vertical — they live in the context menu's Arrange submenu.
|
|
79
|
+
- 321c4a3: Toolbar action buttons and the zoom controls no longer re-render on every editor change: action buttons re-render only when their pressed/disabled state actually flips, and the zoom pill subscribes to the zoom value alone — a whole-editor subscription re-rendered them on every frame of an element drag.
|
|
80
|
+
- 8163681: First review pass on the toolbar redesign. Locked elements are no longer captured by marquee selection. Embedded shape labels clip to the shape's padded body (extra lines aren't painted), the inline-edit caret sits exactly on its line, and shapes with a label show the full set of text controls (font, size, style, alignment, color, highlight) writing through the new `updateLabelStyle` / `updateLabelProps`. Replacing an image refits the shape's height to the new file's aspect ratio, image resize never mirrors on overshoot, and the crop button matches the toolbar style. Sticky notes look like paper (drop shadow, folded corner), support tags (toolbar editor + on-card pills) and emoji reactions with counters via a bottom-left reaction bar (`StickyReactions` overlay, `setStickyTags` / `addStickyReaction`). The hide-frame feature was removed.
|
|
81
|
+
- Updated dependencies [98070d8]
|
|
82
|
+
- Updated dependencies [f12caa8]
|
|
83
|
+
- Updated dependencies [76463dd]
|
|
84
|
+
- Updated dependencies [2942fb9]
|
|
85
|
+
- Updated dependencies [d0eb799]
|
|
86
|
+
- Updated dependencies [e202058]
|
|
87
|
+
- Updated dependencies [e0e4ea9]
|
|
88
|
+
- Updated dependencies [d658680]
|
|
89
|
+
- Updated dependencies [e66a8a5]
|
|
90
|
+
- Updated dependencies [10eac46]
|
|
91
|
+
- Updated dependencies [3e5d81f]
|
|
92
|
+
- Updated dependencies [a6fe14d]
|
|
93
|
+
- Updated dependencies [06a0625]
|
|
94
|
+
- Updated dependencies [3ff16ab]
|
|
95
|
+
- Updated dependencies [09bc11a]
|
|
96
|
+
- Updated dependencies [e2ff8df]
|
|
97
|
+
- Updated dependencies [5f08d13]
|
|
98
|
+
- Updated dependencies [3019bc7]
|
|
99
|
+
- Updated dependencies [2e2a9e7]
|
|
100
|
+
- Updated dependencies [f46e3da]
|
|
101
|
+
- Updated dependencies [350c6d3]
|
|
102
|
+
- Updated dependencies [58c944b]
|
|
103
|
+
- Updated dependencies [518a6d1]
|
|
104
|
+
- Updated dependencies [3f45f83]
|
|
105
|
+
- Updated dependencies [3543dc7]
|
|
106
|
+
- Updated dependencies [b1e08de]
|
|
107
|
+
- Updated dependencies [e6057d1]
|
|
108
|
+
- Updated dependencies [2cd199e]
|
|
109
|
+
- Updated dependencies [745d7a9]
|
|
110
|
+
- Updated dependencies [67b98bb]
|
|
111
|
+
- Updated dependencies [7d15a0c]
|
|
112
|
+
- Updated dependencies [59695d7]
|
|
113
|
+
- Updated dependencies [586b7ed]
|
|
114
|
+
- Updated dependencies [d4c2c2f]
|
|
115
|
+
- Updated dependencies [24c33b3]
|
|
116
|
+
- Updated dependencies [8f8846b]
|
|
117
|
+
- Updated dependencies [22c0f48]
|
|
118
|
+
- Updated dependencies [993b46a]
|
|
119
|
+
- Updated dependencies [ef7388f]
|
|
120
|
+
- Updated dependencies [e15fa56]
|
|
121
|
+
- Updated dependencies [22ecd4b]
|
|
122
|
+
- Updated dependencies [8163681]
|
|
123
|
+
- Updated dependencies [97daf50]
|
|
124
|
+
- Updated dependencies [4c2b27b]
|
|
125
|
+
- Updated dependencies [d8bf8c1]
|
|
126
|
+
- @oh-just-another/state@0.63.0
|
|
127
|
+
- @oh-just-another/renderer-core@0.61.0
|
|
128
|
+
- @oh-just-another/renderer-canvas@0.62.0
|
|
129
|
+
- @oh-just-another/scene@0.62.0
|
|
130
|
+
- @oh-just-another/tokens@0.58.1
|
|
131
|
+
- @oh-just-another/renderer-svg@0.58.0
|
|
132
|
+
- @oh-just-another/templates@0.58.0
|
|
133
|
+
- @oh-just-another/versioning@0.57.5
|
|
134
|
+
|
|
3
135
|
## 0.61.0
|
|
4
136
|
|
|
5
137
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -139,9 +139,9 @@ Every component reads the editor from context, so most take no required props.
|
|
|
139
139
|
## Layout constants
|
|
140
140
|
|
|
141
141
|
Tunable sizes for the built-in panels and toolbar:
|
|
142
|
-
`PALETTE_WIDTH`, `PALETTE_ITEM_SIZE`, `PROPERTY_PANEL_WIDTH`, `PROPERTY_SWATCH_SIZE
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
`PALETTE_WIDTH`, `PALETTE_ITEM_SIZE`, `PROPERTY_PANEL_WIDTH`, `PROPERTY_SWATCH_SIZE`.
|
|
143
|
+
Chrome sizes (side panels, sidebar, comment thread, toolbar separator) are CSS tokens —
|
|
144
|
+
`--du-side-panel-w`, `--du-sidebar-w`, `--du-thread-w`, `--du-panel-row-h`, `--du-icon-size`.
|
|
145
145
|
|
|
146
146
|
Each component also exports its `*Props` type (e.g. `ToolbarProps`, `PaletteProps`); menu, toast,
|
|
147
147
|
help, and context-menu modules additionally export their item/section types (`ToolbarItem`,
|