This repository was archived by the owner on Mar 30, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
135 lines (127 loc) · 5.58 KB
/
index.html
File metadata and controls
135 lines (127 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#F78103" />
<title>Fixit</title>
<meta
name="Keywords"
content="Work Orders, Invoicing, Payment Processing, Digital Payments, Business, Tools, Utilities, Operations, B2B, B2C, eCommerce, Stripe, Web App, SPA, Website"
/>
<meta
name="Description"
content="Fixit is a SaaS application which integrates work order and invoice management with in-app payment processing."
/>
<!-- DOMPurify for TRUSTED TYPES DEFAULT POLICY (IF UPDATED, SHA MUST BE UPDATED AS WELL IN CSP 'script-src') -->
<script
src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/3.1.6/purify.min.js"
integrity="sha512-jB0TkTBeQC9ZSkBqDhdmfTv1qdfbWpGE72yJ/01Srq6hEzZIz2xkz1e57p9ai7IeHMwEG7HpzG6NdptChif5Pg=="
crossorigin="anonymous"
></script>
<!-- TRUSTED TYPES DEFAULT POLICY -->
<script>
// Feature detection for TrustedTypes
if (trustedTypes && trustedTypes.createPolicy) {
// default TrustedTypes policy spec: https://w3c.github.io/trusted-types/dist/spec/#default-policy
trustedTypes.createPolicy("default", {
createHTML: (string) => DOMPurify.sanitize(string, { RETURN_TRUSTED_TYPE: true }),
createScriptURL: (input) => {
// Return `input` for permitted origins, else return `undefined`.
const scriptOrigin = new URL(input).origin;
// Stripe: https://docs.stripe.com/security/guide?csp=csp-js#content-security-policy
if (/^https:\/\/([a-z0-9-]+\.)?js\.stripe\.com$/i.test(scriptOrigin)) return input;
// Sentry origin necessary for crash reporting.
if (scriptOrigin === "https://sentry.io") return input;
// For all other origins, log a warning and return `undefined`.
console.warn(`Blocked script URL: ${input}`);
return undefined;
},
});
}
</script>
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="/manifest.json" />
<!-- FONT STYLESHEET -->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
type="text/css"
/>
<style>
/* FONT FIXES: VERTICAL ALIGNMENT
This style block is a copy of the CSS returned from fonts.googleapis.com (excludes
the non-latin subsets). The only difference is the addition of `descent-override: 15%;`
to each @font-face block, which fixes vertical alignment issues with certain fonts in
certain browsers/user-agents. This issue and its solution are described in the following
GitHub Issue: https://github.com/mui/material-ui/issues/29965#issuecomment-1727652056
*/
/* latin 300 */
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 300;
font-display: swap;
descent-override: 15%;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2)
format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* latin 400 */
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 400;
font-display: swap;
descent-override: 15%;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* latin 500 */
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 500;
font-display: swap;
descent-override: 15%;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2)
format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
/* latin 700 */
@font-face {
font-family: "Roboto";
font-style: normal;
font-weight: 700;
font-display: swap;
descent-override: 15%;
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2)
format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
</style>
<!-- APPLE TOUCH ICON -->
<link rel="apple-touch-icon" href="/logo192.webp" />
<!-- STRIPE SCRIPT REQUIRED FOR PCI COMPLIANCE -->
<script src="https://js.stripe.com/v3/"></script>
<!-- GOOGLE OAUTH CLIENT LIB -->
<script src="https://accounts.google.com/gsi/client" async></script>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>