@newtonedev/editor 0.1.5 → 0.1.7

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.
Files changed (62) hide show
  1. package/dist/Editor.d.ts +1 -1
  2. package/dist/Editor.d.ts.map +1 -1
  3. package/dist/components/CodeBlock.d.ts.map +1 -1
  4. package/dist/components/ConfiguratorPanel.d.ts +17 -0
  5. package/dist/components/ConfiguratorPanel.d.ts.map +1 -0
  6. package/dist/components/FontPicker.d.ts +4 -2
  7. package/dist/components/FontPicker.d.ts.map +1 -1
  8. package/dist/components/PresetSelector.d.ts.map +1 -1
  9. package/dist/components/PreviewWindow.d.ts +9 -3
  10. package/dist/components/PreviewWindow.d.ts.map +1 -1
  11. package/dist/components/PrimaryNav.d.ts +7 -0
  12. package/dist/components/PrimaryNav.d.ts.map +1 -0
  13. package/dist/components/RightSidebar.d.ts +4 -1
  14. package/dist/components/RightSidebar.d.ts.map +1 -1
  15. package/dist/components/Sidebar.d.ts +1 -10
  16. package/dist/components/Sidebar.d.ts.map +1 -1
  17. package/dist/components/TableOfContents.d.ts +2 -1
  18. package/dist/components/TableOfContents.d.ts.map +1 -1
  19. package/dist/components/sections/DynamicRangeSection.d.ts.map +1 -1
  20. package/dist/components/sections/FontsSection.d.ts +3 -1
  21. package/dist/components/sections/FontsSection.d.ts.map +1 -1
  22. package/dist/hooks/useEditorState.d.ts +4 -1
  23. package/dist/hooks/useEditorState.d.ts.map +1 -1
  24. package/dist/index.cjs +2893 -2248
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2895 -2251
  29. package/dist/index.js.map +1 -1
  30. package/dist/preview/ComponentDetailView.d.ts +9 -2
  31. package/dist/preview/ComponentDetailView.d.ts.map +1 -1
  32. package/dist/preview/ComponentRenderer.d.ts +2 -1
  33. package/dist/preview/ComponentRenderer.d.ts.map +1 -1
  34. package/dist/preview/IconBrowserView.d.ts +7 -0
  35. package/dist/preview/IconBrowserView.d.ts.map +1 -0
  36. package/dist/types.d.ts +17 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/utils/lookupFontMetrics.d.ts +19 -0
  39. package/dist/utils/lookupFontMetrics.d.ts.map +1 -0
  40. package/dist/utils/measureFonts.d.ts +18 -0
  41. package/dist/utils/measureFonts.d.ts.map +1 -0
  42. package/package.json +1 -1
  43. package/src/Editor.tsx +57 -11
  44. package/src/components/CodeBlock.tsx +42 -14
  45. package/src/components/ConfiguratorPanel.tsx +77 -0
  46. package/src/components/FontPicker.tsx +38 -29
  47. package/src/components/PresetSelector.tsx +8 -33
  48. package/src/components/PreviewWindow.tsx +20 -4
  49. package/src/components/PrimaryNav.tsx +76 -0
  50. package/src/components/RightSidebar.tsx +103 -40
  51. package/src/components/Sidebar.tsx +4 -211
  52. package/src/components/TableOfContents.tsx +41 -78
  53. package/src/components/sections/DynamicRangeSection.tsx +2 -225
  54. package/src/components/sections/FontsSection.tsx +61 -93
  55. package/src/hooks/useEditorState.ts +68 -9
  56. package/src/index.ts +2 -0
  57. package/src/preview/ComponentDetailView.tsx +576 -73
  58. package/src/preview/ComponentRenderer.tsx +6 -4
  59. package/src/preview/IconBrowserView.tsx +187 -0
  60. package/src/types.ts +15 -0
  61. package/src/utils/lookupFontMetrics.ts +52 -0
  62. package/src/utils/measureFonts.ts +41 -0
