Skip to content

Commit 63bf1e9

Browse files
committed
Apply Round 4 Function Composition fixes: SRI hashes, SVG visual consistency, and A11y improvements
1 parent 896e87a commit 63bf1e9

2 files changed

Lines changed: 67 additions & 15 deletions

File tree

JavaScript/2629. Function Composition/Claude Code Sonnet 4.6 extended/README_react.html

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,69 @@
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>LeetCode 2629 - Function Composition</title>
7-
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
8-
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
9-
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
10-
<script src="https://cdn.tailwindcss.com"></script>
7+
<script
8+
src="https://unpkg.com/react@18/umd/react.production.min.js"
9+
integrity="sha384-DGyLxAyjq0f9SPpVevD6IgztCFlnMF6oW/XQGmfe+IsZ8TqEiDrcHkMLKI6fiB/Z"
10+
crossorigin="anonymous"
11+
></script>
12+
<script
13+
src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"
14+
integrity="sha384-gTGxhz21lVGYNMcdJOyq01Edg0jhn/c22nsx0kyqP0TxaV5WVdsSH1fSDUf5YJj1"
15+
crossorigin="anonymous"
16+
></script>
17+
<script
18+
src="https://unpkg.com/@babel/standalone/babel.min.js"
19+
integrity="sha384-Fo0OdKhdnE7y2WmzjOMW4PYjHkkANeu1501pWTqKrzAPeJMFQb4ZTdAA9dtrVUJV"
20+
crossorigin="anonymous"
21+
></script>
22+
<script
23+
src="https://cdn.tailwindcss.com"
24+
integrity="sha384-igm5BeiBt36UU4gqwWS7imYmelpTsZlQ45FZf+XBn9MuJbn4nQr7yx1yFydocC/K"
25+
crossorigin="anonymous"
26+
></script>
1127
<link
1228
href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:wght@700;900&display=swap"
1329
rel="stylesheet"
30+
integrity="sha384-74F33m7hvD7UOe4E68gapXfr7Z1VLQX/s7NfYcUxVWu+mipY3tL99ai9ripcWrpf"
31+
crossorigin="anonymous"
1432
/>
1533
<link
1634
rel="stylesheet"
1735
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css"
36+
integrity="sha384-wFjoQjtV1y5jVHbt0p35Ui8aV8GVpEZkyF99OXWqP/eNJDU93D3Ugxkoyh6Y2I4A"
37+
crossorigin="anonymous"
1838
/>
1939
<link
2040
rel="stylesheet"
2141
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css"
42+
integrity="sha384-nUkTNLI8COlMCRJ0FHIdX76If83145OTCLUx4gQyfnO0gGeO/sD9czGEUBxtkcUv"
43+
crossorigin="anonymous"
2244
/>
23-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
24-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script>
25-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
26-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
27-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script>
45+
<script
46+
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"
47+
integrity="sha384-06z5D//U/xpvxZHuUz92xBvq3DqBBFi7Up53HRrbV7Jlv7Yvh/MZ7oenfUe9iCEt"
48+
crossorigin="anonymous"
49+
></script>
50+
<script
51+
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"
52+
integrity="sha384-PeOqKNW/piETaCg8rqKFy+Pm6KEk7e36/5YZE5XO/OaFdO+/Aw3O8qZ9qDPKVUgx"
53+
crossorigin="anonymous"
54+
></script>
55+
<script
56+
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"
57+
integrity="sha384-6QJu8apxMmB9TiPVWzYKF5pRgKcz7snO0/QU+MrWmgBLECQjoa6erxX2VQ5t41Jd"
58+
crossorigin="anonymous"
59+
></script>
60+
<script
61+
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"
62+
integrity="sha384-jC1G68eGEXJpPwMDNqyIUQsQlcUCdCU+a7GGuoV4TUZvM1gLYTMJUDvqBnxtZLWA"
63+
crossorigin="anonymous"
64+
></script>
65+
<script
66+
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"
67+
integrity="sha384-ZdEfx8sYX8i4IVXU1tUbqwOp4PBUCCmnpagpiHchnstXkEczkzPfUd9fvBrntM+F"
68+
crossorigin="anonymous"
69+
></script>
2870
<style>
2971
html {
3072
scroll-behavior: smooth;
@@ -899,8 +941,7 @@ <h3 class="text-lg font-bold text-[#e53170] mb-3">入出力例</h3>
899941
<svg
900942
viewBox="0 0 580 220"
901943
style={{ maxWidth: '100%', height: 'auto', marginTop: '24px' }}
902-
role="img"
903-
aria-label={`Step visualization: ${label || 'Initial state'}. Accumulator is ${acc}.`}
944+
aria-label={`Step visualization: ${label ? label : type === 'result' ? 'Final result' : 'Initial state'}. Accumulator is ${acc}.`}
904945
>
905946
<defs>
906947
<marker
@@ -987,16 +1028,16 @@ <h3 class="text-lg font-bold text-[#e53170] mb-3">入出力例</h3>
9871028
);
9881029
})}
9891030

990-
{/* Arrows between functions */}
1031+
{/* Arrows between functions (Right to Left) */}
9911032
<path
992-
d="M170 50 L200 50"
1033+
d="M200 50 L170 50"
9931034
stroke="#334155"
9941035
strokeWidth="1.5"
9951036
fill="none"
9961037
markerEnd="url(#va)"
9971038
/>
9981039
<path
999-
d="M340 50 L370 50"
1040+
d="M370 50 L340 50"
10001041
stroke="#334155"
10011042
strokeWidth="1.5"
10021043
fill="none"

calc_sri_fix.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,16 @@ calculate_sri() {
2727
rm -f "$temp_file"
2828
}
2929

30+
calculate_sri "https://unpkg.com/react@18/umd/react.production.min.js"
31+
calculate_sri "https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"
32+
calculate_sri "https://unpkg.com/@babel/standalone/babel.min.js"
33+
calculate_sri "https://cdn.tailwindcss.com"
34+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css"
35+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css"
36+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"
37+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"
38+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"
39+
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"
40+
# Google Fonts returns dynamic CSS, SRI might be unstable but we check just in case or skip if needed. User instruction implies to check.
41+
calculate_sri "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&family=Fraunces:wght@700;900&display=swap"
3042
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"
31-
calculate_sri "https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"

0 commit comments

Comments
 (0)