@segnavia/react 0.21.0 → 0.23.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.
@@ -1,4 +1,5 @@
1
- import { CaptionProps, CaptionsProps, CounterProps, DocumentProps, FullscreenProps, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps } from "./props.js";
1
+ import { CaptionProps, CaptionsProps, CounterProps, DocumentProps, FullscreenProps, ItemSettingsProps, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps } from "./props.js";
2
+ import { SegnaviaItemSettings } from "@segnavia/frame/item-settings";
2
3
  import { SegnaviaPlayer } from "@segnavia/frame/player";
3
4
  import { SegnaviaDocument, SegnaviaPage, SegnaviaPaper, SegnaviaStage, SegnaviaThumbnail } from "@segnavia/frame";
4
5
  import { SegnaviaCaption, SegnaviaCaptions, SegnaviaCounter, SegnaviaFullscreen, SegnaviaMute, SegnaviaNotes, SegnaviaPaperPicker, SegnaviaPlay, SegnaviaRail, SegnaviaStep, SegnaviaTime, SegnaviaTrack } from "@segnavia/frame/controls";
@@ -20,6 +21,7 @@ export declare const ELEMENTS: {
20
21
  readonly stage: ElementDescriptor<SegnaviaStage, StageProps, "segnavia-stage">;
21
22
  readonly thumbnail: ElementDescriptor<SegnaviaThumbnail, ThumbnailProps, "segnavia-thumbnail">;
22
23
  readonly paperPicker: ElementDescriptor<SegnaviaPaperPicker, PaperPickerProps, "segnavia-paper-picker">;
24
+ readonly itemSettings: ElementDescriptor<SegnaviaItemSettings, ItemSettingsProps, "segnavia-item-settings">;
23
25
  readonly page: ElementDescriptor<SegnaviaPage, PageProps, "segnavia-page">;
24
26
  readonly paper: ElementDescriptor<SegnaviaPaper, PaperProps, "segnavia-paper">;
25
27
  readonly document: ElementDescriptor<SegnaviaDocument, DocumentProps, "segnavia-document">;
package/dist/elements.js CHANGED
@@ -15,7 +15,8 @@ const ELEMENTS = {
15
15
  "css",
16
16
  "cspExtra",
17
17
  "resolveSlide",
18
- "transition"
18
+ "transition",
19
+ "slots"
19
20
  ], { onSegnaviaLabels: "segnavia-labels" }),