package/dist/Editor.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { EditorProps } from "./types";
2
- export declare function Editor({ initialState, initialIsPublished, initialPresets, initialActivePresetId, initialPublishedPresetId, defaultState, chromeThemeConfig, persistence, headerSlots, onNavigate, initialPreviewView, }: EditorProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Editor({ initialState, initialIsPublished, initialPresets, initialActivePresetId, initialPublishedPresetId, defaultState, chromeThemeConfig, persistence, headerSlots, onNavigate, initialPreviewView, manifestUrl, fontCatalog, }: EditorProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=Editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,MAAM,CAAC,EACrB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,EAAE,WAAW,2CA8Gb"}
1
+ {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,MAAM,CAAC,EACrB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,EAAE,WAAW,2CAuJb"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,2CAc7D;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,2CAiCA"}
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/components/CodeBlock.tsx"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,2CAqC7D;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,2CAsCA"}
@@ -0,0 +1,17 @@
1
+ import type { ColorMode } from "@newtonedev/components";
2
+ import type { ColorResult } from "newtone";
3
+ import type { ConfiguratorState } from "@newtonedev/configurator";
4
+ import type { ConfiguratorAction } from "@newtonedev/configurator";
5
+ import type { GoogleFontEntry } from "@newtonedev/fonts";
6
+ interface ConfiguratorPanelProps {
7
+ readonly activeSectionId: string;
8
+ readonly state: ConfiguratorState;
9
+ readonly dispatch: (action: ConfiguratorAction) => void;
10
+ readonly previewColors: readonly (readonly ColorResult[])[];
11
+ readonly colorMode: ColorMode;
12
+ readonly onColorModeChange: (mode: ColorMode) => void;
13
+ readonly fontCatalog?: readonly GoogleFontEntry[];
14
+ }
15
+ export declare function ConfiguratorPanel({ activeSectionId, state, dispatch, previewColors, colorMode, onColorModeChange, fontCatalog, }: ConfiguratorPanelProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=ConfiguratorPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfiguratorPanel.d.ts","sourceRoot":"","sources":["../../src/components/ConfiguratorPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASzD,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACnD;AAID,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,KAAK,EACL,QAAQ,EACR,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,EAAE,sBAAsB,2CAyCxB"}
@@ -1,11 +1,13 @@
1
1
  import type { FontConfig } from "@newtonedev/components";
2
- type FontSlot = "default" | "display" | "mono";
2
+ import type { GoogleFontEntry } from "@newtonedev/fonts";
3
+ type FontSlot = "default" | "display" | "mono" | "currency";
3
4
  interface FontPickerProps {
4
5
  readonly label: string;
5
6
  readonly slot: FontSlot;
6
7
  readonly currentFont: FontConfig;
7
8
  readonly onSelect: (font: FontConfig) => void;
9
+ readonly fontCatalog?: readonly GoogleFontEntry[];
8
10
  }
9
- export declare function FontPicker({ label, slot, currentFont, onSelect, }: FontPickerProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function FontPicker({ label, slot, currentFont, onSelect, fontCatalog, }: FontPickerProps): import("react/jsx-runtime").JSX.Element;
10
12
  export {};
11
13
  //# sourceMappingURL=FontPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FontPicker.d.ts","sourceRoot":"","sources":["../../src/components/FontPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoC,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG3F,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/C,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CAC/C;AAqDD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,GACT,EAAE,eAAe,2CAsOjB"}
1
+ {"version":3,"file":"FontPicker.d.ts","sourceRoot":"","sources":["../../src/components/FontPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAG1E,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5D,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACnD;AAkDD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,WAAgB,GACjB,EAAE,eAAe,2CAkPjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PresetSelector.d.ts","sourceRoot":"","sources":["../../src/components/PresetSelector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,EAAE,mBAAmB,2CAyarB"}
1
+ {"version":3,"file":"PresetSelector.d.ts","sourceRoot":"","sources":["../../src/components/PresetSelector.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,EAAE,mBAAmB,2CAgZrB"}
@@ -1,11 +1,17 @@
1
- import type { PreviewView } from "../types";
1
+ import type { TextRole } from "@newtonedev/fonts";
2
+ import type { PreviewView, EditorFontEntry } from "../types";
2
3
  interface PreviewWindowProps {
3
4
  readonly view: PreviewView;
4
5
  readonly selectedVariantId: string | null;
5
- readonly propOverrides?: Record<string, unknown>;
6
6
  readonly onNavigate: (view: PreviewView) => void;
7
7
  readonly onSelectVariant: (variantId: string) => void;
8
+ readonly propOverrides?: Record<string, unknown>;
9
+ readonly onPropOverride?: (name: string, value: unknown) => void;
10
+ readonly roleWeights?: Partial<Record<TextRole, number>>;
11
+ readonly onRoleWeightChange?: (role: TextRole, weight: number) => void;
12
+ readonly fontCatalog?: readonly EditorFontEntry[];
13
+ readonly scopeFontMap?: Record<string, string>;
8
14
  }
9
- export declare function PreviewWindow({ view, selectedVariantId, propOverrides, onNavigate, onSelectVariant, }: PreviewWindowProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function PreviewWindow({ view, selectedVariantId, onNavigate, onSelectVariant, propOverrides, onPropOverride, roleWeights, onRoleWeightChange, fontCatalog, scopeFontMap, }: PreviewWindowProps): import("react/jsx-runtime").JSX.Element;
10
16
  export {};
11
17
  //# sourceMappingURL=PreviewWindow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewWindow.d.ts","sourceRoot":"","sources":["../../src/components/PreviewWindow.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,eAAe,GAChB,EAAE,kBAAkB,2CA8CpB"}
1
+ {"version":3,"file":"PreviewWindow.d.ts","sourceRoot":"","sources":["../../src/components/PreviewWindow.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7D,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,YAAY,GACb,EAAE,kBAAkB,2CAmDpB"}
@@ -0,0 +1,7 @@
1
+ interface PrimaryNavProps {
2
+ readonly activeSectionId: string | null;
3
+ readonly onSelectSection: (sectionId: string) => void;
4
+ }
5
+ export declare function PrimaryNav({ activeSectionId, onSelectSection }: PrimaryNavProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=PrimaryNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrimaryNav.d.ts","sourceRoot":"","sources":["../../src/components/PrimaryNav.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAID,wBAAgB,UAAU,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,eAAe,2CAgE/E"}
@@ -1,3 +1,4 @@
1
+ import type { NewtoneThemeConfig, ColorMode } from "@newtonedev/components";
1
2
  import type { SidebarSelection } from "../types";
2
3
  interface RightSidebarProps {
3
4
  readonly selection: SidebarSelection;
@@ -6,7 +7,9 @@ interface RightSidebarProps {
6
7
  readonly onResetOverrides: () => void;
7
8
  readonly onClose: () => void;
8
9
  readonly onScopeToComponent: () => void;
10
+ readonly previewConfig: NewtoneThemeConfig;
11
+ readonly colorMode: ColorMode;
9
12
  }
10
- export declare function RightSidebar({ selection, propOverrides, onPropOverride, onResetOverrides, onClose, onScopeToComponent, }: RightSidebarProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function RightSidebar({ selection, propOverrides, onPropOverride, onResetOverrides, onClose, onScopeToComponent, previewConfig, colorMode, }: RightSidebarProps): import("react/jsx-runtime").JSX.Element;
11
14
  export {};
12
15
  //# sourceMappingURL=RightSidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebar.d.ts","sourceRoot":"","sources":["../../src/components/RightSidebar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;CACzC;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,kBAAkB,GACnB,EAAE,iBAAiB,2CAuMnB"}
1
+ {"version":3,"file":"RightSidebar.d.ts","sourceRoot":"","sources":["../../src/components/RightSidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,SAAS,GACV,EAAE,iBAAiB,2CAgNnB"}
@@ -1,12 +1,5 @@
1
- import type { ColorMode } from "@newtonedev/components";
2
- import type { ColorResult } from "newtone";
3
- import type { ConfiguratorState } from "@newtonedev/configurator";
4
- import type { ConfiguratorAction } from "@newtonedev/configurator";
5
1
  import type { Preset } from "../types";
6
2
  interface SidebarProps {
7
- readonly state: ConfiguratorState;
8
- readonly dispatch: (action: ConfiguratorAction) => void;
9
- readonly previewColors: readonly (readonly ColorResult[])[];
10
3
  readonly isDirty: boolean;
11
4
  readonly onRevert: () => void;
12
5
  readonly presets: readonly Preset[];
@@ -17,9 +10,7 @@ interface SidebarProps {
17
10
  readonly onRenamePreset: (presetId: string, name: string) => void;
18
11
  readonly onDeletePreset: (presetId: string) => Promise<void>;
19
12
  readonly onDuplicatePreset: (presetId: string, name: string) => Promise<string>;
20
- readonly colorMode: ColorMode;
21
- readonly onColorModeChange: (mode: ColorMode) => void;
22
13
  }
23
- export declare function Sidebar({ state, dispatch, previewColors, isDirty, onRevert, presets, activePresetId, publishedPresetId, onSwitchPreset, onCreatePreset, onRenamePreset, onDeletePreset, onDuplicatePreset, colorMode, onColorModeChange, }: SidebarProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Sidebar({ isDirty, onRevert, presets, activePresetId, publishedPresetId, onSwitchPreset, onCreatePreset, onRenamePreset, onDeletePreset, onDuplicatePreset, }: SidebarProps): import("react/jsx-runtime").JSX.Element;
24
15
  export {};
25
16
  //# sourceMappingURL=Sidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAsFvC,UAAU,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACvD;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,aAAa,EACb,OAAO,EACP,QAAQ,EACR,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,iBAAiB,GAClB,EAAE,YAAY,2CAiMd"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,UAAU,YAAY;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,EAAE,YAAY,2CA0Fd"}
@@ -1,9 +1,10 @@
1
1
  import type { PreviewView } from "../types";
2
2
  interface TableOfContentsProps {
3
+ readonly activeSectionId: string;
3
4
  readonly activeView: PreviewView;
4
5
  readonly selectedComponentId: string | null;
5
6
  readonly onNavigate: (view: PreviewView) => void;
6
7
  }
7
- export declare function TableOfContents({ activeView, selectedComponentId, onNavigate, }: TableOfContentsProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function TableOfContents({ activeSectionId, activeView, selectedComponentId, onNavigate, }: TableOfContentsProps): import("react/jsx-runtime").JSX.Element;
8
9
  export {};
9
10
  //# sourceMappingURL=TableOfContents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../src/components/TableOfContents.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAID,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,mBAAmB,EACnB,UAAU,GACX,EAAE,oBAAoB,2CAkItB"}
1
+ {"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../src/components/TableOfContents.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAID,wBAAgB,eAAe,CAAC,EAC9B,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,UAAU,GACX,EAAE,oBAAoB,2CA4FtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicRangeSection.d.ts","sourceRoot":"","sources":["../../../src/components/sections/DynamicRangeSection.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAydnE,UAAU,wBAAwB;IAChC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,GACT,EAAE,wBAAwB,2CA6H1B"}
1
+ {"version":3,"file":"DynamicRangeSection.d.ts","sourceRoot":"","sources":["../../../src/components/sections/DynamicRangeSection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAuQnE,UAAU,wBAAwB;IAChC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,GACT,EAAE,wBAAwB,2CA0H1B"}
@@ -1,9 +1,11 @@
1
1
  import type { ConfiguratorState } from "@newtonedev/configurator";
2
2
  import type { ConfiguratorAction } from "@newtonedev/configurator";
3
+ import type { GoogleFontEntry } from "@newtonedev/fonts";
3
4
  interface FontsSectionProps {
4
5
  readonly state: ConfiguratorState;
5
6
  readonly dispatch: (action: ConfiguratorAction) => void;
7
+ readonly fontCatalog?: readonly GoogleFontEntry[];
6
8
  }
7
- export declare function FontsSection({ state, dispatch }: FontsSectionProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function FontsSection({ state, dispatch, fontCatalog }: FontsSectionProps): import("react/jsx-runtime").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=FontsSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FontsSection.d.ts","sourceRoot":"","sources":["../../../src/components/sections/FontsSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAuBnE,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAmGlE"}
1
+ {"version":3,"file":"FontsSection.d.ts","sourceRoot":"","sources":["../../../src/components/sections/FontsSection.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAA6B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA2BzD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACnD;AASD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,iBAAiB,2CAqD/E"}
@@ -11,8 +11,9 @@ interface UseEditorStateOptions {
11
11
  readonly persistence: EditorPersistence;
12
12
  readonly onNavigate?: (view: PreviewView) => void;
13
13
  readonly initialPreviewView?: PreviewView;
14
+ readonly manifestUrl?: string;
14
15
  }
15
- export declare function useEditorState({ initialState, initialIsPublished, initialPresets, initialActivePresetId, initialPublishedPresetId, defaultState, persistence, onNavigate, initialPreviewView, }: UseEditorStateOptions): {
16
+ export declare function useEditorState({ initialState, initialIsPublished, initialPresets, initialActivePresetId, initialPublishedPresetId, defaultState, persistence, onNavigate, initialPreviewView, manifestUrl, }: UseEditorStateOptions): {
16
17
  readonly configuratorState: ConfiguratorState;
17
18
  readonly dispatch: (action: import("@newtonedev/configurator").ConfiguratorAction) => void;
18
19
  readonly themeConfig: import("@newtonedev/components").NewtoneThemeConfig;
@@ -24,7 +25,9 @@ export declare function useEditorState({ initialState, initialIsPublished, initi
24
25
  readonly saveDraft: (state: ConfiguratorState) => Promise<void>;
25
26
  readonly previewView: PreviewView;
26
27
  readonly colorMode: ColorMode;
28
+ readonly activeSectionId: string;
27
29
  readonly handlePreviewNavigate: (view: PreviewView) => void;
30
+ readonly handleSectionChange: (sectionId: string) => void;
28
31
  readonly handleSelectVariant: (variantId: string) => void;
29
32
  readonly handleColorModeChange: (mode: ColorMode) => void;
30
33
  readonly sidebarSelection: SidebarSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"useEditorState.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAC3C;AAED,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,EAAE,qBAAqB;;;;;;;;;gCAuLN,iBAAiB;;;2CA/DxB,WAAW;8CAmBN,MAAM;2CA6EX,SAAS;;;;;4CAjDgC,MAAM,SAAS,OAAO;;;;;;;;;;;;;;;EAiKzE"}
1
+ {"version":3,"file":"useEditorState.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAIlB,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAAC,EAC7B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,GACZ,EAAE,qBAAqB;;;;;;;;;gCAsON,iBAAiB;;;;2CA3GxB,WAAW;8CAsBN,MAAM;8CA8BN,MAAM;2CAwFX,SAAS;;;;;4CA3DL,MAAM,SAAS,OAAO;;;;;;;;;;;;;;;EAmLpC"}