@drawnagency/primitives 0.1.58 → 0.1.59

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.
@@ -95,6 +95,7 @@ function createEvent(name) {
95
95
  var editModeEvent = createEvent("editmodechange");
96
96
  var navChangeEvent = createEvent("sitenavchange");
97
97
  var darkModeEvent = createEvent("sitedarkmode");
98
+ var siteNameChangeEvent = createEvent("sitenamechange");
98
99
  var historySelectEvent = createEvent("history-select");
99
100
  var siteNavChangeEvent = createEvent("sitenavchange-v2");
100
101
  var pageSelectEvent = createEvent("pageselect");
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,2CAsO/G"}
1
+ {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,2CAwO/G"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAqEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAIhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,GACZ,EAAE,KAAK,2CAg6BP"}
1
+ {"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAqEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAIhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,GACZ,EAAE,KAAK,2CAo6BP"}
package/dist/index.js CHANGED
@@ -57,7 +57,7 @@ import {
57
57
  mergeSiteContent,
58
58
  navChangeEvent,
59
59
  safeRedirect
60
- } from "./chunk-AN62WPW7.js";
60
+ } from "./chunk-NTGSA3TI.js";
61
61
  import "./chunk-TG43X7JO.js";
62
62
  import {
63
63
  cn,
@@ -9,6 +9,7 @@ export declare const editModeEvent: TypedEvent<{
9
9
  }>;
10
10
  export declare const navChangeEvent: TypedEvent<NavItem[]>;
11
11
  export declare const darkModeEvent: TypedEvent<string>;
12
+ export declare const siteNameChangeEvent: TypedEvent<string>;
12
13
  export declare const historySelectEvent: TypedEvent<{
13
14
  sha: string;
14
15
  date: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAW1D;AAED,eAAO,MAAM,aAAa;gBAA6B,OAAO;EAAqB,CAAC;AACpF,eAAO,MAAM,cAAc,uBAA0C,CAAC;AACtE,eAAO,MAAM,aAAa,oBAAsC,CAAC;AACjE,eAAO,MAAM,kBAAkB;SAAsB,MAAM;UAAQ,MAAM;EAAqB,CAAC;AAC/F,eAAO,MAAM,kBAAkB,qBAA2C,CAAC;AAC3E,eAAO,MAAM,eAAe,oBAAoC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAW1D;AAED,eAAO,MAAM,aAAa;gBAA6B,OAAO;EAAqB,CAAC;AACpF,eAAO,MAAM,cAAc,uBAA0C,CAAC;AACtE,eAAO,MAAM,aAAa,oBAAsC,CAAC;AACjE,eAAO,MAAM,mBAAmB,oBAAwC,CAAC;AACzE,eAAO,MAAM,kBAAkB;SAAsB,MAAM;UAAQ,MAAM;EAAqB,CAAC;AAC/F,eAAO,MAAM,kBAAkB,qBAA2C,CAAC;AAC3E,eAAO,MAAM,eAAe,oBAAoC,CAAC"}
package/dist/lib/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  mergeSiteContent,
12
12
  navChangeEvent,
13
13
  safeRedirect
14
- } from "../chunk-AN62WPW7.js";
14
+ } from "../chunk-NTGSA3TI.js";
15
15
  import "../chunk-TG43X7JO.js";