20
21
  stage: element(HEADLESS_ELEMENTS.stage, [
21
22
  "controller",
@@ -23,7 +24,8 @@ const ELEMENTS = {
23
24
  "cspExtra",
24
25
  "frameTitle",
25
26
  "transition",
26
- "reserve"
27
+ "reserve",
28
+ "slots"
27
29
  ], {
28
30
  onSegnaviaController: "segnavia-controller",
29
31
  onSegnaviaFit: "segnavia-fit"
@@ -36,25 +38,37 @@ const ELEMENTS = {
36
38
  "resolveSlide",
37
39
  "base",
38
40
  "css",
39
- "mountMargin"
41
+ "mountMargin",
42
+ "slots"
40
43
  ], { onSegnaviaThumbnailError: "segnavia-thumbnail-error" }),
41
44
  paperPicker: element(STYLED_ELEMENTS.paperPicker, ["value", "labels"], { onChange: "change" }),
45
+ itemSettings: element("segnavia-item-settings", [
46
+ "declarations",
47
+ "fills",
48
+ "fill",
49
+ "source",
50
+ "report",
51
+ "labels"
52
+ ], { onSegnaviaFillSelect: "segnavia-fill-select" }),
42
53
  page: element(HEADLESS_ELEMENTS.page, [
43
54
  "page",
44
55
  "css",
45
- "cspExtra"
56
+ "cspExtra",
57
+ "slots"
46
58
  ], {}),
47
59
  paper: element(HEADLESS_ELEMENTS.paper, [
48
60
  "paper",
49
61
  "side",
50
62
  "css",
51
- "cspExtra"
63
+ "cspExtra",
64
+ "slots"
52
65
  ], {}),
53
66
  document: element(HEADLESS_ELEMENTS.document, [
54
67
  "css",
55
68
  "cspExtra",
56
69
  "pages",
57
- "print"
70
+ "print",
71
+ "slots"
58
72
  ], {}),
59
73
  play: element(STYLED_ELEMENTS.play, controlProperties, {}),
60
74
  step: element(STYLED_ELEMENTS.step, controlProperties, {}),
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { CaptionProps, CaptionsProps, CounterProps, DocumentProps, FullscreenProps, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps } from "./props.js";
1
+ import { CaptionProps, CaptionsProps, CounterProps, DocumentProps, FullscreenProps, ItemSettingsProps, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps } from "./props.js";
2
2
  import { AnyElementDescriptor, ElementFor, PropsFor } from "./elements.js";
3
3
  import { SegnaviaIntrinsicElements } from "./jsx.js";
4
4
  import { AuthoringController, AuthoringController as AuthoringController$1, AuthoringErrorDetail, AuthoringHandlers, AuthoringHandlers as AuthoringHandlers$1, AuthoringOptions, AuthoringOptions as AuthoringOptions$1, DirtyChangeDetail, SaveNotesInput, SavePrintMomentInput } from "@segnavia/frame/authoring";
5
5
  import { DocumentAuthoringController, DocumentAuthoringController as DocumentAuthoringController$1, DocumentAuthoringErrorDetail, DocumentAuthoringHandlers, DocumentAuthoringHandlers as DocumentAuthoringHandlers$1, MovePageHandler, MovePageInput } from "@segnavia/frame/document-authoring";
6
+ import { ItemSettingsController, ItemSettingsController as ItemSettingsController$1, ItemSettingsErrorDetail, ItemSettingsHandlers, ItemSettingsHandlers as ItemSettingsHandlers$1, ItemSettingsLabels, ItemSettingsSection, ItemSettingsSectionContext, SegnaviaItemSettings } from "@segnavia/frame/item-settings";
6
7
  import { SegnaviaPlayer } from "@segnavia/frame/player";
7
8
  import { ReactNode } from "react";
8
9
  import { DeckController, SegnaviaDocument } from "@segnavia/frame";
@@ -38,6 +39,19 @@ export declare const PaperPicker: import("react").ForwardRefExoticComponent<Omit
38
39
  } & {
39
40
  children?: ReactNode;
40
41
  } & import("react").RefAttributes<import("@segnavia/frame/controls").SegnaviaPaperPicker>>;
42
+ export declare const ItemSettings: import("react").ForwardRefExoticComponent<Omit<import("react").HTMLAttributes<SegnaviaItemSettings>, "children"> & {
43
+ children?: ReactNode;
44
+ } & {
45
+ declarations?: SegnaviaItemSettings["declarations"];
46
+ fills?: SegnaviaItemSettings["fills"];
47
+ fill?: SegnaviaItemSettings["fill"];
48
+ source?: SegnaviaItemSettings["source"];
49
+ report?: SegnaviaItemSettings["report"];
50
+ labels?: Partial<import("@segnavia/frame/item-settings").ItemSettingsLabels>;
51
+ onSegnaviaFillSelect?: (event: CustomEvent<string>) => void;
52
+ } & {
53
+ children?: ReactNode;
54
+ } & import("react").RefAttributes<SegnaviaItemSettings>>;
41
55
  export declare const Page: import("react").ForwardRefExoticComponent<PageProps & {
42
56
  children?: ReactNode;
43
57
  } & import("react").RefAttributes<import("@segnavia/frame").SegnaviaPage>>;
@@ -157,5 +171,6 @@ export declare const Rail: import("react").ForwardRefExoticComponent<Omit<import
157
171
  export declare function useDeckController(element: ElementWithController | null): DeckController | null;
158
172
  export declare function useAuthoring(player: SegnaviaPlayer | null, handlers: AuthoringHandlers$1, options?: AuthoringOptions$1): AuthoringController$1 | null;
159
173
  export declare function useDocumentAuthoring(document: SegnaviaDocument | null, handlers: DocumentAuthoringHandlers$1): DocumentAuthoringController$1 | null;
174
+ export declare function useItemSettings(element: SegnaviaItemSettings | null, handlers: ItemSettingsHandlers$1): ItemSettingsController$1 | null;
160
175
  //#endregion
161
- export type { AuthoringController, AuthoringErrorDetail, AuthoringHandlers, AuthoringOptions, CaptionProps, CaptionsProps, CounterProps, DirtyChangeDetail, DocumentAuthoringController, DocumentAuthoringErrorDetail, DocumentAuthoringHandlers, DocumentProps, FullscreenProps, MovePageHandler, MovePageInput, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, SaveNotesInput, SavePrintMomentInput, SegnaviaIntrinsicElements, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps };
176
+ export type { AuthoringController, AuthoringErrorDetail, AuthoringHandlers, AuthoringOptions, CaptionProps, CaptionsProps, CounterProps, DirtyChangeDetail, DocumentAuthoringController, DocumentAuthoringErrorDetail, DocumentAuthoringHandlers, DocumentProps, FullscreenProps, ItemSettingsController, ItemSettingsErrorDetail, ItemSettingsHandlers, ItemSettingsLabels, ItemSettingsProps, ItemSettingsSection, ItemSettingsSectionContext, MovePageHandler, MovePageInput, MuteProps, NotesProps, PageProps, PaperPickerProps, PaperProps, PlayProps, PlayerProps, RailProps, SaveNotesInput, SavePrintMomentInput, SegnaviaIntrinsicElements, StageProps, StepProps, ThumbnailProps, TimeProps, TrackProps };
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ import { ELEMENTS } from "./elements.js";
2
2
  import { syncElementProps } from "./react-props.js";
3
3
  import { attachAuthoring } from "@segnavia/frame/authoring";
4
4
  import { attachDocumentAuthoring } from "@segnavia/frame/document-authoring";
5
+ import { attachItemSettings } from "@segnavia/frame/item-settings";
5
6
  import "@segnavia/frame/player";
6
7
  import { createElement, forwardRef, useCallback, useEffect, useRef, useState } from "react";
7
8
  //#region src/index.ts
@@ -39,6 +40,7 @@ const Player = createComponent(ELEMENTS.player);
39
40
  const Stage = createComponent(ELEMENTS.stage);
40
41
  const Thumbnail = createComponent(ELEMENTS.thumbnail);
41
42
  const PaperPicker = createComponent(ELEMENTS.paperPicker);
43
+ const ItemSettings = createComponent(ELEMENTS.itemSettings);
42
44
  const Page = createComponent(ELEMENTS.page);
43
45
  const Paper = createComponent(ELEMENTS.paper);
44
46
  const Document = createComponent(ELEMENTS.document);
@@ -106,5 +108,21 @@ function useDocumentAuthoring(document, handlers) {
106
108
  useEffect(() => controller?.update(handlers), [controller, handlers]);
107
109
  return controller;
108
110
  }
111
+ function useItemSettings(element, handlers) {
112
+ const [controller, setController] = useState(null);
113
+ const latestHandlers = useRef(handlers);
114
+ latestHandlers.current = handlers;
115
+ useEffect(() => {
116
+ if (!element) return;
117
+ const attached = attachItemSettings(element, latestHandlers.current);
118
+ setController(attached);
119
+ return () => {
120
+ attached.detach();
121
+ setController(null);
122
+ };
123
+ }, [element]);
124
+ useEffect(() => controller?.update(handlers), [controller, handlers]);
125
+ return controller;
126
+ }
109
127
  //#endregion
110
- export { Caption, Captions, Counter, Document, Fullscreen, Mute, Notes, Page, Paper, PaperPicker, Play, Player, Rail, Stage, Step, Thumbnail, Time, Track, createComponent, useAuthoring, useDeckController, useDocumentAuthoring };
128
+ export { Caption, Captions, Counter, Document, Fullscreen, ItemSettings, Mute, Notes, Page, Paper, PaperPicker, Play, Player, Rail, Stage, Step, Thumbnail, Time, Track, createComponent, useAuthoring, useDeckController, useDocumentAuthoring, useItemSettings };
package/dist/props.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ItemSettingsLabels, SegnaviaItemSettings } from "@segnavia/frame/item-settings";
1
2
  import { PlayerControls, PlayerFit, SegnaviaPlayer } from "@segnavia/frame/player";
