admin08077 commited on
Commit
b9aff69
·
verified ·
1 Parent(s): e814dad

Upload 100 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. assets/DevMoodTracker-0krNlVUX.js +2 -0
  2. assets/DevMoodTracker-0krNlVUX.js.map +1 -0
  3. assets/DevNotesStickyPanel-eVbUsgfo.js +2 -0
  4. assets/DevNotesStickyPanel-eVbUsgfo.js.map +1 -0
  5. assets/DevSoundboard-DR1g6DgI.js +2 -0
  6. assets/DevSoundboard-DR1g6DgI.js.map +1 -0
  7. assets/EnvDiffTool-TsdDFW7R.js +7 -0
  8. assets/EnvDiffTool-TsdDFW7R.js.map +1 -0
  9. assets/EnvManager-DLH9OFlV.js +2 -0
  10. assets/EnvManager-DLH9OFlV.js.map +1 -0
  11. assets/FeatureFlagBoard-DWUDEWDw.js +2 -0
  12. assets/FeatureFlagBoard-DWUDEWDw.js.map +1 -0
  13. assets/FocusMode-DoTVLnM8.js +2 -0
  14. assets/FocusMode-DoTVLnM8.js.map +1 -0
  15. assets/FontPairingTool-CfWAHb2Z.js +2 -0
  16. assets/FontPairingTool-CfWAHb2Z.js.map +1 -0
  17. assets/FontPreviewPicker-Bj6wyS-i.js +2 -0
  18. assets/FontPreviewPicker-Bj6wyS-i.js.map +1 -0
  19. assets/GraphqlRunner-Dr-Ox09F.js +9 -0
  20. assets/GraphqlRunner-Dr-Ox09F.js.map +1 -0
  21. assets/ImageOptimizer-Dyqh7NzQ.js +2 -0
  22. assets/ImageOptimizer-Dyqh7NzQ.js.map +1 -0
  23. assets/JsonTreeNavigator-CGuqWmNG.js +13 -0
  24. assets/JsonTreeNavigator-CGuqWmNG.js.map +1 -0
  25. assets/LoadingSpinner-C3NwW9hm.js +2 -0
  26. assets/LoadingSpinner-C3NwW9hm.js.map +1 -0
  27. assets/LoadingSpinner-CeUbALLx.js +2 -0
  28. assets/LoadingSpinner-CeUbALLx.js.map +1 -0
  29. assets/MarkdownSlides-Cu5CAhbU.js +24 -0
  30. assets/MarkdownSlides-Cu5CAhbU.js.map +1 -0
  31. assets/MetaTagEditor-TdpHXMEw.js +19 -0
  32. assets/MetaTagEditor-TdpHXMEw.js.map +1 -0
  33. assets/d3-hierarchy-l0sNRNKZ.js.map +1 -0
  34. assets/d3-interpolate-CfLzPKWk.js +2 -0
  35. assets/d3-interpolate-CfLzPKWk.js.map +1 -0
  36. assets/d3-path-CimkQT29.js +2 -0
  37. assets/d3-path-CimkQT29.js.map +1 -0
  38. assets/d3-polygon-l0sNRNKZ.js +2 -0
  39. assets/d3-polygon-l0sNRNKZ.js.map +1 -0
  40. assets/d3-quadtree-l0sNRNKZ.js +2 -0
  41. assets/d3-quadtree-l0sNRNKZ.js.map +1 -0
  42. assets/d3-random-l0sNRNKZ.js +2 -0
  43. assets/d3-random-l0sNRNKZ.js.map +1 -0
  44. assets/d3-sankey-DgqkLiUE.js +2 -0
  45. assets/d3-sankey-DgqkLiUE.js.map +1 -0
  46. assets/d3-scale-BchcX-lF.js +2 -0
  47. assets/d3-scale-BchcX-lF.js.map +1 -0
  48. assets/d3-scale-chromatic-B-NsZVaP.js +2 -0
  49. assets/d3-scale-chromatic-B-NsZVaP.js.map +1 -0
  50. assets/d3-selection-C52G7wmG.js +2 -0
