PageSourceSearch

https://analytic-design-learn-flow.base44.app/new-plan

html analytic-design-learn-flow.base44.app collected 2026-10-03 03:11:08 UTC 12,823 bytes, 268 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/6a24844258f9304919dfd6fa/2efa15f75_V3AIG_LOGOMARK_RGB1.png" rel="icon" type="image/svg+xml"/>
39  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
40  <link href="/manifest.json" rel="manifest"/>
41  <title>
42   New Plan | PD Design Studio
43  </title>
44  
44<script crossorigin="" src="/assets/index-DyE78Mwe.js" type="module">
45  </script>
45
46  <link crossorigin="" href="/assets/index-CUEwG73a.css" rel="stylesheet"/>
47  
47<script type="module">
48   if (window.self === window.top) {
49  let lastPath = "";
50  function getPageNameFromPath(path) {
51    const segments = path.split("/").filter(Boolean);
52    return segments[0] || null;
53  }
54  function trackPageView() {
55    const path = window.location.pathname;
56    if (path === lastPath) return;
57    lastPath = path;
58    const pageName = getPageNameFromPath(path) || "home";
59    const appId = "6a24844258f9304919dfd6fa";
60    if (!appId) return;
61    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
62      method: "POST",
63    }).catch(() => {});
64  }
65  const originalPushState = history.pushState.bind(history);
66  history.pushState = function (...args) {
67    originalPushState(...args);
68    trackPageView();
69  };
70  const originalReplaceState = history.replaceState.bind(history);
71  history.replaceState = function (...args) {
72    originalReplaceState(...args);
73    trackPageView();
74  };
75  window.addEventListener("popstate", trackPageView);
76  trackPageView();
77}
78  </script>
78
79  <meta content="New Plan on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,." name="description"/>
80  <meta content="New Plan | PD Design Studio" property="og:title"/>
81  <meta content="New Plan on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,." property="og:description"/>
82  <meta content="https://media.base44.com/images/public/6a24844258f9304919dfd6fa/2efa15f75_V3AIG_LOGOMARK_RGB1.png/v1/fill/w_1200,h_630/2efa15f75_V3AIG_LOGOMARK_RGB1.png" property="og:image"/>
83  <meta content="https://analytic-design-learn-flow.base44.app/new-plan" property="og:url"/>
84  <meta content="website" property="og:type"/>
85  <meta content="PD Design Studio" property="og:site_name"/>
86  <meta content="New Plan | PD Design Studio" name="twitter:title"/>
87  <meta content="New Plan on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,." name="twitter:description"/>
88  <meta content="https://media.base44.com/images/public/6a24844258f9304919dfd6fa/2efa15f75_V3AIG_LOGOMARK_RGB1.png/v1/fill/w_1200,h_630/2efa15f75_V3AIG_LOGOMARK_RGB1.png" name="twitter:image"/>
89  <meta content="summary_large_image" name="twitter:card"/>
90  <meta content="https://analytic-design-learn-flow.base44.app/new-plan" name="twitter:url"/>
91  
91<script>
92   (function () {
93  var titles = {"/new-plan": "New Plan | PD Design Studio", "/standards-sources": "Standards Sources | PD Design Studio", "/informal-learning": "Informal Learning | PD Design Studio", "/social-media-learning": "Social Media Learning | PD Design Studio", "/edcamp-planner": "Edcamp Planner | PD Design Studio", "/pln-builder": "PLNBuilder | PD Design Studio", "/credits": "Credits | PD Design Studio", "/create-template": "Create Template | PD Design Studio", "/create-activity": "Create Activity | PD Design Studio", "/": "PD Design Studio", "/templates": "Templates | PD Design Studio", "/activities": "Activities | PD Design Studio", "/saved-plans": "Saved Plans | PD Design Studio", "/my-library": "My Library | PD Design Studio", "/home": "PD Design Studio"};
94  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
95  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
96  var dashed = function (s) {
97    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
98  };
99  var decode = function (s) {
100    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
101    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
102    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
103  };
104  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
105  var norm = function (path) {
106    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
107    return parts.length ? "/" + parts.join("/") : "/";
108  };
109  var lastPath = location.pathname, written = document.title, on = true;
110  var sync = function () {
111    // Path only: a hash/query change is the same page, and the SDK strips its own auth
112    // params with replaceState -- neither must clobber a server-rendered title in place.
113    if (!on || location.pathname === lastPath) return;
114    lastPath = location.pathname;
115    if (document.title !== written) { on = false; return; }
116    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
117    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
118    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
119    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
120    // a redirect landing on an unmapped path would bake the placeholder into the stored
121    // snapshot. Leaving the title alone degrades to today's behavior instead.
122    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
123    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
124    // dashes there, and the client cannot tell the two apart. The map emits every reachable
125    // shape per segment instead (_client_url_variants).
126    var title = titles[norm(location.pathname)];
127    if (title === undefined) return;
128    document.title = title;
129    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
130    // keeping the assigned string would make the next sync() read our own write as the app's.
131    written = document.title;
132  };
133  var wrap = function (fn) {
134    // The history entry is already pushed by the time sync() runs, so a throw here would
135    // surface inside the host app's router and break navigation. This is injected into apps
136    // we cannot test, so it swallows rather than trusting the trace.
137    return function () {
138      var r = fn.apply(this, arguments);
139      try { sync(); } catch (e) {}
140      return r;
141    };
142  };
143  history.pushState = wrap(history.pushState);
144  history.replaceState = wrap(history.replaceState);
145  window.addEventListener("popstate", sync);
146})();
147  </script>
147
148  <meta content="yes" name="mobile-web-app-capable"/>
149  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
150  <meta content="PD Design Studio" name="apple-mobile-web-app-title"/>
151  <link href="https://analytic-design-learn-flow.base44.app/new-plan" rel="canonical"/>
152  
152<script data-seo-source="builder" type="application/ld+json">
153   {"name": "PD Design Studio", "@context": "https://schema.org", "@type": "WebSite", "url": "https://analytic-design-learn-flow.base44.app"}
154  </script>
154
155  
155<script data-seo-source="builder" type="application/ld+json">
156   {"name": "PD Design Studio", "logo": "https://media.base44.com/images/public/6a24844258f9304919dfd6fa/e9e02d4d4_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://analytic-design-learn-flow.base44.app"}
157  </script>
157
158  
158<script data-seo-source="builder" type="application/ld+json">
159   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://analytic-design-learn-flow.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "New Plan | PD Design Studio", "item": "https://analytic-design-learn-flow.base44.app/new-plan"}]}
160  </script>
160
161 </head>
162 <body>
163  <div id="root">
164   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
165    <main>
166     <header>
167      <h1>
168       New Plan | PD Design Studio
169      </h1>
170      <p>
171       New Plan on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
172      </p>
173     </header>
174     <nav aria-label="Pages">
175      <h2>
176       Pages
177      </h2>
178      <ul>
179       <li>
180        <a href="/">
181         Home
182        </a>
183       </li>
184       <li>
185        <a href="/new-plan">
186         New Plan
187        </a>
188        — New Plan on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
189       </li>
190       <li>
191        <a href="/standards-sources">
192         Standards Sources
193        </a>
194        — Standards Sources on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
195       </li>
196       <li>
197        <a href="/informal-learning">
198         Informal Learning
199        </a>
200        — Informal Learning on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
201       </li>
202       <li>
203        <a href="/social-media-learning">
204         Social Media Learning
205        </a>
206        — Social Media Learning on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
207       </li>
208       <li>
209        <a href="/edcamp-planner">
210         Edcamp Planner
211        </a>
212        — Edcamp Planner on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
213       </li>
214       <li>
215        <a href="/pln-builder">
216         PLN Builder
217        </a>
218        — PLNBuilder on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
219       </li>
220       <li>
221        <a href="/credits">
222         Credits
223        </a>
224        — Credits on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
225       </li>
226       <li>
227        <a href="/create-template">
228         Create Template
229        </a>
230        — Create Template on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
231       </li>
232       <li>
233        <a href="/create-activity">
234         Create Activity
235        </a>
236        — Create Activity on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
237       </li>
238       <li>
239        <a href="/templates">
240         Templates
241        </a>
242        — Templates on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
243       </li>
244       <li>
245        <a href="/activities">
246         Activities
247        </a>
248        — Activities on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
249       </li>
250       <li>
251        <a href="/saved-plans">
252         Saved Plans
253        </a>
254        — Saved Plans on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
255       </li>
256       <li>
257        <a href="/my-library">
258         My Library
259        </a>
260        — My Library on PD Design Studio. A streamlined, intuitive planning tool for educators and facilitators to design,.
261       </li>
262      </ul>
263     </nav>
264    </main>
265   </div>
266  </div>
267 </body>
268</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.