PageSourceSearch

https://limit-file-types-demo.bubbleapps.io/

html limit-file-types-demo.bubbleapps.io collected 2026-10-03 08:23:28 UTC 20,325 bytes, 589 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5
6<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
8<title>Limit File Types File Uploader</title>
9<script type="text/javascript">
10    window.bubble_session_uid = '1791015807635x838913392529635700';
11</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript">
13    window.headers_source_maps = [["plugin_main_headers_1618916043803x877032991371296800",217,434]]
14</script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript">
16function make_proxy(target, name) {
17  return new Proxy(target, {
18    get: function(target, prop) {
19      if (prop in target) {
20        return target[prop];
21      }
22      throw new Error('The variable ' + name + ' is not fully initialized yet');
23    }
24  });
25}
26window.appquery = make_proxy({
27  app_version: function() { return "live"; },
28  last_change: function() { return "39060965435";},
29}, 'appquery');
30window.Lib = new Proxy(function() {}, {
31  get: function(target, prop) {
32    if (prop === 'is_skeleton') {
33      return true;
34    }
35    throw new Error('The variable ' + Lib + ' is not fully initialized yet');
36  },
37  apply: function() {
38    return make_proxy({
39      current_user: function() {
40        return make_proxy({ id: "1791015807635x838913392529635700" }, 'Lib().current_user');
41      }
42    }, 'Lib()');
43  }
44});
45</script>
vendor: 1 bytes, line 45
45
46<script type="text/javascript">
47function load_error_function (event) {
48  return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno })
49}
50window.load_error_log = [];
51window.addEventListener('error', load_error_function);
52window.disableLoadErrorFunction = function () {
53  window.removeEventListener('error', load_error_function);
54}
55</script>
55
56<meta name="referrer" content="origin">
57<script type="text/javascript">
58if (!window._bubble_page_load_data) {
59  window._bubble_page_load_data = {}
60}
61if (!window._bubble_page_load_data.js_execution_timings) {
62  window._bubble_page_load_data.js_execution_timings = {}
63}
64window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now();
65</script>
65<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script>
65<script type="text/javascript">
66if (!window._bubble_page_load_data) {
67  window._bubble_page_load_data = {}
68}
69if (!window._bubble_page_load_data.js_execution_timings) {
70  window._bubble_page_load_data.js_execution_timings = {}
71}
72window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now();
73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">(function () {
75    function onWebFontFinish () {
76        window.google_web_fonts_active = true;
77if (window.google_web_fonts_active_cb) {
78    window.google_web_fonts_active_cb();
79}
80        (function fontface_loaded_snippet (font) {
81  if (window.fontface_loaded == null) {
82    window.fontface_loaded = {}
83  }
84  if (font != null) {
85    window.fontface_loaded[font] = true
86  } else {
87    window.all_fontface_loaded = true
88  }
89  if (window.fontface_webfonts_loaded_cb) {
90    return window.fontface_webfonts_loaded_cb(font)
91  }
92})()
93    }
94    const WebFontConfig = {'google': { families: ["Inter Tight:regular","Inter Tight:500","Inter Tight:600","Inter Tight:700","Inter:regular","Inter:500","Inter:600","Inter:700","Inter:800","Lato:regular","Lato:400","Lato:900","Lato:700"] },
95        active: function() {
96            onWebFontFinish()
97        },
98        inactive: function() {
99            console.log('Failed to load all the fonts');
100            onWebFontFinish()
101        },
102        fontinactive: function(family_name, fvd) {
103            console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render');
104            onWebFontFinish()
105        }
106    }
107        window.WebFont.load(WebFontConfig);
108})();</script>
vendor: 1 bytes, line 108
108
109<script>
110(function initialize_data() {
111const xhr = new XMLHttpRequest();
112xhr.onreadystatechange = function() {
113    if (this.readyState === 4 && this.status === 200) {
114        const data = JSON.parse(this.responseText);
115
116        function init_data() {
117            data.forEach(function(d) {
118                Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version);
119            })
120        }
121
122        if (window.Lib && window.Lib.is_skeleton == null) {
123            init_data();
124        } else {
125            window.Lib_post_load = init_data;
126        }
127    }
128};
129xhr.open("GET", "https://limit-file-types-demo.bubbleapps.io/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true);
130xhr.send();
131})();
132</script>
vendor: 1 bytes, line 132
132
133<script type="text/javascript">window.gm_key = "AIzaSyAlT1MzDJL1hTzjgn_-PbAD3NQEIKjcJi4";</script>
vendor: 1 bytes, line 133
133
134<script type="text/javascript">window.glrl_key_status = false;</script>
vendor: 1 bytes, line 134
134
135<script type="text/javascript">window.bubble_page_load_id = "1791015807701x531";</script>
vendor: 1 bytes, line 135
135
136<script type="text/javascript">window.bubble_plp_token = "1791015808073.orUy8SvpA6Poc0vCGBzgv2PxFmx8s5sZn31AC0qP73M=";</script>
vendor: 1 bytes, line 136
136
137<script type="text/javascript">window.bubble_is_leanjs = false;</script>
vendor: 1 bytes, line 137
137
138<script type="text/javascript">window.bubble_shim_modules = false;</script>
138
139<link rel="icon" type="image/png" href="https://46c68b0dfa981874323c638fcceb9ccf.cdn.bubble.io/f1530294839424x143528842134401200/Icon-no-clearspace.png" />
140<meta name="fragment" content="!">
141<meta name="description" content="Bubble introduces a new way to build a web application. It’s a point-and-click programming tool. Bubble hosts all applications on its cloud platform.">
142<meta name="description" content="Bubble introduces a new way to build a web application. It’s a point-and-click programming tool. Bubble hosts all applications on its cloud platform.">
143<meta name="twitter:card" content="summary_large_image" />
144<meta property="og:title" content="Check out my Bubble app" />
145<meta name="twitter:title" content="Check out my Bubble app" />
146<meta property="og:site_name" content="Bubble" />
147<meta name="twitter:site_name" content="Bubble" />
148<meta property="og:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps — no code required. " />
149<meta name="twitter:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps — no code required. " />
150<link rel="image_src" href="https://46c68b0dfa981874323c638fcceb9ccf.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
151<meta property="og:image" content="https://46c68b0dfa981874323c638fcceb9ccf.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
152<meta name="twitter:image:src" content="https://46c68b0dfa981874323c638fcceb9ccf.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" />
153<meta property="og:url" content="https://limit-file-types-demo.bubbleapps.io/" />
154<meta property="og:type" content="website" />
155<meta property="fb:app_id" content="340887986039814" />
156<meta name="twitter:card" content="summary_large_image" />
157<meta name="viewport" content="width=device-width,initial-scale=1.0">
158<script type="text/javascript">window._p = '{"id":"app_plugin_demo","no_branding":false,"import_export_csv":false,"custom_domain":false}';</script>
vendor: 1 bytes, line 158
158
159<script type="text/javascript">window.bubble_page_name = "index";</script>
vendor: 1 bytes, line 159
159
160<script type="text/javascript">window.__bubble_module_mode = false;</script>
160
161<link type="text/css" href="/package/run_css/4a052b63f4e1ecc47c6967027d632899710bb07bc40895bedfa6df5ae185d3f5/limit-file-types-demo/live/index/xfalse/xfalse/run.css" rel="stylesheet">
162<script type="text/javascript">
163if (!window._bubble_page_load_data) {
164  window._bubble_page_load_data = {}
165}
166if (!window._bubble_page_load_data.js_execution_timings) {
167  window._bubble_page_load_data.js_execution_timings = {}
168}
169window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now();
170</script>
vendor: 1 bytes, line 170
170
171<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script>
vendor: 1 bytes, line 171
171
172<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/7071f7b382ccc6d041103d870a4570d077555f03000bb5d6d4422cbe7bed9355/xfalse/x29/run.js"></script>
vendor: 1 bytes, line 172
172
173<script type="text/javascript">
174if (!window._bubble_page_load_data) {
175  window._bubble_page_load_data = {}
176}
177if (!window._bubble_page_load_data.js_execution_timings) {
178  window._bubble_page_load_data.js_execution_timings = {}
179}
180window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now();
181</script>
vendor: 1 bytes, line 181
181
182<script type="text/javascript">
183if (!window._bubble_page_load_data) {
184  window._bubble_page_load_data = {}
185}
186if (!window._bubble_page_load_data.js_execution_timings) {
187  window._bubble_page_load_data.js_execution_timings = {}
188}
189window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now();
190</script>
190<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/3ae27846b1130d56f512b468be7a2b47b1fbf1353f7cd53bc76496231d92ad9b/limit-file-types-demo/live/index/xnull/xfalse/xfalse/xfalse/static.js"></script>
190<script type="text/javascript">
191if (!window._bubble_page_load_data) {
192  window._bubble_page_load_data = {}
193}
194if (!window._bubble_page_load_data.js_execution_timings) {
195  window._bubble_page_load_data.js_execution_timings = {}
196}
197window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now();
198</script>
vendor: 1 bytes, line 198
198
199<script type="text/javascript">
200if (!window._bubble_page_load_data) {
201  window._bubble_page_load_data = {}
202}
203if (!window._bubble_page_load_data.js_execution_timings) {
204  window._bubble_page_load_data.js_execution_timings = {}
205}
206window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now();
207</script>
207<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/851f9f2dbca0bec3251497353f7831828f01344f110e8726953a8971f6d4cb4e/limit-file-types-demo/live/index/xnull/xfalse/xfalse/en_us/xfalse/xfalse/dynamic.js"></script>
207<script type="text/javascript">
208if (!window._bubble_page_load_data) {
209  window._bubble_page_load_data = {}
210}
211if (!window._bubble_page_load_data.js_execution_timings) {
212  window._bubble_page_load_data.js_execution_timings = {}
213}
214window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now();
215</script>
vendor: 1 bytes, line 215
215
216<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
216
217<!-- 1618916043803x877032991371296800 -->
218<script defer src="//meta.cdn.bubble.io/f1678588430465x230578802325048350/icons.js"></script>
218
219
220<script>
221  const allSelect2 = /\[(hi.*)\](.*)\[\/(hi.*)\]/;
222  const colormatch2 = /#[0-9A-f]{3,6}#/;
223  const fillMatcher2 = /fill="currentColor"/;
224
225  function replaceIcon(btn) {
226    let content = btn.getAttribute("title");
227
228    if (!content) return;
229
230    let iconColor = content.match(colormatch2);
231    content = content.replace(colormatch2, "");
232    const iconMarkup = content.match(allSelect2);
233    if (!iconMarkup) {
234      return;
235    }
236
237    if (iconMarkup[1] != iconMarkup[3]) return;
238
239    const iconProps = iconMarkup[1].slice(2).split("-");
240
241    const props = {
242      name: iconMarkup[2],
243      size: "20px",
244      color: btn.innerHTML.match(colormatch2)
245        ? btn.innerHTML.match(colormatch2)[0].slice(0, -1)
246        : undefined,
247      set: "mini",
248      position: undefined,
249      iconHTML: undefined,
250      style: 'style="',
251      spacing: "8px",
252      stroke_width: "1.5px",
253    };
254
255    if (props.color) {
256      props.iconHTML = props.iconHTML.replace(
257        fillMatcher2,
258        "fill=" + iconColor
259      );
260    }
261
262    iconProps.forEach((property) => {
263      switch (property) {
264        case "l":
265          props.position = "left";
266          break;
267        case "r":
268          props.position = "right";
269          break;
270        case "b":
271          props.position = "center";
272          break;
273        case "o":
274          props.set = "outlined";
275          break;
276        case "s":
277          props.set = "solid";
278          break;
279      }
280      if (/m[0-99]+/.test(property)) {
281        const matched = property.match(/m([0-99]+)/);
282        props.spacing = `${matched[1]}px`;
283      }
284      if (/w[0-99]+/.test(property)) {
285        const matched = property.match(/w([0-99]+)/);
286        props.stroke_width = `${matched[1]/10}px`;
287      }
288
289      const number = Number(property);
290
291      if (number && number > 0) {
292        props.size = String(number) + "px";
293      }
294    });
295
296    if (props.name == "no-icon") {
297      btn.classList.add("heroicon");
298
299      btn.setAttribute("title", btn.getAttribute("title").replace(allSelect2, "").replace(/\u00AD/g, ''));
300      btn.childNodes.forEach((node) => {
301        if (node.nodeName !== "#text") {
302          node.remove();
303        }
304
305      });
306      return;
307    }
308
309    if (window[`heroicons_${props.set}`].has(props.name)) {
310      props.iconHTML = window[`heroicons_${props.set}`].get(props.name);
311    } else {
312      return;
313    }
314
315    btn.classList.add("heroicon");
316
317    props.style += ` ${props.set == "outlined" ? ` stroke-width: ${props.stroke_width};` : ""
318      } height: ${props.size}; width: ${props.size}; `;
319
320    let insertBefore = props.iconHTML.lastIndexOf("viewBox");
321
322    btn.setAttribute("title", btn.getAttribute("title").replace(allSelect2, "").replace(/\u00AD/g, ''));
323    btn.childNodes.forEach((node) => {
324      if (node.nodeName !== "#text") {
325        node.remove();
326      }
327    });
328
329    btn.style.display = "inline-flex";
330    btn.style.alignItems = "center";
331
332    if (props.position == "left") {
333      let styledHTML =
334        props.iconHTML.substring(0, insertBefore) +
335        props.style +
336        `margin-right:${props.spacing}"` +
337        props.iconHTML.substring(insertBefore);
338      btn.insertAdjacentHTML("afterbegin", styledHTML);
339    } else if (props.position == "right") {
340      let styledHTML =
341        props.iconHTML.substring(0, insertBefore) +
342        props.style +
343        `margin-left:${props.spacing}"` +
344        props.iconHTML.substring(insertBefore);
345      btn.insertAdjacentHTML("beforeend", styledHTML);
346    } else {
347      let styledHTML =
348        props.iconHTML.substring(0, insertBefore) +
349        props.style +
350        `"` +
351        props.iconHTML.substring(insertBefore);
352      btn.insertAdjacentHTML("beforeend", styledHTML);
353    }
354  }
355
356  document.addEventListener("DOMContentLoaded", function () {
357    let config = {
358      subtree: true,
359      childList: true,
360      attributes: true,
361      characterData: false,
362      attributeFilter: ["title"]
363    };
364
365    let callback = function (mutationsList, observer) {
366      for (let mutation of mutationsList) {
367        if (mutation.target.tagName === "BUTTON") {
368          replaceIcon(mutation.target);
369        } else if (mutation.addedNodes) {
370          mutation.addedNodes.forEach((node) => {
371            if (node.tagName == "BUTTON") {
372              replaceIcon(node);
373            }
374          });
375        }
376      }
377    };
378
379    const observer = new MutationObserver(callback);
380    observer.observe(document, config);
381  });
382</script>
382
383
384<style>
385  .animate-spin>circle {
386    color: inherit;
387    opacity: 25%;
388  }
389
390  .animate-spin {
391    animation: 1s linear infinite spin;
392  }
393
394  @keyframes spin {
395    from {
396      transform: rotate(0);
397    }
398
399    to {
400      transform: rotate(360deg);
401    }
402  }
403
404  .heroicon {
405    display: inline-flex;
406    align-items: center;
407    justify-content: center;
408    gap: 0 !important;
409  }
410
411  .dots_one {
412    stroke: currentColor;
413    fill: currentColor;
414    animation: dots 0.8s linear infinite;
415    animation-delay: -0.8s;
416    margin-right: 1px;
417  }
418
419  .dots_two {
420    animation-delay: -0.65s;
421  }
422
423  .dots_three {
424    animation-delay: -0.5s;
425  }
426
427  @keyframes dots {
428
429    93.75%,
430    100% {
431      opacity: 0.2;
432    }
433  }
434</style>
435<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
435
436</head>
437<body>
437<script type="text/javascript">
438window.addEventListener('DOMContentLoaded', function () {
439  if (window.appquery == null) {
440    (function() {
441    const html = `
442      <div class="error-card">
443        <div class="error-section">
444          <div class="error-title">Your browser was unable to load some necessary resources</div>
445          <div class="error-message">Contact your IT network administrator to allow access to:
446    • d3dqmih97rcqmh.cloudfront.net
447    • 46c68b0dfa981874323c638fcceb9ccf.cdn.bubble.io/
448    • d1muf25xaso8hp.cloudfront.net</div>
449        </div>
450      </div>
451    `
452
453    const css = document.createElement('style')
454    css.type = 'text/css'
455    css.appendChild(
456      document.createTextNode(`
457      .error-overlay {
458        width: 100%;
459        height: 100%;
460        background: rgba(0,0,0,0.30);
461        overflow: hidden;
462        display: flex;
463        justify-content: center;
464        align-items: flex-start;
465        position: fixed;
466        inset: 0;
467        z-index: 999999;
468      }
469
470      .error-card {
471        width: 500px;
472        margin: 40px;
473        background: white;
474        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
475        border-radius: 8px;
476        display: flex;
477        flex-direction: column;
478      }
479
480      .error-section {
481        padding: 40px;
482        display: flex;
483        flex-direction: column;
484        gap: 12px;
485      }
486
487      .error-title {
488        color: #1A1A1A;
489        font-size: 18px;
490        font-family: Arial, sans-serif;
491        font-weight: 600;
492        line-height: 28px;
493      }
494
495      .error-message {
496        color: #525252;
497        font-size: 14px;
498        font-family: Arial, sans-serif;
499        font-weight: 400;
500        line-height: 20px;
501        white-space: pre-wrap;
502      }
503    `)
504    )
505    document.head.appendChild(css)
506
507    const container = document.createElement('div')
508    container.className = 'error-overlay'
509    container.innerHTML = html
510    document.body.appendChild(container)
511  })()
512    httpRequest = new XMLHttpRequest();
513httpRequest.open('POST', '/user/m', true);
514httpRequest.setRequestHeader('Content-Type', 'application/json');
515httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}}));
516  };
517});
518</script>
518<script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() {
519    const html = `
520      <div class="error-card">
521        <div class="error-section">
522          <div class="error-title">Your browser was unable to load the application</div>
523          <div class="error-message">We&#39;ve been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers.</div>
524        </div>
525      </div>
526    `
527
528    const css = document.createElement('style')
529    css.type = 'text/css'
530    css.appendChild(
531      document.createTextNode(`
532      .error-overlay {
533        width: 100%;
534        height: 100%;
535        background: rgba(0,0,0,0.30);
536        overflow: hidden;
537        display: flex;
538        justify-content: center;
539        align-items: flex-start;
540        position: fixed;
541        inset: 0;
542        z-index: 999999;
543      }
544
545      .error-card {
546        width: 500px;
547        margin: 40px;
548        background: white;
549        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
550        border-radius: 8px;
551        display: flex;
552        flex-direction: column;
553      }
554
555      .error-section {
556        padding: 40px;
557        display: flex;
558        flex-direction: column;
559        gap: 12px;
560      }
561
562      .error-title {
563        color: #1A1A1A;
564        font-size: 18px;
565        font-family: Arial, sans-serif;
566        font-weight: 600;
567        line-height: 28px;
568      }
569
570      .error-message {
571        color: #525252;
572        font-size: 14px;
573        font-family: Arial, sans-serif;
574        font-weight: 400;
575        line-height: 20px;
576        white-space: pre-wrap;
577      }
578    `)
579    )
580    document.head.appendChild(css)
581
582    const container = document.createElement('div')
583    container.className = 'error-overlay'
584    container.innerHTML = html
585    document.body.appendChild(container)
586  })()}});</script>
586
587<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
588</body>
589</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.