assets/DevMoodTracker-0krNlVUX.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as t,r as l}from"./react-_fH1j4AW.js";import{c as p}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const a=(o,i)=>{const[e,s]=l.useState(()=>{try{const r=window.localStorage.getItem(o);return r?JSON.parse(r):i}catch{return i}});return[e,r=>{const m=r instanceof Function?r(e):r;s(m),window.localStorage.setItem(o,JSON.stringify(m))}]},n=[{emoji:"😄",label:"Great"},{emoji:"😊",label:"Good"},{emoji:"😐",label:"Okay"},{emoji:"😟",label:"Struggling"},{emoji:"🔥",label:"In the Zone"}],ht=()=>{const[o,i]=a("devcore_mood",null);return t.jsxs("div",{className:"h-full flex flex-col items-center justify-center p-4 sm:p-6 lg:p-8 text-center",children:[t.jsxs("header",{className:"mb-8",children:[t.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[t.jsx(p,{}),t.jsx("span",{className:"ml-3",children:"Dev Mood Tracker"})]}),t.jsx("p",{className:"text-slate-400 mt-1",children:"How are you feeling today?"})]}),t.jsx("div",{className:"flex items-center justify-center gap-4 md:gap-8",children:n.map(e=>t.jsxs("button",{onClick:()=>i(e.label),className:`flex flex-col items-center gap-2 p-4 rounded-lg transition-all transform hover:scale-110 ${o===e.label?"bg-cyan-500/20":"bg-slate-800/50"}`,children:[t.jsx("span",{className:"text-5xl",children:e.emoji}),t.jsx("span",{className:"font-semibold text-slate-300",children:e.label})]},e.label))}),o&&t.jsxs("p",{className:"mt-8 text-lg text-green-400",children:["Thanks for checking in! You're feeling: ",o]})]})};export{ht as DevMoodTracker};
2
+ //# sourceMappingURL=DevMoodTracker-0krNlVUX.js.map
assets/DevMoodTracker-0krNlVUX.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"DevMoodTracker-0krNlVUX.js","sources":["../../components/features/DevMoodTracker.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SparklesIcon } from '../icons/FeatureIcons.tsx';\n\nconst useLocalStorage = (key: string, initialValue: any) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) { return initialValue; }\n });\n const setValue = (value: any) => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n };\n return [storedValue, setValue];\n};\n\nconst moods = [\n { emoji: '😄', label: 'Great' },\n { emoji: '😊', label: 'Good' },\n { emoji: '😐', label: 'Okay' },\n { emoji: '😟', label: 'Struggling' },\n { emoji: '🔥', label: 'In the Zone' },\n];\n\nexport const DevMoodTracker: React.FC = () => {\n const [selectedMood, setSelectedMood] = useLocalStorage('devcore_mood', null);\n\n return (\n <div className=\"h-full flex flex-col items-center justify-center p-4 sm:p-6 lg:p-8 text-center\">\n <header className=\"mb-8\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <SparklesIcon />\n <span className=\"ml-3\">Dev Mood Tracker</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">How are you feeling today?</p>\n </header>\n <div className=\"flex items-center justify-center gap-4 md:gap-8\">\n {moods.map(mood => (\n <button\n key={mood.label}\n onClick={() => setSelectedMood(mood.label)}\n className={`flex flex-col items-center gap-2 p-4 rounded-lg transition-all transform hover:scale-110 ${selectedMood === mood.label ? 'bg-cyan-500/20' : 'bg-slate-800/50'}`}\n >\n <span className=\"text-5xl\">{mood.emoji}</span>\n <span className=\"font-semibold text-slate-300\">{mood.label}</span>\n </button>\n ))}\n </div>\n {selectedMood && (\n <p className=\"mt-8 text-lg text-green-400\">Thanks for checking in! You're feeling: {selectedMood}</p>\n )}\n </div>\n );\n};"],"names":["useLocalStorage","key","initialValue","storedValue","setStoredValue","useState","item","value","valueToStore","moods","DevMoodTracker","selectedMood","setSelectedMood","jsxs","jsx","SparklesIcon","mood"],"mappings":"4xEAGA,MAAMA,EAAkB,CAACC,EAAaC,IAAsB,CACxD,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAS,IAAM,CACjD,GAAI,CACA,MAAMC,EAAO,OAAO,aAAa,QAAQL,CAAG,EAC5C,OAAOK,EAAO,KAAK,MAAMA,CAAI,EAAIJ,CACrC,MAAgB,CAAE,OAAOA,CAAc,CAC3C,CAAC,EAMD,MAAO,CAACC,EALUI,GAAe,CAC7B,MAAMC,EAAeD,aAAiB,SAAWA,EAAMJ,CAAW,EAAII,EACtEH,EAAeI,CAAY,EAC3B,OAAO,aAAa,QAAQP,EAAK,KAAK,UAAUO,CAAY,CAAC,CACjE,CAC6B,CACjC,EAEMC,EAAQ,CACV,CAAE,MAAO,KAAM,MAAO,OAAA,EACtB,CAAE,MAAO,KAAM,MAAO,MAAA,EACtB,CAAE,MAAO,KAAM,MAAO,MAAA,EACtB,CAAE,MAAO,KAAM,MAAO,YAAA,EACtB,CAAE,MAAO,KAAM,MAAO,aAAA,CAC1B,EAEaC,GAA2B,IAAM,CAC1C,KAAM,CAACC,EAAcC,CAAe,EAAIZ,EAAgB,eAAgB,IAAI,EAE5E,OACIa,EAAAA,KAAC,MAAA,CAAI,UAAU,iFACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,OACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,sDACV,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAa,EACdD,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,kBAAA,CAAgB,CAAA,EAC3C,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,4BAAA,CAA0B,CAAA,EACjE,QACC,MAAA,CAAI,UAAU,kDACV,SAAAL,EAAM,IAAIO,GACPH,EAAAA,KAAC,SAAA,CAEG,QAAS,IAAMD,EAAgBI,EAAK,KAAK,EACzC,UAAW,4FAA4FL,IAAiBK,EAAK,MAAQ,iBAAmB,iBAAiB,GAEzK,SAAA,CAAAF,EAAAA,IAAC,OAAA,CAAK,UAAU,WAAY,SAAAE,EAAK,MAAM,EACvCF,EAAAA,IAAC,OAAA,CAAK,UAAU,+BAAgC,WAAK,KAAA,CAAM,CAAA,CAAA,EALtDE,EAAK,KAAA,CAOjB,EACL,EACCL,GACGE,EAAAA,KAAC,IAAA,CAAE,UAAU,8BAA8B,SAAA,CAAA,2CAAyCF,CAAA,CAAA,CAAa,CAAA,EAEzG,CAER"}
assets/DevNotesStickyPanel-eVbUsgfo.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r as g,j as o}from"./react-_fH1j4AW.js";import{F as h}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const b=(r,n)=>{const[i,m]=g.useState(()=>{try{const s=window.localStorage.getItem(r);return s?JSON.parse(s):n}catch{return n}});return[i,s=>{const a=s instanceof Function?s(i):s;m(a),window.localStorage.setItem(r,JSON.stringify(a))}]},u=["bg-yellow-300","bg-green-300","bg-blue-300","bg-pink-300","bg-purple-300"],Tt=()=>{const[r,n]=b("devcore_notes",[]),[i,m]=g.useState(null),p=()=>{const t={id:Date.now(),text:"New note...",x:50+r.length%10*20,y:50+r.length%10*20,color:u[r.length%u.length]};n([...r,t])},s=(t,e)=>{n(r.map(l=>l.id===t?{...l,text:e}:l))},a=t=>{n(r.filter(e=>e.id!==t))},x=(t,e)=>{if(t.target.tagName==="TEXTAREA"||t.target.tagName==="BUTTON")return;const d=t.currentTarget.getBoundingClientRect();m({id:e,offsetX:t.clientX-d.left,offsetY:t.clientY-d.top})},f=t=>{if(!i)return;const e=t.currentTarget.getBoundingClientRect();n(r.map(l=>l.id===i.id?{...l,x:t.clientX-i.offsetX-e.left,y:t.clientY-i.offsetY-e.top}:l))},c=()=>m(null);return o.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[o.jsxs("header",{className:"mb-6 flex justify-between items-center",children:[o.jsxs("div",{children:[o.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[o.jsx(h,{}),o.jsx("span",{className:"ml-3",children:"Dev Notes Sticky Panel"})]}),o.jsx("p",{className:"text-slate-400 mt-1",children:"A place for your thoughts, todos, and random ideas."})]}),o.jsx("button",{onClick:p,className:"px-6 py-2 bg-cyan-500 text-slate-900 font-bold rounded-md",children:"Add Note"})]}),o.jsx("div",{className:"relative flex-grow bg-slate-900/50 border-2 border-dashed border-slate-700 rounded-lg overflow-hidden",onMouseMove:f,onMouseUp:c,onMouseLeave:c,children:r.map(t=>o.jsxs("div",{className:`absolute w-48 h-48 p-2 flex flex-col shadow-lg cursor-grab active:cursor-grabbing ${t.color}`,style:{top:t.y,left:t.x,transform:(i==null?void 0:i.id)===t.id?"scale(1.05) rotate(3deg)":"scale(1)"},onMouseDown:e=>x(e,t.id),children:[o.jsx("button",{onClick:()=>a(t.id),className:"absolute -top-2 -right-2 w-6 h-6 rounded-full bg-red-500 text-white font-bold text-xs flex items-center justify-center opacity-0 hover:opacity-100",children:"×"}),o.jsx("textarea",{value:t.text,onChange:e=>s(t.id,e.target.value),className:"w-full h-full bg-transparent text-black resize-none focus:outline-none font-medium p-1"})]},t.id))})]})};export{Tt as DevNotesStickyPanel};
2
+ //# sourceMappingURL=DevNotesStickyPanel-eVbUsgfo.js.map
assets/DevNotesStickyPanel-eVbUsgfo.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"DevNotesStickyPanel-eVbUsgfo.js","sources":["../../components/features/DevNotesStickyPanel.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FileCodeIcon } from '../icons/FeatureIcons.tsx';\n\ninterface Note {\n id: number;\n text: string;\n x: number;\n y: number;\n color: string;\n}\n\nconst useLocalStorage = (key: string, initialValue: any) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) { return initialValue; }\n });\n const setValue = (value: any) => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n };\n return [storedValue, setValue];\n};\n\nconst colors = ['bg-yellow-300', 'bg-green-300', 'bg-blue-300', 'bg-pink-300', 'bg-purple-300'];\n\nexport const DevNotesStickyPanel: React.FC = () => {\n const [notes, setNotes] = useLocalStorage('devcore_notes', []);\n const [dragging, setDragging] = useState<{ id: number; offsetX: number; offsetY: number } | null>(null);\n\n const addNote = () => {\n const newNote: Note = {\n id: Date.now(),\n text: 'New note...',\n x: 50 + (notes.length % 10) * 20,\n y: 50 + (notes.length % 10) * 20,\n color: colors[notes.length % colors.length],\n };\n setNotes([...notes, newNote]);\n };\n\n const updateText = (id: number, text: string) => {\n setNotes(notes.map((n: Note) => n.id === id ? { ...n, text } : n));\n };\n \n const deleteNote = (id: number) => {\n setNotes(notes.filter((n: Note) => n.id !== id));\n };\n\n const onMouseDown = (e: React.MouseEvent<HTMLDivElement>, id: number) => {\n if((e.target as HTMLElement).tagName === 'TEXTAREA' || (e.target as HTMLElement).tagName === 'BUTTON') return;\n const noteElement = e.currentTarget;\n const rect = noteElement.getBoundingClientRect();\n setDragging({ id, offsetX: e.clientX - rect.left, offsetY: e.clientY - rect.top });\n };\n\n const onMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!dragging) return;\n const boardRect = e.currentTarget.getBoundingClientRect();\n setNotes(\n notes.map((n: Note) =>\n n.id === dragging.id\n ? { ...n, x: e.clientX - dragging.offsetX - boardRect.left, y: e.clientY - dragging.offsetY - boardRect.top }\n : n\n )\n );\n };\n\n const onMouseUp = () => setDragging(null);\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6 flex justify-between items-center\">\n <div>\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <FileCodeIcon />\n <span className=\"ml-3\">Dev Notes Sticky Panel</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">A place for your thoughts, todos, and random ideas.</p>\n </div>\n <button onClick={addNote} className=\"px-6 py-2 bg-cyan-500 text-slate-900 font-bold rounded-md\">Add Note</button>\n </header>\n <div\n className=\"relative flex-grow bg-slate-900/50 border-2 border-dashed border-slate-700 rounded-lg overflow-hidden\"\n onMouseMove={onMouseMove}\n onMouseUp={onMouseUp}\n onMouseLeave={onMouseUp}\n >\n {notes.map((note: Note) => (\n <div\n key={note.id}\n className={`absolute w-48 h-48 p-2 flex flex-col shadow-lg cursor-grab active:cursor-grabbing ${note.color}`}\n style={{ top: note.y, left: note.x, transform: dragging?.id === note.id ? 'scale(1.05) rotate(3deg)' : 'scale(1)' }}\n onMouseDown={e => onMouseDown(e, note.id)}\n >\n <button onClick={() => deleteNote(note.id)} className=\"absolute -top-2 -right-2 w-6 h-6 rounded-full bg-red-500 text-white font-bold text-xs flex items-center justify-center opacity-0 hover:opacity-100\">&times;</button>\n <textarea\n value={note.text}\n onChange={(e) => updateText(note.id, e.target.value)}\n className=\"w-full h-full bg-transparent text-black resize-none focus:outline-none font-medium p-1\"\n />\n </div>\n ))}\n </div>\n </div>\n );\n};"],"names":["useLocalStorage","key","initialValue","storedValue","setStoredValue","useState","item","value","valueToStore","colors","DevNotesStickyPanel","notes","setNotes","dragging","setDragging","addNote","newNote","updateText","id","text","n","deleteNote","onMouseDown","e","rect","onMouseMove","boardRect","onMouseUp","jsxs","jsx","FileCodeIcon","note"],"mappings":"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"}
assets/DevSoundboard-DR1g6DgI.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as r}from"./react-_fH1j4AW.js";import{c as s}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const i=[{name:"Click",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/click.mp3"},{name:"Success",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/success.mp3"},{name:"Error",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/error.mp3"},{name:"Notification",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/notification.mp3"},{name:"Deploy",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/deploy.mp3"},{name:"Typing",url:"https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/typing.mp3"}],ar=()=>{const o=t=>{new Audio(t).play()};return r.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[r.jsxs("header",{className:"mb-6 text-center",children:[r.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center justify-center",children:[r.jsx(s,{}),r.jsx("span",{className:"ml-3",children:"Dev Soundboard"})]}),r.jsx("p",{className:"text-slate-400 mt-1",children:"For when you need that satisfying sound effect."})]}),r.jsx("div",{className:"flex-grow grid grid-cols-2 md:grid-cols-3 gap-4",children:i.map(t=>r.jsx("button",{onClick:()=>o(t.url),className:"p-8 bg-slate-800/50 rounded-lg text-slate-200 font-bold text-xl hover:bg-cyan-500/20 hover:text-cyan-300 transition-colors",children:t.name},t.name))})]})};export{ar as DevSoundboard};
2
+ //# sourceMappingURL=DevSoundboard-DR1g6DgI.js.map
assets/DevSoundboard-DR1g6DgI.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"DevSoundboard-DR1g6DgI.js","sources":["../../components/features/DevSoundboard.tsx"],"sourcesContent":["import React from 'react';\nimport { SparklesIcon } from '../icons/FeatureIcons.tsx';\n\nconst sounds = [\n { name: 'Click', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/click.mp3' },\n { name: 'Success', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/success.mp3' },\n { name: 'Error', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/error.mp3' },\n { name: 'Notification', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/notification.mp3' },\n { name: 'Deploy', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/deploy.mp3' },\n { name: 'Typing', url: 'https://cdn.jsdelivr.net/gh/kristopolous/musicworker-front@master/htdocs/resources/sfx/typing.mp3' },\n];\n\nexport const DevSoundboard: React.FC = () => {\n \n const playSound = (url: string) => {\n new Audio(url).play();\n };\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6 text-center\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center justify-center\">\n <SparklesIcon />\n <span className=\"ml-3\">Dev Soundboard</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">For when you need that satisfying sound effect.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-2 md:grid-cols-3 gap-4\">\n {sounds.map(sound => (\n <button\n key={sound.name}\n onClick={() => playSound(sound.url)}\n className=\"p-8 bg-slate-800/50 rounded-lg text-slate-200 font-bold text-xl hover:bg-cyan-500/20 hover:text-cyan-300 transition-colors\"\n >\n {sound.name}\n </button>\n ))}\n </div>\n </div>\n );\n};"],"names":["sounds","DevSoundboard","playSound","url","jsxs","jsx","SparklesIcon","sound"],"mappings":"qxEAGA,MAAMA,EAAS,CACX,CAAE,KAAM,QAAS,IAAK,kGAAA,EACtB,CAAE,KAAM,UAAW,IAAK,oGAAA,EACxB,CAAE,KAAM,QAAS,IAAK,kGAAA,EACtB,CAAE,KAAM,eAAgB,IAAK,yGAAA,EAC7B,CAAE,KAAM,SAAU,IAAK,mGAAA,EACvB,CAAE,KAAM,SAAU,IAAK,mGAAA,CAC3B,EAEaC,GAA0B,IAAM,CAEzC,MAAMC,EAAaC,GAAgB,CAC/B,IAAI,MAAMA,CAAG,EAAE,KAAA,CACnB,EAEA,OACIC,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,mBACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,qEACV,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAa,EACdD,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,gBAAA,CAAc,CAAA,EACzC,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,iDAAA,CAA+C,CAAA,EACtF,QACC,MAAA,CAAI,UAAU,kDACV,SAAAL,EAAO,IAAIO,GACRF,EAAAA,IAAC,SAAA,CAEG,QAAS,IAAMH,EAAUK,EAAM,GAAG,EAClC,UAAU,6HAET,SAAAA,EAAM,IAAA,EAJFA,EAAM,IAAA,CAMlB,CAAA,CACL,CAAA,EACJ,CAER"}
assets/EnvDiffTool-TsdDFW7R.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import{r as f,j as e}from"./react-_fH1j4AW.js";import{L as h}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const v=r=>{const p=new Map;return r.split(`
2
+ `).forEach(m=>{const s=m.trim();if(s&&!s.startsWith("#")){const i=s.indexOf("=");if(i>0){const c=s.substring(0,i),t=s.substring(i+1);p.set(c,t)}}}),p},we=()=>{const[r,p]=f.useState(`API_KEY=123
3
+ DB_HOST=localhost
4
+ NODE_ENV=development`),[m,s]=f.useState(`API_KEY=456
5
+ DB_HOST=localhost
6
+ FEATURE_FLAG=true`),i=f.useMemo(()=>{const t=v(r),d=v(m),x=new Set([...t.keys(),...d.keys()]),o=[];return x.forEach(l=>{const a=t.get(l),n=d.get(l);a!==void 0&&n!==void 0?o.push({key:l,valueA:a,valueB:n,type:a===n?"same":"changed"}):a!==void 0?o.push({key:l,valueA:a,valueB:"",type:"removed"}):n!==void 0&&o.push({key:l,valueA:"",valueB:n,type:"added"})}),o},[r,m]),c=t=>{switch(t){case"added":return"bg-green-500/10";case"removed":return"bg-red-500/10";case"changed":return"bg-yellow-500/10";default:return"bg-slate-800/50"}};return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(h,{}),e.jsx("span",{className:"ml-3",children:"Environment Diff Tool"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Compare two .env files to see what's changed."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden",children:[e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"env-a",className:"text-sm font-medium text-slate-400 mb-2",children:"Environment A"}),e.jsx("textarea",{id:"env-a",value:r,onChange:t=>p(t.target.value),className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm"})]}),e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"env-b",className:"text-sm font-medium text-slate-400 mb-2",children:"Environment B"}),e.jsx("textarea",{id:"env-b",value:m,onChange:t=>s(t.target.value),className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm"})]})]}),e.jsxs("div",{className:"mt-6",children:[e.jsx("h3",{className:"text-xl font-bold mb-2",children:"Differences"}),e.jsx("div",{className:"bg-slate-900 p-4 rounded-lg overflow-y-auto max-h-64 font-mono text-sm",children:i.map(({key:t,valueA:d,valueB:x,type:o})=>e.jsxs("div",{className:`flex p-2 rounded ${c(o)}`,children:[e.jsx("span",{className:"w-1/3 text-slate-400",children:t}),e.jsx("span",{className:"w-1/3 text-slate-300",children:o==="added"?"":d}),e.jsx("span",{className:"w-1/3 text-slate-300",children:o==="removed"?"":x})]},t))})]})]})};export{we as EnvDiffTool};
7
+ //# sourceMappingURL=EnvDiffTool-TsdDFW7R.js.map
assets/EnvDiffTool-TsdDFW7R.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"EnvDiffTool-TsdDFW7R.js","sources":["../../components/features/EnvDiffTool.tsx"],"sourcesContent":["\nimport React, { useState, useMemo } from 'react';\nimport { LockClosedIcon } from '../icons/FeatureIcons.tsx';\n\nconst parseEnv = (text: string): Map<string, string> => {\n const map = new Map<string, string>();\n text.split('\\n').forEach(line => {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#')) {\n const eqIndex = trimmed.indexOf('=');\n if (eqIndex > 0) {\n const key = trimmed.substring(0, eqIndex);\n const value = trimmed.substring(eqIndex + 1);\n map.set(key, value);\n }\n }\n });\n return map;\n};\n\nexport const EnvDiffTool: React.FC = () => {\n const [envA, setEnvA] = useState('API_KEY=123\\nDB_HOST=localhost\\nNODE_ENV=development');\n const [envB, setEnvB] = useState('API_KEY=456\\nDB_HOST=localhost\\nFEATURE_FLAG=true');\n\n const diff = useMemo(() => {\n const mapA = parseEnv(envA);\n const mapB = parseEnv(envB);\n const allKeys = new Set([...mapA.keys(), ...mapB.keys()]);\n const result: { key: string; valueA: string; valueB: string; type: 'added' | 'removed' | 'changed' | 'same' }[] = [];\n\n allKeys.forEach(key => {\n const valA = mapA.get(key);\n const valB = mapB.get(key);\n if (valA !== undefined && valB !== undefined) {\n result.push({ key, valueA: valA, valueB: valB, type: valA === valB ? 'same' : 'changed' });\n } else if (valA !== undefined) {\n result.push({ key, valueA: valA, valueB: '', type: 'removed' });\n } else if (valB !== undefined) {\n result.push({ key, valueA: '', valueB: valB, type: 'added' });\n }\n });\n return result;\n }, [envA, envB]);\n\n const getRowClass = (type: string) => {\n switch (type) {\n case 'added': return 'bg-green-500/10';\n case 'removed': return 'bg-red-500/10';\n case 'changed': return 'bg-yellow-500/10';\n default: return 'bg-slate-800/50';\n }\n };\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <LockClosedIcon />\n <span className=\"ml-3\">Environment Diff Tool</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Compare two .env files to see what's changed.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden\">\n <div className=\"flex flex-col h-full\">\n <label htmlFor=\"env-a\" className=\"text-sm font-medium text-slate-400 mb-2\">Environment A</label>\n <textarea id=\"env-a\" value={envA} onChange={e => setEnvA(e.target.value)} className=\"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm\"/>\n </div>\n <div className=\"flex flex-col h-full\">\n <label htmlFor=\"env-b\" className=\"text-sm font-medium text-slate-400 mb-2\">Environment B</label>\n <textarea id=\"env-b\" value={envB} onChange={e => setEnvB(e.target.value)} className=\"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm\"/>\n </div>\n </div>\n <div className=\"mt-6\">\n <h3 className=\"text-xl font-bold mb-2\">Differences</h3>\n <div className=\"bg-slate-900 p-4 rounded-lg overflow-y-auto max-h-64 font-mono text-sm\">\n {diff.map(({ key, valueA, valueB, type }) => (\n <div key={key} className={`flex p-2 rounded ${getRowClass(type)}`}>\n <span className=\"w-1/3 text-slate-400\">{key}</span>\n <span className=\"w-1/3 text-slate-300\">{type === 'added' ? '' : valueA}</span>\n <span className=\"w-1/3 text-slate-300\">{type === 'removed' ? '' : valueB}</span>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};"],"names":["parseEnv","text","map","line","trimmed","eqIndex","key","value","EnvDiffTool","envA","setEnvA","useState","envB","setEnvB","diff","useMemo","mapA","mapB","allKeys","result","valA","valB","getRowClass","type","jsxs","jsx","LockClosedIcon","e","valueA","valueB"],"mappings":"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"}
assets/EnvManager-DLH9OFlV.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r as m,j as e}from"./react-_fH1j4AW.js";import{S as N}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const j=(s,l)=>{const[o,p]=m.useState(()=>{try{const r=window.localStorage.getItem(s);return r?JSON.parse(r):l}catch(r){return console.log(r),l}});return[o,r=>{try{const a=r instanceof Function?r(o):r;p(a),window.localStorage.setItem(s,JSON.stringify(a))}catch(a){console.log(a)}}]},Ce=()=>{const[s,l]=j("devcore_envs",{development:{API_URL:"http://localhost:3000"},production:{API_URL:"https://api.myapp.com"}}),[o,p]=m.useState("development"),[i,r]=m.useState(""),[a,d]=m.useState(""),[x,u]=m.useState(""),h=s[o]||{},g=t=>{if(t.preventDefault(),!a)return;const n={...s};n[o][a]=x,l(n),d(""),u("")},v=(t,n)=>{const c={...s};c[o][t]=n,l(c)},b=t=>{const n={...s};delete n[o][t],l(n)},f=()=>{!i||s[i]||(l({...s,[i]:{}}),p(i),r(""))};return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(N,{}),e.jsx("span",{className:"ml-3",children:"Environment Variable Manager"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Manage and switch between different .env configurations."})]}),e.jsxs("div",{className:"flex-grow flex gap-6 min-h-0",children:[e.jsxs("aside",{className:"w-1/4 bg-slate-800/50 p-4 rounded-lg flex flex-col",children:[e.jsx("h3",{className:"font-bold mb-2",children:"Environments"}),e.jsx("ul",{className:"space-y-2 flex-grow overflow-y-auto",children:Object.keys(s).map(t=>e.jsx("li",{children:e.jsx("button",{onClick:()=>p(t),className:`w-full text-left px-3 py-2 rounded-md ${o===t?"bg-cyan-500/20 text-cyan-300":"hover:bg-slate-700/50"}`,children:t})},t))}),e.jsxs("div",{className:"mt-4 pt-4 border-t border-slate-700",children:[e.jsx("input",{type:"text",value:i,onChange:t=>r(t.target.value),placeholder:"New environment name...",className:"w-full px-2 py-1.5 rounded-md bg-slate-800 border border-slate-700 text-sm mb-2"}),e.jsx("button",{onClick:f,className:"w-full text-sm py-2 bg-cyan-500/80 text-white rounded-md",children:"Add Environment"})]})]}),e.jsxs("main",{className:"w-3/4 bg-slate-900 p-6 rounded-lg flex flex-col",children:[e.jsxs("h2",{className:"text-2xl font-bold mb-4",children:["Editing: ",e.jsx("span",{className:"text-cyan-400",children:o})]}),e.jsx("div",{className:"flex-grow overflow-y-auto pr-2",children:e.jsx("div",{className:"space-y-3",children:Object.entries(h).map(([t,n])=>e.jsxs("div",{className:"flex items-center gap-2 font-mono text-sm",children:[e.jsxs("span",{className:"text-slate-400",children:[t,"="]}),e.jsx("input",{type:"text",value:String(n),onChange:c=>v(t,c.target.value),className:"flex-grow px-2 py-1 rounded bg-slate-800 border border-slate-700 text-yellow-300"}),e.jsx("button",{onClick:()=>b(t),className:"px-2 py-1 text-red-400 hover:bg-red-500/20 rounded-md",children:"×"})]},t))})}),e.jsxs("form",{onSubmit:g,className:"mt-4 pt-4 border-t border-slate-700 flex items-center gap-2 font-mono text-sm",children:[e.jsx("input",{type:"text",value:a,onChange:t=>d(t.target.value),placeholder:"NEW_VARIABLE",className:"w-1/3 px-2 py-1.5 rounded bg-slate-800 border border-slate-700"}),e.jsx("span",{className:"text-slate-400",children:"="}),e.jsx("input",{type:"text",value:x,onChange:t=>u(t.target.value),placeholder:"its_value",className:"flex-grow px-2 py-1.5 rounded bg-slate-800 border border-slate-700"}),e.jsx("button",{type:"submit",className:"px-4 py-1.5 bg-cyan-500/80 text-white rounded-md text-sans",children:"Add"})]})]})]})]})};export{Ce as EnvManager};
2
+ //# sourceMappingURL=EnvManager-DLH9OFlV.js.map
assets/EnvManager-DLH9OFlV.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"EnvManager-DLH9OFlV.js","sources":["../../components/features/EnvManager.tsx"],"sourcesContent":["\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { ServerIcon } from '../icons/FeatureIcons.tsx';\n\ntype EnvSet = { [key: string]: string };\ntype AllEnvs = { [name: string]: EnvSet };\n\nconst useLocalStorage = (key: string, initialValue: any) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.log(error);\n return initialValue;\n }\n });\n\n const setValue = (value: any) => {\n try {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n console.log(error);\n }\n };\n\n return [storedValue, setValue];\n};\n\n\nexport const EnvManager: React.FC = () => {\n const [envs, setEnvs] = useLocalStorage('devcore_envs', { development: { API_URL: 'http://localhost:3000' }, production: { API_URL: 'https://api.myapp.com' } });\n const [activeEnv, setActiveEnv] = useState('development');\n const [newEnvName, setNewEnvName] = useState('');\n const [newKey, setNewKey] = useState('');\n const [newValue, setNewValue] = useState('');\n\n const currentVars = envs[activeEnv] || {};\n\n const handleAddVar = (e: React.FormEvent) => {\n e.preventDefault();\n if (!newKey) return;\n const newEnvs = {...envs};\n newEnvs[activeEnv][newKey] = newValue;\n setEnvs(newEnvs);\n setNewKey('');\n setNewValue('');\n };\n \n const handleUpdateVar = (key: string, value: string) => {\n const newEnvs = {...envs};\n newEnvs[activeEnv][key] = value;\n setEnvs(newEnvs);\n }\n \n const handleDeleteVar = (key: string) => {\n const newEnvs = {...envs};\n delete newEnvs[activeEnv][key];\n setEnvs(newEnvs);\n };\n \n const handleAddEnv = () => {\n if(!newEnvName || envs[newEnvName]) return;\n setEnvs({...envs, [newEnvName]: {}});\n setActiveEnv(newEnvName);\n setNewEnvName('');\n }\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <ServerIcon />\n <span className=\"ml-3\">Environment Variable Manager</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Manage and switch between different .env configurations.</p>\n </header>\n <div className=\"flex-grow flex gap-6 min-h-0\">\n <aside className=\"w-1/4 bg-slate-800/50 p-4 rounded-lg flex flex-col\">\n <h3 className=\"font-bold mb-2\">Environments</h3>\n <ul className=\"space-y-2 flex-grow overflow-y-auto\">\n {Object.keys(envs).map(name => (\n <li key={name}>\n <button onClick={() => setActiveEnv(name)} className={`w-full text-left px-3 py-2 rounded-md ${activeEnv === name ? 'bg-cyan-500/20 text-cyan-300' : 'hover:bg-slate-700/50'}`}>\n {name}\n </button>\n </li>\n ))}\n </ul>\n <div className=\"mt-4 pt-4 border-t border-slate-700\">\n <input type=\"text\" value={newEnvName} onChange={e => setNewEnvName(e.target.value)} placeholder=\"New environment name...\" className=\"w-full px-2 py-1.5 rounded-md bg-slate-800 border border-slate-700 text-sm mb-2\" />\n <button onClick={handleAddEnv} className=\"w-full text-sm py-2 bg-cyan-500/80 text-white rounded-md\">Add Environment</button>\n </div>\n </aside>\n <main className=\"w-3/4 bg-slate-900 p-6 rounded-lg flex flex-col\">\n <h2 className=\"text-2xl font-bold mb-4\">Editing: <span className=\"text-cyan-400\">{activeEnv}</span></h2>\n <div className=\"flex-grow overflow-y-auto pr-2\">\n <div className=\"space-y-3\">\n {Object.entries(currentVars).map(([key, value]) => (\n <div key={key} className=\"flex items-center gap-2 font-mono text-sm\">\n <span className=\"text-slate-400\">{key}=</span>\n <input type=\"text\" value={String(value)} onChange={e => handleUpdateVar(key, e.target.value)} className=\"flex-grow px-2 py-1 rounded bg-slate-800 border border-slate-700 text-yellow-300\" />\n <button onClick={() => handleDeleteVar(key)} className=\"px-2 py-1 text-red-400 hover:bg-red-500/20 rounded-md\">&times;</button>\n </div>\n ))}\n </div>\n </div>\n <form onSubmit={handleAddVar} className=\"mt-4 pt-4 border-t border-slate-700 flex items-center gap-2 font-mono text-sm\">\n <input type=\"text\" value={newKey} onChange={e => setNewKey(e.target.value)} placeholder=\"NEW_VARIABLE\" className=\"w-1/3 px-2 py-1.5 rounded bg-slate-800 border border-slate-700\" />\n <span className=\"text-slate-400\">=</span>\n <input type=\"text\" value={newValue} onChange={e => setNewValue(e.target.value)} placeholder=\"its_value\" className=\"flex-grow px-2 py-1.5 rounded bg-slate-800 border border-slate-700\" />\n <button type=\"submit\" className=\"px-4 py-1.5 bg-cyan-500/80 text-white rounded-md text-sans\">Add</button>\n </form>\n </main>\n </div>\n </div>\n );\n};"],"names":["useLocalStorage","key","initialValue","storedValue","setStoredValue","useState","item","error","value","valueToStore","EnvManager","envs","setEnvs","activeEnv","setActiveEnv","newEnvName","setNewEnvName","newKey","setNewKey","newValue","setNewValue","currentVars","handleAddVar","e","newEnvs","handleUpdateVar","handleDeleteVar","handleAddEnv","jsxs","jsx","ServerIcon","name"],"mappings":"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"}
assets/FeatureFlagBoard-DWUDEWDw.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as e,r as m}from"./react-_fH1j4AW.js";import{e as l}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const n=(o,s)=>{const[i,r]=m.useState(()=>{try{const t=window.localStorage.getItem(o);return t?JSON.parse(t):s}catch{return s}});return[i,t=>{const p=t instanceof Function?t(i):t;r(p),window.localStorage.setItem(o,JSON.stringify(p))}]},c=[{key:"new-dashboard",description:"Enable the new experimental dashboard UI.",enabled:!0},{key:"ai-suggestions",description:"Show AI-powered suggestions in the editor.",enabled:!1},{key:"beta-api-access",description:"Allow access to beta API endpoints.",enabled:!1}],ge=()=>{const[o,s]=n("devcore_featureFlags",c),i=r=>{s(a=>a.map(t=>t.key===r?{...t,enabled:!t.enabled}:t))};return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(l,{}),e.jsx("span",{className:"ml-3",children:"Feature Flag Toggle Board"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Enable or disable experimental features for your session."})]}),e.jsx("div",{className:"flex-grow bg-slate-900/50 p-4 rounded-lg overflow-y-auto",children:e.jsx("div",{className:"space-y-4",children:o.map(r=>e.jsxs("div",{className:"bg-slate-800 p-4 rounded-md flex justify-between items-center",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-bold text-slate-200",children:r.key}),e.jsx("p",{className:"text-sm text-slate-400",children:r.description})]}),e.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:r.enabled,onChange:()=>i(r.key),className:"sr-only peer"}),e.jsx("div",{className:"w-11 h-6 bg-slate-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-cyan-500"})]})]},r.key))})})]})};export{ge as FeatureFlagBoard};
2
+ //# sourceMappingURL=FeatureFlagBoard-DWUDEWDw.js.map
assets/FeatureFlagBoard-DWUDEWDw.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"FeatureFlagBoard-DWUDEWDw.js","sources":["../../components/features/FeatureFlagBoard.tsx"],"sourcesContent":["\nimport React, { useState } from 'react';\nimport { CommandLineIcon } from '../icons/FeatureIcons.tsx';\n\nconst useLocalStorage = (key: string, initialValue: any) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) { return initialValue; }\n });\n const setValue = (value: any) => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n };\n return [storedValue, setValue];\n};\n\ninterface FeatureFlag {\n key: string;\n description: string;\n enabled: boolean;\n}\n\nconst initialFlags: FeatureFlag[] = [\n { key: 'new-dashboard', description: 'Enable the new experimental dashboard UI.', enabled: true },\n { key: 'ai-suggestions', description: 'Show AI-powered suggestions in the editor.', enabled: false },\n { key: 'beta-api-access', description: 'Allow access to beta API endpoints.', enabled: false },\n];\n\nexport const FeatureFlagBoard: React.FC = () => {\n const [flags, setFlags] = useLocalStorage('devcore_featureFlags', initialFlags);\n\n const toggleFlag = (key: string) => {\n setFlags((currentFlags: FeatureFlag[]) =>\n currentFlags.map(flag =>\n flag.key === key ? { ...flag, enabled: !flag.enabled } : flag\n )\n );\n };\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <CommandLineIcon />\n <span className=\"ml-3\">Feature Flag Toggle Board</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Enable or disable experimental features for your session.</p>\n </header>\n <div className=\"flex-grow bg-slate-900/50 p-4 rounded-lg overflow-y-auto\">\n <div className=\"space-y-4\">\n {flags.map((flag: FeatureFlag) => (\n <div key={flag.key} className=\"bg-slate-800 p-4 rounded-md flex justify-between items-center\">\n <div>\n <p className=\"font-bold text-slate-200\">{flag.key}</p>\n <p className=\"text-sm text-slate-400\">{flag.description}</p>\n </div>\n <label className=\"relative inline-flex items-center cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={flag.enabled}\n onChange={() => toggleFlag(flag.key)}\n className=\"sr-only peer\"\n />\n <div className=\"w-11 h-6 bg-slate-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-cyan-500\"></div>\n </label>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["useLocalStorage","key","initialValue","storedValue","setStoredValue","useState","item","value","valueToStore","initialFlags","FeatureFlagBoard","flags","setFlags","toggleFlag","currentFlags","flag","jsxs","jsx","CommandLineIcon"],"mappings":"4xEAIA,MAAMA,EAAkB,CAACC,EAAaC,IAAsB,CACxD,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAS,IAAM,CACjD,GAAI,CACA,MAAMC,EAAO,OAAO,aAAa,QAAQL,CAAG,EAC5C,OAAOK,EAAO,KAAK,MAAMA,CAAI,EAAIJ,CACrC,MAAgB,CAAE,OAAOA,CAAc,CAC3C,CAAC,EAMD,MAAO,CAACC,EALUI,GAAe,CAC7B,MAAMC,EAAeD,aAAiB,SAAWA,EAAMJ,CAAW,EAAII,EACtEH,EAAeI,CAAY,EAC3B,OAAO,aAAa,QAAQP,EAAK,KAAK,UAAUO,CAAY,CAAC,CACjE,CAC6B,CACjC,EAQMC,EAA8B,CAChC,CAAE,IAAK,gBAAiB,YAAa,4CAA6C,QAAS,EAAA,EAC3F,CAAE,IAAK,iBAAkB,YAAa,6CAA8C,QAAS,EAAA,EAC7F,CAAE,IAAK,kBAAmB,YAAa,sCAAuC,QAAS,EAAA,CAC3F,EAEaC,GAA6B,IAAM,CAC5C,KAAM,CAACC,EAAOC,CAAQ,EAAIZ,EAAgB,uBAAwBS,CAAY,EAExEI,EAAcZ,GAAgB,CAChCW,EAAUE,GACNA,EAAa,IAAIC,GACbA,EAAK,MAAQd,EAAM,CAAE,GAAGc,EAAM,QAAS,CAACA,EAAK,SAAYA,CAAA,CAC7D,CAER,EAEA,OACIC,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,OACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,sDACV,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAgB,EACjBD,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,2BAAA,CAAyB,CAAA,EACpD,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,2DAAA,CAAyD,CAAA,EAChG,EACAA,MAAC,MAAA,CAAI,UAAU,2DACX,eAAC,MAAA,CAAI,UAAU,YACV,SAAAN,EAAM,IAAKI,GACRC,EAAAA,KAAC,MAAA,CAAmB,UAAU,gEAC1B,SAAA,CAAAA,OAAC,MAAA,CACG,SAAA,CAAAC,EAAAA,IAAC,IAAA,CAAE,UAAU,2BAA4B,SAAAF,EAAK,IAAI,EAClDE,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,WAAA,CAAY,CAAA,EAC5D,EACAD,EAAAA,KAAC,QAAA,CAAM,UAAU,mDACb,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACG,KAAK,WACL,QAASF,EAAK,QACd,SAAU,IAAMF,EAAWE,EAAK,GAAG,EACnC,UAAU,cAAA,CAAA,EAEdE,EAAAA,IAAC,MAAA,CAAI,UAAU,+UAAA,CAAgV,CAAA,CAAA,CACnW,CAAA,CAAA,EAbMF,EAAK,GAcf,CACH,CAAA,CACL,CAAA,CACJ,CAAA,EACJ,CAER"}
assets/FocusMode-DoTVLnM8.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as t}from"./react-_fH1j4AW.js";import{E as i}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const at=({toggleFocusMode:r})=>t.jsxs("div",{className:"flex flex-col items-center justify-center h-full p-8 text-center text-slate-400",children:[t.jsx("div",{className:"text-6xl mb-4","aria-hidden":"true",children:t.jsx(i,{})}),t.jsx("h1",{className:"text-3xl font-bold text-slate-200 mb-2",children:"Focus Mode"}),t.jsx("p",{className:"text-lg mb-4 max-w-md",children:"Hide all UI distractions and focus on the current feature."}),t.jsx("button",{onClick:()=>r==null?void 0:r(!0),className:"px-8 py-4 bg-cyan-500 text-slate-900 font-bold rounded-lg text-lg hover:bg-cyan-400",children:"Enter Focus Mode"}),t.jsx("p",{className:"text-xs text-slate-500 mt-4",children:"Press 'Esc' to exit."})]});export{at as FocusMode};
2
+ //# sourceMappingURL=FocusMode-DoTVLnM8.js.map
assets/FocusMode-DoTVLnM8.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"FocusMode-DoTVLnM8.js","sources":["../../components/features/FocusMode.tsx"],"sourcesContent":["import React from 'react';\nimport { EyeIcon } from '../icons/FeatureIcons.tsx';\n\ninterface FocusModeProps {\n toggleFocusMode?: (isFocused: boolean) => void;\n}\n\nexport const FocusMode: React.FC<FocusModeProps> = ({ toggleFocusMode }) => {\n return (\n <div className=\"flex flex-col items-center justify-center h-full p-8 text-center text-slate-400\">\n <div className=\"text-6xl mb-4\" aria-hidden=\"true\">\n <EyeIcon />\n </div>\n <h1 className=\"text-3xl font-bold text-slate-200 mb-2\">\n Focus Mode\n </h1>\n <p className=\"text-lg mb-4 max-w-md\">\n Hide all UI distractions and focus on the current feature.\n </p>\n <button\n onClick={() => toggleFocusMode?.(true)}\n className=\"px-8 py-4 bg-cyan-500 text-slate-900 font-bold rounded-lg text-lg hover:bg-cyan-400\"\n >\n Enter Focus Mode\n </button>\n <p className=\"text-xs text-slate-500 mt-4\">Press 'Esc' to exit.</p>\n </div>\n );\n};"],"names":["FocusMode","toggleFocusMode","jsxs","jsx","EyeIcon"],"mappings":"qxEAOO,MAAMA,GAAsC,CAAC,CAAE,gBAAAC,KAE9CC,EAAAA,KAAC,MAAA,CAAI,UAAU,kFACX,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,gBAAgB,cAAY,OACvC,SAAAA,EAAAA,IAACC,IAAQ,CAAA,CACb,EACAD,EAAAA,IAAC,KAAA,CAAG,UAAU,yCAAyC,SAAA,aAEvD,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,wBAAwB,SAAA,6DAErC,EACAA,EAAAA,IAAC,SAAA,CACG,QAAS,IAAMF,GAAA,YAAAA,EAAkB,IACjC,UAAU,sFACb,SAAA,kBAAA,CAAA,EAGAE,EAAAA,IAAC,IAAA,CAAE,UAAU,8BAA8B,SAAA,sBAAA,CAAoB,CAAA,EACpE"}
assets/FontPairingTool-CfWAHb2Z.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r as m,j as o}from"./react-_fH1j4AW.js";import{E as c}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const d=["Roboto","Open Sans","Lato","Montserrat","Oswald","Source Sans Pro","Raleway","Poppins","Nunito","Merriweather"],yo=()=>{const[i,n]=m.useState("Oswald"),[r,a]=m.useState("Roboto");m.useEffect(()=>{const s=[i,r].filter(t=>t).join("|");if(s){const t=document.createElement("link");return t.href=`https://fonts.googleapis.com/css?family=${s.replace(/ /g,"+")}:400,700&display=swap`,t.rel="stylesheet",document.head.appendChild(t),()=>{document.head.removeChild(t)}}},[i,r]);const l=({label:s,value:t,onChange:p})=>o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium text-slate-400",children:s}),o.jsx("select",{value:t,onChange:e=>p(e.target.value),className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700",children:d.map(e=>o.jsx("option",{value:e,children:e},e))})]});return o.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[o.jsxs("header",{className:"mb-6",children:[o.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[o.jsx(c,{}),o.jsx("span",{className:"ml-3",children:"Font Pairing Tool"})]}),o.jsx("p",{className:"text-slate-400 mt-1",children:"Preview Google Font combinations for your projects."})]}),o.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0",children:[o.jsxs("div",{className:"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg",children:[o.jsx("h3",{className:"text-xl font-bold",children:"Controls"}),o.jsx(l,{label:"Heading Font",value:i,onChange:n}),o.jsx(l,{label:"Body Font",value:r,onChange:a})]}),o.jsxs("div",{className:"lg:col-span-2 bg-slate-900 rounded-lg p-8 overflow-y-auto",children:[o.jsx("h2",{className:"text-4xl font-bold mb-4",style:{fontFamily:i},children:"The Quick Brown Fox Jumps Over the Lazy Dog"}),o.jsx("p",{className:"text-lg",style:{fontFamily:r},children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat."})]})]})]})};export{yo as FontPairingTool};
2
+ //# sourceMappingURL=FontPairingTool-CfWAHb2Z.js.map
assets/FontPairingTool-CfWAHb2Z.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"FontPairingTool-CfWAHb2Z.js","sources":["../../components/features/FontPairingTool.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { EyeIcon } from '../icons/FeatureIcons.tsx';\n\nconst popularFonts = [\n 'Roboto', 'Open Sans', 'Lato', 'Montserrat', 'Oswald', 'Source Sans Pro', 'Raleway', 'Poppins', 'Nunito', 'Merriweather'\n];\n\nexport const FontPairingTool: React.FC = () => {\n const [headingFont, setHeadingFont] = useState('Oswald');\n const [bodyFont, setBodyFont] = useState('Roboto');\n\n useEffect(() => {\n const fontsToLoad = [headingFont, bodyFont].filter(f => f).join('|');\n if (fontsToLoad) {\n const link = document.createElement('link');\n link.href = `https://fonts.googleapis.com/css?family=${fontsToLoad.replace(/ /g, '+')}:400,700&display=swap`;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n return () => {\n document.head.removeChild(link);\n };\n }\n }, [headingFont, bodyFont]);\n \n const FontSelector: React.FC<{ label: string, value: string, onChange: (font: string) => void }> = ({ label, value, onChange }) => (\n <div>\n <label className=\"block text-sm font-medium text-slate-400\">{label}</label>\n <select value={value} onChange={e => onChange(e.target.value)} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\">\n {popularFonts.map(font => <option key={font} value={font}>{font}</option>)}\n </select>\n </div>\n );\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <EyeIcon />\n <span className=\"ml-3\">Font Pairing Tool</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Preview Google Font combinations for your projects.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0\">\n <div className=\"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg\">\n <h3 className=\"text-xl font-bold\">Controls</h3>\n <FontSelector label=\"Heading Font\" value={headingFont} onChange={setHeadingFont} />\n <FontSelector label=\"Body Font\" value={bodyFont} onChange={setBodyFont} />\n </div>\n <div className=\"lg:col-span-2 bg-slate-900 rounded-lg p-8 overflow-y-auto\">\n <h2 className=\"text-4xl font-bold mb-4\" style={{ fontFamily: headingFont }}>\n The Quick Brown Fox Jumps Over the Lazy Dog\n </h2>\n <p className=\"text-lg\" style={{ fontFamily: bodyFont }}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat.\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["popularFonts","FontPairingTool","headingFont","setHeadingFont","useState","bodyFont","setBodyFont","useEffect","fontsToLoad","f","link","FontSelector","label","value","onChange","jsx","font","jsxs","EyeIcon"],"mappings":"4xEAGA,MAAMA,EAAe,CACjB,SAAU,YAAa,OAAQ,aAAc,SAAU,kBAAmB,UAAW,UAAW,SAAU,cAC9G,EAEaC,GAA4B,IAAM,CAC3C,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAS,QAAQ,EACjD,CAACC,EAAUC,CAAW,EAAIF,EAAAA,SAAS,QAAQ,EAEjDG,EAAAA,UAAU,IAAM,CACZ,MAAMC,EAAc,CAACN,EAAaG,CAAQ,EAAE,OAAOI,GAAKA,CAAC,EAAE,KAAK,GAAG,EACnE,GAAID,EAAa,CACb,MAAME,EAAO,SAAS,cAAc,MAAM,EAC1C,OAAAA,EAAK,KAAO,2CAA2CF,EAAY,QAAQ,KAAM,GAAG,CAAC,wBACrFE,EAAK,IAAM,aACX,SAAS,KAAK,YAAYA,CAAI,EACvB,IAAM,CACT,SAAS,KAAK,YAAYA,CAAI,CAClC,CACJ,CACJ,EAAG,CAACR,EAAaG,CAAQ,CAAC,EAE1B,MAAMM,EAA6F,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,SAAAC,CAAA,WAC/G,MAAA,CACG,SAAA,CAAAC,EAAAA,IAAC,QAAA,CAAM,UAAU,2CAA4C,SAAAH,EAAM,EACnEG,EAAAA,IAAC,UAAO,MAAAF,EAAc,YAAeC,EAAS,EAAE,OAAO,KAAK,EAAG,UAAU,wEACpE,SAAAd,EAAa,OAAYe,EAAAA,IAAC,SAAA,CAAkB,MAAOC,EAAO,SAAAA,GAApBA,CAAyB,CAAS,CAAA,CAC7E,CAAA,EACJ,EAGJ,OACIC,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,OACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,sDACV,SAAA,CAAAF,EAAAA,IAACG,EAAA,EAAQ,EACTH,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,mBAAA,CAAiB,CAAA,EAC5C,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,qDAAA,CAAmD,CAAA,EAC1F,EACAE,EAAAA,KAAC,MAAA,CAAI,UAAU,0DACX,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,mEACX,SAAA,CAAAF,EAAAA,IAAC,KAAA,CAAG,UAAU,oBAAoB,SAAA,WAAQ,QACzCJ,EAAA,CAAa,MAAM,eAAe,MAAOT,EAAa,SAAUC,EAAgB,QAChFQ,EAAA,CAAa,MAAM,YAAY,MAAON,EAAU,SAAUC,CAAA,CAAa,CAAA,EAC5E,EACAW,EAAAA,KAAC,MAAA,CAAI,UAAU,4DACX,SAAA,CAAAF,EAAAA,IAAC,KAAA,CAAG,UAAU,0BAA0B,MAAO,CAAE,WAAYb,CAAA,EAAe,SAAA,6CAAA,CAE5E,EACAa,EAAAA,IAAC,KAAE,UAAU,UAAU,MAAO,CAAE,WAAYV,CAAA,EAAY,SAAA,sWAAA,CAExD,CAAA,CAAA,CACJ,CAAA,CAAA,CACJ,CAAA,EACJ,CAER"}
assets/FontPreviewPicker-Bj6wyS-i.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r,j as e}from"./react-_fH1j4AW.js";import{E as p}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const a=["Roboto","Open Sans","Lato","Montserrat","Oswald","Source Sans Pro","Raleway","Poppins","Nunito","Merriweather"],ge=()=>{const[o,l]=r.useState("Roboto"),[s,m]=r.useState("The quick brown fox jumps over the lazy dog.");r.useEffect(()=>{if(o){const t=document.createElement("link");return t.href=`https://fonts.googleapis.com/css?family=${o.replace(/ /g,"+")}&display=swap`,t.rel="stylesheet",document.head.appendChild(t),()=>{document.head.removeChild(t)}}},[o]);const i=`@import url('https://fonts.googleapis.com/css?family=${o.replace(/ /g,"+")}&display=swap');`;return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(p,{}),e.jsx("span",{className:"ml-3",children:"Font Preview & Picker"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Preview Google Fonts and get the CSS import rule."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0",children:[e.jsxs("div",{className:"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg",children:[e.jsx("h3",{className:"text-xl font-bold",children:"Controls"}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"font-select",className:"block text-sm font-medium text-slate-400",children:"Select Font"}),e.jsx("select",{id:"font-select",value:o,onChange:t=>l(t.target.value),className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700",children:a.map(t=>e.jsx("option",{value:t,children:t},t))})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"preview-text",className:"block text-sm font-medium text-slate-400",children:"Preview Text"}),e.jsx("textarea",{id:"preview-text",value:s,onChange:t=>m(t.target.value),className:"w-full mt-1 p-2 rounded-md bg-slate-800 border border-slate-700 h-24 resize-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-slate-400",children:"CSS Import Rule"}),e.jsxs("div",{className:"relative mt-1",children:[e.jsx("pre",{className:"bg-slate-900 p-2 rounded-md text-cyan-300 text-xs overflow-x-auto",children:i}),e.jsx("button",{onClick:()=>navigator.clipboard.writeText(i),className:"absolute top-1 right-1 px-2 py-0.5 bg-slate-700 hover:bg-slate-600 rounded-md text-xs",children:"Copy"})]})]})]}),e.jsx("div",{className:"lg:col-span-2 bg-slate-900 rounded-lg p-8 flex items-center justify-center",children:e.jsx("p",{className:"text-4xl",style:{fontFamily:o},children:s})})]})]})};export{ge as FontPreviewPicker};
2
+ //# sourceMappingURL=FontPreviewPicker-Bj6wyS-i.js.map
assets/FontPreviewPicker-Bj6wyS-i.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"FontPreviewPicker-Bj6wyS-i.js","sources":["../../components/features/FontPreviewPicker.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { EyeIcon } from '../icons/FeatureIcons.tsx';\n\nconst popularFonts = [\n 'Roboto', 'Open Sans', 'Lato', 'Montserrat', 'Oswald', 'Source Sans Pro', 'Raleway', 'Poppins', 'Nunito', 'Merriweather'\n];\n\nexport const FontPreviewPicker: React.FC = () => {\n const [selectedFont, setSelectedFont] = useState('Roboto');\n const [previewText, setPreviewText] = useState('The quick brown fox jumps over the lazy dog.');\n\n useEffect(() => {\n if (selectedFont) {\n const link = document.createElement('link');\n link.href = `https://fonts.googleapis.com/css?family=${selectedFont.replace(/ /g, '+')}&display=swap`;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n return () => {\n document.head.removeChild(link);\n };\n }\n }, [selectedFont]);\n \n const importRule = `@import url('https://fonts.googleapis.com/css?family=${selectedFont.replace(/ /g, '+')}&display=swap');`;\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <EyeIcon />\n <span className=\"ml-3\">Font Preview & Picker</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Preview Google Fonts and get the CSS import rule.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0\">\n <div className=\"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg\">\n <h3 className=\"text-xl font-bold\">Controls</h3>\n <div>\n <label htmlFor=\"font-select\" className=\"block text-sm font-medium text-slate-400\">Select Font</label>\n <select id=\"font-select\" value={selectedFont} onChange={e => setSelectedFont(e.target.value)} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\">\n {popularFonts.map(font => <option key={font} value={font}>{font}</option>)}\n </select>\n </div>\n <div>\n <label htmlFor=\"preview-text\" className=\"block text-sm font-medium text-slate-400\">Preview Text</label>\n <textarea id=\"preview-text\" value={previewText} onChange={e => setPreviewText(e.target.value)} className=\"w-full mt-1 p-2 rounded-md bg-slate-800 border border-slate-700 h-24 resize-none\"></textarea>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-slate-400\">CSS Import Rule</label>\n <div className=\"relative mt-1\">\n <pre className=\"bg-slate-900 p-2 rounded-md text-cyan-300 text-xs overflow-x-auto\">{importRule}</pre>\n <button onClick={() => navigator.clipboard.writeText(importRule)} className=\"absolute top-1 right-1 px-2 py-0.5 bg-slate-700 hover:bg-slate-600 rounded-md text-xs\">Copy</button>\n </div>\n </div>\n </div>\n <div className=\"lg:col-span-2 bg-slate-900 rounded-lg p-8 flex items-center justify-center\">\n <p className=\"text-4xl\" style={{ fontFamily: selectedFont }}>\n {previewText}\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["popularFonts","FontPreviewPicker","selectedFont","setSelectedFont","useState","previewText","setPreviewText","useEffect","link","importRule","jsxs","jsx","EyeIcon","e","font"],"mappings":"uxEAGA,MAAMA,EAAe,CACjB,SAAU,YAAa,OAAQ,aAAc,SAAU,kBAAmB,UAAW,UAAW,SAAU,cAC9G,EAEaC,GAA8B,IAAM,CAC7C,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAS,QAAQ,EACnD,CAACC,EAAaC,CAAc,EAAIF,EAAAA,SAAS,8CAA8C,EAE7FG,EAAAA,UAAU,IAAM,CACZ,GAAIL,EAAc,CACd,MAAMM,EAAO,SAAS,cAAc,MAAM,EAC1C,OAAAA,EAAK,KAAO,2CAA2CN,EAAa,QAAQ,KAAM,GAAG,CAAC,gBACtFM,EAAK,IAAM,aACX,SAAS,KAAK,YAAYA,CAAI,EACvB,IAAM,CACT,SAAS,KAAK,YAAYA,CAAI,CAClC,CACJ,CACJ,EAAG,CAACN,CAAY,CAAC,EAEjB,MAAMO,EAAa,wDAAwDP,EAAa,QAAQ,KAAM,GAAG,CAAC,mBAE1G,OACIQ,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,OACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,sDACV,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAQ,EACTD,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,uBAAA,CAAqB,CAAA,EAChD,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,mDAAA,CAAiD,CAAA,EACxF,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,0DACX,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,mEACX,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,oBAAoB,SAAA,WAAQ,SACzC,MAAA,CACG,SAAA,CAAAA,MAAC,QAAA,CAAM,QAAQ,cAAc,UAAU,2CAA2C,SAAA,cAAW,EAC7FA,EAAAA,IAAC,SAAA,CAAO,GAAG,cAAc,MAAOT,EAAc,SAAUW,GAAKV,EAAgBU,EAAE,OAAO,KAAK,EAAG,UAAU,wEACnG,SAAAb,EAAa,IAAIc,GAAQH,EAAAA,IAAC,SAAA,CAAkB,MAAOG,EAAO,SAAAA,CAAA,EAApBA,CAAyB,CAAS,CAAA,CAC7E,CAAA,EACJ,SACC,MAAA,CACG,SAAA,CAAAH,MAAC,QAAA,CAAM,QAAQ,eAAe,UAAU,2CAA2C,SAAA,eAAY,EAC/FA,EAAAA,IAAC,WAAA,CAAS,GAAG,eAAe,MAAON,EAAa,SAAUQ,GAAKP,EAAeO,EAAE,OAAO,KAAK,EAAG,UAAU,kFAAA,CAAmF,CAAA,EAChM,SACC,MAAA,CACG,SAAA,CAAAF,EAAAA,IAAC,QAAA,CAAM,UAAU,2CAA2C,SAAA,kBAAe,EAC3ED,EAAAA,KAAC,MAAA,CAAI,UAAU,gBACX,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,oEAAqE,SAAAF,EAAW,EAC/FE,EAAAA,IAAC,SAAA,CAAO,QAAS,IAAM,UAAU,UAAU,UAAUF,CAAU,EAAG,UAAU,wFAAwF,SAAA,MAAA,CAAI,CAAA,CAAA,CAC5K,CAAA,CAAA,CACJ,CAAA,EACJ,EACAE,EAAAA,IAAC,MAAA,CAAI,UAAU,6EACX,eAAC,IAAA,CAAE,UAAU,WAAW,MAAO,CAAE,WAAYT,CAAA,EACxC,WACL,CAAA,CACJ,CAAA,CAAA,CACJ,CAAA,EACJ,CAER"}
assets/GraphqlRunner-Dr-Ox09F.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import{r,j as e}from"./react-_fH1j4AW.js";import{S as j}from"./index-Nqm_ElTk.js";import{L as u}from"./LoadingSpinner-C3NwW9hm.js";import{JsonTreeNavigator as N}from"./JsonTreeNavigator-CGuqWmNG.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const v=`query {
2
+ character(id: 1) {
3
+ name
4
+ status
5
+ species
6
+ image
7
+ }
8
+ }`,Je=()=>{const[m,f]=r.useState("https://rickandmortyapi.com/graphql"),[n,h]=r.useState(v),[i,g]=r.useState(""),[p,x]=r.useState(null),[o,c]=r.useState(!1),[d,l]=r.useState(""),b=r.useCallback(async()=>{c(!0),l(""),x(null);let t={};try{i.trim()&&(t=JSON.parse(i))}catch{l("Invalid JSON in variables."),c(!1);return}try{const s=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:n,variables:t})}),a=await s.json();s.ok?x(a):l(a.errors?JSON.stringify(a.errors,null,2):"An unknown error occurred.")}catch(s){const a=s instanceof Error?s.message:"An unknown error occurred.";l(`Request failed: ${a}.`)}finally{c(!1)}},[m,n,i]);return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(j,{}),e.jsx("span",{className:"ml-3",children:"GraphQL Runner"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Send queries and mutations to a GraphQL endpoint."})]}),e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("input",{type:"text",value:m,onChange:t=>f(t.target.value),className:"flex-grow px-4 py-2 rounded-md bg-slate-800 border border-slate-700 font-mono text-sm"}),e.jsx("button",{onClick:b,disabled:o,className:"px-6 py-2 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400 disabled:bg-slate-600 flex items-center gap-2",children:o?e.jsx(u,{}):"Execute"})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 flex-grow min-h-0",children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col flex-1",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Query"}),e.jsx("textarea",{value:n,onChange:t=>h(t.target.value),className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm"})]}),e.jsxs("div",{className:"flex flex-col flex-1",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Variables (JSON)"}),e.jsx("textarea",{value:i,onChange:t=>g(t.target.value),className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm"})]})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Response"}),e.jsxs("div",{className:"flex-grow p-4 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto",children:[o&&e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(u,{})}),d&&e.jsx("pre",{className:"text-red-400 whitespace-pre-wrap",children:d}),p&&!o&&e.jsx(N,{data:p}),!o&&!p&&!d&&e.jsx("div",{className:"text-slate-500 h-full flex items-center justify-center",children:"Response will appear here."})]})]})]})]})};export{Je as GraphqlRunner};
9
+ //# sourceMappingURL=GraphqlRunner-Dr-Ox09F.js.map
assets/GraphqlRunner-Dr-Ox09F.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"GraphqlRunner-Dr-Ox09F.js","sources":["../../components/features/GraphqlRunner.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { ServerIcon } from '../icons/FeatureIcons.tsx';\nimport { LoadingSpinner } from './shared/LoadingSpinner.tsx';\nimport { JsonTreeNavigator } from './JsonTreeNavigator.tsx';\n\nconst defaultQuery = `query {\n character(id: 1) {\n name\n status\n species\n image\n }\n}`;\n\nconst defaultVariables = `{\n \"id\": 1\n}`;\n\nexport const GraphqlRunner: React.FC = () => {\n const [endpoint, setEndpoint] = useState('https://rickandmortyapi.com/graphql');\n const [query, setQuery] = useState(defaultQuery);\n const [variables, setVariables] = useState('');\n const [response, setResponse] = useState<any>(null);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [error, setError] = useState<string>('');\n\n const handleSendRequest = useCallback(async () => {\n setIsLoading(true);\n setError('');\n setResponse(null);\n \n let parsedVariables = {};\n try {\n if (variables.trim()) {\n parsedVariables = JSON.parse(variables);\n }\n } catch (e) {\n setError('Invalid JSON in variables.');\n setIsLoading(false);\n return;\n }\n\n try {\n const res = await fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ query, variables: parsedVariables }),\n });\n const data = await res.json();\n if (res.ok) {\n setResponse(data);\n } else {\n setError(data.errors ? JSON.stringify(data.errors, null, 2) : 'An unknown error occurred.');\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred.';\n setError(`Request failed: ${errorMessage}.`);\n } finally {\n setIsLoading(false);\n }\n }, [endpoint, query, variables]);\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <ServerIcon />\n <span className=\"ml-3\">GraphQL Runner</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Send queries and mutations to a GraphQL endpoint.</p>\n </header>\n <div className=\"flex items-center gap-2 mb-4\">\n <input\n type=\"text\"\n value={endpoint}\n onChange={(e) => setEndpoint(e.target.value)}\n className=\"flex-grow px-4 py-2 rounded-md bg-slate-800 border border-slate-700 font-mono text-sm\"\n />\n <button\n onClick={handleSendRequest}\n disabled={isLoading}\n className=\"px-6 py-2 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400 disabled:bg-slate-600 flex items-center gap-2\"\n >\n {isLoading ? <LoadingSpinner /> : 'Execute'}\n </button>\n </div>\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6 flex-grow min-h-0\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-col flex-1\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Query</label>\n <textarea value={query} onChange={e => setQuery(e.target.value)} className=\"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm\" />\n </div>\n <div className=\"flex flex-col flex-1\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Variables (JSON)</label>\n <textarea value={variables} onChange={e => setVariables(e.target.value)} className=\"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm\" />\n </div>\n </div>\n <div className=\"flex flex-col\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Response</label>\n <div className=\"flex-grow p-4 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto\">\n {isLoading && <div className=\"flex items-center justify-center h-full\"><LoadingSpinner /></div>}\n {error && <pre className=\"text-red-400 whitespace-pre-wrap\">{error}</pre>}\n {response && !isLoading && <JsonTreeNavigator data={response} />}\n {!isLoading && !response && !error && <div className=\"text-slate-500 h-full flex items-center justify-center\">Response will appear here.</div>}\n </div>\n </div>\n </div>\n </div>\n );\n};"],"names":["defaultQuery","GraphqlRunner","endpoint","setEndpoint","useState","query","setQuery","variables","setVariables","response","setResponse","isLoading","setIsLoading","error","setError","handleSendRequest","useCallback","parsedVariables","res","data","err","errorMessage","jsxs","jsx","ServerIcon","e","LoadingSpinner","JsonTreeNavigator"],"mappings":"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"}
assets/ImageOptimizer-Dyqh7NzQ.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r as o,j as t}from"./react-_fH1j4AW.js";import{P as I}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const Rt=()=>{const[m,d]=o.useState(null),[b,N]=o.useState(0),[c,x]=o.useState(null),[g,h]=o.useState(0),[p,w]=o.useState(.8),[a,y]=o.useState(1024),u=o.useRef(null),z=e=>{var l;const i=(l=e.target.files)==null?void 0:l[0];if(i){N(i.size);const s=new FileReader;s.onload=n=>{var r;d((r=n.target)==null?void 0:r.result),x(null),h(0)},s.readAsDataURL(i)}},v=()=>{if(!m)return;const e=new Image;e.src=m,e.onload=()=>{const i=document.createElement("canvas"),l=a/e.width,s=e.width>a?a:e.width,n=e.width>a?e.height*l:e.height;i.width=s,i.height=n;const r=i.getContext("2d");r==null||r.drawImage(e,0,0,s,n);const j=i.toDataURL("image/jpeg",p);x(j),h(j.length)}},f=e=>{if(e===0)return"0 Bytes";const i=1024,l=["Bytes","KB","MB","GB"],s=Math.floor(Math.log(e)/Math.log(i));return parseFloat((e/Math.pow(i,s)).toFixed(2))+" "+l[s]};return t.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[t.jsxs("header",{className:"mb-6",children:[t.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[t.jsx(I,{}),t.jsx("span",{className:"ml-3",children:"Image Optimizer"})]}),t.jsx("p",{className:"text-slate-400 mt-1",children:"Resize and compress JPEG images in your browser."})]}),!m&&t.jsxs("div",{className:"flex-grow flex items-center justify-center",children:[t.jsx("button",{onClick:()=>{var e;return(e=u.current)==null?void 0:e.click()},className:"px-8 py-4 bg-cyan-500 text-slate-900 font-bold rounded-lg text-lg",children:"Upload an Image"}),t.jsx("input",{type:"file",ref:u,onChange:z,accept:"image/*",className:"hidden"})]}),m&&t.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0",children:[t.jsxs("div",{className:"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg",children:[t.jsx("h3",{className:"text-xl font-bold",children:"Controls"}),t.jsxs("div",{children:[t.jsxs("label",{htmlFor:"maxWidth",className:"block text-sm font-medium text-slate-400",children:["Max Width (",a,"px)"]}),t.jsx("input",{id:"maxWidth",type:"range",min:"128",max:"4096",step:"128",value:a,onChange:e=>y(Number(e.target.value)),className:"w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer"})]}),t.jsxs("div",{children:[t.jsxs("label",{htmlFor:"quality",className:"block text-sm font-medium text-slate-400",children:["JPEG Quality (",Math.round(p*100),"%)"]}),t.jsx("input",{id:"quality",type:"range",min:"0.1",max:"1",step:"0.1",value:p,onChange:e=>w(Number(e.target.value)),className:"w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer"})]}),t.jsx("button",{onClick:v,className:"w-full mt-4 px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md",children:"Optimize"}),t.jsx("button",{onClick:()=>d(null),className:"w-full mt-2 px-6 py-2 bg-slate-700 text-slate-200 font-bold rounded-md",children:"Choose Another Image"})]}),t.jsxs("div",{className:"lg:col-span-2 grid grid-cols-2 gap-4 min-h-0",children:[t.jsxs("div",{className:"flex flex-col items-center p-4 bg-slate-900 rounded-lg",children:[t.jsxs("h4",{className:"font-bold",children:["Original (",f(b),")"]}),t.jsx("img",{src:m,className:"max-w-full max-h-96 object-contain mt-4"})]}),t.jsxs("div",{className:"flex flex-col items-center p-4 bg-slate-900 rounded-lg",children:[t.jsxs("h4",{className:"font-bold",children:["Optimized ",g>0&&`(~${f(g)})`]}),c?t.jsxs(t.Fragment,{children:[t.jsx("img",{src:c,className:"max-w-full max-h-96 object-contain mt-4"}),t.jsx("a",{href:c,download:"optimized-image.jpg",className:"mt-4 px-4 py-2 bg-green-500 text-white font-bold rounded-md",children:"Download"})]}):t.jsx("div",{className:"flex-grow flex items-center justify-center text-slate-500",children:"Click Optimize"})]})]})]})]})};export{Rt as ImageOptimizer};
2
+ //# sourceMappingURL=ImageOptimizer-Dyqh7NzQ.js.map
assets/ImageOptimizer-Dyqh7NzQ.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"ImageOptimizer-Dyqh7NzQ.js","sources":["../../components/features/ImageOptimizer.tsx"],"sourcesContent":["\nimport React, { useState, useRef } from 'react';\nimport { PhotoIcon } from '../icons/FeatureIcons.tsx';\n\nexport const ImageOptimizer: React.FC = () => {\n const [originalImage, setOriginalImage] = useState<string | null>(null);\n const [originalSize, setOriginalSize] = useState(0);\n const [optimizedImage, setOptimizedImage] = useState<string | null>(null);\n const [optimizedSize, setOptimizedSize] = useState(0);\n const [quality, setQuality] = useState(0.8);\n const [maxWidth, setMaxWidth] = useState(1024);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleImageUpload = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (file) {\n setOriginalSize(file.size);\n const reader = new FileReader();\n reader.onload = (event) => {\n setOriginalImage(event.target?.result as string);\n setOptimizedImage(null);\n setOptimizedSize(0);\n };\n reader.readAsDataURL(file);\n }\n };\n \n const optimizeImage = () => {\n if (!originalImage) return;\n\n const img = new Image();\n img.src = originalImage;\n img.onload = () => {\n const canvas = document.createElement('canvas');\n const scaleFactor = maxWidth / img.width;\n const newWidth = img.width > maxWidth ? maxWidth : img.width;\n const newHeight = img.width > maxWidth ? img.height * scaleFactor : img.height;\n \n canvas.width = newWidth;\n canvas.height = newHeight;\n\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0, newWidth, newHeight);\n\n const dataUrl = canvas.toDataURL('image/jpeg', quality);\n setOptimizedImage(dataUrl);\n setOptimizedSize(dataUrl.length); // Approximation, not exact file size\n };\n };\n \n const formatBytes = (bytes: number) => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n };\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <PhotoIcon />\n <span className=\"ml-3\">Image Optimizer</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Resize and compress JPEG images in your browser.</p>\n </header>\n \n {!originalImage && (\n <div className=\"flex-grow flex items-center justify-center\">\n <button onClick={() => fileInputRef.current?.click()} className=\"px-8 py-4 bg-cyan-500 text-slate-900 font-bold rounded-lg text-lg\">\n Upload an Image\n </button>\n <input type=\"file\" ref={fileInputRef} onChange={handleImageUpload} accept=\"image/*\" className=\"hidden\" />\n </div>\n )}\n\n {originalImage && (\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-3 gap-6 min-h-0\">\n <div className=\"lg:col-span-1 flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg\">\n <h3 className=\"text-xl font-bold\">Controls</h3>\n <div>\n <label htmlFor=\"maxWidth\" className=\"block text-sm font-medium text-slate-400\">Max Width ({maxWidth}px)</label>\n <input id=\"maxWidth\" type=\"range\" min=\"128\" max=\"4096\" step=\"128\" value={maxWidth} onChange={e => setMaxWidth(Number(e.target.value))} className=\"w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer\" />\n </div>\n <div>\n <label htmlFor=\"quality\" className=\"block text-sm font-medium text-slate-400\">JPEG Quality ({Math.round(quality*100)}%)</label>\n <input id=\"quality\" type=\"range\" min=\"0.1\" max=\"1\" step=\"0.1\" value={quality} onChange={e => setQuality(Number(e.target.value))} className=\"w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer\" />\n </div>\n <button onClick={optimizeImage} className=\"w-full mt-4 px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md\">Optimize</button>\n <button onClick={() => setOriginalImage(null)} className=\"w-full mt-2 px-6 py-2 bg-slate-700 text-slate-200 font-bold rounded-md\">Choose Another Image</button>\n\n </div>\n <div className=\"lg:col-span-2 grid grid-cols-2 gap-4 min-h-0\">\n <div className=\"flex flex-col items-center p-4 bg-slate-900 rounded-lg\">\n <h4 className=\"font-bold\">Original ({formatBytes(originalSize)})</h4>\n <img src={originalImage} className=\"max-w-full max-h-96 object-contain mt-4\" />\n </div>\n <div className=\"flex flex-col items-center p-4 bg-slate-900 rounded-lg\">\n <h4 className=\"font-bold\">Optimized {optimizedSize > 0 && `(~${formatBytes(optimizedSize)})`}</h4>\n {optimizedImage ? (\n <>\n <img src={optimizedImage} className=\"max-w-full max-h-96 object-contain mt-4\" />\n <a href={optimizedImage} download=\"optimized-image.jpg\" className=\"mt-4 px-4 py-2 bg-green-500 text-white font-bold rounded-md\">Download</a>\n </>\n ) : (<div className=\"flex-grow flex items-center justify-center text-slate-500\">Click Optimize</div>)}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};"],"names":["ImageOptimizer","originalImage","setOriginalImage","useState","originalSize","setOriginalSize","optimizedImage","setOptimizedImage","optimizedSize","setOptimizedSize","quality","setQuality","maxWidth","setMaxWidth","fileInputRef","useRef","handleImageUpload","file","_a","reader","event","optimizeImage","img","canvas","scaleFactor","newWidth","newHeight","ctx","dataUrl","formatBytes","bytes","k","sizes","i","jsxs","jsx","PhotoIcon","Fragment"],"mappings":"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"}
assets/JsonTreeNavigator-CGuqWmNG.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import{r as m,j as e}from"./react-_fH1j4AW.js";import{F as u}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const d=({data:t,nodeKey:o,isRoot:l=!1})=>{const[s,n]=m.useState(l),i=typeof t=="object"&&t!==null,a=()=>n(!s);if(!i)return e.jsxs("div",{className:"ml-4 pl-4 border-l border-slate-700",children:[e.jsxs("span",{className:"text-purple-400",children:[o,": "]}),e.jsx("span",{className:typeof t=="string"?"text-green-400":"text-orange-400",children:typeof t=="string"?`"${t}"`:String(t)})]});const p=Object.entries(t),r=Array.isArray(t)?"[]":"{}";return e.jsxs("div",{className:`ml-4 ${l?"":"pl-4 border-l border-slate-700"}`,children:[e.jsxs("button",{onClick:a,className:"flex items-center cursor-pointer",children:[e.jsx("span",{className:`transform transition-transform ${s?"rotate-90":"rotate-0"}`,children:"▶"}),e.jsxs("span",{className:"ml-1 text-purple-400",children:[o,":"]}),e.jsx("span",{className:"ml-2 text-slate-500",children:r[0]}),!s&&e.jsxs("span",{className:"text-slate-500",children:["...",r[1]]})]}),s&&e.jsxs("div",{children:[p.map(([c,x])=>e.jsx(d,{nodeKey:c,data:x},c)),e.jsx("div",{className:"text-slate-500 ml-4",children:r[1]})]})]})},f=({data:t})=>{const[o,l]=m.useState(`{
2
+ "id": "devcore-001",
3
+ "active": true,
4
+ "features": [
5
+ "ai-explainer",
6
+ "api-tester"
7
+ ],
8
+ "config": {
9
+ "theme": "dark",
10
+ "version": 1
11
+ }
12
+ }`),[s,n]=m.useState(null),[i,a]=m.useState(""),p=()=>{try{const r=JSON.parse(o);n(r),a("")}catch(r){r instanceof Error&&a(r.message),n(null)}};return t?e.jsx("div",{className:"font-mono text-sm",children:e.jsx(d,{data:t,nodeKey:"root",isRoot:!0})}):e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(u,{}),e.jsx("span",{className:"ml-3",children:"JSON Tree Navigator"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Paste your JSON data to visualize it as a collapsible tree."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden",children:[e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"json-input",className:"text-sm font-medium text-slate-400 mb-2",children:"JSON Input"}),e.jsx("textarea",{id:"json-input",value:o,onChange:r=>l(r.target.value),className:`flex-grow p-4 bg-slate-900 border ${i?"border-red-500":"border-slate-700"} rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none`}),i&&e.jsx("p",{className:"text-red-400 text-xs mt-1",children:i}),e.jsx("button",{onClick:p,className:"mt-4 w-full px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400",children:"Render Tree"})]}),e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Tree View"}),e.jsx("div",{className:"flex-grow p-4 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto",children:s?e.jsx(f,{data:s}):e.jsx("div",{className:"text-slate-500",children:'Click "Render Tree" to view'})})]})]})]})};export{f as JsonTreeNavigator};
13
+ //# sourceMappingURL=JsonTreeNavigator-CGuqWmNG.js.map
assets/JsonTreeNavigator-CGuqWmNG.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"JsonTreeNavigator-CGuqWmNG.js","sources":["../../components/features/JsonTreeNavigator.tsx"],"sourcesContent":["\nimport React, { useState } from 'react';\nimport { FileCodeIcon } from '../icons/FeatureIcons.tsx';\n\ninterface JsonNodeProps {\n data: any;\n nodeKey: string;\n isRoot?: boolean;\n}\n\nconst JsonNode: React.FC<JsonNodeProps> = ({ data, nodeKey, isRoot = false }) => {\n const [isOpen, setIsOpen] = useState(isRoot);\n const isObject = typeof data === 'object' && data !== null;\n\n const toggleOpen = () => setIsOpen(!isOpen);\n\n if (!isObject) {\n return (\n <div className=\"ml-4 pl-4 border-l border-slate-700\">\n <span className=\"text-purple-400\">{nodeKey}: </span>\n <span className={typeof data === 'string' ? 'text-green-400' : 'text-orange-400'}>\n {typeof data === 'string' ? `\"${data}\"` : String(data)}\n </span>\n </div>\n );\n }\n\n const entries = Object.entries(data);\n const bracket = Array.isArray(data) ? '[]' : '{}';\n\n return (\n <div className={`ml-4 ${!isRoot ? 'pl-4 border-l border-slate-700' : ''}`}>\n <button onClick={toggleOpen} className=\"flex items-center cursor-pointer\">\n <span className={`transform transition-transform ${isOpen ? 'rotate-90' : 'rotate-0'}`}>▶</span>\n <span className=\"ml-1 text-purple-400\">{nodeKey}:</span>\n <span className=\"ml-2 text-slate-500\">{bracket[0]}</span>\n {!isOpen && <span className=\"text-slate-500\">...{bracket[1]}</span>}\n </button>\n {isOpen && (\n <div>\n {entries.map(([key, value]) => (\n <JsonNode key={key} nodeKey={key} data={value} />\n ))}\n <div className=\"text-slate-500 ml-4\">{bracket[1]}</div>\n </div>\n )}\n </div>\n );\n};\n\ninterface JsonTreeNavigatorProps {\n data?: any;\n}\n\nexport const JsonTreeNavigator: React.FC<JsonTreeNavigatorProps> = ({ data }) => {\n const [jsonInput, setJsonInput] = useState('{\\n \"id\": \"devcore-001\",\\n \"active\": true,\\n \"features\": [\\n \"ai-explainer\",\\n \"api-tester\"\\n ],\\n \"config\": {\\n \"theme\": \"dark\",\\n \"version\": 1\\n }\\n}');\n const [parsedData, setParsedData] = useState<any>(null);\n const [error, setError] = useState('');\n\n const parseJson = () => {\n try {\n const parsed = JSON.parse(jsonInput);\n setParsedData(parsed);\n setError('');\n } catch (e) {\n if (e instanceof Error) setError(e.message);\n setParsedData(null);\n }\n };\n \n // If data is passed as a prop, use it directly\n if (data) {\n return (\n <div className=\"font-mono text-sm\">\n <JsonNode data={data} nodeKey=\"root\" isRoot />\n </div>\n );\n }\n \n // Standalone mode with textarea\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <FileCodeIcon />\n <span className=\"ml-3\">JSON Tree Navigator</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Paste your JSON data to visualize it as a collapsible tree.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden\">\n <div className=\"flex flex-col h-full\">\n <label htmlFor=\"json-input\" className=\"text-sm font-medium text-slate-400 mb-2\">JSON Input</label>\n <textarea\n id=\"json-input\"\n value={jsonInput}\n onChange={(e) => setJsonInput(e.target.value)}\n className={`flex-grow p-4 bg-slate-900 border ${error ? 'border-red-500' : 'border-slate-700'} rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none`}\n />\n {error && <p className=\"text-red-400 text-xs mt-1\">{error}</p>}\n <button onClick={parseJson} className=\"mt-4 w-full px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400\">\n Render Tree\n </button>\n </div>\n <div className=\"flex flex-col h-full\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Tree View</label>\n <div className=\"flex-grow p-4 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto\">\n {parsedData ? <JsonTreeNavigator data={parsedData} /> : <div className=\"text-slate-500\">Click \"Render Tree\" to view</div>}\n </div>\n </div>\n </div>\n </div>\n );\n};"],"names":["JsonNode","data","nodeKey","isRoot","isOpen","setIsOpen","useState","isObject","toggleOpen","jsxs","entries","bracket","jsx","key","value","JsonTreeNavigator","jsonInput","setJsonInput","parsedData","setParsedData","error","setError","parseJson","parsed","e","FileCodeIcon"],"mappings":"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"}
assets/LoadingSpinner-C3NwW9hm.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as e}from"./react-_fH1j4AW.js";const s=()=>e.jsxs("div",{className:"flex items-center justify-center space-x-1","aria-label":"Loading",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0s"}}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0.2s"}}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0.4s"}})]});export{s as L};
2
+ //# sourceMappingURL=LoadingSpinner-C3NwW9hm.js.map
assets/LoadingSpinner-C3NwW9hm.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"LoadingSpinner-C3NwW9hm.js","sources":["../../components/features/shared/LoadingSpinner.tsx"],"sourcesContent":["\nimport React from 'react';\n\nexport const LoadingSpinner: React.FC = () => (\n <div className=\"flex items-center justify-center space-x-1\" aria-label=\"Loading\">\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0s' }}></div>\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0.2s' }}></div>\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0.4s' }}></div>\n </div>\n);\n"],"names":["LoadingSpinner","jsxs","jsx"],"mappings":"wCAGO,MAAMA,EAA2B,IACpCC,EAAAA,KAAC,OAAI,UAAU,6CAA6C,aAAW,UACnE,SAAA,CAAAC,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,MAAQ,EAChGA,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,QAAU,EAClGA,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,OAAO,CAAG,CAAA,CAAA,CACtG"}
assets/LoadingSpinner-CeUbALLx.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{j as e}from"./react-_fH1j4AW.js";const s=()=>e.jsxs("div",{className:"flex items-center justify-center space-x-1","aria-label":"Loading",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0s"}}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0.2s"}}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-current animate-pulse",style:{animationDelay:"0.4s"}})]});export{s as L};
2
+ //# sourceMappingURL=LoadingSpinner-CeUbALLx.js.map
assets/LoadingSpinner-CeUbALLx.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"LoadingSpinner-CeUbALLx.js","sources":["../../components/shared/LoadingSpinner.tsx"],"sourcesContent":["\nimport React from 'react';\n\nexport const LoadingSpinner: React.FC = () => (\n <div className=\"flex items-center justify-center space-x-1\" aria-label=\"Loading\">\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0s' }}></div>\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0.2s' }}></div>\n <div className=\"w-2 h-2 rounded-full bg-current animate-pulse\" style={{ animationDelay: '0.4s' }}></div>\n </div>\n);\n"],"names":["LoadingSpinner","jsxs","jsx"],"mappings":"wCAGO,MAAMA,EAA2B,IACpCC,EAAAA,KAAC,OAAI,UAAU,6CAA6C,aAAW,UACnE,SAAA,CAAAC,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,MAAQ,EAChGA,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,QAAU,EAClGA,MAAC,OAAI,UAAU,gDAAgD,MAAO,CAAE,eAAgB,OAAO,CAAG,CAAA,CAAA,CACtG"}
assets/MarkdownSlides-Cu5CAhbU.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import{r as i,j as e}from"./react-_fH1j4AW.js";import{m as d}from"./marked-CesSW9Du.js";import{P as p}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const c=`# Slide 1: Welcome
2
+
3
+ This is a slide deck generated from Markdown.
4
+
5
+ - Use standard markdown syntax
6
+ - Like lists, headers, and **bold** text.
7
+
8
+ ---
9
+
10
+ # Slide 2: Features
11
+
12
+ Navigate using the buttons below.
13
+
14
+ \`\`\`javascript
15
+ console.log("Code blocks work too!");
16
+ \`\`\`
17
+
18
+ ---
19
+
20
+ # Slide 3: The End
21
+
22
+ Easy to create and present.
23
+ `,we=()=>{const[s,m]=i.useState(c),[o,l]=i.useState(0),r=i.useMemo(()=>s.split(/^-{3,}\s*$/m),[s]),a=()=>l(t=>Math.min(t+1,r.length-1)),n=()=>l(t=>Math.max(t-1,0));return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(p,{}),e.jsx("span",{className:"ml-3",children:"Markdown to Slides"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Write markdown, present it as a slideshow. Use '---' to separate slides."})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden",children:[e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"md-input",className:"text-sm font-medium text-slate-400 mb-2",children:"Markdown Editor"}),e.jsx("textarea",{id:"md-input",value:s,onChange:t=>m(t.target.value),className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none"})]}),e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Presentation View"}),e.jsxs("div",{className:"relative flex-grow flex flex-col justify-center items-center p-8 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto",children:[e.jsx("div",{className:"prose prose-lg prose-invert max-w-none w-full",dangerouslySetInnerHTML:{__html:d(r[o]||"")}}),e.jsxs("div",{className:"absolute bottom-4 left-4 right-4 flex justify-between items-center",children:[e.jsx("button",{onClick:n,disabled:o===0,className:"px-4 py-2 bg-slate-700 rounded-md disabled:opacity-50",children:"Prev"}),e.jsxs("span",{className:"text-sm text-slate-400",children:[o+1," / ",r.length]}),e.jsx("button",{onClick:a,disabled:o===r.length-1,className:"px-4 py-2 bg-slate-700 rounded-md disabled:opacity-50",children:"Next"})]})]})]})]})]})};export{we as MarkdownSlides};
24
+ //# sourceMappingURL=MarkdownSlides-Cu5CAhbU.js.map
assets/MarkdownSlides-Cu5CAhbU.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"MarkdownSlides-Cu5CAhbU.js","sources":["../../components/features/MarkdownSlides.tsx"],"sourcesContent":["\nimport React, { useState, useMemo } from 'react';\nimport { marked } from 'marked';\nimport { PhotoIcon } from '../icons/FeatureIcons.tsx';\n\nconst exampleMarkdown = `# Slide 1: Welcome\n\nThis is a slide deck generated from Markdown.\n\n- Use standard markdown syntax\n- Like lists, headers, and **bold** text.\n\n---\n\n# Slide 2: Features\n\nNavigate using the buttons below.\n\n\\`\\`\\`javascript\nconsole.log(\"Code blocks work too!\");\n\\`\\`\\`\n\n---\n\n# Slide 3: The End\n\nEasy to create and present.\n`;\n\nexport const MarkdownSlides: React.FC = () => {\n const [markdown, setMarkdown] = useState(exampleMarkdown);\n const [currentSlide, setCurrentSlide] = useState(0);\n\n const slides = useMemo(() => markdown.split(/^-{3,}\\s*$/m), [markdown]);\n\n const goToNext = () => setCurrentSlide(s => Math.min(s + 1, slides.length - 1));\n const goToPrev = () => setCurrentSlide(s => Math.max(s - 1, 0));\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <PhotoIcon />\n <span className=\"ml-3\">Markdown to Slides</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Write markdown, present it as a slideshow. Use '---' to separate slides.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 h-full overflow-hidden\">\n <div className=\"flex flex-col h-full\">\n <label htmlFor=\"md-input\" className=\"text-sm font-medium text-slate-400 mb-2\">Markdown Editor</label>\n <textarea\n id=\"md-input\"\n value={markdown}\n onChange={e => setMarkdown(e.target.value)}\n className=\"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none\"\n />\n </div>\n <div className=\"flex flex-col h-full\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Presentation View</label>\n <div className=\"relative flex-grow flex flex-col justify-center items-center p-8 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto\">\n <div\n className=\"prose prose-lg prose-invert max-w-none w-full\"\n dangerouslySetInnerHTML={{ __html: marked(slides[currentSlide] || '') }}\n />\n <div className=\"absolute bottom-4 left-4 right-4 flex justify-between items-center\">\n <button onClick={goToPrev} disabled={currentSlide === 0} className=\"px-4 py-2 bg-slate-700 rounded-md disabled:opacity-50\">Prev</button>\n <span className=\"text-sm text-slate-400\">{currentSlide + 1} / {slides.length}</span>\n <button onClick={goToNext} disabled={currentSlide === slides.length - 1} className=\"px-4 py-2 bg-slate-700 rounded-md disabled:opacity-50\">Next</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};"],"names":["exampleMarkdown","MarkdownSlides","markdown","setMarkdown","useState","currentSlide","setCurrentSlide","slides","useMemo","goToNext","s","goToPrev","jsxs","jsx","PhotoIcon","e","marked"],"mappings":"q0EAKA,MAAMA,EAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBXC,GAA2B,IAAM,CAC1C,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAASJ,CAAe,EAClD,CAACK,EAAcC,CAAe,EAAIF,EAAAA,SAAS,CAAC,EAE5CG,EAASC,EAAAA,QAAQ,IAAMN,EAAS,MAAM,aAAa,EAAG,CAACA,CAAQ,CAAC,EAEhEO,EAAW,IAAMH,EAAgBI,GAAK,KAAK,IAAIA,EAAI,EAAGH,EAAO,OAAS,CAAC,CAAC,EACxEI,EAAW,IAAML,EAAgBI,GAAK,KAAK,IAAIA,EAAI,EAAG,CAAC,CAAC,EAE9D,OACIE,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACX,SAAA,CAAAA,EAAAA,KAAC,SAAA,CAAO,UAAU,OACd,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,sDACV,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAU,EACXD,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,oBAAA,CAAkB,CAAA,EAC7C,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,sBAAsB,SAAA,0EAAA,CAAwE,CAAA,EAC/G,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,yEACX,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACV,SAAA,CAAAC,MAAC,QAAA,CAAM,QAAQ,WAAW,UAAU,0CAA0C,SAAA,kBAAe,EAC7FA,EAAAA,IAAC,WAAA,CACE,GAAG,WACH,MAAOX,EACP,SAAUa,GAAKZ,EAAYY,EAAE,OAAO,KAAK,EACzC,UAAU,+JAAA,CAAA,CACd,EACJ,EACCH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACZ,SAAA,CAAAC,EAAAA,IAAC,QAAA,CAAM,UAAU,0CAA0C,SAAA,oBAAiB,EAC5ED,EAAAA,KAAC,MAAA,CAAI,UAAU,yIACX,SAAA,CAAAC,EAAAA,IAAC,MAAA,CACG,UAAU,gDACV,wBAAyB,CAAE,OAAQG,EAAOT,EAAOF,CAAY,GAAK,EAAE,CAAA,CAAE,CAAA,EAEzEO,EAAAA,KAAC,MAAA,CAAI,UAAU,qEACZ,SAAA,CAAAC,EAAAA,IAAC,SAAA,CAAO,QAASF,EAAU,SAAUN,IAAiB,EAAG,UAAU,wDAAwD,SAAA,MAAA,CAAI,EAC/HO,EAAAA,KAAC,OAAA,CAAK,UAAU,yBAA0B,SAAA,CAAAP,EAAe,EAAE,MAAIE,EAAO,MAAA,EAAO,EAC7EM,EAAAA,IAAC,SAAA,CAAO,QAASJ,EAAU,SAAUJ,IAAiBE,EAAO,OAAS,EAAG,UAAU,wDAAwD,SAAA,MAAA,CAAI,CAAA,CAAA,CACnJ,CAAA,CAAA,CACJ,CAAA,CAAA,CACJ,CAAA,CAAA,CACJ,CAAA,EACJ,CAER"}
assets/MetaTagEditor-TdpHXMEw.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import{r as m,j as t}from"./react-_fH1j4AW.js";import{b as s}from"./index-Nqm_ElTk.js";import"./@braintree-9Zuj5s7N.js";import"./react-dom-B47xkeQg.js";import"./scheduler-DYLXRpC5.js";import"./mermaid-CwNlsT42.js";import"./dayjs-LlU9W_sF.js";import"./d3-transition-593SbTzI.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CfLzPKWk.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-Dc8HCWOS.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CXvdFQqV.js";import"./lodash-es-CKQobiyk.js";import"./d3-shape-C6amFesj.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-BchcX-lF.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-BS_sNva5.js";import"./cytoscape-Copgxxlq.js";import"./cytoscape-cose-bilkent-DNVwk4oY.js";import"./cose-base-HlRMd3jM.js";import"./layout-base-BVPXtQQC.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";const ut=()=>{const[e,a]=m.useState({title:"DevCore 100",description:"The ultimate toolkit for modern developers.",image:"https://example.com/social-card.png",url:"https://devcore100.example.com"}),r=i=>{a({...e,[i.target.name]:i.target.value})},o=m.useMemo(()=>`<!-- Primary Meta Tags -->
2
+ <title>${e.title}</title>
3
+ <meta name="title" content="${e.title}" />
4
+ <meta name="description" content="${e.description}" />
5
+
6
+ <!-- Open Graph / Facebook -->
7
+ <meta property="og:type" content="website" />
8
+ <meta property="og:url" content="${e.url}" />
9
+ <meta property="og:title" content="${e.title}" />
10
+ <meta property="og:description" content="${e.description}" />
11
+ <meta property="og:image" content="${e.image}" />
12
+
13
+ <!-- Twitter -->
14
+ <meta property="twitter:card" content="summary_large_image" />
15
+ <meta property="twitter:url" content="${e.url}" />
16
+ <meta property="twitter:title" content="${e.title}" />
17
+ <meta property="twitter:description" content="${e.description}" />
18
+ <meta property="twitter:image" content="${e.image}" />`,[e]),l=()=>{navigator.clipboard.writeText(o)};return t.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[t.jsxs("header",{className:"mb-6",children:[t.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[t.jsx(s,{}),t.jsx("span",{className:"ml-3",children:"Meta Tag Editor"})]}),t.jsx("p",{className:"text-slate-400 mt-1",children:"Generate SEO and social media meta tags for your website."})]}),t.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 min-h-0",children:[t.jsxs("div",{className:"flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg",children:[t.jsx("h3",{className:"text-xl font-bold",children:"Metadata"}),t.jsxs("div",{children:[t.jsx("label",{htmlFor:"title",className:"block text-sm font-medium text-slate-400",children:"Title"}),t.jsx("input",{type:"text",name:"title",value:e.title,onChange:r,className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700"})]}),t.jsxs("div",{children:[t.jsx("label",{htmlFor:"description",className:"block text-sm font-medium text-slate-400",children:"Description"}),t.jsx("input",{type:"text",name:"description",value:e.description,onChange:r,className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700"})]}),t.jsxs("div",{children:[t.jsx("label",{htmlFor:"url",className:"block text-sm font-medium text-slate-400",children:"Canonical URL"}),t.jsx("input",{type:"text",name:"url",value:e.url,onChange:r,className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700"})]}),t.jsxs("div",{children:[t.jsx("label",{htmlFor:"image",className:"block text-sm font-medium text-slate-400",children:"Social Image URL"}),t.jsx("input",{type:"text",name:"image",value:e.image,onChange:r,className:"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700"})]})]}),t.jsxs("div",{className:"flex flex-col",children:[t.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Generated HTML"}),t.jsxs("div",{className:"relative flex-grow",children:[t.jsx("pre",{className:"w-full h-full bg-slate-900 p-4 rounded-md text-cyan-300 text-sm overflow-auto",children:o}),t.jsx("button",{onClick:l,className:"absolute top-2 right-2 px-2 py-1 bg-slate-700 hover:bg-slate-600 rounded-md text-xs",children:"Copy"})]})]})]})]})};export{ut as MetaTagEditor};
19
+ //# sourceMappingURL=MetaTagEditor-TdpHXMEw.js.map
assets/MetaTagEditor-TdpHXMEw.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"MetaTagEditor-TdpHXMEw.js","sources":["../../components/features/MetaTagEditor.tsx"],"sourcesContent":["\nimport React, { useState, useMemo } from 'react';\nimport { CodeBracketSquareIcon } from '../icons/FeatureIcons.tsx';\n\ninterface MetaData {\n title: string;\n description: string;\n image: string;\n url: string;\n}\n\nexport const MetaTagEditor: React.FC = () => {\n const [meta, setMeta] = useState<MetaData>({\n title: 'DevCore 100',\n description: 'The ultimate toolkit for modern developers.',\n image: 'https://example.com/social-card.png',\n url: 'https://devcore100.example.com'\n });\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setMeta({ ...meta, [e.target.name]: e.target.value });\n };\n\n const generatedHtml = useMemo(() => {\n return `<!-- Primary Meta Tags -->\n<title>${meta.title}</title>\n<meta name=\"title\" content=\"${meta.title}\" />\n<meta name=\"description\" content=\"${meta.description}\" />\n\n<!-- Open Graph / Facebook -->\n<meta property=\"og:type\" content=\"website\" />\n<meta property=\"og:url\" content=\"${meta.url}\" />\n<meta property=\"og:title\" content=\"${meta.title}\" />\n<meta property=\"og:description\" content=\"${meta.description}\" />\n<meta property=\"og:image\" content=\"${meta.image}\" />\n\n<!-- Twitter -->\n<meta property=\"twitter:card\" content=\"summary_large_image\" />\n<meta property=\"twitter:url\" content=\"${meta.url}\" />\n<meta property=\"twitter:title\" content=\"${meta.title}\" />\n<meta property=\"twitter:description\" content=\"${meta.description}\" />\n<meta property=\"twitter:image\" content=\"${meta.image}\" />`;\n }, [meta]);\n \n const handleCopy = () => {\n navigator.clipboard.writeText(generatedHtml);\n };\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold text-slate-100 flex items-center\">\n <CodeBracketSquareIcon />\n <span className=\"ml-3\">Meta Tag Editor</span>\n </h1>\n <p className=\"text-slate-400 mt-1\">Generate SEO and social media meta tags for your website.</p>\n </header>\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 min-h-0\">\n <div className=\"flex flex-col gap-4 bg-slate-800/50 p-6 rounded-lg\">\n <h3 className=\"text-xl font-bold\">Metadata</h3>\n <div>\n <label htmlFor=\"title\" className=\"block text-sm font-medium text-slate-400\">Title</label>\n <input type=\"text\" name=\"title\" value={meta.title} onChange={handleChange} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\"/>\n </div>\n <div>\n <label htmlFor=\"description\" className=\"block text-sm font-medium text-slate-400\">Description</label>\n <input type=\"text\" name=\"description\" value={meta.description} onChange={handleChange} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\"/>\n </div>\n <div>\n <label htmlFor=\"url\" className=\"block text-sm font-medium text-slate-400\">Canonical URL</label>\n <input type=\"text\" name=\"url\" value={meta.url} onChange={handleChange} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\"/>\n </div>\n <div>\n <label htmlFor=\"image\" className=\"block text-sm font-medium text-slate-400\">Social Image URL</label>\n <input type=\"text\" name=\"image\" value={meta.image} onChange={handleChange} className=\"w-full mt-1 px-3 py-2 rounded-md bg-slate-800 border border-slate-700\"/>\n </div>\n </div>\n <div className=\"flex flex-col\">\n <label className=\"text-sm font-medium text-slate-400 mb-2\">Generated HTML</label>\n <div className=\"relative flex-grow\">\n <pre className=\"w-full h-full bg-slate-900 p-4 rounded-md text-cyan-300 text-sm overflow-auto\">{generatedHtml}</pre>\n <button onClick={handleCopy} className=\"absolute top-2 right-2 px-2 py-1 bg-slate-700 hover:bg-slate-600 rounded-md text-xs\">Copy</button>\n </div>\n </div>\n </div>\n </div>\n );\n};"],"names":["MetaTagEditor","meta","setMeta","useState","handleChange","e","generatedHtml","useMemo","handleCopy","jsxs","jsx","CodeBracketSquareIcon"],"mappings":"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"}
assets/d3-hierarchy-l0sNRNKZ.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-hierarchy-l0sNRNKZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
assets/d3-interpolate-CfLzPKWk.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{r as A,c as k,h as Y}from"./d3-color-amxIadob.js";const X=r=>()=>r;function D(r,n){return function(t){return r+t*n}}function E(r,n,t){return r=Math.pow(r,t),n=Math.pow(n,t)-r,t=1/t,function(i){return Math.pow(r+i*n,t)}}function O(r,n){var t=n-r;return t?D(r,t>180||t<-180?t-360*Math.round(t/360):t):X(isNaN(r)?n:r)}function R(r){return(r=+r)==1?v:function(n,t){return t-n?E(n,t,r):X(isNaN(n)?t:n)}}function v(r,n){var t=n-r;return t?D(r,t):X(isNaN(r)?n:r)}const S=function r(n){var t=R(n);function i(e,l){var o=t((e=A(e)).r,(l=A(l)).r),f=t(e.g,l.g),p=t(e.b,l.b),c=v(e.opacity,l.opacity);return function(u){return e.r=o(u),e.g=f(u),e.b=p(u),e.opacity=c(u),e+""}}return i.gamma=r,i}(1);function V(r,n){n||(n=[]);var t=r?Math.min(n.length,r.length):0,i=n.slice(),e;return function(l){for(e=0;e<t;++e)i[e]=r[e]*(1-l)+n[e]*l;return i}}function B(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function C(r,n){var t=n?n.length:0,i=r?Math.min(t,r.length):0,e=new Array(i),l=new Array(t),o;for(o=0;o<i;++o)e[o]=I(r[o],n[o]);for(;o<t;++o)l[o]=n[o];return function(f){for(o=0;o<i;++o)l[o]=e[o](f);return l}}function $(r,n){var t=new Date;return r=+r,n=+n,function(i){return t.setTime(r*(1-i)+n*i),t}}function g(r,n){return r=+r,n=+n,function(t){return r*(1-t)+n*t}}function z(r,n){var t={},i={},e;(r===null||typeof r!="object")&&(r={}),(n===null||typeof n!="object")&&(n={});for(e in n)e in r?t[e]=I(r[e],n[e]):i[e]=n[e];return function(l){for(e in t)i[e]=t[e](l);return i}}var N=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,x=new RegExp(N.source,"g");function G(r){return function(){return r}}function H(r){return function(n){return r(n)+""}}function K(r,n){var t=N.lastIndex=x.lastIndex=0,i,e,l,o=-1,f=[],p=[];for(r=r+"",n=n+"";(i=N.exec(r))&&(e=x.exec(n));)(l=e.index)>t&&(l=n.slice(t,l),f[o]?f[o]+=l:f[++o]=l),(i=i[0])===(e=e[0])?f[o]?f[o]+=e:f[++o]=e:(f[++o]=null,p.push({i:o,x:g(i,e)})),t=x.lastIndex;return t<n.length&&(l=n.slice(t),f[o]?f[o]+=l:f[++o]=l),f.length<2?p[0]?H(p[0].x):G(n):(n=p.length,function(c){for(var u=0,s;u<n;++u)f[(s=p[u]).i]=s.x(c);return f.join("")})}function I(r,n){var t=typeof n,i;return n==null||t==="boolean"?X(n):(t==="number"?g:t==="string"?(i=k(n))?(n=i,S):K:n instanceof k?S:n instanceof Date?$:B(n)?V:Array.isArray(n)?C:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?z:g)(r,n)}function Q(r,n){return r=+r,n=+n,function(t){return Math.round(r*(1-t)+n*t)}}var j=180/Math.PI,d={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function q(r,n,t,i,e,l){var o,f,p;return(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o),(p=r*t+n*i)&&(t-=r*p,i-=n*p),(f=Math.sqrt(t*t+i*i))&&(t/=f,i/=f,p/=f),r*i<n*t&&(r=-r,n=-n,p=-p,o=-o),{translateX:e,translateY:l,rotate:Math.atan2(n,r)*j,skewX:Math.atan(p)*j,scaleX:o,scaleY:f}}var M;function W(r){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(r+"");return n.isIdentity?d:q(n.a,n.b,n.c,n.d,n.e,n.f)}function F(r){return r==null||(M||(M=document.createElementNS("http://www.w3.org/2000/svg","g")),M.setAttribute("transform",r),!(r=M.transform.baseVal.consolidate()))?d:(r=r.matrix,q(r.a,r.b,r.c,r.d,r.e,r.f))}function T(r,n,t,i){function e(c){return c.length?c.pop()+" ":""}function l(c,u,s,a,h,w){if(c!==s||u!==a){var m=h.push("translate(",null,n,null,t);w.push({i:m-4,x:g(c,s)},{i:m-2,x:g(u,a)})}else(s||a)&&h.push("translate("+s+n+a+t)}function o(c,u,s,a){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),a.push({i:s.push(e(s)+"rotate(",null,i)-2,x:g(c,u)})):u&&s.push(e(s)+"rotate("+u+i)}function f(c,u,s,a){c!==u?a.push({i:s.push(e(s)+"skewX(",null,i)-2,x:g(c,u)}):u&&s.push(e(s)+"skewX("+u+i)}function p(c,u,s,a,h,w){if(c!==s||u!==a){var m=h.push(e(h)+"scale(",null,",",null,")");w.push({i:m-4,x:g(c,s)},{i:m-2,x:g(u,a)})}else(s!==1||a!==1)&&h.push(e(h)+"scale("+s+","+a+")")}return function(c,u){var s=[],a=[];return c=r(c),u=r(u),l(c.translateX,c.translateY,u.translateX,u.translateY,s,a),o(c.rotate,u.rotate,s,a),f(c.skewX,u.skewX,s,a),p(c.scaleX,c.scaleY,u.scaleX,u.scaleY,s,a),c=u=null,function(h){for(var w=-1,m=a.length,y;++w<m;)s[(y=a[w]).i]=y.x(h);return s.join("")}}}var U=T(W,"px, ","px)","deg)"),Z=T(F,", ",")",")");function J(r){return function(n,t){var i=r((n=Y(n)).h,(t=Y(t)).h),e=v(n.c,t.c),l=v(n.l,t.l),o=v(n.opacity,t.opacity);return function(f){return n.h=i(f),n.c=e(f),n.l=l(f),n.opacity=o(f),n+""}}}const _=J(O);export{I as a,Q as b,S as c,K as d,Z as e,U as f,_ as g,g as i};
2
+ //# sourceMappingURL=d3-interpolate-CfLzPKWk.js.map
assets/d3-interpolate-CfLzPKWk.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-interpolate-CfLzPKWk.js","sources":["../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-interpolate/src/transform/decompose.js","../../node_modules/d3-interpolate/src/transform/parse.js","../../node_modules/d3-interpolate/src/transform/index.js","../../node_modules/d3-interpolate/src/hcl.js"],"sourcesContent":["export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n"],"names":["constant","x","linear","a","d","exponential","b","y","t","hue","gamma","nogamma","interpolateRgb","rgbGamma","color","rgb","start","end","r","colorRgb","g","opacity","numberArray","n","c","i","isNumberArray","genericArray","nb","na","value","date","interpolateNumber","object","k","reA","reB","zero","one","interpolateString","bi","am","bm","bs","s","q","number","o","interpolate","string","interpolateRound","degrees","identity","decompose","f","scaleX","scaleY","skewX","svgNode","parseCss","m","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","hcl","h","colorHcl","interpolateHcl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}
assets/d3-path-CimkQT29.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ const x=Math.PI,c=2*x,d=1e-6,P=c-d;function E(l){this._+=l[0];for(let t=1,h=l.length;t<h;++t)this._+=arguments[t]+l[t]}function m(l){let t=Math.floor(l);if(!(t>=0))throw new Error(`invalid digits: ${l}`);if(t>15)return E;const h=10**t;return function(i){this._+=i[0];for(let s=1,_=i.length;s<_;++s)this._+=Math.round(arguments[s]*h)/h+i[s]}}class q{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?E:m(t)}moveTo(t,h){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,h){this._append`L${this._x1=+t},${this._y1=+h}`}quadraticCurveTo(t,h,i,s){this._append`Q${+t},${+h},${this._x1=+i},${this._y1=+s}`}bezierCurveTo(t,h,i,s,_,n){this._append`C${+t},${+h},${+i},${+s},${this._x1=+_},${this._y1=+n}`}arcTo(t,h,i,s,_){if(t=+t,h=+h,i=+i,s=+s,_=+_,_<0)throw new Error(`negative radius: ${_}`);let n=this._x1,u=this._y1,o=i-t,a=s-h,e=n-t,p=u-h,$=e*e+p*p;if(this._x1===null)this._append`M${this._x1=t},${this._y1=h}`;else if($>d)if(!(Math.abs(p*o-a*e)>d)||!_)this._append`L${this._x1=t},${this._y1=h}`;else{let f=i-n,M=s-u,y=o*o+a*a,L=f*f+M*M,v=Math.sqrt(y),b=Math.sqrt($),T=_*Math.tan((x-Math.acos((y+$-L)/(2*v*b)))/2),r=T/b,A=T/v;Math.abs(r-1)>d&&this._append`L${t+r*e},${h+r*p}`,this._append`A${_},${_},0,0,${+(p*f>e*M)},${this._x1=t+A*o},${this._y1=h+A*a}`}}arc(t,h,i,s,_,n){if(t=+t,h=+h,i=+i,n=!!n,i<0)throw new Error(`negative radius: ${i}`);let u=i*Math.cos(s),o=i*Math.sin(s),a=t+u,e=h+o,p=1^n,$=n?s-_:_-s;this._x1===null?this._append`M${a},${e}`:(Math.abs(this._x1-a)>d||Math.abs(this._y1-e)>d)&&this._append`L${a},${e}`,i&&($<0&&($=$%c+c),$>P?this._append`A${i},${i},0,1,${p},${t-u},${h-o}A${i},${i},0,1,${p},${this._x1=a},${this._y1=e}`:$>d&&this._append`A${i},${i},0,${+($>=x)},${p},${this._x1=t+i*Math.cos(_)},${this._y1=h+i*Math.sin(_)}`)}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}export{q as P};
2
+ //# sourceMappingURL=d3-path-CimkQT29.js.map
assets/d3-path-CimkQT29.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-path-CimkQT29.js","sources":["../../node_modules/d3-path/src/path.js"],"sourcesContent":["const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n"],"names":["pi","tau","epsilon","tauEpsilon","append","strings","i","n","appendRound","digits","d","k","Path","x","y","x1","y1","x2","y2","r","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h"],"mappings":"AAAA,MAAMA,EAAK,KAAK,GACZC,EAAM,EAAID,EACVE,EAAU,KACVC,EAAaF,EAAMC,EAEvB,SAASE,EAAOC,EAAS,CACvB,KAAK,GAAKA,EAAQ,CAAC,EACnB,QAASC,EAAI,EAAGC,EAAIF,EAAQ,OAAQC,EAAIC,EAAG,EAAED,EAC3C,KAAK,GAAK,UAAUA,CAAC,EAAID,EAAQC,CAAC,CAEtC,CAEA,SAASE,EAAYC,EAAQ,CAC3B,IAAIC,EAAI,KAAK,MAAMD,CAAM,EACzB,GAAI,EAAEC,GAAK,GAAI,MAAM,IAAI,MAAM,mBAAmBD,CAAM,EAAE,EAC1D,GAAIC,EAAI,GAAI,OAAON,EACnB,MAAMO,EAAI,IAAMD,EAChB,OAAO,SAASL,EAAS,CACvB,KAAK,GAAKA,EAAQ,CAAC,EACnB,QAASC,EAAI,EAAGC,EAAIF,EAAQ,OAAQC,EAAIC,EAAG,EAAED,EAC3C,KAAK,GAAK,KAAK,MAAM,UAAUA,CAAC,EAAIK,CAAC,EAAIA,EAAIN,EAAQC,CAAC,CAE1D,CACF,CAEO,MAAMM,CAAK,CAChB,YAAYH,EAAQ,CAClB,KAAK,IAAM,KAAK,IAChB,KAAK,IAAM,KAAK,IAAM,KACtB,KAAK,EAAI,GACT,KAAK,QAAUA,GAAU,KAAOL,EAASI,EAAYC,CAAM,CAC7D,CACA,OAAOI,EAAGC,EAAG,CACX,KAAK,WAAW,KAAK,IAAM,KAAK,IAAM,CAACD,CAAC,IAAI,KAAK,IAAM,KAAK,IAAM,CAACC,CAAC,EACtE,CACA,WAAY,CACN,KAAK,MAAQ,OACf,KAAK,IAAM,KAAK,IAAK,KAAK,IAAM,KAAK,IACrC,KAAK,WAET,CACA,OAAOD,EAAGC,EAAG,CACX,KAAK,WAAW,KAAK,IAAM,CAACD,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAChD,CACA,iBAAiBC,EAAIC,EAAIH,EAAGC,EAAG,CAC7B,KAAK,WAAW,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,KAAK,IAAM,CAACH,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAC9D,CACA,cAAcC,EAAIC,EAAIC,EAAIC,EAAIL,EAAGC,EAAG,CAClC,KAAK,WAAW,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,CAACC,CAAE,IAAI,KAAK,IAAM,CAACL,CAAC,IAAI,KAAK,IAAM,CAACC,CAAC,EAC5E,CACA,MAAMC,EAAIC,EAAIC,EAAIC,EAAIC,EAAG,CAIvB,GAHAJ,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIC,EAAK,CAACA,EAAIC,EAAI,CAACA,EAGzCA,EAAI,EAAG,MAAM,IAAI,MAAM,oBAAoBA,CAAC,EAAE,EAElD,IAAIC,EAAK,KAAK,IACVC,EAAK,KAAK,IACVC,EAAML,EAAKF,EACXQ,EAAML,EAAKF,EACXQ,EAAMJ,EAAKL,EACXU,EAAMJ,EAAKL,EACXU,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAI,KAAK,MAAQ,KACf,KAAK,WAAW,KAAK,IAAMV,CAAE,IAAI,KAAK,IAAMC,CAAE,WAIrCU,EAAQxB,EAKd,GAAI,EAAE,KAAK,IAAIuB,EAAMH,EAAMC,EAAMC,CAAG,EAAItB,IAAY,CAACiB,EACxD,KAAK,WAAW,KAAK,IAAMJ,CAAE,IAAI,KAAK,IAAMC,CAAE,OAI3C,CACH,IAAIW,EAAMV,EAAKG,EACXQ,EAAMV,EAAKG,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM,KAAK,KAAKF,CAAK,EACrBG,EAAM,KAAK,KAAKN,CAAK,EACrBO,EAAId,EAAI,KAAK,KAAKnB,EAAK,KAAK,MAAM6B,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,EAAI,GAAK,CAAC,EAChFE,EAAMD,EAAID,EACVG,EAAMF,EAAIF,EAGV,KAAK,IAAIG,EAAM,CAAC,EAAIhC,GACtB,KAAK,WAAWa,EAAKmB,EAAMV,CAAG,IAAIR,EAAKkB,EAAMT,CAAG,GAGlD,KAAK,WAAWN,CAAC,IAAIA,CAAC,QAAQ,EAAEM,EAAME,EAAMH,EAAMI,EAAI,IAAI,KAAK,IAAMb,EAAKoB,EAAMb,CAAG,IAAI,KAAK,IAAMN,EAAKmB,EAAMZ,CAAG,EAClH,CACF,CACA,IAAIV,EAAGC,EAAGK,EAAGiB,EAAIC,EAAIC,EAAK,CAIxB,GAHAzB,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAGK,EAAI,CAACA,EAAGmB,EAAM,CAAC,CAACA,EAG5BnB,EAAI,EAAG,MAAM,IAAI,MAAM,oBAAoBA,CAAC,EAAE,EAElD,IAAIoB,EAAKpB,EAAI,KAAK,IAAIiB,CAAE,EACpBI,EAAKrB,EAAI,KAAK,IAAIiB,CAAE,EACpBhB,EAAKP,EAAI0B,EACTlB,EAAKP,EAAI0B,EACTC,EAAK,EAAIH,EACTI,EAAKJ,EAAMF,EAAKC,EAAKA,EAAKD,EAG1B,KAAK,MAAQ,KACf,KAAK,WAAWhB,CAAE,IAAIC,CAAE,IAIjB,KAAK,IAAI,KAAK,IAAMD,CAAE,EAAIlB,GAAW,KAAK,IAAI,KAAK,IAAMmB,CAAE,EAAInB,IACtE,KAAK,WAAWkB,CAAE,IAAIC,CAAE,GAIrBF,IAGDuB,EAAK,IAAGA,EAAKA,EAAKzC,EAAMA,GAGxByC,EAAKvC,EACP,KAAK,WAAWgB,CAAC,IAAIA,CAAC,QAAQsB,CAAE,IAAI5B,EAAI0B,CAAE,IAAIzB,EAAI0B,CAAE,IAAIrB,CAAC,IAAIA,CAAC,QAAQsB,CAAE,IAAI,KAAK,IAAMrB,CAAE,IAAI,KAAK,IAAMC,CAAE,GAInGqB,EAAKxC,GACZ,KAAK,WAAWiB,CAAC,IAAIA,CAAC,MAAM,EAAEuB,GAAM1C,EAAG,IAAIyC,CAAE,IAAI,KAAK,IAAM5B,EAAIM,EAAI,KAAK,IAAIkB,CAAE,CAAC,IAAI,KAAK,IAAMvB,EAAIK,EAAI,KAAK,IAAIkB,CAAE,CAAC,GAEvH,CACA,KAAKxB,EAAGC,EAAG6B,EAAGC,EAAG,CACf,KAAK,WAAW,KAAK,IAAM,KAAK,IAAM,CAAC/B,CAAC,IAAI,KAAK,IAAM,KAAK,IAAM,CAACC,CAAC,IAAI6B,EAAI,CAACA,CAAC,IAAI,CAACC,CAAC,IAAI,CAACD,CAAC,GAC5F,CACA,UAAW,CACT,OAAO,KAAK,CACd,CACF","x_google_ignoreList":[0]}
assets/d3-polygon-l0sNRNKZ.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ //# sourceMappingURL=d3-polygon-l0sNRNKZ.js.map
assets/d3-polygon-l0sNRNKZ.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-polygon-l0sNRNKZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
assets/d3-quadtree-l0sNRNKZ.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ //# sourceMappingURL=d3-quadtree-l0sNRNKZ.js.map
assets/d3-quadtree-l0sNRNKZ.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-quadtree-l0sNRNKZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
assets/d3-random-l0sNRNKZ.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+
2
+ //# sourceMappingURL=d3-random-l0sNRNKZ.js.map
assets/d3-random-l0sNRNKZ.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-random-l0sNRNKZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
assets/d3-sankey-DgqkLiUE.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ function F(t,e){let i;if(e===void 0)for(const s of t)s!=null&&(i<s||i===void 0&&s>=s)&&(i=s);else{let s=-1;for(let f of t)(f=e(f,++s,t))!=null&&(i<f||i===void 0&&f>=f)&&(i=f)}return i}function X(t,e){let i;if(e===void 0)for(const s of t)s!=null&&(i>s||i===void 0&&s>=s)&&(i=s);else{let s=-1;for(let f of t)(f=e(f,++s,t))!=null&&(i>f||i===void 0&&f>=f)&&(i=f)}return i}function P(t,e){let i=0;if(e===void 0)for(let s of t)(s=+s)&&(i+=s);else{let s=-1;for(let f of t)(f=+e(f,++s,t))&&(i+=f)}return i}function st(t){return t.target.depth}function wt(t){return t.depth}function vt(t,e){return e-1-t.height}function ut(t,e){return t.sourceLinks.length?t.depth:e-1}function Mt(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?X(t.sourceLinks,st)-1:0}function E(t){return function(){return t}}function G(t,e){return j(t.source,e.source)||t.index-e.index}function J(t,e){return j(t.target,e.target)||t.index-e.index}function j(t,e){return t.y0-e.y0}function q(t){return t.value}function ft(t){return t.index}function ct(t){return t.nodes}function lt(t){return t.links}function K(t,e){const i=t.get(e);if(!i)throw new Error("missing: "+e);return i}function O({nodes:t}){for(const e of t){let i=e.y0,s=i;for(const f of e.sourceLinks)f.y0=i+f.width/2,i+=f.width;for(const f of e.targetLinks)f.y1=s+f.width/2,s+=f.width}}function Tt(){let t=0,e=0,i=1,s=1,f=24,k=8,a,h=ft,y=ut,p,m,x=ct,_=lt,L=6;function d(){const n={nodes:x.apply(null,arguments),links:_.apply(null,arguments)};return H(n),B(n),N(n),A(n),tt(n),O(n),n}d.update=function(n){return O(n),n},d.nodeId=function(n){return arguments.length?(h=typeof n=="function"?n:E(n),d):h},d.nodeAlign=function(n){return arguments.length?(y=typeof n=="function"?n:E(n),d):y},d.nodeSort=function(n){return arguments.length?(p=n,d):p},d.nodeWidth=function(n){return arguments.length?(f=+n,d):f},d.nodePadding=function(n){return arguments.length?(k=a=+n,d):k},d.nodes=function(n){return arguments.length?(x=typeof n=="function"?n:E(n),d):x},d.links=function(n){return arguments.length?(_=typeof n=="function"?n:E(n),d):_},d.linkSort=function(n){return arguments.length?(m=n,d):m},d.size=function(n){return arguments.length?(t=e=0,i=+n[0],s=+n[1],d):[i-t,s-e]},d.extent=function(n){return arguments.length?(t=+n[0][0],i=+n[1][0],e=+n[0][1],s=+n[1][1],d):[[t,e],[i,s]]},d.iterations=function(n){return arguments.length?(L=+n,d):L};function H({nodes:n,links:c}){for(const[u,o]of n.entries())o.index=u,o.sourceLinks=[],o.targetLinks=[];const r=new Map(n.map((u,o)=>[h(u,o,n),u]));for(const[u,o]of c.entries()){o.index=u;let{source:l,target:g}=o;typeof l!="object"&&(l=o.source=K(r,l)),typeof g!="object"&&(g=o.target=K(r,g)),l.sourceLinks.push(o),g.targetLinks.push(o)}if(m!=null)for(const{sourceLinks:u,targetLinks:o}of n)u.sort(m),o.sort(m)}function B({nodes:n}){for(const c of n)c.value=c.fixedValue===void 0?Math.max(P(c.sourceLinks,q),P(c.targetLinks,q)):c.fixedValue}function N({nodes:n}){const c=n.length;let r=new Set(n),u=new Set,o=0;for(;r.size;){for(const l of r){l.depth=o;for(const{target:g}of l.sourceLinks)u.add(g)}if(++o>c)throw new Error("circular link");r=u,u=new Set}}function A({nodes:n}){const c=n.length;let r=new Set(n),u=new Set,o=0;for(;r.size;){for(const l of r){l.height=o;for(const{source:g}of l.targetLinks)u.add(g)}if(++o>c)throw new Error("circular link");r=u,u=new Set}}function M({nodes:n}){const c=F(n,o=>o.depth)+1,r=(i-t-f)/(c-1),u=new Array(c);for(const o of n){const l=Math.max(0,Math.min(c-1,Math.floor(y.call(null,o,c))));o.layer=l,o.x0=t+l*r,o.x1=o.x0+f,u[l]?u[l].push(o):u[l]=[o]}if(p)for(const o of u)o.sort(p);return u}function C(n){const c=X(n,r=>(s-e-(r.length-1)*a)/P(r,q));for(const r of n){let u=e;for(const o of r){o.y0=u,o.y1=u+o.value*c,u=o.y1+a;for(const l of o.sourceLinks)l.width=l.value*c}u=(s-u+a)/(r.length+1);for(let o=0;o<r.length;++o){const l=r[o];l.y0+=u*(o+1),l.y1+=u*(o+1)}ot(r)}}function tt(n){const c=M(n);a=Math.min(k,(s-e)/(F(c,r=>r.length)-1)),C(c);for(let r=0;r<L;++r){const u=Math.pow(.99,r),o=Math.max(1-u,(r+1)/L);et(c,u,o),nt(c,u,o)}}function nt(n,c,r){for(let u=1,o=n.length;u<o;++u){const l=n[u];for(const g of l){let T=0,w=0;for(const{source:b,value:I}of g.targetLinks){let z=I*(g.layer-b.layer);T+=it(b,g)*z,w+=z}if(!(w>0))continue;let S=(T/w-g.y0)*c;g.y0+=S,g.y1+=S,W(g)}p===void 0&&l.sort(j),R(l,r)}}function et(n,c,r){for(let u=n.length,o=u-2;o>=0;--o){const l=n[o];for(const g of l){let T=0,w=0;for(const{target:b,value:I}of g.sourceLinks){let z=I*(b.layer-g.layer);T+=rt(g,b)*z,w+=z}if(!(w>0))continue;let S=(T/w-g.y0)*c;g.y0+=S,g.y1+=S,W(g)}p===void 0&&l.sort(j),R(l,r)}}function R(n,c){const r=n.length>>1,u=n[r];Q(n,u.y0-a,r-1,c),Z(n,u.y1+a,r+1,c),Q(n,s,n.length-1,c),Z(n,e,0,c)}function Z(n,c,r,u){for(;r<n.length;++r){const o=n[r],l=(c-o.y0)*u;l>1e-6&&(o.y0+=l,o.y1+=l),c=o.y1+a}}function Q(n,c,r,u){for(;r>=0;--r){const o=n[r],l=(o.y1-c)*u;l>1e-6&&(o.y0-=l,o.y1-=l),c=o.y0-a}}function W({sourceLinks:n,targetLinks:c}){if(m===void 0){for(const{source:{sourceLinks:r}}of c)r.sort(J);for(const{target:{targetLinks:r}}of n)r.sort(G)}}function ot(n){if(m===void 0)for(const{sourceLinks:c,targetLinks:r}of n)c.sort(J),r.sort(G)}function it(n,c){let r=n.y0-(n.sourceLinks.length-1)*a/2;for(const{target:u,width:o}of n.sourceLinks){if(u===c)break;r+=o+a}for(const{source:u,width:o}of c.targetLinks){if(u===n)break;r-=o}return r}function rt(n,c){let r=c.y0-(c.targetLinks.length-1)*a/2;for(const{source:u,width:o}of c.targetLinks){if(u===n)break;r+=o+a}for(const{target:u,width:o}of n.sourceLinks){if(u===c)break;r-=o}return r}return d}var V=Math.PI,$=2*V,v=1e-6,at=$-v;function D(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Y(){return new D}D.prototype=Y.prototype={constructor:D,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,i,s){this._+="Q"+ +t+","+ +e+","+(this._x1=+i)+","+(this._y1=+s)},bezierCurveTo:function(t,e,i,s,f,k){this._+="C"+ +t+","+ +e+","+ +i+","+ +s+","+(this._x1=+f)+","+(this._y1=+k)},arcTo:function(t,e,i,s,f){t=+t,e=+e,i=+i,s=+s,f=+f;var k=this._x1,a=this._y1,h=i-t,y=s-e,p=k-t,m=a-e,x=p*p+m*m;if(f<0)throw new Error("negative radius: "+f);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(x>v)if(!(Math.abs(m*h-y*p)>v)||!f)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var _=i-k,L=s-a,d=h*h+y*y,H=_*_+L*L,B=Math.sqrt(d),N=Math.sqrt(x),A=f*Math.tan((V-Math.acos((d+x-H)/(2*B*N)))/2),M=A/N,C=A/B;Math.abs(M-1)>v&&(this._+="L"+(t+M*p)+","+(e+M*m)),this._+="A"+f+","+f+",0,0,"+ +(m*_>p*L)+","+(this._x1=t+C*h)+","+(this._y1=e+C*y)}},arc:function(t,e,i,s,f,k){t=+t,e=+e,i=+i,k=!!k;var a=i*Math.cos(s),h=i*Math.sin(s),y=t+a,p=e+h,m=1^k,x=k?s-f:f-s;if(i<0)throw new Error("negative radius: "+i);this._x1===null?this._+="M"+y+","+p:(Math.abs(this._x1-y)>v||Math.abs(this._y1-p)>v)&&(this._+="L"+y+","+p),i&&(x<0&&(x=x%$+$),x>at?this._+="A"+i+","+i+",0,1,"+m+","+(t-a)+","+(e-h)+"A"+i+","+i+",0,1,"+m+","+(this._x1=y)+","+(this._y1=p):x>v&&(this._+="A"+i+","+i+",0,"+ +(x>=V)+","+m+","+(this._x1=t+i*Math.cos(f))+","+(this._y1=e+i*Math.sin(f))))},rect:function(t,e,i,s){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +i+"v"+ +s+"h"+-i+"Z"},toString:function(){return this._}};function U(t){return function(){return t}}function ht(t){return t[0]}function dt(t){return t[1]}var gt=Array.prototype.slice;function yt(t){return t.source}function kt(t){return t.target}function pt(t){var e=yt,i=kt,s=ht,f=dt,k=null;function a(){var h,y=gt.call(arguments),p=e.apply(this,y),m=i.apply(this,y);if(k||(k=h=Y()),t(k,+s.apply(this,(y[0]=p,y)),+f.apply(this,y),+s.apply(this,(y[0]=m,y)),+f.apply(this,y)),h)return k=null,h+""||null}return a.source=function(h){return arguments.length?(e=h,a):e},a.target=function(h){return arguments.length?(i=h,a):i},a.x=function(h){return arguments.length?(s=typeof h=="function"?h:U(+h),a):s},a.y=function(h){return arguments.length?(f=typeof h=="function"?h:U(+h),a):f},a.context=function(h){return arguments.length?(k=h??null,a):k},a}function mt(t,e,i,s,f){t.moveTo(e,i),t.bezierCurveTo(e=(e+s)/2,i,e,f,s,f)}function xt(){return pt(mt)}function Lt(t){return[t.source.x1,t.y0]}function _t(t){return[t.target.x0,t.y1]}function St(){return xt().source(Lt).target(_t)}export{Tt as S,Mt as c,ut as j,wt as l,vt as r,St as s};
2
+ //# sourceMappingURL=d3-sankey-DgqkLiUE.js.map
assets/d3-sankey-DgqkLiUE.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-sankey-DgqkLiUE.js","sources":["../../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../../node_modules/d3-sankey/src/align.js","../../node_modules/d3-sankey/src/constant.js","../../node_modules/d3-sankey/src/sankey.js","../../node_modules/d3-sankey/node_modules/d3-path/src/path.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/point.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/array.js","../../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js","../../node_modules/d3-sankey/src/sankeyLinkHorizontal.js"],"sourcesContent":["export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n"],"names":["max","values","valueof","value","index","min","sum","targetDepth","d","left","node","right","n","justify","center","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","find","nodeById","id","computeLinkBreadths","nodes","y0","y1","link","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","links","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","_","i","source","target","sourceLinks","targetLinks","current","next","computeNodeLayers","kx","columns","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","beta","relaxRightToLeft","relaxLeftToRight","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","width","pi","tau","epsilon","tauEpsilon","Path","path","x2","y2","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","cw","da","w","h","p","slice","linkSource","linkTarget","curve","pointX","pointY","context","buffer","argv","s","t","curveHorizontal","linkHorizontal","horizontalSource","horizontalTarget","sankeyLinkHorizontal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
assets/d3-scale-BchcX-lF.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ import{I as N}from"./internmap-BkD7Hj8s.js";import{r as P,b as T,t as $,a as j,c as z}from"./d3-array-DGRYoJHh.js";import{f as B,p as L,a as W,b as q,c as C,d as E}from"./d3-format-CzD4bSOQ.js";import{i as G,a as J,b as K}from"./d3-interpolate-CfLzPKWk.js";import{t as Q}from"./d3-time-format-CUNN4Ell.js";import{s as U,t as V,a as X,b as Z,c as _,d as nn,e as rn,f as tn,g as en}from"./d3-time-6cSPyVSY.js";function w(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n);break}return this}const x=Symbol("implicit");function D(){var n=new N,t=[],o=[],r=x;function e(a){let u=n.get(a);if(u===void 0){if(r!==x)return r;n.set(a,u=t.push(a)-1)}return o[u%o.length]}return e.domain=function(a){if(!arguments.length)return t.slice();t=[],n=new N;for(const u of a)n.has(u)||n.set(u,t.push(u)-1);return e},e.range=function(a){return arguments.length?(o=Array.from(a),e):o.slice()},e.unknown=function(a){return arguments.length?(r=a,e):r},e.copy=function(){return D(t,o).unknown(r)},w.apply(e,arguments),e}function un(){var n=D().unknown(void 0),t=n.domain,o=n.range,r=0,e=1,a,u,f=!1,m=0,c=0,l=.5;delete n.unknown;function g(){var i=t().length,d=e<r,p=d?e:r,M=d?r:e;a=(M-p)/Math.max(1,i-m+c*2),f&&(a=Math.floor(a)),p+=(M-p-a*(i-m))*l,u=a*(1-m),f&&(p=Math.round(p),u=Math.round(u));var k=P(i).map(function(y){return p+a*y});return o(d?k.reverse():k)}return n.domain=function(i){return arguments.length?(t(i),g()):t()},n.range=function(i){return arguments.length?([r,e]=i,r=+r,e=+e,g()):[r,e]},n.rangeRound=function(i){return[r,e]=i,r=+r,e=+e,f=!0,g()},n.bandwidth=function(){return u},n.step=function(){return a},n.round=function(i){return arguments.length?(f=!!i,g()):f},n.padding=function(i){return arguments.length?(m=Math.min(1,c=+i),g()):m},n.paddingInner=function(i){return arguments.length?(m=Math.min(1,i),g()):m},n.paddingOuter=function(i){return arguments.length?(c=+i,g()):c},n.align=function(i){return arguments.length?(l=Math.max(0,Math.min(1,i)),g()):l},n.copy=function(){return un(t(),[r,e]).round(f).paddingInner(m).paddingOuter(c).align(l)},w.apply(g(),arguments)}function an(n){return function(){return n}}function on(n){return+n}var I=[0,1];function v(n){return n}function b(n,t){return(t-=n=+n)?function(o){return(o-n)/t}:an(isNaN(t)?NaN:.5)}function cn(n,t){var o;return n>t&&(o=n,n=t,t=o),function(r){return Math.max(n,Math.min(t,r))}}function sn(n,t,o){var r=n[0],e=n[1],a=t[0],u=t[1];return e<r?(r=b(e,r),a=o(u,a)):(r=b(r,e),a=o(a,u)),function(f){return a(r(f))}}function fn(n,t,o){var r=Math.min(n.length,t.length)-1,e=new Array(r),a=new Array(r),u=-1;for(n[r]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++u<r;)e[u]=b(n[u],n[u+1]),a[u]=o(t[u],t[u+1]);return function(f){var m=T(n,f,1,r)-1;return a[m](e[m](f))}}function A(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function ln(){var n=I,t=I,o=J,r,e,a,u=v,f,m,c;function l(){var i=Math.min(n.length,t.length);return u!==v&&(u=cn(n[0],n[i-1])),f=i>2?fn:sn,m=c=null,g}function g(i){return i==null||isNaN(i=+i)?a:(m||(m=f(n.map(r),t,o)))(r(u(i)))}return g.invert=function(i){return u(e((c||(c=f(t,n.map(r),G)))(i)))},g.domain=function(i){return arguments.length?(n=Array.from(i,on),l()):n.slice()},g.range=function(i){return arguments.length?(t=Array.from(i),l()):t.slice()},g.rangeRound=function(i){return t=Array.from(i),o=K,l()},g.clamp=function(i){return arguments.length?(u=i?!0:v,l()):u!==v},g.interpolate=function(i){return arguments.length?(o=i,l()):o},g.unknown=function(i){return arguments.length?(a=i,g):a},function(i,d){return r=i,e=d,l()}}function R(){return ln()(v,v)}function mn(n,t,o,r){var e=$(n,t,o),a;switch(r=B(r??",f"),r.type){case"s":{var u=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(a=q(e,u))&&(r.precision=a),C(r,u)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=W(e,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=L(e))&&(r.precision=a-(r.type==="%")*2);break}}return E(r)}function gn(n){var t=n.domain;return n.ticks=function(o){var r=t();return j(r[0],r[r.length-1],o??10)},n.tickFormat=function(o,r){var e=t();return mn(e[0],e[e.length-1],o??10,r)},n.nice=function(o){o==null&&(o=10);var r=t(),e=0,a=r.length-1,u=r[e],f=r[a],m,c,l=10;for(f<u&&(c=u,u=f,f=c,c=e,e=a,a=c);l-- >0;){if(c=z(u,f,o),c===m)return r[e]=u,r[a]=f,t(r);if(c>0)u=Math.floor(u/c)*c,f=Math.ceil(f/c)*c;else if(c<0)u=Math.ceil(u*c)/c,f=Math.floor(f*c)/c;else break;m=c}return n},n}function hn(){var n=R();return n.copy=function(){return A(n,hn())},w.apply(n,arguments),gn(n)}function pn(n,t){n=n.slice();var o=0,r=n.length-1,e=n[o],a=n[r],u;return a<e&&(u=o,o=r,r=u,u=e,e=a,a=u),n[o]=t.floor(e),n[r]=t.ceil(a),n}function dn(n){return new Date(n)}function vn(n){return n instanceof Date?+n:+new Date(+n)}function F(n,t,o,r,e,a,u,f,m,c){var l=R(),g=l.invert,i=l.domain,d=c(".%L"),p=c(":%S"),M=c("%I:%M"),k=c("%I %p"),y=c("%a %d"),S=c("%b %d"),O=c("%B"),Y=c("%Y");function H(s){return(m(s)<s?d:f(s)<s?p:u(s)<s?M:a(s)<s?k:r(s)<s?e(s)<s?y:S:o(s)<s?O:Y)(s)}return l.invert=function(s){return new Date(g(s))},l.domain=function(s){return arguments.length?i(Array.from(s,vn)):i().map(dn)},l.ticks=function(s){var h=i();return n(h[0],h[h.length-1],s??10)},l.tickFormat=function(s,h){return h==null?H:c(h)},l.nice=function(s){var h=i();return(!s||typeof s.range!="function")&&(s=t(h[0],h[h.length-1],s??10)),s?i(pn(h,s)):l},l.copy=function(){return A(l,F(n,t,o,r,e,a,u,f,m,c))},l}function xn(){return w.apply(F(en,tn,rn,nn,_,Z,X,V,U,Q).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}export{un as b,hn as l,D as o,xn as t};
2
+ //# sourceMappingURL=d3-scale-BchcX-lF.js.map
assets/d3-scale-BchcX-lF.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-scale-BchcX-lF.js","sources":["../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-scale/src/band.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/time.js"],"sourcesContent":["export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n"],"names":["initRange","domain","range","implicit","ordinal","index","InternMap","unknown","scale","d","i","_","value","band","ordinalRange","r0","r1","step","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","start","stop","values","sequence","constants","x","number","unit","identity","normalize","a","b","constant","clamper","t","bimap","interpolate","d0","d1","polymap","j","r","bisect","copy","source","target","transformer","interpolateValue","transform","untransform","clamp","piecewise","output","input","y","interpolateNumber","interpolateRound","u","continuous","tickFormat","count","specifier","tickStep","precision","formatSpecifier","precisionPrefix","formatPrefix","precisionRound","precisionFixed","format","linearish","ticks","i0","i1","prestep","maxIter","tickIncrement","linear","nice","interval","x0","x1","date","calendar","tickInterval","year","month","week","day","hour","minute","second","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","time","timeTicks","timeTickInterval","timeYear","timeMonth","timeWeek","timeDay","timeHour","timeMinute","timeSecond","timeFormat"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
assets/d3-scale-chromatic-B-NsZVaP.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;a<c;)n[a]="#"+e.slice(a*6,++a*6);return n}const r=o("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");export{r as s};
2
+ //# sourceMappingURL=d3-scale-chromatic-B-NsZVaP.js.map
assets/d3-scale-chromatic-B-NsZVaP.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"d3-scale-chromatic-B-NsZVaP.js","sources":["../../node_modules/d3-scale-chromatic/src/colors.js","../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js"],"sourcesContent":["export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n"],"names":["colors","specifier","n","i","schemeTableau10"],"mappings":"AAAe,SAAAA,EAASC,EAAW,CAEjC,QADIC,EAAID,EAAU,OAAS,EAAI,EAAGD,EAAS,IAAI,MAAME,CAAC,EAAGC,EAAI,EACtDA,EAAID,GAAGF,EAAOG,CAAC,EAAI,IAAMF,EAAU,MAAME,EAAI,EAAG,EAAEA,EAAI,CAAC,EAC9D,OAAOH,CACT,CCFA,MAAAI,EAAeJ,EAAO,8DAA8D","x_google_ignoreList":[0,1]}
assets/d3-selection-C52G7wmG.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ var g="http://www.w3.org/1999/xhtml";const E={svg:"http://www.w3.org/2000/svg",xhtml:g,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function b(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),E.hasOwnProperty(n)?{space:E[n],local:t}:t}function k(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===g&&n.documentElement.namespaceURI===g?n.createElement(t):n.createElementNS(e,t)}}function H(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function L(t){var n=b(t);return(n.local?H:k)(n)}function U(){}function F(t){return t==null?U:function(){return this.querySelector(t)}}function z(t){typeof t!="function"&&(t=F(t));for(var n=this._groups,e=n.length,i=new Array(e),r=0;r<e;++r)for(var s=n[r],l=s.length,o=i[r]=new Array(l),c,u,f=0;f<l;++f)(c=s[f])&&(u=t.call(c,c.__data__,f,s))&&("__data__"in c&&(u.__data__=c.__data__),o[f]=u);return new a(i,this._parents)}function R(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function K(){return[]}function X(t){return t==null?K:function(){return this.querySelectorAll(t)}}function J(t){return function(){return R(t.apply(this,arguments))}}function Q(t){typeof t=="function"?t=J(t):t=X(t);for(var n=this._groups,e=n.length,i=[],r=[],s=0;s<e;++s)for(var l=n[s],o=l.length,c,u=0;u<o;++u)(c=l[u])&&(i.push(t.call(c,c.__data__,u,l)),r.push(c));return new a(i,r)}function W(t){return function(){return this.matches(t)}}function B(t){return function(n){return n.matches(t)}}var Y=Array.prototype.find;function Z(t){return function(){return Y.call(this.children,t)}}function $(){return this.firstElementChild}function G(t){return this.select(t==null?$:Z(typeof t=="function"?t:B(t)))}var j=Array.prototype.filter;function tt(){return Array.from(this.children)}function nt(t){return function(){return j.call(this.children,t)}}function et(t){return this.selectAll(t==null?tt:nt(typeof t=="function"?t:B(t)))}function rt(t){typeof t!="function"&&(t=W(t));for(var n=this._groups,e=n.length,i=new Array(e),r=0;r<e;++r)for(var s=n[r],l=s.length,o=i[r]=[],c,u=0;u<l;++u)(c=s[u])&&t.call(c,c.__data__,u,s)&&o.push(c);return new a(i,this._parents)}function V(t){return new Array(t.length)}function it(){return new a(this._enter||this._groups.map(V),this._parents)}function m(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}m.prototype={constructor:m,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function st(t){return function(){return t}}function ot(t,n,e,i,r,s){for(var l=0,o,c=n.length,u=s.length;l<u;++l)(o=n[l])?(o.__data__=s[l],i[l]=o):e[l]=new m(t,s[l]);for(;l<c;++l)(o=n[l])&&(r[l]=o)}function lt(t,n,e,i,r,s,l){var o,c,u=new Map,f=n.length,_=s.length,p=new Array(f),h;for(o=0;o<f;++o)(c=n[o])&&(p[o]=h=l.call(c,c.__data__,o,n)+"",u.has(h)?r[o]=c:u.set(h,c));for(o=0;o<_;++o)h=l.call(t,s[o],o,s)+"",(c=u.get(h))?(i[o]=c,c.__data__=s[o],u.delete(h)):e[o]=new m(t,s[o]);for(o=0;o<f;++o)(c=n[o])&&u.get(p[o])===c&&(r[o]=c)}function ct(t){return t.__data__}function ut(t,n){if(!arguments.length)return Array.from(this,ct);var e=n?lt:ot,i=this._parents,r=this._groups;typeof t!="function"&&(t=st(t));for(var s=r.length,l=new Array(s),o=new Array(s),c=new Array(s),u=0;u<s;++u){var f=i[u],_=r[u],p=_.length,h=ft(t.call(f,f&&f.__data__,u,i)),y=h.length,x=o[u]=new Array(y),S=l[u]=new Array(y),T=c[u]=new Array(p);e(f,_,x,S,T,h,n);for(var d=0,v=0,C,N;d<y;++d)if(C=x[d]){for(d>=v&&(v=d+1);!(N=S[v])&&++v<y;);C._next=N||null}}return l=new a(l,i),l._enter=o,l._exit=c,l}function ft(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function at(){return new a(this._exit||this._groups.map(V),this._parents)}function ht(t,n,e){var i=this.enter(),r=this,s=this.exit();return typeof t=="function"?(i=t(i),i&&(i=i.selection())):i=i.append(t+""),n!=null&&(r=n(r),r&&(r=r.selection())),e==null?s.remove():e(s),i&&r?i.merge(r).order():r}function _t(t){for(var n=t.selection?t.selection():t,e=this._groups,i=n._groups,r=e.length,s=i.length,l=Math.min(r,s),o=new Array(r),c=0;c<l;++c)for(var u=e[c],f=i[c],_=u.length,p=o[c]=new Array(_),h,y=0;y<_;++y)(h=u[y]||f[y])&&(p[y]=h);for(;c<r;++c)o[c]=e[c];return new a(o,this._parents)}function pt(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var i=t[n],r=i.length-1,s=i[r],l;--r>=0;)(l=i[r])&&(s&&l.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(l,s),s=l);return this}function yt(t){t||(t=dt);function n(_,p){return _&&p?t(_.__data__,p.__data__):!_-!p}for(var e=this._groups,i=e.length,r=new Array(i),s=0;s<i;++s){for(var l=e[s],o=l.length,c=r[s]=new Array(o),u,f=0;f<o;++f)(u=l[f])&&(c[f]=u);c.sort(n)}return new a(r,this._parents).order()}function dt(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function vt(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function mt(){return Array.from(this)}function gt(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var i=t[n],r=0,s=i.length;r<s;++r){var l=i[r];if(l)return l}return null}function wt(){let t=0;for(const n of this)++t;return t}function At(){return!this.node()}function xt(t){for(var n=this._groups,e=0,i=n.length;e<i;++e)for(var r=n[e],s=0,l=r.length,o;s<l;++s)(o=r[s])&&t.call(o,o.__data__,s,r);return this}function St(t){return function(){this.removeAttribute(t)}}function Ct(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Nt(t,n){return function(){this.setAttribute(t,n)}}function Et(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function bt(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function Lt(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Ft(t,n){var e=b(t);if(arguments.length<2){var i=this.node();return e.local?i.getAttributeNS(e.space,e.local):i.getAttribute(e)}return this.each((n==null?e.local?Ct:St:typeof n=="function"?e.local?Lt:bt:e.local?Et:Nt)(e,n))}function q(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Rt(t){return function(){this.style.removeProperty(t)}}function Bt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Vt(t,n,e){return function(){var i=n.apply(this,arguments);i==null?this.style.removeProperty(t):this.style.setProperty(t,i,e)}}function qt(t,n,e){return arguments.length>1?this.each((n==null?Rt:typeof n=="function"?Vt:Bt)(t,n,e??"")):Dt(this.node(),t)}function Dt(t,n){return t.style.getPropertyValue(n)||q(t).getComputedStyle(t,null).getPropertyValue(n)}function Mt(t){return function(){delete this[t]}}function Pt(t,n){return function(){this[t]=n}}function It(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function Ot(t,n){return arguments.length>1?this.each((n==null?Mt:typeof n=="function"?It:Pt)(t,n)):this.node()[t]}function D(t){return t.trim().split(/^|\s+/)}function w(t){return t.classList||new M(t)}function M(t){this._node=t,this._names=D(t.getAttribute("class")||"")}M.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function P(t,n){for(var e=w(t),i=-1,r=n.length;++i<r;)e.add(n[i])}function I(t,n){for(var e=w(t),i=-1,r=n.length;++i<r;)e.remove(n[i])}function Tt(t){return function(){P(this,t)}}function kt(t){return function(){I(this,t)}}function Ht(t,n){return function(){(n.apply(this,arguments)?P:I)(this,t)}}function Ut(t,n){var e=D(t+"");if(arguments.length<2){for(var i=w(this.node()),r=-1,s=e.length;++r<s;)if(!i.contains(e[r]))return!1;return!0}return this.each((typeof n=="function"?Ht:n?Tt:kt)(e,n))}function zt(){this.textContent=""}function Kt(t){return function(){this.textContent=t}}function Xt(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function Jt(t){return arguments.length?this.each(t==null?zt:(typeof t=="function"?Xt:Kt)(t)):this.node().textContent}function Qt(){this.innerHTML=""}function Wt(t){return function(){this.innerHTML=t}}function Yt(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function Zt(t){return arguments.length?this.each(t==null?Qt:(typeof t=="function"?Yt:Wt)(t)):this.node().innerHTML}function $t(){this.nextSibling&&this.parentNode.appendChild(this)}function Gt(){return this.each($t)}function jt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tn(){return this.each(jt)}function nn(t){var n=typeof t=="function"?t:L(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function en(){return null}function rn(t,n){var e=typeof t=="function"?t:L(t),i=n==null?en:typeof n=="function"?n:F(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),i.apply(this,arguments)||null)})}function sn(){var t=this.parentNode;t&&t.removeChild(this)}function on(){return this.each(sn)}function ln(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function cn(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function un(t){return this.select(t?cn:ln)}function fn(t){return arguments.length?this.property("__data__",t):this.node().__data__}function an(t){return function(n){t.call(this,n,this.__data__)}}function hn(t){return t.trim().split(/^|\s+/).map(function(n){var e="",i=n.indexOf(".");return i>=0&&(e=n.slice(i+1),n=n.slice(0,i)),{type:n,name:e}})}function _n(t){return function(){var n=this.__on;if(n){for(var e=0,i=-1,r=n.length,s;e<r;++e)s=n[e],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):n[++i]=s;++i?n.length=i:delete this.__on}}}function pn(t,n,e){return function(){var i=this.__on,r,s=an(n);if(i){for(var l=0,o=i.length;l<o;++l)if((r=i[l]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=s,r.options=e),r.value=n;return}}this.addEventListener(t.type,s,e),r={type:t.type,name:t.name,value:n,listener:s,options:e},i?i.push(r):this.__on=[r]}}function yn(t,n,e){var i=hn(t+""),r,s=i.length,l;if(arguments.length<2){var o=this.node().__on;if(o){for(var c=0,u=o.length,f;c<u;++c)for(r=0,f=o[c];r<s;++r)if((l=i[r]).type===f.type&&l.name===f.name)return f.value}return}for(o=n?pn:_n,r=0;r<s;++r)this.each(o(i[r],n,e));return this}function O(t,n,e){var i=q(t),r=i.CustomEvent;typeof r=="function"?r=new r(n,e):(r=i.document.createEvent("Event"),e?(r.initEvent(n,e.bubbles,e.cancelable),r.detail=e.detail):r.initEvent(n,!1,!1)),t.dispatchEvent(r)}function dn(t,n){return function(){return O(this,t,n)}}function vn(t,n){return function(){return O(this,t,n.apply(this,arguments))}}function mn(t,n){return this.each((typeof n=="function"?vn:dn)(t,n))}function*gn(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var i=t[n],r=0,s=i.length,l;r<s;++r)(l=i[r])&&(yield l)}var A=[null];function a(t,n){this._groups=t,this._parents=n}function wn(){return new a([[document.documentElement]],A)}function An(){return this}a.prototype=wn.prototype={constructor:a,select:z,selectAll:Q,selectChild:G,selectChildren:et,filter:rt,data:ut,enter:it,exit:at,join:ht,merge:_t,selection:An,order:pt,sort:yt,call:vt,nodes:mt,node:gt,size:wt,empty:At,each:xt,attr:Ft,style:qt,property:Ot,classed:Ut,text:Jt,html:Zt,raise:Gt,lower:tn,append:nn,insert:rn,remove:on,clone:un,datum:fn,on:yn,dispatch:mn,[Symbol.iterator]:gn};function xn(t){return typeof t=="string"?new a([[document.querySelector(t)]],[document.documentElement]):new a([[t]],A)}function Sn(t){return typeof t=="string"?new a([document.querySelectorAll(t)],[document.documentElement]):new a([R(t)],A)}export{X as a,wn as b,Dt as c,xn as d,Sn as e,W as m,b as n,F as s};
2
+ //# sourceMappingURL=d3-selection-C52G7wmG.js.map