oasis-editor 0.0.103 → 0.0.104

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.
@@ -1,9 +1,9 @@
1
1
  import { JSX } from 'solid-js';
2
2
  import { ToolbarActionApi } from '../schema/items.js';
3
- import { RibbonGroupModel } from './ribbonModel.js';
3
+ import { ResolvedRibbonGroupModel } from './ribbonModel.js';
4
4
 
5
5
  export interface RibbonGroupProps {
6
- group: RibbonGroupModel;
6
+ group: ResolvedRibbonGroupModel;
7
7
  api: ToolbarActionApi;
8
8
  }
9
9
  export declare function RibbonGroup(props: RibbonGroupProps): JSX.Element;
@@ -1,4 +1,4 @@
1
- import { Accessor } from 'solid-js';
1
+ import { Accessor, JSX } from 'solid-js';
2
2
  import { RibbonTabId, ToolbarActionApi, ToolbarItem } from '../schema/items.js';
3
3
 
4
4
  export interface RibbonPanelProps {
@@ -6,4 +6,4 @@ export interface RibbonPanelProps {
6
6
  items: Accessor<ToolbarItem[]>;
7
7
  api: ToolbarActionApi;
8
8
  }
9
- export declare function RibbonPanel(props: RibbonPanelProps): import("solid-js").JSX.Element;
9
+ export declare function RibbonPanel(props: RibbonPanelProps): JSX.Element;
@@ -1,4 +1,4 @@
1
- import { RibbonRow, RibbonTabId, ToolbarItem } from '../schema/items.js';
1
+ import { RibbonGroupResizePolicy, RibbonGroupResizeState, RibbonRow, RibbonTabId, ToolbarItem } from '../schema/items.js';
2
2
  import { TranslateFn } from '../../../../i18n/index.js';
3
3
 
4
4
  export interface RibbonTabDefinition {
@@ -11,6 +11,16 @@ export interface RibbonGroupModel {
11
11
  largeItems: ToolbarItem[];
12
12
  rows: Record<RibbonRow, ToolbarItem[]>;
13
13
  order: number;
14
+ resizePolicy: Required<RibbonGroupResizePolicy>;
15
+ }
16
+ export interface ResolvedRibbonGroupModel extends RibbonGroupModel {
17
+ resizeState: RibbonGroupResizeState;
18
+ allocatedWidth?: number;
19
+ }
20
+ export interface RibbonGroupWidth {
21
+ full: number;
22
+ compact: number;
23
+ collapsed: number;
14
24
  }
15
25
  export declare function buildRibbonTabDefinitions(t: TranslateFn): RibbonTabDefinition[];
16
26
  export declare const DEFAULT_RIBBON_TAB: RibbonTabId;
@@ -22,3 +32,4 @@ export declare function normalizeRibbonRow(row: ToolbarItem["row"]): RibbonRow;
22
32
  export declare function isLargeRibbonItem(item: ToolbarItem): boolean;
23
33
  export declare function ribbonGroupLabel(group: string, t: TranslateFn): string;
24
34
  export declare function buildRibbonGroups(items: ToolbarItem[], tab: RibbonTabId, t: TranslateFn): RibbonGroupModel[];
35
+ export declare function resolveResponsiveRibbonGroups(groups: RibbonGroupModel[], availableWidth: number | null, measurements?: Partial<Record<string, Partial<RibbonGroupWidth>>>): ResolvedRibbonGroupModel[];
@@ -3,9 +3,9 @@ import { CommandBus } from '../../../../core/commands/CommandBus.js';
3
3
  import { CommandRef } from '../../../../core/commands/CommandRef.js';
4
4
  import { TranslationKey } from '../../../../i18n/index.js';
5
5
  import { ColorPalette } from './palette.js';
6
- import { RibbonTabId, RibbonRow, RibbonSize } from '../../../../core/pluginUiTypes.js';
6
+ import { RibbonGroupResizePolicy, RibbonTabId, RibbonRow, RibbonSize } from '../../../../core/pluginUiTypes.js';
7
7
 
8
- export { RIBBON_TABS, type RibbonTabId, type RibbonRow, type RibbonSize, } from '../../../../core/pluginUiTypes.js';
8
+ export { RIBBON_TABS, type RibbonTabId, type RibbonRow, type RibbonSize, type RibbonGroupResizePolicy, type RibbonGroupResizeState, } from '../../../../core/pluginUiTypes.js';
9
9
  /** Reactive snapshot of a command's state, as consumed by toolbar items. */
10
10
  export interface ToolbarCommandState {
11
11
  isEnabled: boolean;
@@ -60,6 +60,8 @@ interface ToolbarItemBase extends ItemReactiveOverrides {
60
60
  row?: RibbonRow;
61
61
  /** Ribbon-only visual scale. Large items span both toolbar rows. */
62
62
  ribbonSize?: RibbonSize;
63
+ /** Group-level responsive behavior. First item wins per property. */
64
+ ribbonGroupResize?: RibbonGroupResizePolicy;
63
65
  testId?: string;
64
66
  tooltipKey?: TranslationKey;
65
67
  tooltip?: string;
@@ -149,6 +151,7 @@ export interface SeparatorItem {
149
151
  tab?: RibbonTabId;
150
152
  group?: string;
151
153
  row?: RibbonRow;
154
+ ribbonGroupResize?: RibbonGroupResizePolicy;
152
155
  isVisible?: (api: ToolbarActionApi) => boolean;
153
156
  }
154
157
  export interface GroupItem extends ToolbarItemBase {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oasis-editor",
3
- "version": "0.0.103",
3
+ "version": "0.0.104",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",