{"version":3,"file":"BitboxComparisonTable.DPDthOZe.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/fTRrOqfCko2UdVB9qnJ7/6UNJA01ovrLl15yzKTpl/BitboxComparisonTable.js"],"sourcesContent":["// BitboxComparisonTable.tsx\n// Framer Component — paste into Framer Workshop to test\n// Supports: CSV data, font/color/border controls, animated row borders, sticky label column, horizontal scroll\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";// ─── Default CSV ────────────────────────────────────────────────────────────\nconst DEFAULT_CSV=`Specification,bitbox max,bitbox,mini-c,mini\nWEIGHT,98g,98g,49g,49g\nMSRP,$1599,$1199,$649,$479\nCONSTRUCTION,\"7075-T6 and 6061-T6 machined aluminum\",\"7075-T6 and 6061-T6 machined aluminum\",\"60% recycled plastic, injection molded 7075-T6 mounting plate\",\"60% recycled plastic, injection molded 7075-T6 mounting plate\"\nNUMBER OF REMOTES,8,8,2,0\nRANGE,3.2km line of sight,1km line of sight,1km line of sight,1km line of sight\nRADIO MODULE,BP.BBR.V2.900,BP.BBR.V1.915,BP.BBR.V1.915,BP.BBR.V1.915\nFUNCTIONS,Base Station or Remote,Base Station or Remote,Base Station or Remote,Remote Only\nPORTS,\"LEMO 2-pin, 1Gbps Ethernet, USB-C PD Ethernet, Internal Expansion\",\"LEMO 2-pin, 1Gbps Ethernet, USB-C PD + Ethernet, Internal Expansion\",\"LEMO 2-pin, USB-C PD + Ethernet\",\"LEMO 2-pin, 100Mbps Ethernet\"\nUSB-C ETHERNET,Yes,Yes,Yes,No\nUSB-C PD POWER IN/OUT,Yes,Yes,Yes,No\nINTERNAL EXPANSION CONNECTOR,Yes / 1Gbps,Yes / 1Gbps,No,No\nINTERNAL ETHERNET SWITCH,Yes,Yes,No,No`;// ─── CSV Parser (handles quoted fields with commas) ──────────────────────────\nfunction parseCSV(raw){return raw.trim().split(\"\\n\").map(line=>{const cols=[];let cur=\"\";let inQuote=false;for(let i=0;i<line.length;i++){const ch=line[i];if(ch==='\"'){inQuote=!inQuote;}else if(ch===\",\"&&!inQuote){cols.push(cur.trim());cur=\"\";}else{cur+=ch;}}cols.push(cur.trim());// Unescape \\n within each field into a real newline marker\nreturn cols.map(col=>col.replace(/\\\\n/g,\"\\n\"));});}// ─── Animation easing presets ────────────────────────────────────────────────\nconst EASINGS={Linear:\"linear\",\"Ease In\":\"ease-in\",\"Ease Out\":\"ease-out\",\"Ease In Out\":\"ease-in-out\",\"Cubic Bounce\":\"cubic-bezier(0.34,1.56,0.64,1)\",Sharp:\"cubic-bezier(0.4,0,0.2,1)\"};// ─── Extract OpenType / font-variant props from Framer font object ──────────\nfunction fontStyles(fontObj){if(!fontObj)return{};const{fontFamily,fontWeight,fontStyle,fontSize,lineHeight,letterSpacing,fontVariantNumeric,fontVariantLigatures,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontFeatureSettings,fontVariationSettings,textDecoration,textTransform}=fontObj;return{...fontFamily&&{fontFamily},...fontWeight&&{fontWeight},...fontStyle&&{fontStyle},...fontSize&&{fontSize},...lineHeight&&{lineHeight},...letterSpacing&&{letterSpacing},...fontVariantNumeric&&{fontVariantNumeric},...fontVariantLigatures&&{fontVariantLigatures},...fontVariantAlternates&&{fontVariantAlternates},...fontVariantCaps&&{fontVariantCaps},...fontVariantEastAsian&&{fontVariantEastAsian},...fontFeatureSettings&&{fontFeatureSettings},...fontVariationSettings&&{fontVariationSettings},...textDecoration&&{textDecoration}};}// ─── Component ───────────────────────────────────────────────────────────────\nexport default function BitboxComparisonTable({// Data\ncsvData,// Typography — Row Header (top product name row)\nrowHeaderFont,rowHeaderTextTransform,rowHeaderTextColor,// Typography — Col Header (sticky left label column)\ncolHeaderFont,colHeaderTextTransform,colHeaderTextColor,// Typography — Body\nbodyFont,// Colors\nbackgroundColor,bodyTextColor,borderColor,stickyColumnBackground,headerRowBackground,// Border\nborderWidth,// Layout\nstickyColumnWidth,columnMinWidth,columnMaxWidth,cellPaddingV,cellPaddingH,columnGap,// Animation\nanimateOnScroll,animationDuration,animationDelay,animationStagger,animationEasing,animationOrigin,...rest}){const rows=parseCSV(csvData||DEFAULT_CSV);const[headerRow,...dataRows]=rows;const labelCol=headerRow[0];const productHeaders=headerRow.slice(1);const rowRefs=useRef([]);const observerRef=useRef(null);const[visibleRows,setVisibleRows]=useState(()=>new Array(dataRows.length+1).fill(!animateOnScroll));useEffect(()=>{const isMobile=window.matchMedia(\"(max-width: 809px)\").matches;if(!animateOnScroll||isMobile){setVisibleRows(new Array(dataRows.length+1).fill(true));return;}setVisibleRows(new Array(dataRows.length+1).fill(false));const applyVisibility=()=>{// Synchronously check which rows are already in the viewport —\n// Safari's IntersectionObserver misses these on initial attach\nconst alreadyVisible=[];rowRefs.current.forEach(el=>{if(!el)return;const rect=el.getBoundingClientRect();if(rect.top<window.innerHeight&&rect.bottom>0){alreadyVisible.push(Number(el.dataset.rowIndex));}});if(alreadyVisible.length>0){setVisibleRows(prev=>{const next=[...prev];alreadyVisible.forEach(idx=>{next[idx]=true;});return next;});}// Observer handles rows that scroll into view after mount\nconst observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{const idx=Number(entry.target.dataset.rowIndex);if(entry.isIntersecting){setVisibleRows(prev=>{const next=[...prev];next[idx]=true;return next;});}});},{threshold:0,rootMargin:\"0px 0px 100px 0px\"});rowRefs.current.forEach(el=>el&&observer.observe(el));observerRef.current=observer;};// Double rAF ensures Safari has finished layout before we measure\nconst raf=requestAnimationFrame(()=>{requestAnimationFrame(applyVisibility);});return()=>{cancelAnimationFrame(raf);observerRef.current?.disconnect();};},[animateOnScroll,csvData,dataRows.length]);const easingValue=EASINGS[animationEasing]||\"ease-out\";const getBorderVars=rowIdx=>({\"--row-delay\":`${animationDelay+rowIdx*animationStagger}ms`,\"--row-duration\":`${animationDuration}ms`,\"--row-easing\":easingValue});// ─── Style objects ──────────────────────────────────────────────────────\n// Body cells\nconst cellStyle={...fontStyles(bodyFont),padding:`${cellPaddingV}px ${Number(cellPaddingH)+Number(columnGap)}px ${cellPaddingV}px ${cellPaddingH}px`,color:bodyTextColor,verticalAlign:\"middle\",textAlign:\"left\",whiteSpace:\"normal\",wordBreak:\"break-word\",minWidth:columnMinWidth,maxWidth:columnMaxWidth,width:columnMinWidth};// Top header row (product names)\nconst rowHeaderCellStyle={...fontStyles(rowHeaderFont),padding:`${cellPaddingV}px ${Number(cellPaddingH)+Number(columnGap)}px ${cellPaddingV}px ${cellPaddingH}px`,color:rowHeaderTextColor,textTransform:rowHeaderTextTransform,background:headerRowBackground,whiteSpace:\"nowrap\",verticalAlign:\"top\",textAlign:\"left\",minWidth:columnMinWidth,width:columnMinWidth};// Sticky left label column — layout/position props declared last so font spread can't override them\nconst colHeaderCellStyle={...fontStyles(colHeaderFont),color:colHeaderTextColor,textTransform:colHeaderTextTransform,verticalAlign:\"middle\",textAlign:\"left\",wordBreak:\"break-word\",padding:`${cellPaddingV}px ${cellPaddingH}px`,// These must come last — font object must not override them\nposition:\"sticky\",left:0,zIndex:2,background:stickyColumnBackground,minWidth:stickyColumnWidth,maxWidth:stickyColumnWidth,width:stickyColumnWidth,boxSizing:\"border-box\"};// Top-left corner cell — layout/position props declared last\nconst cornerCellStyle={...rowHeaderCellStyle,// These must come last\nposition:\"sticky\",left:0,zIndex:3,background:headerRowBackground,minWidth:stickyColumnWidth,width:stickyColumnWidth,boxSizing:\"border-box\"};const originCSS=animationOrigin===\"Right\"?\"right\":animationOrigin===\"Center\"?\"center\":\"left\";return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",overflow:\"hidden\",background:backgroundColor,position:\"relative\"},...rest,children:/*#__PURE__*/_jsxs(\"div\",{className:\"bct-scroll\",style:{width:\"100%\",overflowX:\"auto\",overflowY:\"visible\",WebkitOverflowScrolling:\"touch\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .bct-scroll::-webkit-scrollbar { display: none; }\n                .bct-scroll { -ms-overflow-style: none; scrollbar-width: none; }\n                .bct-table { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; table-layout: auto; }\n                .bct-product-cell { width: ${columnMinWidth}px; }\n\n                .bct-row td, .bct-row th {\n                    border: none;\n                    box-shadow: inset 0 -${borderWidth}px 0 transparent;\n                    transition: box-shadow var(--row-duration, 600ms) var(--row-easing, ease-out) var(--row-delay, 0ms);\n                }\n                .bct-row.visible td, .bct-row.visible th {\n                    box-shadow: inset 0 -${borderWidth}px 0 ${borderColor};\n                }\n                .bct-header-row td, .bct-header-row th {\n                    box-shadow: inset 0 -${borderWidth}px 0 ${borderColor} !important;\n                    transition: none !important;\n                }\n                @media (max-width: 809px) {\n                    .bct-row td, .bct-row th {\n                        box-shadow: inset 0 -${borderWidth}px 0 ${borderColor} !important;\n                        transition: none !important;\n                    }\n                }\n            `}),/*#__PURE__*/_jsxs(\"table\",{className:\"bct-table\",children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsxs(\"tr\",{className:\"bct-row bct-header-row\",style:{background:headerRowBackground},children:[/*#__PURE__*/_jsx(\"th\",{style:cornerCellStyle}),productHeaders.map((h,i)=>/*#__PURE__*/_jsx(\"th\",{className:\"bct-product-cell\",style:rowHeaderCellStyle,children:h},i))]})}),/*#__PURE__*/_jsx(\"tbody\",{children:dataRows.map((row,rowIdx)=>{const label=row[0];const cells=row.slice(1);const isVisible=visibleRows[rowIdx];return /*#__PURE__*/_jsxs(\"tr\",{ref:el=>{rowRefs.current[rowIdx]=el;},\"data-row-index\":rowIdx,className:`bct-row${isVisible?\" visible\":\"\"}`,style:{background:backgroundColor,...getBorderVars(rowIdx)},children:[/*#__PURE__*/_jsx(\"td\",{style:colHeaderCellStyle,children:label}),cells.map((cell,colIdx)=>/*#__PURE__*/_jsx(\"td\",{className:\"bct-product-cell\",style:cellStyle,children:/*#__PURE__*/_jsx(\"div\",{style:{maxWidth:columnMaxWidth,whiteSpace:\"normal\",wordBreak:\"break-word\",textWrap:\"balance\"},dangerouslySetInnerHTML:{__html:cell.replace(/\\n/g,\"<br/>\")}})},colIdx))]},rowIdx);})})]})]})});}// ─── Property Controls ───────────────────────────────────────────────────────\naddPropertyControls(BitboxComparisonTable,{// DATA\ncsvData:{type:ControlType.String,title:\"CSV Data\",displayTextArea:true,defaultValue:DEFAULT_CSV},// TYPOGRAPHY — Row Header (product name row across top)\nrowHeaderFont:{type:ControlType.Font,title:\"Row Header Font\",controls:\"extended\",defaultFontType:\"monospace\"},rowHeaderTextTransform:{type:ControlType.Enum,title:\"Row Header Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],defaultValue:\"none\"},rowHeaderTextColor:{type:ControlType.Color,title:\"Row Header Color\",defaultValue:\"#000000\"},// TYPOGRAPHY — Col Header (sticky left label column)\ncolHeaderFont:{type:ControlType.Font,title:\"Col Header Font\",controls:\"extended\",defaultFontType:\"monospace\"},colHeaderTextTransform:{type:ControlType.Enum,title:\"Col Header Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],defaultValue:\"uppercase\"},colHeaderTextColor:{type:ControlType.Color,title:\"Col Header Color\",defaultValue:\"#000000\"},// TYPOGRAPHY — Body\nbodyFont:{type:ControlType.Font,title:\"Body Font\",controls:\"extended\",defaultFontType:\"monospace\"},// COLORS\nbackgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#ffffff\"},stickyColumnBackground:{type:ControlType.Color,title:\"Sticky Col BG\",defaultValue:\"#ffffff\"},headerRowBackground:{type:ControlType.Color,title:\"Header Row BG\",defaultValue:\"#ffffff\"},bodyTextColor:{type:ControlType.Color,title:\"Body Color\",defaultValue:\"#111111\"},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#cccccc\"},// BORDER\nborderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:1,min:.5,max:8,step:.5,unit:\"px\"},// LAYOUT\nstickyColumnWidth:{type:ControlType.Number,title:\"Label Col Width\",defaultValue:200,min:80,max:400,step:4,unit:\"px\"},columnMinWidth:{type:ControlType.Number,title:\"Col Min Width\",defaultValue:180,min:80,max:500,step:4,unit:\"px\"},columnMaxWidth:{type:ControlType.Number,title:\"Col Max Width\",defaultValue:280,min:100,max:800,step:4,unit:\"px\"},cellPaddingV:{type:ControlType.Number,title:\"Cell Padding V\",defaultValue:14,min:4,max:48,step:2,unit:\"px\"},cellPaddingH:{type:ControlType.Number,title:\"Cell Padding H\",defaultValue:16,min:4,max:64,step:2,unit:\"px\"},columnGap:{type:ControlType.Number,title:\"Column Gap\",defaultValue:16,min:0,max:120,step:4,unit:\"px\"},// ANIMATION\nanimateOnScroll:{type:ControlType.Boolean,title:\"Animate on Scroll\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},animationDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:600,min:100,max:3e3,step:50,unit:\"ms\"},animationDelay:{type:ControlType.Number,title:\"Initial Delay\",defaultValue:100,min:0,max:2e3,step:50,unit:\"ms\"},animationStagger:{type:ControlType.Number,title:\"Row Stagger\",defaultValue:60,min:0,max:500,step:10,unit:\"ms\"},animationEasing:{type:ControlType.Enum,title:\"Easing\",options:Object.keys(EASINGS),defaultValue:\"Ease Out\"},animationOrigin:{type:ControlType.Enum,title:\"Border Origin\",options:[\"Left\",\"Right\",\"Center\"],defaultValue:\"Left\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BitboxComparisonTable\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BitboxComparisonTable.map"],"mappings":"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"}