16
16
  import {
17
17
  cn,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawnagency/primitives",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -3,7 +3,7 @@ import { ChevronRight } from "lucide-react";
3
3
  import { cn } from "../../lib/cn";
4
4
  import { Toggle } from "./Toggle";
5
5
  import type { SiteNav, NavItem } from "../../lib/nav";
6
- import { editModeEvent, siteNavChangeEvent, pageSelectEvent, darkModeEvent, historySelectEvent } from "../../lib/events";
6
+ import { editModeEvent, siteNavChangeEvent, pageSelectEvent, darkModeEvent, siteNameChangeEvent, historySelectEvent } from "../../lib/events";
7
7
  import { useActiveHeadings } from "../../hooks/useActiveHeadings";
8
8
  import { formatDate } from "../../lib/timestamp";
9
9
  import { Popover } from "./Popover";
@@ -23,6 +23,7 @@ export default function Navigation({ siteNav: initialNav, siteName, darkMode, la
23
23
  const [isOpen, setIsOpen] = useState(false);
24
24
  const [isEditMode, setIsEditMode] = useState(false);
25
25
  const [currentDarkMode, setCurrentDarkMode] = useState(darkMode);
26
+ const [currentSiteName, setCurrentSiteName] = useState(siteName);
26
27
  const [isDark, setIsDark] = useState(false);
27
28
  const [siteNav, setSiteNav] = useState<SiteNav>(initialNav);
28
29
  const [showHistory, setShowHistory] = useState(false);
@@ -34,7 +35,8 @@ export default function Navigation({ siteNav: initialNav, siteName, darkMode, la
34
35
  const unlistenEdit = editModeEvent.listen(({ isEditMode }) => setIsEditMode(isEditMode));
35
36
  const unlistenNav = siteNavChangeEvent.listen((n) => setSiteNav(n));
36
37
  const unlistenDark = darkModeEvent.listen((mode) => setCurrentDarkMode(mode as typeof darkMode));
37
- return () => { unlistenEdit(); unlistenNav(); unlistenDark(); };
38
+ const unlistenName = siteNameChangeEvent.listen((name) => setCurrentSiteName(name));
39
+ return () => { unlistenEdit(); unlistenNav(); unlistenDark(); unlistenName(); };
38
40
  }, []);
39
41
 
40
42
  useEffect(() => {
@@ -191,7 +193,7 @@ export default function Navigation({ siteNav: initialNav, siteName, darkMode, la
191
193
  <>
192
194
  <header className="fixed top-0 left-0 right-0 z-50 bg-base lg:hidden">
193
195
  <div className="mx-auto max-w-screen-xl flex h-16 items-center justify-between px-4">
194
- <span className="text-lg font-bold text-primary">{siteName}</span>
196
+ <span className="text-lg font-bold text-primary">{currentSiteName}</span>
195
197
  <button onClick={() => setIsOpen(!isOpen)} className="cursor-pointer p-2 text-base-contrast" aria-label="Toggle navigation">
196
198
  <svg className="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
197
199
  {isOpen
@@ -207,7 +209,7 @@ export default function Navigation({ siteNav: initialNav, siteName, darkMode, la
207
209
  <nav className={cn("fixed top-0 left-0 lg:left-auto z-40 h-full w-64 flex flex-col overflow-y-auto border-r border-base-200 bg-base pt-16 transition-transform lg:translate-x-0 nav-sidebar",
208
210
  isOpen ? "translate-x-0" : "-translate-x-full")}>
209
211
  <div className="hidden px-4 py-4 lg:block">
210
- <span className="text-lg font-bold text-primary">{siteName}</span>
212
+ <span className="text-lg font-bold text-primary">{currentSiteName}</span>
211
213
  </div>
212
214
 
213
215
  <ul className="space-y-1 px-4 py-2">
@@ -54,7 +54,7 @@ import { useBuildStatus } from "../../hooks/useBuildStatus";
54
54
  import { useMediaPipeline } from "../../hooks/useMediaPipeline";
55
55
  import { formatTimestamp } from "../../lib/timestamp";
56
56
  import { generateSiteNav } from "../../lib/nav";
57
- import { siteNavChangeEvent, pageSelectEvent, darkModeEvent, historySelectEvent } from "../../lib/events";
57
+ import { siteNavChangeEvent, pageSelectEvent, darkModeEvent, siteNameChangeEvent, historySelectEvent } from "../../lib/events";
58
58
  import {
59
59
  homePage, pageById, pageBySlug, pageDisplayTitle, addSectionToPage, removeSectionFromPages,
60
60
  reorderSectionInPage,
@@ -356,6 +356,10 @@ export default function EditorShell({
356
356
  localStorage.setItem("portal-primary-color", config.primaryColor);
357
357
  localStorage.setItem("portal-primary-contrast", config.primaryContrast);
358
358
  darkModeEvent.dispatch(config.darkMode);
359
+ // The nav title lives in a separate island that mounts with a build-time
360
+ // siteName prop. Push the live (possibly draft) name so editing it in Site
361
+ // Settings updates the nav without a reload.
362
+ siteNameChangeEvent.dispatch(config.siteName);
359
363
  }, []);
360
364
 
361
365
  // --- Content loading ---
package/src/lib/events.ts CHANGED
@@ -21,6 +21,7 @@ export function createEvent<T>(name: string): TypedEvent<T> {
21
21
  export const editModeEvent = createEvent<{ isEditMode: boolean }>("editmodechange");
22
22
  export const navChangeEvent = createEvent<NavItem[]>("sitenavchange");
23
23
  export const darkModeEvent = createEvent<string>("sitedarkmode");
24
+ export const siteNameChangeEvent = createEvent<string>("sitenamechange");
24
25
  export const historySelectEvent = createEvent<{ sha: string; date: string }>("history-select");
25
26
  export const siteNavChangeEvent = createEvent<SiteNav>("sitenavchange-v2");
26
27
  export const pageSelectEvent = createEvent<string>("pageselect");