@fynd-design-engineering/fynd-one-v2 3.4.63 → 3.4.64

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.
Files changed (79) hide show
  1. package/dist/accordians/dropdown.js +1 -95
  2. package/dist/accordians/index.js +1 -391
  3. package/dist/cms-listing/index.js +1 -24
  4. package/dist/filters/clear-search.js +1 -32
  5. package/dist/filters/konnect.js +1 -165
  6. package/dist/filters/show-count.js +1 -66
  7. package/dist/form/country-dropdown.css +1 -160
  8. package/dist/form/cs-gated-redirection.js +1 -40
  9. package/dist/form/download-file.js +1 -70
  10. package/dist/form/validation.css +1 -1019
  11. package/dist/form/validation.js +7 -10611
  12. package/dist/global/anchor-scroll.js +1 -174
  13. package/dist/global/auth.js +1 -87
  14. package/dist/global/chat.js +1 -185
  15. package/dist/global/console-links.js +1 -89
  16. package/dist/global/contact-popup.js +2 -83
  17. package/dist/global/css/in-page-embed.css +1 -1043
  18. package/dist/global/css/in-project-settings.css +1 -173
  19. package/dist/global/css/temp.css +1 -89
  20. package/dist/global/custom-bg-video.js +1 -40
  21. package/dist/global/footer-accordion.js +1 -44
  22. package/dist/global/lazy-loader.js +1 -135
  23. package/dist/global/loader.js +2 -166
  24. package/dist/global/media-card.js +1 -166
  25. package/dist/global/miscellaneous.js +1 -136
  26. package/dist/global/number-count.js +1 -82
  27. package/dist/global/popup-video.js +1 -276
  28. package/dist/global/progressive-scroll.js +1 -222
  29. package/dist/global/responsive-video.js +1 -321
  30. package/dist/global/style.css +1 -1065
  31. package/dist/global/video-card.js +1 -50
  32. package/dist/hacktimus/2025.js +1 -177
  33. package/dist/hacktimus/styles.css +1 -91
  34. package/dist/home/index.js +1 -17
  35. package/dist/marquee/index.js +1 -3104
  36. package/dist/marquee/marquee-swiper.js +1 -36
  37. package/dist/navigation/announcement/index.js +1 -5169
  38. package/dist/navigation/context-menu/index.js +1 -31
  39. package/dist/navigation/desktop/index.js +1 -4603
  40. package/dist/navigation/initialization.js +1 -602
  41. package/dist/navigation/main.js +1 -4911
  42. package/dist/navigation/mobile/index.js +1 -286
  43. package/dist/navigation/scroll/index.js +1 -62
  44. package/dist/navigation/secondary-navigation/index.js +1 -437
  45. package/dist/navigation/style.css +1 -154
  46. package/dist/navigation/temp.css +0 -2
  47. package/dist/navigation/theme.css +1 -69
  48. package/dist/navigation-v2/index.js +1 -4990
  49. package/dist/navigation-v2/styles.css +1 -233
  50. package/dist/others/feature-detail.js +1 -75
  51. package/dist/others/geolocation.js +1 -50
  52. package/dist/others/hero-aniamtion.js +1 -53
  53. package/dist/others/hero-india-animation-2.js +1 -70
  54. package/dist/others/hero-india-animation.js +1 -93
  55. package/dist/others/home-solution-tab.js +1 -115
  56. package/dist/others/storefront-chat/index.js +1 -487
  57. package/dist/others/storefront-chat/styles.css +1 -107
  58. package/dist/playbook-2026/hero-reveal.js +1 -47
  59. package/dist/playbook-2026/index.js +1 -536
  60. package/dist/playbook-2026/styles.css +1 -110
  61. package/dist/posthog-and-ga/attributes.js +1 -190
  62. package/dist/posthog-and-ga/main.js +1 -528
  63. package/dist/progressive-scroll/index.js +1 -147
  64. package/dist/quick-fix/reload.js +1 -22
  65. package/dist/seo/schema.js +1 -465
  66. package/dist/slider/freescroll.js +1 -34
  67. package/dist/test/sample.js +1 -15
  68. package/dist/testimonials/index.js +1 -2654
  69. package/dist/timeline/index.js +1 -160
  70. package/dist/timeline/style.css +1 -42
  71. package/dist/tracking/custom-id.js +1 -75
  72. package/dist/tracking/fill-form-fields.js +1 -238
  73. package/dist/tracking/form-tracker.js +1 -146
  74. package/dist/tracking/page-categories.js +1 -20
  75. package/dist/tracking/user-journey.js +1 -839
  76. package/dist/tracking/utm-links.js +1 -194
  77. package/dist/utils/sample.js +1 -17
  78. package/dist/validations/localhost.js +1 -221
  79. package/package.json +1 -1