2
3
  import { HTMLAttributes, ReactNode } from "react";
3
4
  import { ControllerOptions, DeckController, FittedSize, HostTransition, PageInput, PrintInput, SegnaviaDocument, SegnaviaPage, SegnaviaPaper, SegnaviaStage, SegnaviaThumbnail, StageReserve } from "@segnavia/frame";
@@ -18,6 +19,7 @@ export interface PlayerProps extends ElementProps<SegnaviaPlayer> {
18
19
  cspExtra?: string;
19
20
  resolveSlide?: ControllerOptions['resolveSlide'];
20
21
  transition?: HostTransition;
22
+ slots?: SegnaviaPlayer['slots'];
21
23
  src?: string;
22
24
  theme?: string;
23
25
  notes?: boolean;
@@ -39,6 +41,7 @@ export interface StageProps extends ElementProps<SegnaviaStage> {
39
41
  frameTitle?: SegnaviaStage['frameTitle'];
40
42
  transition?: HostTransition;
41
43
  reserve?: StageReserve;
44
+ slots?: SegnaviaStage['slots'];
42
45
  src?: string;
43
46
  hash?: string;
44
47
  prefetch?: boolean;
@@ -58,6 +61,7 @@ export interface ThumbnailProps extends ElementProps<SegnaviaThumbnail> {
58
61
  base?: string;
59
62
  css?: string;
60
63
  mountMargin?: number;
64
+ slots?: SegnaviaThumbnail['slots'];
61
65
  onSegnaviaThumbnailError?: CustomEventProp<unknown>;
62
66
  }
63
67
  export type PaperPickerProps = Omit<ElementProps<SegnaviaPaperPicker>, 'onChange'> & {
@@ -65,10 +69,20 @@ export type PaperPickerProps = Omit<ElementProps<SegnaviaPaperPicker>, 'onChange
65
69
  labels?: PaperPickerLabelOverrides;
66
70
  onChange?: CustomEventProp<SegnaviaPaperPicker['value']>;
67
71
  };
72
+ export type ItemSettingsProps = ElementProps<SegnaviaItemSettings> & {
73
+ declarations?: SegnaviaItemSettings['declarations'];
74
+ fills?: SegnaviaItemSettings['fills'];
75
+ fill?: SegnaviaItemSettings['fill'];
76
+ source?: SegnaviaItemSettings['source'];
77
+ report?: SegnaviaItemSettings['report'];
78
+ labels?: Partial<ItemSettingsLabels>;
79
+ onSegnaviaFillSelect?: CustomEventProp<string>;
80
+ };
68
81
  export interface PageProps extends ElementProps<SegnaviaPage> {
69
82
  page?: PageInput | null;
70
83
  css?: string;
71
84
  cspExtra?: string;
85
+ slots?: SegnaviaPage['slots'];
72
86
  src?: string;
73
87
  unstyled?: boolean;
74
88
  }
@@ -77,6 +91,7 @@ export interface PaperProps extends ElementProps<SegnaviaPaper> {
77
91
  side?: SegnaviaPaper['side'];
78
92
  css?: string;
79
93
  cspExtra?: string;
94
+ slots?: SegnaviaPaper['slots'];
80
95
  unstyled?: boolean;
81
96
  }
82
97
  export interface DocumentProps extends ElementProps<SegnaviaDocument> {
@@ -84,6 +99,7 @@ export interface DocumentProps extends ElementProps<SegnaviaDocument> {
84
99
  print?: PrintInput | null;
85
100
  css?: string;
86
101
  cspExtra?: string;
102
+ slots?: SegnaviaDocument['slots'];
87
103
  unstyled?: boolean;
88
104
  }
89
105
  export type PlayProps = ControlProps<SegnaviaPlay>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@segnavia/react",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  }
27
27
  },
28
28
  "dependencies": {
29
- "@segnavia/frame": "0.21.0"
29
+ "@segnavia/frame": "0.23.0"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": "^18.0.0 || ^19.0.0",