your-ai-workflow-firebase-os 1.2.51 → 1.2.52

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/README.md CHANGED
@@ -29,7 +29,7 @@ That's it. **One component. Zero configuration files.**
29
29
  | 👥 **User Management** | Admin panel, three access levels (Free · Internal · Admin), inactive user blocking |
30
30
  | 🗂️ **Pages** | Ask your AI assistant for a page — for anyone, signed-in users, your team or admins only — and it appears in `/pages`, where you rename it, reorder it, hide it or change its web address |
31
31
  | 📋 **Templates** | Board (Kanban), Calendar, Table, Drive, Inline Form, Popup Form, Confirmation |
32
- | 🎨 **Theme Engine** | Full dark/light mode, custom accent colours, fonts, corner radii, logo |
32
+ | 🎨 **Theme Engine** | Full dark/light mode, custom accent colours, corner radii, logo |
33
33
  | 📁 **File Storage** | An admin-only Assets screen for public images, plus a drive preset any page can be built on |
34
34
  | 📬 **Forms** | Created with their pages on `/pages` — say what a form should ask and the AI builds it with the page; see and hand-edit every form afterwards on `/forms`. Questions can ask for a file — a CV, a photo, a receipt — and the upload works signed out |
35
35
  | 📥 **Inbox** | Every form entry in one list at `/inbox`, filtered "From anyone" or "From signed-in users"; an attached file opens from the entry by its own name |
@@ -144,7 +144,6 @@ var le = Object.defineProperty, ue = Object.getOwnPropertyDescriptor, P = Object
144
144
  selectionText: "#ffffff"
145
145
  }
146
146
  },
147
- fontFamily: "Inter",
148
147
  cornerRounding: "default",