@@ -1,173 +1 @@
1
- /* src/global/css/in-project-settings.css */
2
- [fynd-sticky-target] {
3
- height: 90vh;
4
- position: sticky;
5
- top: 12vh;
6
- z-index: 2;
7
- }
8
- [fynd-scroll-blocks] {
9
- display: none;
10
- }
11
- [fynd-scroll-source] {
12
- height: 80vh;
13
- }
14
- [fynd-sticky-source] {
15
- height: 80vh;
16
- width: 100%;
17
- position: absolute;
18
- top: 0px;
19
- opacity: 0;
20
- background-color: transparent;
21
- }
22
- [fynd-scroll-container] {
23
- opacity: 0;
24
- }
25
- [fynd-sticky-target] {
26
- height: 80vh;
27
- border-radius: 1rem;
28
- overflow: hidden;
29
- }
30
- [fynd-scroll-column] {
31
- padding-left: 0rem;
32
- padding-right: 0rem;
33
- }
34
- .progressive-scroll-image {
35
- object-fit: cover;
36
- }
37
- @media (max-width: 991px) {
38
- [fynd-scroll-container] {
39
- opacity: 0;
40
- display: none;
41
- }
42
- [fynd-scroll-blocks] {
43
- display: flex;
44
- }
45
- [fynd-sticky-source] {
46
- height: auto;
47
- position: static;
48
- opacity: 1;
49
- }
50
- [fynd-scroll-source] {
51
- height: auto;
52
- }
53
- }
54
- [fynd-console-auth=user-blob] {
55
- display: none;
56
- }
57
- [fynd-console-auth-status=true] {
58
- padding: 0 14px 0 4px !important;
59
- }
60
- [fynd-console-auth-status=false] {
61
- padding: 0 16px 0 16px !important;
62
- }
63
- [style-nav-primary-button=white] [fynd-console-auth=initial-text] {
64
- color: #ffffff;
65
- }
66
- [style-nav-primary-button=white] [fynd-console-auth=user-blob] {
67
- background-color: #0e0e0e;
68
- }
69
- .webflow-only-placeholder,
70
- [only-in-webflow=true] {
71
- display: none;
72
- visibility: hidden;
73
- }
74
- .w-webflow-badge {
75
- display: none !important;
76
- }
77
- .termly-styles-logo-cc6217.termly-styles-logo-c34670 {
78
- display: none !important;
79
- }
80
- [fynd-wrapper-field=product-interested-select] {
81
- display: none;
82
- }
83
- [fynd-wrapper-field=product-interested-input] {
84
- display: none;
85
- }
86
- [fynd-chat=input] {
87
- border: none;
88
- outline: none;
89
- width: 100%;
90
- white-space: nowrap;
91
- overflow: hidden;
92
- pointer-events: auto;
93
- }
94
- [fynd-chat=input-container] {
95
- transform: translate(0px, 100px);
96
- }
97
- [fynd-chat=window] {
98
- position: absolute !important;
99
- z-index: 4;
100
- transform-origin: bottom center;
101
- pointer-events: auto;
102
- overflow: hidden;
103
- transform: scale(0);
104
- }
105
- [fynd-chat=window-overlay] {
106
- pointer-events: auto;
107
- opacity: 0;
108
- display: none;
109
- }
110
- [fynd-chat=wrapper] {
111
- pointer-events: none;
112
- display: flex;
113
- }
114
- [fynd-chat=input-ghost] {
115
- position: absolute;
116
- visibility: hidden;
117
- white-space: nowrap;
118
- font-size: 16px;
119
- font-family: sans-serif;
120
- }
121
- [fynd-chat=input]::placeholder {
122
- color: white;
123
- }
124
- [fynd-chat=input]:focus {
125
- box-shadow: 0 0 0 6px #00000020;
126
- }
127
- [fynd-chat=input],
128
- [fynd-chat=input]::placeholder,
129
- [fynd-chat=icon],
130
- [fynd-chat=button] {
131
- transition: all 0.4s ease;
132
- }
133
- [fynd-chat=input][fynd-chat-active=true] {
134
- background-color: #fff;
135
- border: 1px solid #E3E3E3;
136
- color: #000;
137
- }
138
- [fynd-chat=input][fynd-chat-active=true]::placeholder {
139
- color: #A0A1A2;
140
- }
141
- [fynd-chat=input][fynd-chat-active=true]:focus {
142
- box-shadow: 0 0 0 6px #00000020;
143
- }
144
- [fynd-chat=icon][fynd-chat-active=true] {
145
- color: #000000;
146
- }
147
- [fynd-chat=button][fynd-chat-active=true] {
148
- background-color: #000000;
149
- color: #ffffff;
150
- border: 1px solid #000;
151
- }
152
- [fynd-chat=input][fynd-chat-active=false] {
153
- border: 1px solid #ffffff80;
154
- background-color: #0000001a;
155
- color: #fff;
156
- }
157
- [fynd-chat=input][fynd-chat-active=true]:focus {
158
- box-shadow: 0 0 0 6px #a2a2a220;
159
- }
160
- [fynd-chat=icon][fynd-chat-active=false] {
161
- color: #fff;
162
- }
163
- [fynd-chat=button][fynd-chat-active=false] {
164
- background-color: transparent;
165
- color: #ffffff;
166
- border: 1px solid #ffffffb3;
167
- }
168
- @media screen and (max-width: 479px) {
169
- [fynd-chat=input] {
170
- width: 80vw;
171
- }
172
- }
173
- /*# sourceMappingURL=in-project-settings.css.map */
1
+ [fynd-sticky-target]{height:90vh;position:sticky;top:12vh;z-index:2}[fynd-scroll-blocks]{display:none}[fynd-scroll-source]{height:80vh}[fynd-sticky-source]{height:80vh;width:100%;position:absolute;top:0;opacity:0;background-color:transparent}[fynd-scroll-container]{opacity:0}[fynd-sticky-target]{height:80vh;border-radius:1rem;overflow:hidden}[fynd-scroll-column]{padding-left:0rem;padding-right:0rem}.progressive-scroll-image{object-fit:cover}@media (max-width: 991px){[fynd-scroll-container]{opacity:0;display:none}[fynd-scroll-blocks]{display:flex}[fynd-sticky-source]{height:auto;position:static;opacity:1}[fynd-scroll-source]{height:auto}}[fynd-console-auth=user-blob]{display:none}[fynd-console-auth-status=true]{padding:0 14px 0 4px!important}[fynd-console-auth-status=false]{padding:0 16px!important}[style-nav-primary-button=white] [fynd-console-auth=initial-text]{color:#fff}[style-nav-primary-button=white] [fynd-console-auth=user-blob]{background-color:#0e0e0e}.webflow-only-placeholder,[only-in-webflow=true]{display:none;visibility:hidden}.w-webflow-badge,.termly-styles-logo-cc6217.termly-styles-logo-c34670{display:none!important}[fynd-wrapper-field=product-interested-select],[fynd-wrapper-field=product-interested-input]{display:none}[fynd-chat=input]{border:none;outline:none;width:100%;white-space:nowrap;overflow:hidden;pointer-events:auto}[fynd-chat=input-container]{transform:translateY(100px)}[fynd-chat=window]{position:absolute!important;z-index:4;transform-origin:bottom center;pointer-events:auto;overflow:hidden;transform:scale(0)}[fynd-chat=window-overlay]{pointer-events:auto;opacity:0;display:none}[fynd-chat=wrapper]{pointer-events:none;display:flex}[fynd-chat=input-ghost]{position:absolute;visibility:hidden;white-space:nowrap;font-size:16px;font-family:sans-serif}[fynd-chat=input]::placeholder{color:#fff}[fynd-chat=input]:focus{box-shadow:0 0 0 6px #00000020}[fynd-chat=input],[fynd-chat=input]::placeholder,[fynd-chat=icon],[fynd-chat=button]{transition:all .4s ease}[fynd-chat=input][fynd-chat-active=true]{background-color:#fff;border:1px solid #E3E3E3;color:#000}[fynd-chat=input][fynd-chat-active=true]::placeholder{color:#a0a1a2}[fynd-chat=input][fynd-chat-active=true]:focus{box-shadow:0 0 0 6px #00000020}[fynd-chat=icon][fynd-chat-active=true]{color:#000}[fynd-chat=button][fynd-chat-active=true]{background-color:#000;color:#fff;border:1px solid #000}[fynd-chat=input][fynd-chat-active=false]{border:1px solid #ffffff80;background-color:#0000001a;color:#fff}[fynd-chat=input][fynd-chat-active=true]:focus{box-shadow:0 0 0 6px #a2a2a220}[fynd-chat=icon][fynd-chat-active=false]{color:#fff}[fynd-chat=button][fynd-chat-active=false]{background-color:transparent;color:#fff;border:1px solid #ffffffb3}@media screen and (max-width: 479px){[fynd-chat=input]{width:80vw}}
@@ -1,89 +1 @@
1
- /* src/global/css/temp.css */
2
- [fynd-chat=input] {
3
- border: none;
4
- outline: none;
5
- width: 100%;
6
- white-space: nowrap;
7
- overflow: hidden;
8
- pointer-events: auto;
9
- }
10
- [fynd-chat=input-container] {
11
- transform: translate(0px, 100px);
12
- }
13
- [fynd-chat=window] {
14
- position: absolute !important;
15
- z-index: 4;
16
- transform-origin: bottom center;
17
- pointer-events: auto;
18
- overflow: hidden;
19
- transform: scale(0);
20
- }
21
- [fynd-chat=window-overlay] {
22
- pointer-events: auto;
23
- opacity: 0;
24
- display: none;
25
- }
26
- [fynd-chat=wrapper] {
27
- pointer-events: none;
28
- display: flex;
29
- }
30
- [fynd-chat=input-ghost] {
31
- position: absolute;
32
- visibility: hidden;
33
- white-space: nowrap;
34
- font-size: 16px;
35
- font-family: sans-serif;
36
- }
37
- [fynd-chat=input]::placeholder {
38
- color: white;
39
- }
40
- [fynd-chat=input]:focus {
41
- box-shadow: 0 0 0 6px #00000020;
42
- }
43
- [fynd-chat=input],
44
- [fynd-chat=input]::placeholder,
45
- [fynd-chat=icon],
46
- [fynd-chat=button] {
47
- transition: all 0.4s ease;
48
- }
49
- [fynd-chat=input][fynd-chat-active=true] {
50
- background-color: #fff;
51
- border: 1px solid #E3E3E3;
52
- color: #000;
53
- }
54
- [fynd-chat=input][fynd-chat-active=true]::placeholder {
55
- color: #A0A1A2;
56
- }
57
- [fynd-chat=input][fynd-chat-active=true]:focus {
58
- box-shadow: 0 0 0 6px #00000020;
59
- }
60
- [fynd-chat=icon][fynd-chat-active=true] {
61
- color: #000000;
62
- }
63
- [fynd-chat=button][fynd-chat-active=true] {
64
- background-color: #000000;
65
- color: #ffffff;
66
- border: 1px solid #000;
67
- }
68
- [fynd-chat=input][fynd-chat-active=false] {
69
- border: 1px solid #ffffff80;
70
- background-color: #0000001a;
71
- color: #fff;
72
- }
73
- [fynd-chat=input][fynd-chat-active=true]:focus {
74
- box-shadow: 0 0 0 6px #a2a2a220;
75
- }
76
- [fynd-chat=icon][fynd-chat-active=false] {
77
- color: #fff;
78
- }
79
- [fynd-chat=button][fynd-chat-active=false] {
80
- background-color: transparent;
81
- color: #ffffff;
82
- border: 1px solid #ffffffb3;
83
- }
84
- @media screen and (max-width: 479px) {
85
- [fynd-chat=input] {
86
- width: 80vw;
87
- }
88
- }
89
- /*# sourceMappingURL=temp.css.map */
1
+ [fynd-chat=input]{border:none;outline:none;width:100%;white-space:nowrap;overflow:hidden;pointer-events:auto}[fynd-chat=input-container]{transform:translateY(100px)}[fynd-chat=window]{position:absolute!important;z-index:4;transform-origin:bottom center;pointer-events:auto;overflow:hidden;transform:scale(0)}[fynd-chat=window-overlay]{pointer-events:auto;opacity:0;display:none}[fynd-chat=wrapper]{pointer-events:none;display:flex}[fynd-chat=input-ghost]{position:absolute;visibility:hidden;white-space:nowrap;font-size:16px;font-family:sans-serif}[fynd-chat=input]::placeholder{color:#fff}[fynd-chat=input]:focus{box-shadow:0 0 0 6px #00000020}[fynd-chat=input],[fynd-chat=input]::placeholder,[fynd-chat=icon],[fynd-chat=button]{transition:all .4s ease}[fynd-chat=input][fynd-chat-active=true]{background-color:#fff;border:1px solid #E3E3E3;color:#000}[fynd-chat=input][fynd-chat-active=true]::placeholder{color:#a0a1a2}[fynd-chat=input][fynd-chat-active=true]:focus{box-shadow:0 0 0 6px #00000020}[fynd-chat=icon][fynd-chat-active=true]{color:#000}[fynd-chat=button][fynd-chat-active=true]{background-color:#000;color:#fff;border:1px solid #000}[fynd-chat=input][fynd-chat-active=false]{border:1px solid #ffffff80;background-color:#0000001a;color:#fff}[fynd-chat=input][fynd-chat-active=true]:focus{box-shadow:0 0 0 6px #a2a2a220}[fynd-chat=icon][fynd-chat-active=false]{color:#fff}[fynd-chat=button][fynd-chat-active=false]{background-color:transparent;color:#fff;border:1px solid #ffffffb3}@media screen and (max-width: 479px){[fynd-chat=input]{width:80vw}}
@@ -1,40 +1 @@
1
- "use strict";
2
- (() => {
3
- // bin/live-reload.js
4
- if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
5
- new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
6
- "change",
7
- () => location.reload()
8
- );
9
- } else {
10
- }
11
-
12
- // src/global/custom-bg-video.ts
13
- document.addEventListener("DOMContentLoaded", () => {
14
- const wrappers = document.querySelectorAll("[custom-video]");
15
- wrappers.forEach((wrapper) => {
16
- const video = wrapper.querySelector("video");
17
- const img = wrapper.querySelector("img");
18
- if (!video || !img) return;
19
- video.muted = true;
20
- video.loop = true;
21
- video.autoplay = true;
22
- video.preload = "auto";
23
- const startPlayback = () => {
24
- img.style.display = "none";
25
- video.play().catch(() => {
26
- video.muted = true;
27
- video.play().catch(() => {
28
- });
29
- });
30
- video.removeEventListener("loadeddata", startPlayback);
31
- };
32
- if (video.readyState >= 2) {
33
- startPlayback();
34
- } else {
35
- video.addEventListener("loadeddata", startPlayback);
36
- }
37
- });
38
- });
39
- })();
40
- //# sourceMappingURL=custom-bg-video.js.map
1
+ "use strict";(()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("[custom-video]").forEach(a=>{let e=a.querySelector("video"),o=a.querySelector("img");if(!e||!o)return;e.muted=!0,e.loop=!0,e.autoplay=!0,e.preload="auto";let t=()=>{o.style.display="none",e.play().catch(()=>{e.muted=!0,e.play().catch(()=>{})}),e.removeEventListener("loadeddata",t)};e.readyState>=2?t():e.addEventListener("loadeddata",t)})});})();
@@ -1,44 +1 @@
1
- "use strict";
2
- (() => {
3
- // bin/live-reload.js
4
- if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
5
- new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
6
- "change",
7
- () => location.reload()
8
- );
9
- } else {
10
- }
11
-
12
- // src/global/footer-accordion.ts
13
- document.addEventListener("DOMContentLoaded", () => {
14
- const BREAKPOINT = 992;
15
- const toggles = document.querySelectorAll("[footer-accordion-toggle]");
16
- const contents = document.querySelectorAll("[footer-accordion-content]");
17
- const isMobile = () => {
18
- return window.innerWidth < BREAKPOINT;
19
- };
20
- const closeAll = () => {
21
- contents.forEach((content) => {
22
- content.style.display = "none";
23
- });
24
- };
25
- toggles.forEach((toggle) => {
26
- toggle.addEventListener("click", () => {
27
- if (!isMobile()) return;
28
- const content = toggle.nextElementSibling;
29
- if (!content || !content.hasAttribute("footer-accordion-content")) return;
30
- const isOpen = content.style.display === "grid";
31
- closeAll();
32
- if (!isOpen) {
33
- content.style.display = "grid";
34
- }
35
- });
36
- });
37
- window.addEventListener("resize", () => {
38
- if (!isMobile()) {
39
- closeAll();
40
- }
41
- });
42
- });
43
- })();
44
- //# sourceMappingURL=footer-accordion.js.map
1
+ "use strict";(()=>{document.addEventListener("DOMContentLoaded",()=>{let i=document.querySelectorAll("[footer-accordion-toggle]"),d=document.querySelectorAll("[footer-accordion-content]"),n=()=>window.innerWidth<992,o=()=>{d.forEach(e=>{e.style.display="none"})};i.forEach(e=>{e.addEventListener("click",()=>{if(!n())return;let t=e.nextElementSibling;if(!t||!t.hasAttribute("footer-accordion-content"))return;let l=t.style.display==="grid";o(),l||(t.style.display="grid")})}),window.addEventListener("resize",()=>{n()||o()})});})();
@@ -1,135 +1 @@
1
- "use strict";
2
- (() => {
3
- // bin/live-reload.js
4
- if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
5
- new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
6
- "change",
7
- () => location.reload()
8
- );
9
- } else {
10
- }
11
-
12
- // src/global/lazy-loader.ts
13
- (function() {
14
- "use strict";
15
- const DEFAULT_IDLE_TIMEOUT_MS = 3e3;
16
- const FALLBACK_DELAY_MS = 2e3;
17
- const LOAD_ON = "load";
18
- const ENABLED_GROUPS = /* @__PURE__ */ new Set();
19
- function log(...args) {
20
- const DEBUG = false;
21
- if (DEBUG) {
22
- console.log("[lazy-loader]", ...args);
23
- }
24
- }
25
- function runWhenIdle(fn, timeoutMs = DEFAULT_IDLE_TIMEOUT_MS) {
26
- if ("requestIdleCallback" in window) {
27
- window.requestIdleCallback(
28
- () => fn(),
29
- { timeout: timeoutMs }
30
- );
31
- } else {
32
- setTimeout(fn, FALLBACK_DELAY_MS);
33
- }
34
- }
35
- function matchesEnabledGroups(node) {
36
- if (ENABLED_GROUPS.size === 0) return true;
37
- const g = node.getAttribute("data-group");
38
- return g !== null && ENABLED_GROUPS.has(g);
39
- }
40
- function loadExternalScript(src, {
41
- async = false,
42
- defer = false,
43
- type = "",
44
- crossOrigin = "",
45
- referrerPolicy = ""
46
- } = {}) {
47
- return new Promise((resolve, reject) => {
48
- const s = document.createElement("script");
49
- s.src = src;
50
- if (async) s.async = true;
51
- if (defer) s.defer = true;
52
- if (type) s.type = type;
53
- if (crossOrigin) s.crossOrigin = crossOrigin;
54
- if (referrerPolicy) s.referrerPolicy = referrerPolicy;
55
- s.onload = () => resolve();
56
- s.onerror = () => reject(new Error("Failed to load: " + src));
57
- document.head.appendChild(s);
58
- });
59
- }
60
- function runInline(code) {
61
- const s = document.createElement("script");
62
- s.type = "text/javascript";
63
- s.text = code;
64
- document.head.appendChild(s);
65
- }
66
- async function processLazyScripts(nodes) {
67
- for (const node of nodes) {
68
- if (!matchesEnabledGroups(node)) continue;
69
- const src = node.getAttribute("data-src");
70
- const isAsync = node.getAttribute("data-async") === "true";
71
- const crossOrigin = node.getAttribute("data-crossorigin") || "";
72
- const referrerPolicy = node.getAttribute("data-referrerpolicy") || "";
73
- try {
74
- if (src) {
75
- log("Loading", src, "async=", isAsync);
76
- await loadExternalScript(src, {
77
- async: isAsync,
78
- crossOrigin,
79
- referrerPolicy
80
- });
81
- } else {
82
- const code = node.textContent || "";
83
- if (code.trim()) {
84
- log("Running inline lazy script");
85
- runInline(code);
86
- }
87
- }
88
- } catch (e) {
89
- console.warn("[lazy-loader]", e);
90
- } finally {
91
- node.type = "text/javascript";
92
- node.removeAttribute("data-src");
93
- }
94
- }
95
- }
96
- function collectLazyNodes() {
97
- return Array.from(
98
- document.querySelectorAll(
99
- 'script[type="text/lazyjs"], script[data-lazy="true"]'
100
- )
101
- );
102
- }
103
- function init() {
104
- const nodes = collectLazyNodes();
105
- if (!nodes.length) {
106
- log("No lazy scripts found.");
107
- return;
108
- }
109
- log("Found", nodes.length, "lazy scripts");
110
- runWhenIdle(() => {
111
- void processLazyScripts(nodes);
112
- });
113
- }
114
- if (document.readyState === "complete") {
115
- runWhenIdle(init);
116
- } else {
117
- window.addEventListener(
118
- LOAD_ON,
119
- () => runWhenIdle(init),
120
- { once: true }
121
- );
122
- }
123
- window.LazyLoader = {
124
- loadNow: () => processLazyScripts(collectLazyNodes()),
125
- loadGroupNow: async (groupName) => {
126
- const nodes = collectLazyNodes().filter(
127
- (n) => (n.getAttribute("data-group") || "") === groupName
128
- );
129
- await processLazyScripts(nodes);
130
- },
131
- loadScriptNow: (src, opts) => loadExternalScript(src, opts)
132
- };
133
- })();
134
- })();
135
- //# sourceMappingURL=lazy-loader.js.map
1
+ "use strict";(()=>{(function(){"use strict";let m="load",p=new Set;function s(...e){}function l(e,t=3e3){"requestIdleCallback"in window?window.requestIdleCallback(()=>e(),{timeout:t}):setTimeout(e,2e3)}function g(e){if(p.size===0)return!0;let t=e.getAttribute("data-group");return t!==null&&p.has(t)}function f(e,{async:t=!1,defer:o=!1,type:i="",crossOrigin:a="",referrerPolicy:c=""}={}){return new Promise((r,E)=>{let n=document.createElement("script");n.src=e,t&&(n.async=!0),o&&(n.defer=!0),i&&(n.type=i),a&&(n.crossOrigin=a),c&&(n.referrerPolicy=c),n.onload=()=>r(),n.onerror=()=>E(new Error("Failed to load: "+e)),document.head.appendChild(n)})}function L(e){let t=document.createElement("script");t.type="text/javascript",t.text=e,document.head.appendChild(t)}async function d(e){for(let t of e){if(!g(t))continue;let o=t.getAttribute("data-src"),i=t.getAttribute("data-async")==="true",a=t.getAttribute("data-crossorigin")||"",c=t.getAttribute("data-referrerpolicy")||"";try{if(o)s("Loading",o,"async=",i),await f(o,{async:i,crossOrigin:a,referrerPolicy:c});else{let r=t.textContent||"";r.trim()&&(s("Running inline lazy script"),L(r))}}catch(r){console.warn("[lazy-loader]",r)}finally{t.type="text/javascript",t.removeAttribute("data-src")}}}function u(){return Array.from(document.querySelectorAll('script[type="text/lazyjs"], script[data-lazy="true"]'))}function y(){let e=u();if(!e.length){s("No lazy scripts found.");return}s("Found",e.length,"lazy scripts"),l(()=>{d(e)})}document.readyState==="complete"?l(y):window.addEventListener(m,()=>l(y),{once:!0}),window.LazyLoader={loadNow:()=>d(u()),loadGroupNow:async e=>{let t=u().filter(o=>(o.getAttribute("data-group")||"")===e);await d(t)},loadScriptNow:(e,t)=>f(e,t)}})();})();
@@ -1,41 +1,4 @@
1
- "use strict";
2
- (() => {
3
- // bin/live-reload.js
4
- if (window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") {
5
- new EventSource(`${"http://localhost:3000"}/esbuild`).addEventListener(
6
- "change",
7
- () => location.reload()
8
- );
9
- } else {
10
- }
11
-
12
- // src/global/loader.ts
13
- var PageLoader = class {
14
- constructor() {
15
- this.progressBar = null;
16
- this.progressText = null;
17
- this.loadingOverlay = null;
18
- this.currentProgress = 0;
19
- this.loaderFill = null;
20
- this.clickLoader = null;
21
- this.init();
22
- }
23
- init() {
24
- this.createLoader();
25
- this.interceptLinks();
26
- this.monitorPageLoad();
27
- }
28
- createLoader() {
29
- this.loaderFill = document.querySelector(".loader-fill[loader-fill]");
30
- this.clickLoader = document.querySelector(".click-loader");
31
- if (!this.loaderFill) {
32
- return;
33
- }
34
- if (this.clickLoader && !this.clickLoader.style.position && getComputedStyle(this.clickLoader).position !== "fixed") {
35
- this.loadingOverlay = document.createElement("div");
36
- this.loadingOverlay.id = "page-loading-overlay";
37
- this.loadingOverlay.innerHTML = this.clickLoader.outerHTML;
38
- const styles = `
1
+ "use strict";(()=>{var o=class{constructor(){this.progressBar=null;this.progressText=null;this.loadingOverlay=null;this.currentProgress=0;this.loaderFill=null;this.clickLoader=null;this.init()}init(){this.createLoader(),this.interceptLinks(),this.monitorPageLoad()}createLoader(){this.loaderFill=document.querySelector(".loader-fill[loader-fill]"),this.clickLoader=document.querySelector(".click-loader"),this.loaderFill&&(this.clickLoader&&!this.clickLoader.style.position&&getComputedStyle(this.clickLoader).position!=="fixed"?(this.loadingOverlay=document.createElement("div"),this.loadingOverlay.id="page-loading-overlay",this.loadingOverlay.innerHTML=this.clickLoader.outerHTML,document.head.insertAdjacentHTML("beforeend",`
39
2
  <style>
40
3
  #page-loading-overlay {
41
4
  position: fixed;
@@ -65,131 +28,4 @@
65
28
  }
66
29
 
67
30
  </style>
68
- `;
69
- document.head.insertAdjacentHTML("beforeend", styles);
70
- document.body.appendChild(this.loadingOverlay);
71
- this.loaderFill = this.loadingOverlay.querySelector(
72
- ".loader-fill[loader-fill]"
73
- );
74
- } else {
75
- if (this.clickLoader) {
76
- this.clickLoader.style.display = "none";
77
- }
78
- }
79
- if (this.loaderFill) {
80
- this.loaderFill.style.width = "0%";
81
- }
82
- }
83
- interceptLinks() {
84
- document.addEventListener("click", (e) => {
85
- const target = e.target;
86
- const link = target.closest("a[href]");
87
- if (link && !link.hasAttribute("no-loader")) {
88
- const href = link.getAttribute("href");
89
- if (href && (href.startsWith("http") || href.startsWith("#") || href.startsWith("javascript:"))) {
90
- return;
91
- }
92
- e.preventDefault();
93
- if (href) {
94
- this.navigateWithProgress(href);
95
- }
96
- }
97
- });
98
- }
99
- navigateWithProgress(url) {
100
- this.showLoader();
101
- this.simulateProgress(url);
102
- }
103
- showLoader() {
104
- if (this.loadingOverlay) {
105
- this.loadingOverlay.style.display = "block";
106
- } else if (this.clickLoader) {
107
- this.clickLoader.style.display = "block";
108
- }
109
- this.currentProgress = 0;
110
- this.updateProgress(0, "Initializing...");
111
- }
112
- hideLoader() {
113
- if (this.loadingOverlay) {
114
- this.loadingOverlay.style.display = "none";
115
- } else if (this.clickLoader) {
116
- this.clickLoader.style.display = "none";
117
- }
118
- }
119
- updateProgress(percent, message = "") {
120
- this.currentProgress = Math.min(percent, 100);
121
- if (this.loaderFill) {
122
- this.loaderFill.style.width = this.currentProgress + "%";
123
- }
124
- const displayMessage = message || `Loading... ${Math.round(this.currentProgress)}%`;
125
- }
126
- simulateProgress(url) {
127
- const stages = [
128
- { progress: 10, message: "Preparing request...", delay: 100 },
129
- { progress: 25, message: "Connecting to server...", delay: 150 },
130
- { progress: 40, message: "Sending request...", delay: 100 },
131
- { progress: 60, message: "Receiving response...", delay: 150 },
132
- { progress: 80, message: "Processing content...", delay: 50 },
133
- { progress: 95, message: "Finalizing...", delay: 50 },
134
- { progress: 100, message: "Complete!", delay: 100 }
135
- ];
136
- let currentStage = 0;
137
- const processStage = () => {
138
- if (currentStage < stages.length) {
139
- const stage = stages[currentStage];
140
- this.updateProgress(stage.progress, stage.message);
141
- setTimeout(() => {
142
- currentStage++;
143
- processStage();
144
- }, stage.delay);
145
- } else {
146
- setTimeout(() => {
147
- window.location.href = url;
148
- }, 200);
149
- }
150
- };
151
- processStage();
152
- }
153
- // Monitor actual page loading events
154
- monitorPageLoad() {
155
- window.addEventListener("beforeunload", () => {
156
- });
157
- window.addEventListener("load", () => {
158
- this.hideLoader();
159
- });
160
- document.addEventListener("DOMContentLoaded", () => {
161
- });
162
- if ("performance" in window) {
163
- window.addEventListener("load", () => {
164
- setTimeout(() => {
165
- const timing = performance.timing;
166
- const loadTime = timing.loadEventEnd - timing.navigationStart;
167
- const dnsLookupTime = timing.domainLookupEnd - timing.domainLookupStart;
168
- const tcpConnectionTime = timing.connectEnd - timing.connectStart;
169
- const requestTime = timing.responseStart - timing.requestStart;
170
- const responseTime = timing.responseEnd - timing.responseStart;
171
- const domProcessingTime = timing.domComplete - timing.domLoading;
172
- }, 100);
173
- });
174
- }
175
- }
176
- };
177
- if (document.readyState === "loading") {
178
- document.addEventListener("DOMContentLoaded", () => {
179
- new PageLoader();
180
- });
181
- } else {
182
- new PageLoader();
183
- }
184
- window.showPageLoader = function(url) {
185
- if (window.pageLoaderInstance) {
186
- window.pageLoaderInstance.navigateWithProgress(url);
187
- }
188
- };
189
- window.addEventListener("load", () => {
190
- if (!window.pageLoaderInstance) {
191
- window.pageLoaderInstance = new PageLoader();
192
- }
193
- });
194
- })();
195
- //# sourceMappingURL=loader.js.map
31
+ `),document.body.appendChild(this.loadingOverlay),this.loaderFill=this.loadingOverlay.querySelector(".loader-fill[loader-fill]")):this.clickLoader&&(this.clickLoader.style.display="none"),this.loaderFill&&(this.loaderFill.style.width="0%"))}interceptLinks(){document.addEventListener("click",e=>{let i=e.target.closest("a[href]");if(i&&!i.hasAttribute("no-loader")){let t=i.getAttribute("href");if(t&&(t.startsWith("http")||t.startsWith("#")||t.startsWith("javascript:")))return;e.preventDefault(),t&&this.navigateWithProgress(t)}})}navigateWithProgress(e){this.showLoader(),this.simulateProgress(e)}showLoader(){this.loadingOverlay?this.loadingOverlay.style.display="block":this.clickLoader&&(this.clickLoader.style.display="block"),this.currentProgress=0,this.updateProgress(0,"Initializing...")}hideLoader(){this.loadingOverlay?this.loadingOverlay.style.display="none":this.clickLoader&&(this.clickLoader.style.display="none")}updateProgress(e,s=""){this.currentProgress=Math.min(e,100),this.loaderFill&&(this.loaderFill.style.width=this.currentProgress+"%");let i=s||`Loading... ${Math.round(this.currentProgress)}%`}simulateProgress(e){let s=[{progress:10,message:"Preparing request...",delay:100},{progress:25,message:"Connecting to server...",delay:150},{progress:40,message:"Sending request...",delay:100},{progress:60,message:"Receiving response...",delay:150},{progress:80,message:"Processing content...",delay:50},{progress:95,message:"Finalizing...",delay:50},{progress:100,message:"Complete!",delay:100}],i=0,t=()=>{if(i<s.length){let r=s[i];this.updateProgress(r.progress,r.message),setTimeout(()=>{i++,t()},r.delay)}else setTimeout(()=>{window.location.href=e},200)};t()}monitorPageLoad(){window.addEventListener("beforeunload",()=>{}),window.addEventListener("load",()=>{this.hideLoader()}),document.addEventListener("DOMContentLoaded",()=>{}),"performance"in window&&window.addEventListener("load",()=>{setTimeout(()=>{let e=performance.timing,s=e.loadEventEnd-e.navigationStart,i=e.domainLookupEnd-e.domainLookupStart,t=e.connectEnd-e.connectStart,r=e.responseStart-e.requestStart,n=e.responseEnd-e.responseStart,l=e.domComplete-e.domLoading},100)})}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{new o}):new o;window.showPageLoader=function(a){window.pageLoaderInstance&&window.pageLoaderInstance.navigateWithProgress(a)};window.addEventListener("load",()=>{window.pageLoaderInstance||(window.pageLoaderInstance=new o)});})();