@allshift/ui 0.3.0 → 0.3.1

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/dist/index.cjs CHANGED
@@ -541,7 +541,8 @@ function CanvasTransition({
541
541
  children,
542
542
  labels = {},
543
543
  seenKey = "ash-seen-views",
544
- assemblerName = "Shift"
544
+ assemblerName = "Shift",
545
+ alwaysGenerate = false
545
546
  }) {
546
547
  const pathname = (0, import_navigation.usePathname)();
547
548
  const [mounted, setMounted] = (0, import_react7.useState)(false);
@@ -560,10 +561,10 @@ function CanvasTransition({
560
561
  }
561
562
  setMounted(true);
562
563
  }, []);
563
- const firstVisit = mounted && !seen.has(pathname);
564
+ const firstVisit = mounted && (alwaysGenerate || !seen.has(pathname));
564
565
  (0, import_react7.useEffect)(() => {
565
566
  if (!mounted) return;
566
- const wasFirst = !seen.has(pathname);
567
+ const wasFirst = alwaysGenerate || !seen.has(pathname);
567
568
  seen.add(pathname);
568
569
  try {
569
570
  sessionStorage.setItem(seenKey, JSON.stringify([...seen]));
package/dist/index.d.cts CHANGED
@@ -207,8 +207,12 @@ interface CanvasTransitionProps {
207
207
  seenKey?: string;
208
208
  /** Product name shown in the pill, e.g. "Shift is assembling …". Default "Shift". */
209
209
  assemblerName?: string;
210
+ /** Treat every navigation as a first visit — always play the full generate-in
211
+ * (blur→lift + assembling sheen). Use for demos/tours so each view visibly
212
+ * assembles onto the canvas every time. Default false. */
213
+ alwaysGenerate?: boolean;
210
214
  }
211
- declare function CanvasTransition({ children, labels, seenKey, assemblerName, }: CanvasTransitionProps): react.JSX.Element;
215
+ declare function CanvasTransition({ children, labels, seenKey, assemblerName, alwaysGenerate, }: CanvasTransitionProps): react.JSX.Element;
212
216
 
213
217
  interface LauncherItem {
214
218
  href: string;
package/dist/index.d.ts CHANGED
@@ -207,8 +207,12 @@ interface CanvasTransitionProps {
207
207
  seenKey?: string;
208
208
  /** Product name shown in the pill, e.g. "Shift is assembling …". Default "Shift". */
209
209
  assemblerName?: string;
210
+ /** Treat every navigation as a first visit — always play the full generate-in
211
+ * (blur→lift + assembling sheen). Use for demos/tours so each view visibly
212
+ * assembles onto the canvas every time. Default false. */
213
+ alwaysGenerate?: boolean;
210
214
  }
211
- declare function CanvasTransition({ children, labels, seenKey, assemblerName, }: CanvasTransitionProps): react.JSX.Element;
215
+ declare function CanvasTransition({ children, labels, seenKey, assemblerName, alwaysGenerate, }: CanvasTransitionProps): react.JSX.Element;
212
216
 
213
217
  interface LauncherItem {
214
218
  href: string;
package/dist/index.js CHANGED
@@ -510,7 +510,8 @@ function CanvasTransition({
510
510
  children,
511
511
  labels = {},
512
512
  seenKey = "ash-seen-views",
513
- assemblerName = "Shift"
513
+ assemblerName = "Shift",
514
+ alwaysGenerate = false
514
515
  }) {
515
516
  const pathname = usePathname();
516
517
  const [mounted, setMounted] = useState4(false);
@@ -529,10 +530,10 @@ function CanvasTransition({
529
530
  }
530
531
  setMounted(true);
531
532
  }, []);
532
- const firstVisit = mounted && !seen.has(pathname);
533
+ const firstVisit = mounted && (alwaysGenerate || !seen.has(pathname));
533
534
  useEffect4(() => {
534
535
  if (!mounted) return;
535
- const wasFirst = !seen.has(pathname);
536
+ const wasFirst = alwaysGenerate || !seen.has(pathname);
536
537
  seen.add(pathname);
537
538
  try {
538
539
  sessionStorage.setItem(seenKey, JSON.stringify([...seen]));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allshift/ui",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Shift family shared FEEL layer — glass morphism, 3D tilt physics, holographic shine, scroll-triggered generation, and the living-canvas engine (LiveCard, LiveStat, CanvasTransition, CanvasLauncher). Brand-neutral by design.",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,