PageSourceSearch

https://www.promptmasterpro.net/premium-ui.js

js promptmasterpro.net collected 2026-10-02 02:02:25 UTC 2,502 bytes, 71 lines download raw bytes

1/**
2 * PromptMaster Pro — premium motion (staggered reveal, pressable class).
3 * Respects prefers-reduced-motion. Admin dashboard skips bulk reveal to protect tables.
4 */
5(function () {
6  var reduced = false;
7  try {
8    reduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
9  } catch (e) {}
10
11  function markPressable() {
12    var isAdmin = document.body.classList.contains("pmp-admin");
13    var pressSel =
14      "button, a.btn-primary, a.btn-secondary, a.nav-cta, a.ov-btn, .bill-btn, .login-btn, .save-btn, .tbtn, .users-subtab, .wl-subtab, .blog-subtab, .ct-tab, .an-subtab, .nav-links a, label.sec-toggle";
15
16    document.querySelectorAll(pressSel).forEach(function (el) {
17      if (el.hasAttribute("disabled")) return;
18      if (isAdmin && el.closest && el.closest(".tbl-wrap")) return;
19      if (el.closest && el.closest(".rte-editor")) return;
20      el.classList.add("pmp-pressable");
21    });
22  }
23
24  if (reduced) {
25    document.documentElement.classList.add("pmp-reduced-motion");
26    if (document.readyState === "loading") {
27      document.addEventListener("DOMContentLoaded", markPressable);
28    } else {
29      markPressable();
30    }
31    return;
32  }
33
34  function initReveal() {
35    var isAdmin = document.body.classList.contains("pmp-admin");
36    var dash = document.getElementById("dashboard");
37    var loginPage = document.getElementById("login-page");
38
39    if (isAdmin) {
40      if (loginPage && (!dash || dash.style.display === "none")) {
41        var loginBlocks = loginPage.querySelectorAll(".login-card, .login-logo, h2, .field-label, .fi, .login-btn");
42        loginBlocks.forEach(function (el, i) {
43          el.classList.add("pmp-enter");
44          el.style.setProperty("--pmp-d", Math.min(i * 55, 280) + "ms");
45        });
46      }
47      return;
48    }
49
50    var sel =
51      "section, .hero, footer, .main-wrap, .pricing-wrap, .contact-split, .page-hero, #post-root, .blog-section, body > .card";
52    document.querySelectorAll(sel).forEach(function (el, i) {
53      if (el.closest(".pmp-no-reveal")) return;
54      if (el.tagName === "SECTION" && el.querySelector && el.querySelector(".reveal")) return;
55      if (el.classList.contains("pmp-enter")) return;
56      el.classList.add("pmp-enter");
57      el.style.setProperty("--pmp-d", Math.min(i * 50, 480) + "ms");
58    });
59  }
60
61  function run() {
62    initReveal();
63    markPressable();
64  }
65
66  if (document.readyState === "loading") {
67    document.addEventListener("DOMContentLoaded", run);
68  } else {
69    run();
70  }
71})();

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.