@blueprint-chart/editor 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/android-chrome-192x192.png +0 -0
- package/dist/android-chrome-512x512.png +0 -0
- package/dist/apple-touch-icon.png +0 -0
- package/dist/assets/LandingPage-CUHXTBOL.js +6 -0
- package/dist/assets/LandingPage-DRLkxzYH.css +1 -0
- package/dist/assets/index-BswGET7c.css +5 -0
- package/dist/assets/index-N5rdrXTN.js +1405 -0
- package/dist/favicon-128.png +0 -0
- package/dist/favicon-16.png +0 -0
- package/dist/favicon-192.png +0 -0
- package/dist/favicon-256.png +0 -0
- package/dist/favicon-32.png +0 -0
- package/dist/favicon-48.png +0 -0
- package/dist/favicon-512.png +0 -0
- package/dist/favicon-64.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/favicon.svg +9 -0
- package/dist/index.html +44 -0
- package/dist/mstile-150x150.png +0 -0
- package/dist/og-image.png +0 -0
- package/dist/safari-pinned-tab.svg +5 -0
- package/package.json +4 -3
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{d as b,u as O,o,c as a,a as e,b as r,e as h,f as d,w as f,g as ee,h as q,r as te,l as ne,i as se,_ as v,n as B,j as R,t as m,k as N,m as I,A as x,F as y,p as $,q as P,I as oe,s as ae,v as re,x as ie,y as H,z as le,B as M,C as G,D as de,E as ce,T as _e,S as ue,G as pe,H as Z,J as me,K as he,L as fe,M as ge,N as ve,O as be,P as ye,Q as $e,R as Ce,U as we,V as Le,W as ke,X as Se,Y as xe,Z as U,$ as Ie}from"./index-N5rdrXTN.js";const Be={class:"landing-footer"},Pe={class:"landing-footer__brand"},Te=["src"],Ae={class:"landing-footer__links__links"},Me=b({__name:"LandingFooter",setup(l){const{theme:n}=O(),c=q(()=>n.value==="dark"?ne:se);function s(i){var t;(t=document.getElementById(i))==null||t.scrollIntoView({behavior:"smooth"})}return(i,t)=>{const p=te("router-link");return o(),a("footer",Be,[e("div",Pe,[e("img",{src:r(c),alt:"Blueprint Chart",class:"landing-footer__brand__logo"},null,8,Te),t[1]||(t[1]=h(" Blueprint Chart ",-1))]),e("div",Ae,[t[3]||(t[3]=h(" Made for investigative journalism ",-1)),t[4]||(t[4]=e("span",{class:"landing-footer__links__links__sep"},"·",-1)),d(p,{to:"/new",class:"landing-footer__links__link"},{default:f(()=>[...t[2]||(t[2]=[h(" Editor ",-1)])]),_:1}),t[5]||(t[5]=e("span",{class:"landing-footer__links__links__sep"},"·",-1)),e("a",{href:"#open-source",class:"landing-footer__links__link",onClick:t[0]||(t[0]=ee(u=>s("open-source"),["prevent"]))},"Open Source")]),t[6]||(t[6]=e("div",null,"MIT License · Free forever",-1))])}}}),Fe=v(Me,[["__scopeId","data-v-8edbfba9"]]),He=["id","data-bs-theme"],Ve={class:"landing-section__inner"},Ge=b({__name:"LandingSection",props:{id:{default:void 0},dark:{type:Boolean,default:!1},full:{type:Boolean,default:!1}},setup(l){return(n,c)=>(o(),a("section",{id:l.id,class:B(["landing-section",{"landing-section--dark":l.dark,"landing-section--full":l.full}]),"data-bs-theme":l.dark?"dark":void 0},[e("div",Ve,[R(n.$slots,"default",{},void 0,!0)])],10,He))}}),T=v(Ge,[["__scopeId","data-v-cb612eba"]]),Re={class:"landing-section-header__label"},De={class:"landing-section-header__title"},ze={key:0,class:"landing-section-header__lead"},Ue=b({__name:"LandingSectionHeader",props:{label:{},center:{type:Boolean,default:!1}},setup(l){return(n,c)=>(o(),a("div",{class:B(["landing-section-header",{"landing-section-header--center":l.center}])},[e("div",Re,m(l.label),1),e("h2",De,[R(n.$slots,"default",{},void 0,!0)]),n.$slots.lead?(o(),a("p",ze,[R(n.$slots,"lead",{},void 0,!0)])):N("",!0)],2))}}),A=v(Ue,[["__scopeId","data-v-72016f2c"]]),Oe={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function qe(l,n){return o(),a("svg",Oe,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"m239.43 133l-32-80a8 8 0 0 0-9.16-4.84L136 62V40a8 8 0 0 0-16 0v25.58L54.26 80.19A8 8 0 0 0 48.57 85v.06l-32 79.94a7.9 7.9 0 0 0-.57 3c0 23.31 24.54 32 40 32s40-8.69 40-32a7.9 7.9 0 0 0-.57-3L66.92 93.77L120 82v126h-16a8 8 0 0 0 0 16h48a8 8 0 0 0 0-16h-16V78.42l51-11.32l-26.43 65.9a7.9 7.9 0 0 0-.57 3c0 23.31 24.54 32 40 32s40-8.69 40-32a7.9 7.9 0 0 0-.57-3M56 184c-7.53 0-22.76-3.61-23.93-14.64L56 109.54l23.93 59.82C78.76 180.39 63.53 184 56 184m144-32c-7.53 0-22.76-3.61-23.93-14.64L200 77.54l23.93 59.82C222.76 148.39 207.53 152 200 152"},null,-1)])])}const Ne=I({name:"ph-scales",render:qe}),Ze={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function Ee(l,n){return o(),a("svg",Ze,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M208.31 75.68A59.78 59.78 0 0 0 202.93 28a8 8 0 0 0-6.93-4a59.75 59.75 0 0 0-48 24h-24a59.75 59.75 0 0 0-48-24a8 8 0 0 0-6.93 4a59.78 59.78 0 0 0-5.38 47.68A58.14 58.14 0 0 0 56 104v8a56.06 56.06 0 0 0 48.44 55.47A39.8 39.8 0 0 0 96 192v8H72a24 24 0 0 1-24-24a40 40 0 0 0-40-40a8 8 0 0 0 0 16a24 24 0 0 1 24 24a40 40 0 0 0 40 40h24v16a8 8 0 0 0 16 0v-40a24 24 0 0 1 48 0v40a8 8 0 0 0 16 0v-40a39.8 39.8 0 0 0-8.44-24.53A56.06 56.06 0 0 0 216 112v-8a58.14 58.14 0 0 0-7.69-28.32M200 112a40 40 0 0 1-40 40h-48a40 40 0 0 1-40-40v-8a41.74 41.74 0 0 1 6.9-22.48a8 8 0 0 0 1.1-7.69a43.8 43.8 0 0 1 .79-33.58a43.88 43.88 0 0 1 32.32 20.06a8 8 0 0 0 6.71 3.69h32.35a8 8 0 0 0 6.74-3.69a43.87 43.87 0 0 1 32.32-20.06a43.8 43.8 0 0 1 .77 33.58a8.09 8.09 0 0 0 1 7.65a41.7 41.7 0 0 1 7 22.52Z"},null,-1)])])}const je=I({name:"ph-github-logo",render:Ee}),We={class:"oss"},Ke={class:"oss__grid"},Qe={class:"oss__badges"},Xe={class:"oss-badge oss-badge--green"},Ye={class:"oss-badge oss-badge--dark"},Je={class:"oss__stats"},et={class:"oss-stat__num"},tt={class:"oss-stat__label"},nt=b({__name:"LandingOpenSource",setup(l){const n=[{value:"MIT",label:"Open source license"},{value:"0€",label:"Cost to use, forever"},{value:"D3",label:"Rendering engine"},{value:"∞",label:"Charts you can create"}];return(c,s)=>{const i=A,t=T;return o(),a("div",We,[d(t,{id:"open-source",full:""},{default:f(()=>[e("div",Ke,[e("div",null,[d(i,{label:"Open source"},{lead:f(()=>[...s[0]||(s[0]=[h(" Blueprint Chart is MIT-licensed and community-driven. No paywalls, no watermarks, no data lock-in. You own your charts. ",-1)])]),default:f(()=>[s[1]||(s[1]=h(" Free forever.",-1)),s[2]||(s[2]=e("br",null,null,-1)),s[3]||(s[3]=e("em",null,"No strings attached.",-1))]),_:1}),s[6]||(s[6]=e("p",{class:"oss__detail"}," Built by journalists, for journalists. Every feature is driven by real newsroom needs — from data desks to local reporters working alone. ",-1)),e("div",Qe,[e("span",Xe,[d(r(x),{name:r(Ne),size:"xs"},null,8,["name"]),s[4]||(s[4]=h(" MIT License ",-1))]),e("span",Ye,[d(r(x),{name:r(je),size:"xs"},null,8,["name"]),s[5]||(s[5]=h(" View on GitHub ",-1))])])]),e("div",Je,[(o(),a(y,null,$(n,p=>e("div",{key:p.label,class:"oss-stat"},[e("div",et,m(p.value),1),e("div",tt,m(p.label),1)])),64))])])]),_:1})])}}}),st=v(nt,[["__scopeId","data-v-16f3ce26"]]),ot={class:"practice-card"},at={class:"practice-card__icon"},rt={class:"practice-card__title"},it={class:"practice-card__desc"},lt={class:"practice-card__badge"},dt=b({__name:"LandingPracticeCard",props:{icon:{},title:{},description:{},badge:{}},setup(l){return(n,c)=>(o(),a("div",ot,[e("div",at,[d(r(x),{name:l.icon,size:"sm",variant:"primary"},null,8,["name"])]),e("h3",rt,m(l.title),1),e("p",it,m(l.description),1),e("span",lt,m(l.badge),1)]))}}),ct=v(dt,[["__scopeId","data-v-820d994a"]]),_t={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function ut(l,n){return o(),a("svg",_t,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M224 72h-16v-8a24 24 0 0 0-24-24H40a24 24 0 0 0-24 24v96a24 24 0 0 0 24 24h112v8a24 24 0 0 0 24 24h48a24 24 0 0 0 24-24V96a24 24 0 0 0-24-24M40 168a8 8 0 0 1-8-8V64a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8v8h-16a24 24 0 0 0-24 24v72Zm192 24a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8V96a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8Zm-96 16a8 8 0 0 1-8 8H88a8 8 0 0 1 0-16h40a8 8 0 0 1 8 8m80-96a8 8 0 0 1-8 8h-16a8 8 0 0 1 0-16h16a8 8 0 0 1 8 8"},null,-1)])])}const pt=I({name:"ph-devices",render:ut}),mt={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function ht(l,n){return o(),a("svg",mt,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M100 56H40a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h60v8a32 32 0 0 1-32 32a8 8 0 0 0 0 16a48.05 48.05 0 0 0 48-48V72a16 16 0 0 0-16-16m0 80H40V72h60Zm116-80h-60a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h60v8a32 32 0 0 1-32 32a8 8 0 0 0 0 16a48.05 48.05 0 0 0 48-48V72a16 16 0 0 0-16-16m0 80h-60V72h60Z"},null,-1)])])}const ft=I({name:"ph-quotes",render:ht}),gt={class:"practices__grid"},vt=b({__name:"LandingPractices",setup(l){const n=[{icon:oe,title:"Start axes at zero",description:"Bar charts always start at zero by default. Misleading truncated axes require an explicit override.",badge:"Enforced"},{icon:ae,title:"Semantic color only",description:"Color encodes data — never decoration. Sequential, diverging and categorical palettes follow best practices.",badge:"By default"},{icon:pt,title:"Mobile-first layout",description:"Every chart is responsive. Labels reflow, tick counts reduce, and layouts adapt from desktop down to 320px.",badge:"Always"},{icon:re,title:"WCAG-compliant contrast",description:"Text on chart backgrounds is checked against WCAG AA contrast ratios. Accessibility is not optional.",badge:"Verified"},{icon:ft,title:"Source attribution",description:"The BPC format includes a source field displayed on every chart, promoting citation culture in journalism.",badge:"Built in"},{icon:ie,title:"Chart type guidance",description:"Blueprint applies type-specific defaults — line interpolation, value label placement, legend positioning — so each chart type looks right out of the box.",badge:"Smart defaults"}];return(c,s)=>{const i=A,t=ct,p=T;return o(),P(p,null,{default:f(()=>[d(i,{label:"Visualization best practices",center:""},{lead:f(()=>[...s[0]||(s[0]=[h(" Blueprint Chart ships with baked-in expertise from Tufte, Cairo, Schwabish and the broader dataviz research community. ",-1)])]),default:f(()=>[s[1]||(s[1]=h(" The right defaults,",-1)),s[2]||(s[2]=e("br",null,null,-1)),s[3]||(s[3]=e("em",null,"every time.",-1))]),_:1}),e("div",gt,[(o(),a(y,null,$(n,u=>d(t,{key:u.title,icon:u.icon,title:u.title,description:u.description,badge:u.badge},null,8,["icon","title","description","badge"])),64))])]),_:1})}}}),bt=v(vt,[["__scopeId","data-v-44021004"]]),yt={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function $t(l,n){return o(),a("svg",yt,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M216 104H102.09L210 75.51a8 8 0 0 0 5.68-9.84l-8.16-30a15.93 15.93 0 0 0-19.42-11.13L35.81 64.74a15.75 15.75 0 0 0-9.7 7.4a15.5 15.5 0 0 0-1.55 12L32 111.56V200a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-88a8 8 0 0 0-8-8m-23.84-64l6 22.07l-22.62 6l-28.12-16.24Zm-66.69 17.6l28.12 16.24l-36.94 9.75l-28.12-16.22Zm-79.4 44.62l-6-22.08l26.5-7L94.69 89.4ZM208 200H48v-80h160z"},null,-1)])])}const Ct=I({name:"ph-film-slate",render:$t}),wt={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function Lt(l,n){return o(),a("svg",wt,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M197.58 129.06L146 110l-19-51.62a15.92 15.92 0 0 0-29.88 0L78 110l-51.62 19a15.92 15.92 0 0 0 0 29.88L78 178l19 51.62a15.92 15.92 0 0 0 29.88 0L146 178l51.62-19a15.92 15.92 0 0 0 0-29.88ZM137 164.22a8 8 0 0 0-4.74 4.74L112 223.85L91.78 169a8 8 0 0 0-4.78-4.78L32.15 144L87 123.78a8 8 0 0 0 4.78-4.78L112 64.15L132.22 119a8 8 0 0 0 4.74 4.74L191.85 144ZM144 40a8 8 0 0 1 8-8h16V16a8 8 0 0 1 16 0v16h16a8 8 0 0 1 0 16h-16v16a8 8 0 0 1-16 0V48h-16a8 8 0 0 1-8-8m104 48a8 8 0 0 1-8 8h-8v8a8 8 0 0 1-16 0v-8h-8a8 8 0 0 1 0-16h8v-8a8 8 0 0 1 16 0v8h8a8 8 0 0 1 8 8"},null,-1)])])}const kt=I({name:"ph-sparkle",render:Lt}),St={class:"scenes__grid"},xt={class:"scenes-demo"},It={class:"scenes__features"},Bt={class:"scenes-feature__icon"},Pt={class:"scenes-feature__title"},Tt={class:"scenes-feature__desc"},At=b({__name:"LandingScenes",setup(l){const n=H.find(C=>C.id==="farm-compass").dsl,c=le(n),s=Z("containerRef"),i=me(null),t=M(-1),p=M(!1),u=M(!1);let _=null;const g=M(t.value+2);G(t,C=>{g.value=C+2});const{theme:w}=O();function L(){s.value&&(he(s.value,n,{stripColors:!0,sceneIndex:t.value>=0?t.value:void 0,transition:u.value}),u.value=!1)}const E=fe(L,150);G([s,t,w],L,{immediate:!0}),de(s,E);function z(){var C;return((C=s.value)==null?void 0:C.querySelector(".bc-frame-footer"))??null}let k=null;G(s,C=>{if(k&&(k.disconnect(),k=null),!C){i.value=null;return}i.value=z(),k=new MutationObserver(()=>{i.value=z()}),k.observe(C,{childList:!0,subtree:!0})},{immediate:!0});function j(C){u.value=!0,t.value=C-2}function W(){t.value>-1&&(u.value=!0,t.value=t.value-1)}function K(){t.value<c-1&&(u.value=!0,t.value=t.value+1)}function Q(){p.value||(p.value=!0,u.value=!0,t.value=-1,_=globalThis.setInterval(()=>{t.value<c-1?(u.value=!0,t.value++):V()},3e3))}function V(){p.value=!1,_&&(globalThis.clearInterval(_),_=null)}ce(()=>{V(),k&&(k.disconnect(),k=null)});const X=[{icon:Ct,title:"Sequential scenes",description:"Each scene mutates the chart — highlight, filter, zoom, reorder, or change type entirely."},{icon:kt,title:"Smooth animated transitions",description:"D3-powered morphing between states — bars grow, lines redraw, highlights pulse."},{icon:pe,title:"Embed anywhere",description:"One iframe embed. Works in WordPress, Ghost, any CMS."}];return(C,S)=>{const Y=A,J=T;return o(),P(J,{id:"stories"},{default:f(()=>[e("div",St,[e("div",xt,[e("div",{ref_key:"containerRef",ref:s,class:"scenes-demo__chart"},null,512),r(i)&&r(c)>0?(o(),P(_e,{key:0,to:r(i)},[d(r(ue),{total:r(c)+1,current:r(g),playing:r(p),position:"left","onUpdate:current":j,onPrevious:W,onNext:K,onPlay:Q,onPause:V},null,8,["total","current","playing"])],8,["to"])):N("",!0)]),e("div",null,[d(Y,{label:"Scenes & storytelling"},{lead:f(()=>[...S[0]||(S[0]=[h(" Create a sequence of scenes — each a step in your narrative. The same chart morphs from overview to focus, from cause to consequence. ",-1)])]),default:f(()=>[S[1]||(S[1]=h(" Guide your reader",-1)),S[2]||(S[2]=e("br",null,null,-1)),S[3]||(S[3]=e("em",null,"through the data.",-1))]),_:1}),e("div",It,[(o(),a(y,null,$(X,F=>e("div",{key:F.title,class:"scenes-feature"},[e("span",Bt,[d(r(x),{name:F.icon,size:"sm",variant:"primary"},null,8,["name"])]),e("div",null,[e("strong",Pt,m(F.title),1),e("p",Tt,m(F.description),1)])])),64))])])])]),_:1})}}}),Mt=v(At,[["__scopeId","data-v-f84c1eef"]]),Ft=b({__name:"LandingChartPreview",props:{bpc:{}},setup(l){const n=l,c=Z("containerRef");return ge(c,ve(n,"bpc"),{stripColors:!0}),(s,i)=>(o(),a("div",{ref_key:"containerRef",ref:c,class:"landing-chart-preview"},null,512))}}),D=v(Ft,[["__scopeId","data-v-eb03c209"]]),Ht={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"};function Vt(l,n){return o(),a("svg",Ht,[...n[0]||(n[0]=[e("path",{fill:"currentColor",d:"M215.79 118.17a8 8 0 0 0-5-5.66L153.18 90.9l14.66-73.33a8 8 0 0 0-13.69-7l-112 120a8 8 0 0 0 3 13l57.63 21.61l-14.62 73.25a8 8 0 0 0 13.69 7l112-120a8 8 0 0 0 1.94-7.26M109.37 214l10.47-52.38a8 8 0 0 0-5-9.06L62 132.71l84.62-90.66l-10.46 52.38a8 8 0 0 0 5 9.06l52.8 19.8Z"},null,-1)])])}const Gt=I({name:"ph-lightning",render:Vt}),Rt={class:"format__grid"},Dt={class:"format__grid__pane-cell"},zt={class:"format-pane","data-bs-theme":"dark"},Ut=["innerHTML"],Ot={class:"format__grid__chart-tile"},qt={class:"format-ai-note"},Nt={class:"format-ai-note__header"},Zt=b({__name:"LandingFormat",setup(l){const c=H.find(i=>i.id==="coffee-production").dsl.replace(/\{/,`{
|
|
2
|
+
theme = "blueprint-framed"`).split(`
|
|
3
|
+
`).filter(i=>!/^\s*(colors|colorPalette)\s*=/.test(i)).join(`
|
|
4
|
+
`),s=q(()=>be(c));return(i,t)=>{const p=A,u=D,_=T;return o(),P(_,{id:"bpc",dark:"",full:""},{default:f(()=>[d(p,{label:"BPC — Blueprint Chart Format"},{lead:f(()=>[...t[0]||(t[0]=[h(" BPC is a minimal, plain-text format to describe charts. It's readable at a glance, trivially diffable, and perfectly structured for AI-assisted chart generation. ",-1)])]),default:f(()=>[t[1]||(t[1]=h(" Designed for humans",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=e("em",null,"and LLMs alike.",-1))]),_:1}),e("div",Rt,[e("div",Dt,[e("div",zt,[t[4]||(t[4]=e("div",{class:"format-pane__header"},[e("span",{class:"format-dot format-dot--red"}),e("span",{class:"format-dot format-dot--yellow"}),e("span",{class:"format-dot format-dot--green"}),h(" chart.bpc ")],-1)),e("pre",{class:"format-pane__code",innerHTML:r(s)},null,8,Ut)])]),e("div",null,[e("div",Ot,[d(u,{bpc:r(c)},null,8,["bpc"])]),e("div",qt,[e("div",Nt,[d(r(x),{name:r(Gt),size:"sm",variant:"warning"},null,8,["name"]),t[5]||(t[5]=e("span",{class:"format-ai-note__header__title"},"LLM-friendly by design",-1))]),t[6]||(t[6]=e("p",{class:"format-ai-note__text"}," BPC uses a simple block syntax. A language model can generate valid BPC from a plain description — and you can paste it straight into Blueprint Chart. ",-1))])])])]),_:1})}}}),Et=v(Zt,[["__scopeId","data-v-551f5501"]]),jt={class:"transforms-demo"},Wt={class:"transforms-demo__steps"},Kt=["onClick"],Qt={class:"transforms-demo__step__num"},Xt={class:"transforms-demo__step__label"},Yt={class:"transforms-demo__body"},Jt={class:"transforms-demo__body__panel"},en={class:"transforms-demo__body__panel__title"},tn={class:"transforms-demo__body__panel__table"},nn={class:"transforms-demo__body__panel"},sn={class:"transforms-demo__body__panel__title"},on={class:"transforms-demo__body__panel__table"},an={class:"transforms-demo__body__panel__note"},rn={class:"transforms__cards"},ln={class:"transforms-card__title"},dn={class:"transforms-card__desc"},cn=b({__name:"LandingTransforms",setup(l){const n=M(0),c=[{icon:ye,title:"Sort",description:"Multi-column sort with direction control. Ascending, descending, or by aggregation.",colorClass:"transforms-card__icon--sort"},{icon:$e,title:"Filter",description:"Keep or remove rows by condition — equals, not-equals, contains, greater-than, less-than.",colorClass:"transforms-card__icon--filter"},{icon:Ce,title:"Group & aggregate",description:"Group rows by any column, then aggregate with SUM, AVG, MIN, MAX or COUNT.",colorClass:"transforms-card__icon--group"},{icon:we,title:"Parse",description:"29 operations — type conversions, string transforms, date extraction, numeric normalization.",colorClass:"transforms-card__icon--parse"},{icon:Le,title:"Rename",description:"Clean up column names for readable axis labels and chart titles.",colorClass:"transforms-card__icon--rename"},{icon:ke,title:"Hide columns",description:"Remove columns from the chart without deleting them from your data.",colorClass:"transforms-card__icon--hide"},{icon:Se,title:"Transpose",description:"Swap rows and columns. First column values become headers.",colorClass:"transforms-card__icon--transpose"}],s=[{label:"Raw CSV",inputTitle:"Uploaded data",outputTitle:"Detected types",input:[["country","year","co2"],["France","2019","4.6"],["France","2020","4.1"],["Germany","2019","8.5"],["Germany","2020","7.7"],["USA","2019","15.2"],["USA","2020","13.9"]],output:[["column","type","values"],["country","string","3 unique"],["year","number","2019 – 2020"],["co2","number","4.1 – 15.2"]],note:"Blueprint auto-detects column types from your CSV, paste or sample data."},{label:"Group by",inputTitle:"Input rows",outputTitle:"After grouping",input:[["country","year","co2"],["France","2019","4.6"],["France","2020","4.1"],["Germany","2019","8.5"],["Germany","2020","7.7"],["USA","2019","15.2"],["USA","2020","13.9"]],output:[["country","co2 (avg)"],["France","4.35"],["Germany","8.10"],["USA","14.55"]],highlightCol:"country",outputHighlightCol:"co2 (avg)",note:"Rows with the same country are grouped. CO₂ values aggregated with AVG."},{label:"Sort",inputTitle:"Grouped data",outputTitle:"Sorted descending",input:[["country","co2 (avg)"],["France","4.35"],["Germany","8.10"],["USA","14.55"]],output:[["country","co2 (avg)"],["USA","14.55"],["Germany","8.10"],["France","4.35"]],outputHighlightCol:"co2 (avg)",note:"Sorted by CO₂ descending — highest emitter first. Ready for the chart."},{label:"Rename",inputTitle:"Before rename",outputTitle:"Chart-ready",input:[["country","co2 (avg)"],["USA","14.55"],["Germany","8.10"],["France","4.35"]],output:[["Country","Avg CO₂ (tonnes)"],["USA","14.55"],["Germany","8.10"],["France","4.35"]],outputHighlightCol:"Avg CO₂ (tonnes)",note:"Clean column names for readable axis labels. Data flows straight to the chart."}];return(i,t)=>{const p=A,u=T;return o(),P(u,{id:"transforms"},{default:f(()=>[d(p,{label:"Data pipeline"},{lead:f(()=>[...t[0]||(t[0]=[h(" Raw data rarely fits a chart out of the box. Blueprint Chart's built-in pipeline lets you sort, filter, group and reshape — all without leaving the editor. ",-1)])]),default:f(()=>[t[1]||(t[1]=h(" Transform your data",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=e("em",null,"before you chart it.",-1))]),_:1}),e("div",jt,[e("div",Wt,[(o(),a(y,null,$(s,(_,g)=>e("button",{key:g,class:B(["transforms-demo__step",{"transforms-demo__step--active":r(n)===g}]),onClick:w=>n.value=g},[e("span",Qt,m(g+1),1),e("span",Xt,m(_.label),1)],10,Kt)),64))]),e("div",Yt,[e("div",Jt,[e("div",en,m(s[r(n)].inputTitle),1),e("table",tn,[e("thead",null,[e("tr",null,[(o(!0),a(y,null,$(s[r(n)].input[0],_=>(o(),a("th",{key:_,class:"transforms-demo__body__panel__th"},m(_),1))),128))])]),e("tbody",null,[(o(!0),a(y,null,$(s[r(n)].input.slice(1),(_,g)=>(o(),a("tr",{key:g},[(o(!0),a(y,null,$(_,(w,L)=>(o(),a("td",{key:L,class:B(["transforms-demo__body__panel__td",{"transforms-demo__body__panel__td--highlight":s[r(n)].highlightCol===s[r(n)].input[0][L]}])},m(w),3))),128))]))),128))])])]),t[4]||(t[4]=e("div",{class:"transforms-demo__body__flow"},[e("svg",{viewBox:"0 0 80 10",preserveAspectRatio:"none",class:"transforms-demo__body__flow__svg"},[e("path",{d:"M0,5 C30,5 50,5 80,5",class:"transforms-demo__body__flow__wire","vector-effect":"non-scaling-stroke"})]),e("div",{class:"transforms-demo__body__flow__dot transforms-demo__body__flow__dot--left"}),e("div",{class:"transforms-demo__body__flow__dot transforms-demo__body__flow__dot--right"})],-1)),e("div",nn,[e("div",sn,m(s[r(n)].outputTitle),1),e("table",on,[e("thead",null,[e("tr",null,[(o(!0),a(y,null,$(s[r(n)].output[0],_=>(o(),a("th",{key:_,class:"transforms-demo__body__panel__th"},m(_),1))),128))])]),e("tbody",null,[(o(!0),a(y,null,$(s[r(n)].output.slice(1),(_,g)=>(o(),a("tr",{key:g},[(o(!0),a(y,null,$(_,(w,L)=>(o(),a("td",{key:L,class:B(["transforms-demo__body__panel__td",{"transforms-demo__body__panel__td--highlight":s[r(n)].outputHighlightCol===s[r(n)].output[0][L]}])},m(w),3))),128))]))),128))])]),e("p",an,m(s[r(n)].note),1)])])]),e("div",rn,[(o(),a(y,null,$(c,_=>e("div",{key:_.title,class:"transforms-card"},[e("span",{class:B(["transforms-card__icon",_.colorClass])},[d(r(x),{name:_.icon,size:"sm"},null,8,["name"])],2),e("div",null,[e("strong",ln,m(_.title),1),e("p",dn,m(_.description),1)])])),64))])]),_:1})}}}),_n=v(cn,[["__scopeId","data-v-3ed218ed"]]),un={class:"bullet-point"},pn={class:"bullet-point__title"},mn={class:"bullet-point__desc"},hn=b({__name:"LandingBulletPoint",props:{title:{},description:{}},setup(l){return(n,c)=>(o(),a("div",un,[c[0]||(c[0]=e("div",{class:"bullet-point__dot"},null,-1)),e("div",null,[e("strong",pn,m(l.title),1),e("p",mn,m(l.description),1)])]))}}),fn=v(hn,[["__scopeId","data-v-7112edd5"]]),gn={class:"philosophy__grid"},vn={class:"philosophy__chart-tile"},bn={class:"philosophy__points"},yn=b({__name:"LandingPhilosophy",setup(l){const n=H.find(s=>s.id==="temperature-anomaly").dsl.replace(/\{/,`{
|
|
5
|
+
theme = "blueprint-framed"`),c=[{title:"Direct labels by default",description:"Labels sit next to data, never in a disconnected legend box. Readers' eyes never have to travel."},{title:"No chart junk",description:"Gridlines, borders and decorations are suppressed unless they carry information. Based on Tufte's data-ink ratio."},{title:"Colorblind-safe palettes",description:"Every default palette is tested against deuteranopia, protanopia, and tritanopia. Accessible by default."}];return(s,i)=>{const t=D,p=A,u=fn,_=T;return o(),P(_,{id:"features"},{default:f(()=>[e("div",gn,[e("div",vn,[d(t,{bpc:r(n)},null,8,["bpc"])]),e("div",null,[d(p,{label:"Design philosophy"},{lead:f(()=>[...i[0]||(i[0]=[h(" Clutter is the enemy of insight. Blueprint Chart's defaults are opinionated by design — guided by decades of data visualization research so your readers focus on the story, not the noise. ",-1)])]),default:f(()=>[i[1]||(i[1]=h(" A simple chart",-1)),i[2]||(i[2]=e("br",null,null,-1)),i[3]||(i[3]=e("em",null,"sends a big message.",-1))]),_:1}),e("div",bn,[(o(),a(y,null,$(c,g=>d(u,{key:g.title,title:g.title,description:g.description},null,8,["title","description"])),64))])])])]),_:1})}}}),$n=v(yn,[["__scopeId","data-v-2a77cc8a"]]),Cn={class:"landing-divider"},wn=b({name:"LandingDivider",__name:"LandingDivider",setup(l){return(n,c)=>(o(),a("div",Cn,[...c[0]||(c[0]=[e("hr",{class:"landing-divider__line"},null,-1)])]))}}),Ln=v(wn,[["__scopeId","data-v-1202fa50"]]),kn={class:"landing-badge"},Sn=b({__name:"LandingBadge",props:{label:{}},setup(l){return(n,c)=>(o(),a("span",kn,[d(r(x),{name:r(xe),size:"xs",variant:"success"},null,8,["name"]),h(" "+m(l.label),1)]))}}),xn=v(Sn,[["__scopeId","data-v-67b92dea"]]),In={class:"landing-hero"},Bn={class:"landing-hero__inner"},Pn={class:"landing-hero__inner__text"},Tn={class:"landing-hero__inner__text__actions"},An={class:"landing-hero__inner__text__meta"},Mn={class:"landing-hero__inner__chart"},Fn=b({__name:"LandingHero",setup(l){const n=["Free forever","No account required","MIT licensed"],c=H.find(s=>s.id==="co2-emissions").dsl.replace(/\{/,`{
|
|
6
|
+
theme = "blueprint-framed"`);return(s,i)=>{const t=xn,p=D;return o(),a("section",In,[e("div",Bn,[e("div",Pn,[i[0]||(i[0]=e("div",{class:"landing-hero__inner__text__eyebrow"}," Data visualization for the editorial web ",-1)),i[1]||(i[1]=e("h1",{class:"landing-hero__inner__text__h1"},[h(" Turn data into"),e("br"),e("em",null,"compelling stories.")],-1)),i[2]||(i[2]=e("p",{class:"landing-hero__inner__text__sub"}," Blueprint Chart is a free, open-source tool for journalists, researchers and analysts. Build beautiful, accessible charts with best practices built in — no design degree required. ",-1)),e("div",Tn,[d(r(U),{to:"/charts",label:"My Charts",variant:"outline-primary"}),d(r(U),{to:"/new",label:"New chart",variant:"primary","icon-left":r(Ie)},null,8,["icon-left"])]),e("div",An,[(o(),a(y,null,$(n,u=>d(t,{key:u,label:u},null,8,["label"])),64))])]),e("div",Mn,[d(p,{bpc:r(c)},null,8,["bpc"])])])])}}}),Hn=v(Fn,[["__scopeId","data-v-749a303f"]]),Vn={},Gn={class:"landing-page"};function Rn(l,n){const c=Hn,s=Ln,i=$n,t=_n,p=Et,u=Mt,_=bt,g=st,w=Fe;return o(),a("div",Gn,[d(c),d(s),d(i),d(s),d(t),d(p),d(u),d(s),d(_),d(g),d(w)])}const zn=v(Vn,[["render",Rn],["__scopeId","data-v-d60dd989"]]);export{zn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.landing-footer[data-v-8edbfba9]{background:var(--bs-dark);color:#ffffff80;padding:2.5rem clamp(1rem,5vw,3.75rem);display:flex;align-items:center;justify-content:space-between;font-size:var(--bs-font-size-sm);flex-wrap:wrap;gap:1rem}.landing-footer__brand[data-v-8edbfba9]{display:flex;align-items:center;gap:.5rem;font-weight:700;color:#ffffffe6}.landing-footer__brand__logo[data-v-8edbfba9]{height:1.25rem;width:auto;opacity:.8}.landing-footer__links__link[data-v-8edbfba9]{color:#ffffffb3;text-decoration:none}.landing-footer__links__link[data-v-8edbfba9]:hover{color:#fff}.landing-footer__links__sep[data-v-8edbfba9]{margin:0 .25rem}.landing-section[data-v-cb612eba]{padding:4.5rem clamp(1rem,5vw,3.75rem)}.landing-section__inner[data-v-cb612eba]{max-width:70rem;margin:0 auto}.landing-section--dark[data-v-cb612eba]{background:var(--bs-body-bg);color:var(--bs-body-color)}[data-bs-theme=dark] .landing-section--dark[data-v-cb612eba]{background:var(--bc-tile-bg)}.landing-section-header__label[data-v-72016f2c]{font-size:var(--bs-font-size-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bs-primary);margin-bottom:.5rem}.landing-section-header__title[data-v-72016f2c]{font-family:"DM Serif Display",serif;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:400;line-height:1.15;letter-spacing:-.01em;color:var(--bs-body-color);margin-bottom:.875rem}.landing-section-header__title[data-v-72016f2c] em{font-style:italic}.landing-section-header__lead[data-v-72016f2c]{font-size:1rem;color:var(--bs-secondary-color);max-width:35rem;line-height:1.7;margin-bottom:2.5rem}.landing-section-header--center[data-v-72016f2c]{text-align:center;max-width:37.5rem;margin:0 auto 3rem}.landing-section-header--center .landing-section-header__lead[data-v-72016f2c]{margin-left:auto;margin-right:auto;margin-bottom:0}.oss[data-v-16f3ce26]{background:var(--bc-void-bg);border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color)}.oss__grid[data-v-16f3ce26]{display:grid;grid-template-columns:1fr 1fr;gap:3.75rem;align-items:center}.oss__detail[data-v-16f3ce26]{font-size:var(--bs-font-size-md);color:var(--bs-secondary-color);line-height:1.7;max-width:30rem}.oss__badges[data-v-16f3ce26]{display:flex;gap:.625rem;margin-top:1.5rem;flex-wrap:wrap}.oss__stats[data-v-16f3ce26]{display:grid;grid-template-columns:1fr 1fr;gap:var(--bc-tile-gap)}.oss-badge[data-v-16f3ce26]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:var(--bc-tile-radius);font-size:var(--bs-font-size-sm);font-weight:700}.oss-badge--green[data-v-16f3ce26]{background:var(--bs-success);color:#fff}.oss-badge--dark[data-v-16f3ce26]{background:var(--bs-dark);color:#fff}.oss-stat[data-v-16f3ce26]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);padding:1.25rem}.oss-stat__num[data-v-16f3ce26]{font-family:"DM Serif Display",serif;font-size:2.25rem;font-weight:400;color:var(--bs-body-color);line-height:1;margin-bottom:.25rem}.oss-stat__label[data-v-16f3ce26]{font-size:var(--bs-font-size-sm);color:var(--bs-secondary-color)}@media(max-width:51.25rem){.oss__grid[data-v-16f3ce26]{grid-template-columns:1fr}}.practice-card[data-v-820d994a]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);padding:1.25rem;transition:box-shadow .2s,transform .2s}.practice-card[data-v-820d994a]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.practice-card__icon[data-v-820d994a]{width:2.25rem;height:2.25rem;border-radius:calc(var(--bc-tile-radius) - 4px);background:var(--bs-primary-bg-subtle);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}.practice-card__title[data-v-820d994a]{font-size:var(--bs-font-size-md);font-weight:700;color:var(--bs-body-color);margin-bottom:.375rem}.practice-card__desc[data-v-820d994a]{font-size:var(--bs-font-size-sm);color:var(--bs-secondary-color);line-height:1.6;margin:0}.practice-card__badge[data-v-820d994a]{display:inline-flex;align-items:center;margin-top:.625rem;padding:.25rem .5rem;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-radius:.25rem;font-size:var(--bs-font-size-xs);font-weight:700}.practices__grid[data-v-44021004]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}@media(max-width:51.25rem){.practices__grid[data-v-44021004]{grid-template-columns:repeat(2,1fr)}}@media(max-width:33.75rem){.practices__grid[data-v-44021004]{grid-template-columns:1fr}}.scenes__grid[data-v-f84c1eef]{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}.scenes__features[data-v-f84c1eef]{display:flex;flex-direction:column;gap:.75rem}.scenes-feature[data-v-f84c1eef]{display:flex;gap:.625rem;align-items:flex-start;padding:.75rem 1rem;background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:calc(var(--bc-tile-radius) - 2px)}.scenes-feature__icon[data-v-f84c1eef]{margin-top:1px}.scenes-feature__title[data-v-f84c1eef]{font-size:var(--bs-font-size-sm)}.scenes-feature__desc[data-v-f84c1eef]{font-size:var(--bs-font-size-sm);color:var(--bs-secondary-color);margin-top:.125rem;line-height:1.5}.scenes-demo[data-v-f84c1eef]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);overflow:hidden}@media(max-width:51.25rem){.scenes__grid[data-v-f84c1eef]{grid-template-columns:1fr}}.landing-chart-preview[data-v-eb03c209]{width:100%;height:100%}.format__grid[data-v-551f5501]{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:.75rem}.format__grid__pane-cell[data-v-551f5501]{position:relative;min-height:0}.format__grid__chart-tile[data-v-551f5501]{background:transparent;border-radius:var(--bc-tile-radius);border:1px solid rgba(255,255,255,.1);overflow:hidden}.format-pane[data-v-551f5501]{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--bc-tile-radius);overflow:hidden;display:flex;flex-direction:column}.format-pane__header[data-v-551f5501]{padding:.625rem 1rem;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.07);font-size:var(--bs-font-size-xs);font-weight:600;color:#fff6;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:.375rem}.format-pane__code[data-v-551f5501]{padding:1.25rem 1rem;font-family:JetBrains Mono,monospace;font-size:var(--bs-font-size-sm);line-height:1.8;color:#e2e8f0;overflow:auto;scrollbar-width:none}.format-pane__code[data-v-551f5501]:hover,.format-pane__code[data-v-551f5501]:active{scrollbar-width:thin}.format-pane__code[data-v-551f5501]{white-space:pre;margin:0;flex-grow:1}.format-dot[data-v-551f5501]{width:.5rem;height:.5rem;border-radius:50%;display:inline-block}.format-dot--red[data-v-551f5501]{background:#ef4444}.format-dot--yellow[data-v-551f5501]{background:#f59e0b}.format-dot--green[data-v-551f5501]{background:#22c55e}.format-ai-note[data-v-551f5501]{margin-top:1rem;padding:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:var(--bc-tile-radius)}.format-ai-note__header[data-v-551f5501]{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem}.format-ai-note__header__title[data-v-551f5501]{font-size:var(--bs-font-size-sm);color:#7aa7d4;font-weight:700}.format-ai-note__text[data-v-551f5501]{font-size:var(--bs-font-size-sm);color:#9ca3af;line-height:1.7;margin:0}@media(max-width:51.25rem){.format__grid[data-v-551f5501]{grid-template-columns:1fr}.format__grid__pane-cell[data-v-551f5501]{min-height:24rem}}.transforms-demo[data-v-3ed218ed]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);overflow:hidden}.transforms-demo__steps[data-v-3ed218ed]{display:flex;overflow-x:auto;border-bottom:1px solid var(--bs-border-color)}.transforms-demo__step[data-v-3ed218ed]{flex:1;min-width:0;padding:.625rem 1rem;border:none;border-right:1px solid var(--bs-border-color);background:var(--bc-void-bg);cursor:pointer;transition:background .15s;display:flex;align-items:center;gap:.5rem}.transforms-demo__step[data-v-3ed218ed]:last-child{border-right:none}.transforms-demo__step[data-v-3ed218ed]:hover{background:var(--bs-tertiary-bg)}.transforms-demo__step--active[data-v-3ed218ed]{background:var(--bs-primary-bg-subtle)}.transforms-demo__step__num[data-v-3ed218ed]{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--bs-border-color);color:var(--bs-secondary-color);font-size:var(--bs-font-size-xs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.transforms-demo__step--active .transforms-demo__step__num[data-v-3ed218ed]{background:var(--bs-primary);color:#fff}.transforms-demo__step__label[data-v-3ed218ed]{font-size:var(--bs-font-size-sm);font-weight:600;color:var(--bs-secondary-color);white-space:nowrap}.transforms-demo__step--active .transforms-demo__step__label[data-v-3ed218ed]{color:var(--bs-primary)}.transforms-demo__body[data-v-3ed218ed]{display:grid;grid-template-columns:1fr 4rem 1fr;align-items:center;padding:0 1.25rem}.transforms-demo__body__panel[data-v-3ed218ed]{padding:1rem 1.25rem;border:1px solid var(--bs-border-color);border-radius:.5rem;margin:1rem 0}.transforms-demo__body__panel__title[data-v-3ed218ed]{font-size:var(--bs-font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--bs-tertiary-color);margin-bottom:.75rem}.transforms-demo__body__panel__table[data-v-3ed218ed]{width:100%;border-collapse:collapse;font-size:var(--bs-font-size-sm)}.transforms-demo__body__panel__th[data-v-3ed218ed]{padding:.25rem .625rem;text-align:left;font-weight:600;font-size:var(--bs-font-size-xs);background:var(--bc-void-bg);color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color)}.transforms-demo__body__panel__td[data-v-3ed218ed]{padding:.25rem .625rem;border-bottom:1px solid var(--bs-border-color);color:var(--bs-secondary-color)}tr:last-child>.transforms-demo__body__panel__td[data-v-3ed218ed]{border-bottom:none}.transforms-demo__body__panel__td--highlight[data-v-3ed218ed]{color:var(--bs-primary);font-weight:600}.transforms-demo__body__panel__note[data-v-3ed218ed]{font-size:var(--bs-font-size-xs);color:var(--bs-tertiary-color);line-height:1.6;margin-top:.75rem;margin-bottom:0}.transforms-demo__body__flow[data-v-3ed218ed]{position:relative;display:flex;align-items:center}.transforms-demo__body__flow__svg[data-v-3ed218ed]{width:100%;height:2px}.transforms-demo__body__flow__wire[data-v-3ed218ed]{fill:none;stroke:var(--bs-border-color);stroke-width:1.5;stroke-dasharray:5 4;stroke-linecap:round;animation:wire-flow-3ed218ed 1s linear infinite}.transforms-demo__body__flow__dot[data-v-3ed218ed]{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--bs-border-color);top:50%;transform:translateY(-50%)}.transforms-demo__body__flow__dot--left[data-v-3ed218ed]{left:-4px}.transforms-demo__body__flow__dot--right[data-v-3ed218ed]{right:-4px}@keyframes wire-flow-3ed218ed{to{stroke-dashoffset:-9}}.transforms__cards[data-v-3ed218ed]{display:grid;grid-template-columns:repeat(4,1fr);gap:.875rem;margin-top:1.75rem}.transforms-card[data-v-3ed218ed]{display:flex;gap:.625rem;align-items:flex-start;padding:.875rem 1rem;background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:calc(var(--bc-tile-radius) - 2px)}.transforms-card__icon[data-v-3ed218ed]{width:1.75rem;height:1.75rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.transforms-card__icon--sort[data-v-3ed218ed]{background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}.transforms-card__icon--filter[data-v-3ed218ed]{background:var(--bs-danger-bg-subtle);color:var(--bs-danger-text-emphasis)}.transforms-card__icon--group[data-v-3ed218ed]{background:#f2e7fe;color:#7f26d9}.transforms-card__icon--parse[data-v-3ed218ed]{background:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}.transforms-card__icon--rename[data-v-3ed218ed]{background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}.transforms-card__icon--hide[data-v-3ed218ed]{background:var(--bs-secondary-bg);color:var(--bs-secondary-text-emphasis)}.transforms-card__icon--transpose[data-v-3ed218ed]{background:var(--bs-info-bg-subtle);color:var(--bs-info-text-emphasis)}.transforms-card__title[data-v-3ed218ed]{font-size:var(--bs-font-size-sm);display:block}.transforms-card__desc[data-v-3ed218ed]{font-size:var(--bs-font-size-xs);color:var(--bs-secondary-color);margin-top:.125rem;line-height:1.5}@media(max-width:51.25rem){.transforms-demo__body[data-v-3ed218ed]{grid-template-columns:1fr}.transforms-demo__body__panel[data-v-3ed218ed]{margin:0}.transforms-demo__body__flow[data-v-3ed218ed]{flex-direction:column;justify-content:center;align-items:center;height:2rem;margin:-4px 0;position:relative;z-index:1;overflow:hidden}.transforms-demo__body__flow__svg[data-v-3ed218ed]{width:auto;height:auto;flex:1;transform:rotate(90deg)}.transforms-demo__body__flow__dot[data-v-3ed218ed]{position:static;transform:none;flex-shrink:0}.transforms-demo__body__flow__dot--left[data-v-3ed218ed]{order:-1}.transforms-demo__body__flow__dot--right[data-v-3ed218ed]{order:1}.transforms__cards[data-v-3ed218ed]{grid-template-columns:repeat(2,1fr)}}@media(max-width:33.75rem){.transforms__cards[data-v-3ed218ed]{grid-template-columns:1fr}}.bullet-point[data-v-7112edd5]{display:flex;gap:.875rem;align-items:flex-start}.bullet-point__dot[data-v-7112edd5]{min-width:.5rem;height:.5rem;background:var(--bs-primary);border-radius:50%;margin-top:.5rem}.bullet-point__title[data-v-7112edd5]{font-size:var(--bs-font-size-md)}.bullet-point__desc[data-v-7112edd5]{font-size:var(--bs-font-size-sm);color:var(--bs-secondary-color);margin-top:.125rem;line-height:1.6}.philosophy__grid[data-v-2a77cc8a]{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;overflow:hidden}.philosophy__points[data-v-2a77cc8a]{display:flex;flex-direction:column;gap:.875rem}.philosophy__chart-tile[data-v-2a77cc8a]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);align-self:start;overflow:hidden}@media(max-width:51.25rem){.philosophy__grid[data-v-2a77cc8a]{grid-template-columns:1fr}}.landing-divider[data-v-1202fa50]{max-width:70rem;margin:0 auto;padding:0 clamp(1rem,5vw,3.75rem)}.landing-divider__line[data-v-1202fa50]{border:none;border-top:1px solid var(--bs-border-color);margin:0}.landing-badge[data-v-67b92dea]{display:flex;align-items:center;gap:.375rem;font-size:var(--bs-font-size-sm);color:var(--bs-secondary-color)}.landing-hero[data-v-749a303f]{padding:3.5rem clamp(1rem,5vw,3.75rem) 4rem}.landing-hero__inner[data-v-749a303f]{max-width:70rem;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing-hero__inner__text__eyebrow[data-v-749a303f]{font-size:var(--bs-font-size-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bs-primary);display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.landing-hero__inner__text__eyebrow[data-v-749a303f]:before{content:"";display:block;width:1.5rem;height:2px;background:var(--bs-primary)}.landing-hero__inner__text__h1[data-v-749a303f]{font-family:"DM Serif Display",serif;font-size:clamp(2.25rem,4.5vw,3.5rem);font-weight:400;line-height:1.08;letter-spacing:-.01em;color:var(--bs-body-color);margin-bottom:1.5rem}.landing-hero__inner__text__h1[data-v-749a303f] em{font-style:italic;color:var(--bs-primary)}.landing-hero__inner__text__sub[data-v-749a303f]{font-size:1rem;color:var(--bs-secondary-color);line-height:1.65;max-width:28.75rem;margin-bottom:2.25rem}.landing-hero__inner__text__actions[data-v-749a303f]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.landing-hero__inner__text__meta[data-v-749a303f]{display:flex;align-items:center;gap:1.25rem;margin-top:1.5rem;flex-wrap:wrap}.landing-hero__inner__chart[data-v-749a303f]{background:var(--bc-tile-bg);border:var(--bc-tile-border);border-radius:var(--bc-tile-radius);box-shadow:var(--bc-tile-shadow);align-self:center;overflow:hidden}@media(max-width:51.25rem){.landing-hero__inner[data-v-749a303f]{grid-template-columns:1fr}.landing-hero__inner__chart[data-v-749a303f]{display:none}}.landing-page[data-v-d60dd989]{background:var(--bc-void-bg);min-height:100vh;width:100%}
|