149
148
  cornerRadii: {
150
149
  buttonRadius: .75,
@@ -271,7 +270,7 @@ function Re({ children: e, scopeSelector: t }) {
271
270
  let e = T(x(Ce, "sys_configs", "theme"), (e) => {
272
271
  if (e.exists()) {
273
272
  let t = e.data();
274
- delete t.fontStyles, delete t.fontCustomization;
273
+ delete t.fontStyles, delete t.fontCustomization, delete t.fontFamily;
275
274
  let r = Fe(n, t);
276
275
  c(r), localStorage.setItem("theme_config_cache", JSON.stringify(r));
277
276
  let a = localStorage.getItem("last-seen-default-theme");
@@ -290,19 +289,11 @@ function Re({ children: e, scopeSelector: t }) {
290
289
  let i = (e, t) => !e || e.length === 0 ? t || "transparent" : e.length === 1 ? e[0] : `linear-gradient(135deg, ${e.map((t, n) => `${t} ${Math.round(n / (e.length - 1) * 100)}%`).join(", ")})`, o = a === "dark" ? "linear-gradient(135deg, #6d28d9 0%, #a78bfa 100%)" : "linear-gradient(135deg, #5b21b6 0%, #a78bfa 100%)";
291
290
  e.style.setProperty("--button-bg", i(n.buttonGradient, o)), e.style.setProperty("--button-fg", n.buttonText || "#ffffff"), e.style.setProperty("--button-hover-bg", i(n.buttonHoverGradient || n.buttonGradient, o)), e.style.setProperty("--text-gradient", i(n.textGradient, `linear-gradient(135deg, ${n.foreground} 0%, ${n.accent} 100%)`)), e.style.setProperty("--glow-color", n.glowColor || `color-mix(in srgb, ${n.accent} 30%, transparent)`), e.style.setProperty("--notification-icon-color", n.notificationIconColor || n.accent);
292
291
  let c = n.secondaryButton?.bg || (a === "dark" ? "rgba(255, 255, 255, 0.05)" : "rgba(0, 0, 0, 0.03)"), l = n.secondaryButton?.border || (a === "dark" ? "rgba(255, 255, 255, 0.1)" : "rgba(0, 0, 0, 0.06)"), u = n.secondaryButton?.text || n.foreground;
293
- e.style.setProperty("--btn-sec-bg", c), e.style.setProperty("--btn-sec-border", l), e.style.setProperty("--btn-sec-text", u), e.style.setProperty("--selection-bg", n.selectionBg || "color-mix(in srgb, var(--accent-color) 40%, transparent)"), e.style.setProperty("--selection-text", n.selectionText || "#ffffff"), e.setAttribute("data-theme", a), localStorage.setItem("theme-mode", r), s.cornerRounding === "custom" && s.cornerRadii ? (e.style.setProperty("--btn-radius", `${parseFloat(String(s.cornerRadii.buttonRadius)) || 0}rem`), e.style.setProperty("--card-radius", `${parseFloat(String(s.cornerRadii.cardRadius)) || 0}rem`), e.style.setProperty("--input-radius", `${parseFloat(String(s.cornerRadii.inputRadius)) || 0}rem`), e.style.setProperty("--modal-radius", `${parseFloat(String(s.cornerRadii.modalRadius)) || 0}rem`)) : (e.style.setProperty("--btn-radius", "0.75rem"), e.style.setProperty("--card-radius", "1.5rem"), e.style.setProperty("--input-radius", "0.75rem"), e.style.setProperty("--modal-radius", "1.5rem")), ((t) => {
294
- let n = {
295
- Inter: "\"Inter\", sans-serif",
296
- Outfit: "\"Outfit\", sans-serif",
297
- Roboto: "\"Roboto\", sans-serif",
298
- "Space Grotesk": "\"Space Grotesk\", sans-serif",
299
- "Plus Jakarta Sans": "\"Plus Jakarta Sans\", sans-serif",
300
- "System UI": "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif"
301
- };
302
- e.style.setProperty("--font-family", n[t] || n.Inter);
303
- let r = document.getElementById("dynamic-google-font");
304
- t === "System UI" ? r && r.remove() : (r || (r = document.createElement("link"), r.id = "dynamic-google-font", r.rel = "stylesheet", document.head.appendChild(r)), r.href = `https://fonts.googleapis.com/css2?family=${t.replace(/ /g, "+")}:wght@400;500;600;700;800;900&display=swap`), e.style.fontSize = "16px", e.style.setProperty("--weight-h1", "800"), e.style.setProperty("--weight-h2", "700"), e.style.setProperty("--weight-h3", "700"), e.style.setProperty("--leading-normal", "1.5");
305
- })(s.fontFamily || "Inter");
292
+ if (e.style.setProperty("--btn-sec-bg", c), e.style.setProperty("--btn-sec-border", l), e.style.setProperty("--btn-sec-text", u), e.style.setProperty("--selection-bg", n.selectionBg || "color-mix(in srgb, var(--accent-color) 40%, transparent)"), e.style.setProperty("--selection-text", n.selectionText || "#ffffff"), e.setAttribute("data-theme", a), localStorage.setItem("theme-mode", r), s.cornerRounding === "custom" && s.cornerRadii ? (e.style.setProperty("--btn-radius", `${parseFloat(String(s.cornerRadii.buttonRadius)) || 0}rem`), e.style.setProperty("--card-radius", `${parseFloat(String(s.cornerRadii.cardRadius)) || 0}rem`), e.style.setProperty("--input-radius", `${parseFloat(String(s.cornerRadii.inputRadius)) || 0}rem`), e.style.setProperty("--modal-radius", `${parseFloat(String(s.cornerRadii.modalRadius)) || 0}rem`)) : (e.style.setProperty("--btn-radius", "0.75rem"), e.style.setProperty("--card-radius", "1.5rem"), e.style.setProperty("--input-radius", "0.75rem"), e.style.setProperty("--modal-radius", "1.5rem")), !document.getElementById("inter-font")) {
293
+ let e = document.createElement("link");
294
+ e.id = "inter-font", e.rel = "stylesheet", e.href = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap", document.head.appendChild(e);
295
+ }
296
+ e.style.fontSize = "16px", e.style.setProperty("--weight-h1", "800"), e.style.setProperty("--weight-h2", "700"), e.style.setProperty("--weight-h3", "700"), e.style.setProperty("--leading-normal", "1.5");
306
297
  let d = document.querySelector("link[rel*='icon']");
307
298
  d || (d = document.createElement("link"), d.rel = "icon", document.head.appendChild(d)), s.faviconUrl && (d.href = s.faviconUrl), s.appName && (document.title = s.appName);
308
299
  }, [
@@ -45811,7 +45802,7 @@ function ZW(e) {
45811
45802
  return "Attached file";
45812
45803
  }
45813
45804
  }
45814
- var QW = (e) => e?.code === "storage/unauthorized" ? "You do not have permission to upload here." : e?.message || "That upload did not work. Try again.", $W = t.lazy(() => import("./PhoneInputField-DZFhNM2v.js").then((e) => e.n)), eG = /^[^\s@,;]+@[^\s@,;.]+(\.[^\s@,;.]+)*\.[a-z]{2,}$/i;
45805
+ var QW = (e) => e?.code === "storage/unauthorized" ? "You do not have permission to upload here." : e?.message || "That upload did not work. Try again.", $W = t.lazy(() => import("./PhoneInputField-D1ihCXpb.js").then((e) => e.n)), eG = /^[^\s@,;]+@[^\s@,;.]+(\.[^\s@,;.]+)*\.[a-z]{2,}$/i;
45815
45806
  function tG({ field: e, value: t, error: n, onChange: r }) {
45816
45807
  let [i, a] = v(!1), [o, s] = v(""), c = _(null), l = async (e) => {
45817
45808
  if (!(!e || i)) {