{"version":1,"pages":[{"id":"qnijJgD44kFK1W4QhR0B","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_4whUE","description":"Introducing Spreadsheet 2, the ultimate spreadsheet component for React that empowers you to render cells and editors declaratively while fully customizing the components with React's power."},{"id":"okRTQTxYhbD7phCZKjhz","title":"License","pathname":"/license","siteSpaceId":"sitesp_4whUE","description":"Trial, Professional and Enterprise licenses to suit your needs"},{"id":"NtJWSk8rr3vAzyLqTltO","title":"Demos","pathname":"/demos","siteSpaceId":"sitesp_4whUE","description":"Play around with Spreadsheet 2"},{"id":"S73Yamyxjv48abZLSOnb","title":"Installation","pathname":"/getting-started/installation","siteSpaceId":"sitesp_4whUE","description":"Install Spreadsheet 2 using your preferred package manager.","breadcrumbs":[{"label":"Getting started"}]},{"id":"Tkh9IZ8zoIKPkzF0SCal","title":"Spreadsheet state","pathname":"/getting-started/spreadsheet-state","siteSpaceId":"sitesp_4whUE","description":"Use hooks to manage spreadsheet state","breadcrumbs":[{"label":"Getting started"}]},{"id":"1K1LQHEUyu2ao77EyOsn","title":"Headless UI","pathname":"/getting-started/headless-ui","siteSpaceId":"sitesp_4whUE","description":"Use any preferred state management library","breadcrumbs":[{"label":"Getting started"}]},{"id":"DSA6hyN86iB5KdCUILgc","title":"Formula evaluation","pathname":"/getting-started/formula-evaluation","siteSpaceId":"sitesp_4whUE","description":"Formula evaluation in Spreadsheet 2 with support for client-side calculation, Excel/Google Sheets compatibility, and custom functions.","breadcrumbs":[{"label":"Getting started"}]},{"id":"YDA72XU9Kxyrcy26CQUg","title":"Imperative Spreadsheet API","pathname":"/getting-started/imperative-spreadsheet-api","siteSpaceId":"sitesp_4whUE","description":"As an escape hatch, we bundle an imperative API for the Spreadsheet to control spreadsheet states","breadcrumbs":[{"label":"Getting started"}]},{"id":"Fqvc0TQxXIakbwUzVGpC","title":"Examples","pathname":"/getting-started/examples","siteSpaceId":"sitesp_4whUE","description":"Some examples to get your started with Spreadsheet 2","breadcrumbs":[{"label":"Getting started"}]},{"id":"YCfhcepRZemV1UV5B7rN","title":"Excel compatibility","pathname":"/getting-started/excel-google-sheet-compatibility","siteSpaceId":"sitesp_4whUE","description":"Feature compatibility comparison between Excel/Google Sheets and Rows n Columns Spreadsheet","breadcrumbs":[{"label":"Getting started"}]},{"id":"nPqXKtoaR2mT8JfPI3LW","title":"Roadmap","pathname":"/getting-started/roadmap","siteSpaceId":"sitesp_4whUE","description":"","breadcrumbs":[{"label":"Getting started"}]},{"id":"pf4pQjABVYpDUyAiGPix","title":"Features","pathname":"/configuration/features","siteSpaceId":"sitesp_4whUE","description":"","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"qp39YbKr9AOUq9t8YT6X","title":"Data validation","pathname":"/configuration/features/data-validation","siteSpaceId":"sitesp_4whUE","description":"Validate and show errors to users if they enter invalid data","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"mgqct5FHK7Eb6NXVINzN","title":"Custom formula evaluation","pathname":"/configuration/features/custom-formula-evaluation","siteSpaceId":"sitesp_4whUE","description":"Formula parser and calculation is plug n play","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"3YUb9Q6mS5j6rjwleCIy","title":"Iterative calculation","pathname":"/configuration/features/iterative-calculation","siteSpaceId":"sitesp_4whUE","description":"","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"XfXcTzQ57jnZoNJAKtnb","title":"Formula auditing","pathname":"/configuration/features/formula-auditing","siteSpaceId":"sitesp_4whUE","description":"Visualize formula dependencies with trace precedents and dependents","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"yt2vtFFZRjQ3fMevqk73","title":"Real-time data","pathname":"/configuration/features/real-time-data","siteSpaceId":"sitesp_4whUE","description":"Display real-time data, by subscribing to Websockets to REST API","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"9T1zHr37q5Cvh9NhfIYa","title":"Cell editors","pathname":"/configuration/features/cell-editors","siteSpaceId":"sitesp_4whUE","description":"Switch between custom or default cell editor","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"snsd94pwbquAzkxUt8KE","title":"Cell renderer","pathname":"/configuration/features/cell-renderer","siteSpaceId":"sitesp_4whUE","description":"Customise Cells to your liking","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"RqNUTBgst7SLTwjuYzbS","title":"Structured Cell Renderer","pathname":"/configuration/features/structured-cell-renderer","siteSpaceId":"sitesp_4whUE","description":"Create your own custom schema on cell and render custom cells like Sparklines, document objects etc","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"0G598eXeb4ZEewC1z2og","title":"Theming","pathname":"/configuration/features/theming","siteSpaceId":"sitesp_4whUE","description":"Themes are used to custom the colours and default fonts of the Spreadsheet. You can also have customise colours of charts, embeds using a theme","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"mqgLaZDlunliVQ119ALv","title":"Styling","pathname":"/configuration/features/styling","siteSpaceId":"sitesp_4whUE","description":"Add borders, colours, stroke styles or custom gradients very easily","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"YPNco6mn9WImvNiBiwUv","title":"Context menu","pathname":"/configuration/features/context-menu","siteSpaceId":"sitesp_4whUE","description":"Customise Context Menu","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"6UI12X1tRK7oPOKXg2V8","title":"Localisation","pathname":"/configuration/features/localisation","siteSpaceId":"sitesp_4whUE","description":"Add text in any language in the Spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"hByGQDYA2C8tyAiH3fLl","title":"Named ranges","pathname":"/configuration/features/named-ranges","siteSpaceId":"sitesp_4whUE","description":"Name ranges and use them in formulas","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"Pzws51vreBXbCC3A2RG9","title":"Basic filter or Excel AutoFilter","pathname":"/configuration/features/basic-filter-or-excel-autofilter","siteSpaceId":"sitesp_4whUE","description":"Use a Basic filter or Autofilter to quickly find, filter and sort tabular data","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"74aiNAoxGKjoBoKvkOcD","title":"Charts","pathname":"/configuration/features/charts","siteSpaceId":"sitesp_4whUE","description":"Rowsncolumns Spreadsheet renders charts via ECharts (or Plotly via opt-in), parses + emits OOXML chart XML, and accepts a custom renderer if neither default fits.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"Wwaje5dVj4oXM6b4k1zu","title":"Slicers","pathname":"/configuration/features/slicers","siteSpaceId":"sitesp_4whUE","description":"Add, move, resize, and manage slicers for table filtering","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"LWSRyCkUtL5aGmea6LIl","title":"Embedded content","pathname":"/configuration/features/embedded-content","siteSpaceId":"sitesp_4whUE","description":"Embed external content, pictures and drawings","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"j7UbumkTfFMvRqsJcVMb","title":"Calculate on-demand","pathname":"/configuration/features/calculate-on-demand","siteSpaceId":"sitesp_4whUE","description":"Trigger a full recalc whenever you need it.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"HjMltx2hTPjHTwbXOxGr","title":"Pivoting and Grouping","pathname":"/configuration/features/pivoting-and-grouping","siteSpaceId":"sitesp_4whUE","description":"Create pivot tables with row/column grouping, aggregations, sorting, filtering, totals, drilldown, and slicer integration","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"yoQrJMp2SBVlbCAHuhGy","title":"Outline & Grouping","pathname":"/configuration/features/outline-grouping","siteSpaceId":"sitesp_4whUE","description":"Group rows or columns into collapsible outlines with Excel-style +/- gutter buttons and a 1/2/3 level selector","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"Xe62DMaExxc9dpbo13Ty","title":"Tokenizer","pathname":"/configuration/features/tokenizer","siteSpaceId":"sitesp_4whUE","description":"A Tokenizer tells the Spreadsheet how to identify formulas and string tokens in the user entered value of cell.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"fPUemxw4VuO24nX6XdAB","title":"Lazy loading/Infinite scrolling","pathname":"/configuration/features/lazy-loading-infinite-scrolling","siteSpaceId":"sitesp_4whUE","description":"Load data based on the visible viewport of the grid","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"t40p42qFbeJFnaN29X3C","title":"OpenAI/Chat GPT Integration","pathname":"/configuration/features/openai-chat-gpt-integration","siteSpaceId":"sitesp_4whUE","description":"Built-in OpenAI integration using ASK_OPENAI function","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"IOOtG4wl1baAusj4mV46","title":"Search","pathname":"/configuration/features/search","siteSpaceId":"sitesp_4whUE","description":"Use the provided hooks and components to quickly add search functionality","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"Au0uQaldMbG3Uyj7xPSD","title":"Formula protection","pathname":"/configuration/features/formula-protection","siteSpaceId":"sitesp_4whUE","description":"Add extra layer of protection to prevent users from copying formulas","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"QB2QMkOu6c1j3ZMM9eaO","title":"Autofill","pathname":"/configuration/features/autofill","siteSpaceId":"sitesp_4whUE","description":"Automatically fill a series of data in the Spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"nJmAEt2O2dTunoBjwSwS","title":"Paint Format","pathname":"/configuration/features/paint-format","siteSpaceId":"sitesp_4whUE","description":"Copy formatting from one cell or range and apply it to another","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"IuWPQf7OxiMwKnQSYGBb","title":"Advanced Grid Features","pathname":"/configuration/features/advanced-grid-features","siteSpaceId":"sitesp_4whUE","description":"AI-powered autofill and advanced grid navigation features","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"xXx1Ufl8AGSoo6YfIt6e","title":"Export canvas as image","pathname":"/configuration/features/export-canvas-as-image","siteSpaceId":"sitesp_4whUE","description":"Export the entire visible canvas or part of the canvas as an image","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"3NzSEhmJL3OfTccaX0TB","title":"Cell format Registry","pathname":"/configuration/features/cell-format-registry","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet lets you store and compress duplicate format data using cellxfs registries","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"QZfHoM1PsROxLFSMqz8K","title":"Shared strings","pathname":"/configuration/features/shared-strings","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet can store repeated text in a shared string table and reference it from cell data.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"tZ1HNH0RR1HSsFgYk7eT","title":"Mentions","pathname":"/configuration/features/mentions","siteSpaceId":"sitesp_4whUE","description":"Add @mentions functionality to spreadsheet cells","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"hioWaSQZg6vyalQgI6kH","title":"Cell Tooltips and Popovers","pathname":"/configuration/features/cell-tooltips-and-popovers","siteSpaceId":"sitesp_4whUE","description":"Display tooltips and expandable content for spreadsheet cells","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"9ELJ18iVQmWkUF7QpOFw","title":"Multi-Instance Spreadsheets","pathname":"/configuration/features/multi-instance-spreadsheets","siteSpaceId":"sitesp_4whUE","description":"Run multiple spreadsheet instances in the same application","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"YrXpQqfpNGQuBXJoIloL","title":"User-Defined Colors","pathname":"/configuration/features/user-defined-colors","siteSpaceId":"sitesp_4whUE","description":"Create custom color palettes for your spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"zjqjPjOQbo0LyRY0Ry3D","title":"Version comparison","pathname":"/configuration/features/version-comparison","siteSpaceId":"sitesp_4whUE","description":"","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"bXK5IzBxgspvHDUTXyDl","title":"Navigate to Sheet Range","pathname":"/configuration/features/navigate-to-range","siteSpaceId":"sitesp_4whUE","description":"Programmatically navigate and scroll to specific cell ranges","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"HyAOmB55V7VyZydNakHf","title":"Calculated columns","pathname":"/configuration/features/calculated-columns","siteSpaceId":"sitesp_4whUE","description":"Add columns with formulas, join multiple tables","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"O28Y9WjV2YzIzmqLFfnt","title":"Structured references","pathname":"/configuration/features/structured-references","siteSpaceId":"sitesp_4whUE","description":"Add structured data to Spreadsheet and reference them using semantic formulas","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"J2IWhFApDrt36eaceiKf","title":"Schema based tables and columns","pathname":"/configuration/features/structured-references/schema-based-tables-and-columns","siteSpaceId":"sitesp_4whUE","description":"Convert any dataset to a schema driven table","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"},{"label":"Structured references"}]},{"id":"KIwZHirwILT3C4FzGGqx","title":"Drag and Drop","pathname":"/configuration/features/drag-and-drop","siteSpaceId":"sitesp_4whUE","description":"Drag and drop images and CSV/Excel files from your desktop","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"abOm4rtt4usz1bt5a6I6","title":"Text to Columns","pathname":"/configuration/features/text-to-columns","siteSpaceId":"sitesp_4whUE","description":"Split text in cells into multiple columns","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"7ivi964PVnX3HLb0EtY8","title":"Conditional formatting","pathname":"/configuration/features/conditional-formatting","siteSpaceId":"sitesp_4whUE","description":"Change text or background colour of cells based on the value","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"4G1niozmop8dfsgBgRDL","title":"Sparklines","pathname":"/configuration/features/sparklines","siteSpaceId":"sitesp_4whUE","description":"Inline mini-charts inside cells — line, column, or win/loss","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"k85hmT59u4LN1haUqo1x","title":"Comments","pathname":"/configuration/features/comments","siteSpaceId":"sitesp_4whUE","description":"Legacy single-author cell notes with author + rich text + author color","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"79HcpvAp5gSkJsQr0IGz","title":"Gradient cell fills","pathname":"/configuration/features/gradient-fills","siteSpaceId":"sitesp_4whUE","description":"Linear and radial gradient fills on individual cells — round-trips XLSX and renders on canvas","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"fnewoF736xNfxUe0ZAZS","title":"Linked data types","pathname":"/configuration/features/linked-data-types","siteSpaceId":"sitesp_4whUE","description":"Cells that carry a structured entity (Stocks, Geography, custom) with refreshable fields accessed via dot notation","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"BPLIMF2yUTpVIm22o7xR","title":"LAMBDA and higher-order functions","pathname":"/configuration/features/lambda-and-higher-order-functions","siteSpaceId":"sitesp_4whUE","description":"LAMBDA, LET, MAP/REDUCE/BYROW/BYCOL/SCAN/MAKEARRAY, and GROUPBY/PIVOTBY","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"668dNODQzJlhhIG2OJmY","title":"Undo/Redo","pathname":"/configuration/features/undo-redo","siteSpaceId":"sitesp_4whUE","description":"All change history is preserved. Making versioning simple.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Features"}]},{"id":"SbyCiBOnndbAVQRlq94U","title":"Components","pathname":"/configuration/components","siteSpaceId":"sitesp_4whUE","description":"","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"a3ksmVXv6wchGW7UrjUL","title":"Canvas Grid","pathname":"/configuration/components/canvas-grid","siteSpaceId":"sitesp_4whUE","description":"The Canvas Grid that renders the spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"a9ozJuUIalUHQP37rQCp","title":"Toolbar","pathname":"/configuration/components/toolbar","siteSpaceId":"sitesp_4whUE","description":"Toolbar component is a wrapper for all formatting buttons of the Spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"klnXiJiR5ky0b3eP8mGD","title":"Formula Bar","pathname":"/configuration/components/formula-bar","siteSpaceId":"sitesp_4whUE","description":"Display and edit cell formulas and values","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"Kmaplxa3Nx6UXm5Pr87z","title":"Font and Text Selectors","pathname":"/configuration/components/font-and-text-selectors","siteSpaceId":"sitesp_4whUE","description":"Font family, size, and text formatting selectors","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"egRDiYog1QZpZzffhVfQ","title":"Sheet Tabs","pathname":"/configuration/components/sheet-tabs","siteSpaceId":"sitesp_4whUE","description":"Quickly switch between multiple sheets","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"LtvhYGie0CnBNnCqJmwz","title":"Sheet Switcher","pathname":"/configuration/components/sheet-switcher","siteSpaceId":"sitesp_4whUE","description":"Dropdown menu with a list of sheets, both hidden and visible","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"MacA1axYfRtIBWEFREf8","title":"Sheet Status","pathname":"/configuration/components/sheet-status","siteSpaceId":"sitesp_4whUE","description":"Show average, count and sum of numerical values","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"uv749ismZImKf76344Fd","title":"Range Selector","pathname":"/configuration/components/range-selector","siteSpaceId":"sitesp_4whUE","description":"Displays and let users quickly select a named range","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"TTzD3KzxGjk1SJlLeYhk","title":"Formula Input","pathname":"/configuration/components/formula-input","siteSpaceId":"sitesp_4whUE","description":"Use a formula input component outside the spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"dtFwrVmvMs22s0PTFLuS","title":"Selection Input","pathname":"/configuration/components/selection-input","siteSpaceId":"sitesp_4whUE","description":"Get selections from Spreadsheet and display it in an input field","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"dPj0eXPrnVqLtzXR63nA","title":"SheetSearch","pathname":"/configuration/components/sheetsearch","siteSpaceId":"sitesp_4whUE","description":"Search within a sheet with this component","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"neviGVet1HgJQEWluaGs","title":"NamedRangeEditor","pathname":"/configuration/components/namedrangeeditor","siteSpaceId":"sitesp_4whUE","description":"Create and edit named ranges","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"7CBqoJLEFg4qvmdxH7oK","title":"DeleteSheetConfirmation","pathname":"/configuration/components/deletesheetconfirmation","siteSpaceId":"sitesp_4whUE","description":"A confirmation dialog that can be displayed before deleting a sheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"dpXq2zq4b6ewmVzXzmi2","title":"TableEditor","pathname":"/configuration/components/tableeditor","siteSpaceId":"sitesp_4whUE","description":"A table editor dialog to edit name, range and other options of a table","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"5YFS4QYftT8RgEX9Z9fH","title":"Cell Format Editor","pathname":"/configuration/components/cell-format-editor","siteSpaceId":"sitesp_4whUE","description":"Component to edit cell format. It can be shown in a modal dialog or embedded in your own component.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"p1IaVgXpeOUQ63JaYi0q","title":"Conditional Format Editor","pathname":"/configuration/components/conditional-format-editor","siteSpaceId":"sitesp_4whUE","description":"Adds a Conditonal format editor component","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"j5ZkTo68wJt5vRgQDc2y","title":"Data Validation Editor","pathname":"/configuration/components/data-validation-editor","siteSpaceId":"sitesp_4whUE","description":"Allow users to edit data validation rules","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"2eEduImCkuM6DAhvQORg","title":"Insert Link Editor","pathname":"/configuration/components/conditional-format-editor-1","siteSpaceId":"sitesp_4whUE","description":"Add and remove hyperlinks in cells","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"gyfUx7ax5Q5uPSyoXX7W","title":"Insert Image Editor","pathname":"/configuration/components/conditional-format-editor-2","siteSpaceId":"sitesp_4whUE","description":"Adds a image editor","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"K64UmL1G3mOeVThlfV65","title":"Floating Cell Editor","pathname":"/configuration/components/floating-cell-editor","siteSpaceId":"sitesp_4whUE","description":"Floating Cell Editor component can be used to create Mobile editors that resides out of the Spreadsheet container.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"dRjd286v0BQxkaYobZk4","title":"Grid Footer","pathname":"/configuration/components/grid-footer","siteSpaceId":"sitesp_4whUE","description":"Footer component for adding rows dynamically at the bottom of the spreadsheet","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"Components"}]},{"id":"ceG5jV9Pg1iUwCSQbgZ2","title":"API","pathname":"/configuration/api","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet API in a nutshell","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"cx9P8HDPOhw1jx594QXx","title":"Cell Data","pathname":"/configuration/api/cell-data","siteSpaceId":"sitesp_4whUE","description":"Defines the data model for a cell","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"9D5fkTF5q9RJWcoqdKxq","title":"Sheets","pathname":"/configuration/api/sheets","siteSpaceId":"sitesp_4whUE","description":"Supports multiple sheets with cross-references and tables","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"HYOALaxACuxXW9wSfmnx","title":"SpreadsheetProvider","pathname":"/configuration/api/spreadsheetprovider","siteSpaceId":"sitesp_4whUE","description":"Context Provider that isolates Spreadsheet internal state","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"2KJYrNO7SDxmUbsZ3fus","title":"useSpreadsheet","pathname":"/configuration/api/usespreadsheet","siteSpaceId":"sitesp_4whUE","description":"useSpreadsheet exposes some of the internal API via hooks","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"cjJZbzqzvkd1P28oW2FM","title":"Hooks","pathname":"/configuration/api/hooks","siteSpaceId":"sitesp_4whUE","description":"Utility hooks for advanced spreadsheet functionality","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"iaSgyhIYQwIYss6ctCAn","title":"Modules","pathname":"/configuration/api/modules","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet 2 comes with various modules to help you compose the spreadsheet that you like.","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"OM5ki7nfUY9CTuMG8rDy","title":"SheetCell","pathname":"/configuration/api/sheetcell","siteSpaceId":"sitesp_4whUE","description":"Sheet Cell is a primitive to generate CellData object","breadcrumbs":[{"label":"Configuration","emoji":"2699"},{"label":"API"}]},{"id":"rBSETenKYx19VBtPH4cr","title":"Using Spreadsheet with NextJS","pathname":"/configuration/using-spreadsheet-with-nextjs","siteSpaceId":"sitesp_4whUE","description":"SSR is supported, but Server components, not yet","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"7bOGYaJItDZjf0ogBNix","title":"Keyboard shortcuts","pathname":"/configuration/keyboard-shortcuts","siteSpaceId":"sitesp_4whUE","description":"Use keyboard shortcuts to navigate, format and use formulas.","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"43r7N7vORzPbwWr64AXV","title":"Server-side Spreadsheet","pathname":"/configuration/spreadsheet-interface","siteSpaceId":"sitesp_4whUE","description":"Update spreadsheet state and run formula evaluation on the backend","breadcrumbs":[{"label":"Configuration","emoji":"2699"}]},{"id":"atrTjpJJkrQd5KN2HsLH","title":"Real time collaboration","pathname":"/collaboration/real-time-collaboration","siteSpaceId":"sitesp_4whUE","description":"Built for real-time editing and viewing of Spreadsheets","breadcrumbs":[{"label":"Collaboration"}]},{"id":"RtGJNkZ0ERaATIsM2k28","title":"Yjs (CRDT) Collaboration","pathname":"/collaboration/yjs-collaboration","siteSpaceId":"sitesp_4whUE","description":"Add real-time collaboration to Spreadsheet 2 using Yjs","breadcrumbs":[{"label":"Collaboration"}]},{"id":"diDLCTv6T5S867qzdI1p","title":"ShareDB (OT) Collaboration","pathname":"/collaboration/sharedb-collaboration","siteSpaceId":"sitesp_4whUE","description":"Real-time collaboration using ShareDB","breadcrumbs":[{"label":"Collaboration"}]},{"id":"3k4q2XmqZwrER9yACcJ5","title":"Loro (CRDT) Collaboration","pathname":"/collaboration/loro-collaboration","siteSpaceId":"sitesp_4whUE","description":"Real-time collaboration using Loro CRDTs","breadcrumbs":[{"label":"Collaboration"}]},{"id":"6MOFmk2cQWdL05pMgVpX","title":"Supabase (OT) Collaboration","pathname":"/collaboration/supabase-realtime-collaboration","siteSpaceId":"sitesp_4whUE","description":"Add real-time collaboration to Spreadsheet using Supabase with PostgreSQL persistence","breadcrumbs":[{"label":"Collaboration"}]},{"id":"jizZGvEWYw8omYb7q3e3","title":"Charts","pathname":"/charts/e-charts","siteSpaceId":"sitesp_4whUE","description":"Add visually stunning charts using our charts framework.","breadcrumbs":[{"label":"Charts"}]},{"id":"W1bo8GVyZsPhwTvuTgHU","title":"Custom charts","pathname":"/charts/custom-charts","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet 2 is agnostic of chart renderer. We maintain a schema for the chart, but you can choose to use any chart libraries out ther","breadcrumbs":[{"label":"Charts"}]},{"id":"HApLQWMHHTAs3C0uvFck","title":"CSV","pathname":"/excel-and-google-sheets/csv","siteSpaceId":"sitesp_4whUE","description":"Import and Export from CSV file","breadcrumbs":[{"label":"Excel and Google sheets"}]},{"id":"xXuO4dU0wQJHvrfnCtTg","title":"Excel and ODS","pathname":"/excel-and-google-sheets/excel","siteSpaceId":"sitesp_4whUE","description":"Import and Export from XLSX and ODS files","breadcrumbs":[{"label":"Excel and Google sheets"}]},{"id":"yTkQXUcuXUmBJAYLgOaF","title":"Google sheets (Coming soon)","pathname":"/excel-and-google-sheets/google-sheets","siteSpaceId":"sitesp_4whUE","description":"Import and Export from Google sheets","breadcrumbs":[{"label":"Excel and Google sheets"}]},{"id":"6T72rendv0lHFqbzZO9X","title":"Named functions","pathname":"/functions/named-functions","siteSpaceId":"sitesp_4whUE","description":"Create custom named functions, to fetch async or real-time data","breadcrumbs":[{"label":"Functions"}]},{"id":"bDFLlKXoQOnCM7nvVugX","title":"Array formulas","pathname":"/functions/array-formulas","siteSpaceId":"sitesp_4whUE","description":"Formulas can return values that spans multiple cells","breadcrumbs":[{"label":"Functions"}]},{"id":"9XWeicfNxpiwA8aTSsmR","title":"Server side data persistence","pathname":"/data-persistence/server-side-data-persistence","siteSpaceId":"sitesp_4whUE","description":"Completely agnostic to how you manage the back-end","breadcrumbs":[{"label":"Data persistence"}]},{"id":"9a5hYaZSjp3DBuK3E3Yh","title":"React Query integration","pathname":"/data-persistence/react-query-integration","siteSpaceId":"sitesp_4whUE","description":"React-query is a first-class library to manage asynchronous states","breadcrumbs":[{"label":"Data persistence"}]},{"id":"RfFCLytH2SHpMlgEsrnp","title":"Browser support","pathname":"/specifications/browser-support","siteSpaceId":"sitesp_4whUE","description":"Spreadsheet 2 supports all evergreen desktop browsers and mobile browsers.","breadcrumbs":[{"label":"Specifications"}]},{"id":"L6KnkL77zFA33duWlXoD","title":"Third party licenses","pathname":"/specifications/third-party-licenses","siteSpaceId":"sitesp_4whUE","description":"Thanks to some amazing open-source projects.","breadcrumbs":[{"label":"Specifications"}]},{"id":"ZTl4i0ck4vRfRVdEgiTF","title":"Contact support","pathname":"/support/contact-support","siteSpaceId":"sitesp_4whUE","description":"Talk to our sales team about your requirements, learn about custom pricing, or request a demo.","breadcrumbs":[{"label":"Support"}]},{"id":"7Q3DxfmYwCHDWobr1puf","title":"Report bugs","pathname":"/support/report-bugs","siteSpaceId":"sitesp_4whUE","description":"Use Github issues to report bugs","breadcrumbs":[{"label":"Support"}]},{"id":"uzrAl383Si8rnpSiZMqA","title":"Feature requests","pathname":"/support/feature-requests","siteSpaceId":"sitesp_4whUE","description":"Always open to new features","breadcrumbs":[{"label":"Support"}]}]}