This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch developer_portal
in repository https://gitbox.apache.org/repos/asf/superset.git

commit a2c61d97ba1beea46dd04e7c74d697637d44d197
Author: Evan Rusackas <e...@rusackas.com>
AuthorDate: Tue Apr 1 18:05:25 2025 -0600

    versioning experiments
---
 .../version-1.1.0/chart-components/bar-chart.md    |  87 ++++++++++++++
 .../version-1.1.0/index.md                         |  41 +++++++
 .../version-1.1.0/layout-components/grid.md        |  95 +++++++++++++++
 .../version-1.1.0/test.mdx                         |  17 +++
 .../version-1.1.0/ui-components/button.mdx         | 128 ++++++++++++++++++++
 .../version-1.0.0/chart-components/bar-chart.md    |  87 ++++++++++++++
 .../versioned_docs/version-1.0.0/index.md          |  43 +++++++
 .../versioned_docs/version-1.0.0/introduction.md   |  43 +++++++
 .../version-1.0.0/layout-components/grid.md        |  95 +++++++++++++++
 .../version-1.0.0/ui-components/button.md          | 129 +++++++++++++++++++++
 .../version-1.1.0/versions.json}                   |   0
 .../version-1.1.0-sidebars.json                    |  39 +++++++
 docs/components_versions.json                      |   1 +
 docs/docusaurus.config.ts                          |  46 +++++++-
 docs/sidebarTutorials.js                           |  48 ++++++++
 docs/src/pages/tutorials.tsx                       |  21 ++++
 docs/src/pages/tutorials/getting-started.tsx       |  21 ++++
 docs/tutorials/getting-started/index.md            |  46 ++++++++
 docs/tutorials/index.md                            |  22 ++++
 .../versions.json}                                 |   0
 .../version-1.0.0/getting-started/index.md         |  46 ++++++++
 .../version-1.0.0/index.md                         |  22 ++++
 .../version-1.0.0/versions.json}                   |   0
 .../version-1.0.0-sidebars.json                    |  19 +++
 ...nents_versions.json => tutorials_versions.json} |   0
 25 files changed, 1095 insertions(+), 1 deletion(-)

diff --git 
a/docs/components_versioned_docs/version-1.1.0/chart-components/bar-chart.md 
b/docs/components_versioned_docs/version-1.1.0/chart-components/bar-chart.md
new file mode 100644
index 0000000000..a9dc7cb3bc
--- /dev/null
+++ b/docs/components_versioned_docs/version-1.1.0/chart-components/bar-chart.md
@@ -0,0 +1,87 @@
+---
+title: Bar Chart
+sidebar_position: 1
+---
+
+# Bar Chart Component
+
+The Bar Chart component is used to visualize categorical data with rectangular 
bars.
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `data` | `array` | `[]` | Array of data objects to visualize |
+| `width` | `number` | `800` | Width of the chart in pixels |
+| `height` | `number` | `600` | Height of the chart in pixels |
+| `xField` | `string` | - | Field name for x-axis values |
+| `yField` | `string` | - | Field name for y-axis values |
+| `colorField` | `string` | - | Field name for color encoding |
+| `colorScheme` | `string` | `'supersetColors'` | Color scheme to use |
+| `showLegend` | `boolean` | `true` | Whether to show the legend |
+| `showGrid` | `boolean` | `true` | Whether to show grid lines |
+| `labelPosition` | `string` | `'top'` | Position of bar labels: 'top', 
'middle', 'bottom' |
+
+## Examples
+
+### Basic Bar Chart
+
+```jsx
+import { BarChart } from '@superset-ui/chart-components';
+
+const data = [
+  { category: 'A', value: 10 },
+  { category: 'B', value: 20 },
+  { category: 'C', value: 15 },
+  { category: 'D', value: 25 },
+];
+
+function Example() {
+  return (
+    <BarChart
+      data={data}
+      width={800}
+      height={400}
+      xField="category"
+      yField="value"
+      colorScheme="supersetColors"
+    />
+  );
+}
+```
+
+### Grouped Bar Chart
+
+```jsx
+import { BarChart } from '@superset-ui/chart-components';
+
+const data = [
+  { category: 'A', group: 'Group 1', value: 10 },
+  { category: 'A', group: 'Group 2', value: 15 },
+  { category: 'B', group: 'Group 1', value: 20 },
+  { category: 'B', group: 'Group 2', value: 25 },
+  { category: 'C', group: 'Group 1', value: 15 },
+  { category: 'C', group: 'Group 2', value: 10 },
+];
+
+function Example() {
+  return (
+    <BarChart
+      data={data}
+      width={800}
+      height={400}
+      xField="category"
+      yField="value"
+      colorField="group"
+      colorScheme="supersetColors"
+    />
+  );
+}
+```
+
+## Best Practices
+
+- Use bar charts when comparing quantities across categories
+- Sort bars by value for better readability, unless there's a natural order to 
the categories
+- Use consistent colors for the same categories across different charts
+- Consider using horizontal bar charts when category labels are long
diff --git a/docs/components_versioned_docs/version-1.1.0/index.md 
b/docs/components_versioned_docs/version-1.1.0/index.md
new file mode 100644
index 0000000000..affdf24f61
--- /dev/null
+++ b/docs/components_versioned_docs/version-1.1.0/index.md
@@ -0,0 +1,41 @@
+---
+title: Component Library
+sidebar_position: 1
+---
+
+# Superset Component Library
+
+Welcome to the Apache Superset Component Library documentation. This section 
provides comprehensive documentation for all the UI components, chart 
components, and layout components used in Superset.
+
+## What is the Component Library?
+
+The Component Library is a collection of reusable UI components that are used 
to build the Superset user interface. These components are designed to be 
consistent, accessible, and easy to use.
+
+## Component Categories
+
+The Component Library is organized into the following categories:
+
+### UI Components
+
+Basic UI components like buttons, inputs, dropdowns, and other form elements.
+
+### Chart Components
+
+Visualization components used to render different types of charts and graphs.
+
+### Layout Components
+
+Components used for page layout, such as containers, grids, and navigation 
elements.
+
+## Versioning
+
+The Component Library documentation follows its own versioning scheme, 
independent from the main Superset documentation. This allows us to update the 
component documentation as the components evolve, without affecting the main 
documentation.
+
+## Getting Started
+
+Browse the sidebar to explore the different components available in the 
library. Each component documentation includes:
+
+- Component description and purpose
+- Props and configuration options
+- Usage examples
+- Best practices
diff --git 
a/docs/components_versioned_docs/version-1.1.0/layout-components/grid.md 
b/docs/components_versioned_docs/version-1.1.0/layout-components/grid.md
new file mode 100644
index 0000000000..f0e7a99b52
--- /dev/null
+++ b/docs/components_versioned_docs/version-1.1.0/layout-components/grid.md
@@ -0,0 +1,95 @@
+---
+title: Grid
+sidebar_position: 1
+---
+
+# Grid Component
+
+The Grid component provides a flexible layout system for arranging content in 
rows and columns.
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `gutter` | `number` or `[number, number]` | `0` | Grid spacing between 
items, can be a single number or [horizontal, vertical] |
+| `columns` | `number` | `12` | Number of columns in the grid |
+| `justify` | `string` | `'start'` | Horizontal alignment: 'start', 'center', 
'end', 'space-between', 'space-around' |
+| `align` | `string` | `'top'` | Vertical alignment: 'top', 'middle', 'bottom' 
|
+| `wrap` | `boolean` | `true` | Whether to wrap items when they overflow |
+
+### Row Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `gutter` | `number` or `[number, number]` | `0` | Spacing between items in 
the row |
+| `justify` | `string` | `'start'` | Horizontal alignment for this row |
+| `align` | `string` | `'top'` | Vertical alignment for this row |
+
+### Col Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `span` | `number` | - | Number of columns the grid item spans |
+| `offset` | `number` | `0` | Number of columns the grid item is offset |
+| `xs`, `sm`, `md`, `lg`, `xl` | `number` or `object` | - | Responsive props 
for different screen sizes |
+
+## Examples
+
+### Basic Grid
+
+```jsx
+import { Grid, Row, Col } from '@superset-ui/core';
+
+function Example() {
+  return (
+    <Grid>
+      <Row gutter={16}>
+        <Col span={8}>
+          <div>Column 1</div>
+        </Col>
+        <Col span={8}>
+          <div>Column 2</div>
+        </Col>
+        <Col span={8}>
+          <div>Column 3</div>
+        </Col>
+      </Row>
+    </Grid>
+  );
+}
+```
+
+### Responsive Grid
+
+```jsx
+import { Grid, Row, Col } from '@superset-ui/core';
+
+function Example() {
+  return (
+    <Grid>
+      <Row gutter={[16, 24]}>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 1</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 2</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 3</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 4</div>
+        </Col>
+      </Row>
+    </Grid>
+  );
+}
+```
+
+## Best Practices
+
+- Use the Grid system for complex layouts that need to be responsive
+- Specify column widths for different screen sizes to ensure proper responsive 
behavior
+- Use gutters to create appropriate spacing between grid items
+- Keep the grid structure consistent throughout your application
+- Consider using the grid system for dashboard layouts to ensure consistent 
spacing and alignment
diff --git a/docs/components_versioned_docs/version-1.1.0/test.mdx 
b/docs/components_versioned_docs/version-1.1.0/test.mdx
new file mode 100644
index 0000000000..5d45c22561
--- /dev/null
+++ b/docs/components_versioned_docs/version-1.1.0/test.mdx
@@ -0,0 +1,17 @@
+---
+title: Test
+---
+
+import { StoryExample } from '../src/components/StorybookWrapper';
+
+# Test
+
+This is a test using our custom StorybookWrapper component.
+
+<StoryExample
+  component={() => (
+    <div style={{ padding: '10px', background: '#f0f0f0', borderRadius: '4px' 
}}>
+      This is a simple example component
+    </div>
+  )}
+/>
diff --git 
a/docs/components_versioned_docs/version-1.1.0/ui-components/button.mdx 
b/docs/components_versioned_docs/version-1.1.0/ui-components/button.mdx
new file mode 100644
index 0000000000..9c73618dec
--- /dev/null
+++ b/docs/components_versioned_docs/version-1.1.0/ui-components/button.mdx
@@ -0,0 +1,128 @@
+---
+title: Button Component
+sidebar_position: 1
+---
+
+import { StoryExample, StoryWithControls } from 
'../../src/components/StorybookWrapper';
+import Button from '../../../superset-frontend/src/components/Button';
+
+# Button Component
+
+The Button component is a fundamental UI element used throughout Superset for 
user interactions.
+
+## Basic Usage
+
+The default button with primary styling:
+<StoryExample
+  component={() => (
+    <Button buttonStyle="primary" onClick={() => console.log('Clicked!')}>
+      Click Me
+    </Button>
+  )}
+/>
+
+## Interactive Example
+
+<StoryWithControls
+  component={({ buttonStyle, buttonSize, label, disabled }) => (
+    <Button
+      buttonStyle={buttonStyle}
+      buttonSize={buttonSize}
+      disabled={disabled}
+      onClick={() => console.log('Clicked!')}
+    >
+      {label}
+    </Button>
+  )}
+  props={{
+    buttonStyle: 'primary',
+    buttonSize: 'default',
+    label: 'Click Me',
+    disabled: false
+  }}
+  controls={[
+    {
+      name: 'buttonStyle',
+      label: 'Button Style',
+      type: 'select',
+      options: ['primary', 'secondary', 'tertiary', 'success', 'warning', 
'danger', 'default', 'link', 'dashed']
+    },
+    {
+      name: 'buttonSize',
+      label: 'Button Size',
+      type: 'select',
+      options: ['default', 'small', 'xsmall']
+    },
+    {
+      name: 'label',
+      label: 'Button Text',
+      type: 'text'
+    },
+    {
+      name: 'disabled',
+      label: 'Disabled',
+      type: 'boolean'
+    }
+  ]}
+/>
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `buttonStyle` | `'primary' \| 'secondary' \| 'tertiary' \| 'success' \| 
'warning' \| 'danger' \| 'default' \| 'link' \| 'dashed'` | `'default'` | 
Button style |
+| `buttonSize` | `'default' \| 'small' \| 'xsmall'` | `'default'` | Button 
size |
+| `disabled` | `boolean` | `false` | Whether the button is disabled |
+| `cta` | `boolean` | `false` | Whether the button is a call-to-action button |
+| `tooltip` | `ReactNode` | - | Tooltip content |
+| `placement` | `TooltipProps['placement']` | - | Tooltip placement |
+| `onClick` | `function` | - | Callback when button is clicked |
+| `href` | `string` | - | Turns button into an anchor link |
+| `target` | `string` | - | Target attribute for anchor links |
+
+## Usage
+
+```jsx
+import Button from 'src/components/Button';
+
+function MyComponent() {
+  return (
+    <Button
+      buttonStyle="primary"
+      onClick={() => console.log('Button clicked')}
+    >
+      Click Me
+    </Button>
+  );
+}
+```
+
+## Button Styles
+
+Superset provides a variety of button styles for different purposes:
+
+- **Primary**: Used for primary actions
+- **Secondary**: Used for secondary actions
+- **Tertiary**: Used for less important actions
+- **Success**: Used for successful or confirming actions
+- **Warning**: Used for actions that require caution
+- **Danger**: Used for destructive actions
+- **Link**: Used for navigation
+- **Dashed**: Used for adding new items or features
+
+## Button Sizes
+
+Buttons come in three sizes:
+
+- **Default**: Standard size for most use cases
+- **Small**: Compact size for tight spaces
+- **XSmall**: Extra small size for very limited spaces
+
+## Best Practices
+
+- Use primary buttons for the main action in a form or page
+- Use secondary buttons for alternative actions
+- Use danger buttons for destructive actions
+- Limit the number of primary buttons on a page to avoid confusion
+- Use consistent button styles throughout your application
+- Add tooltips to buttons when their purpose might not be immediately clear
diff --git 
a/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/chart-components/bar-chart.md
 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/chart-components/bar-chart.md
new file mode 100644
index 0000000000..5bed3a5d92
--- /dev/null
+++ 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/chart-components/bar-chart.md
@@ -0,0 +1,87 @@
+---
+title: Bar Chart (v1.0.0)
+sidebar_position: 1
+---
+
+# Bar Chart Component
+
+The Bar Chart component is used to visualize categorical data with rectangular 
bars.
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `data` | `array` | `[]` | Array of data objects to visualize |
+| `width` | `number` | `800` | Width of the chart in pixels |
+| `height` | `number` | `600` | Height of the chart in pixels |
+| `xField` | `string` | - | Field name for x-axis values |
+| `yField` | `string` | - | Field name for y-axis values |
+| `colorField` | `string` | - | Field name for color encoding |
+| `colorScheme` | `string` | `'supersetColors'` | Color scheme to use |
+| `showLegend` | `boolean` | `true` | Whether to show the legend |
+| `showGrid` | `boolean` | `true` | Whether to show grid lines |
+| `labelPosition` | `string` | `'top'` | Position of bar labels: 'top', 
'middle', 'bottom' |
+
+## Examples
+
+### Basic Bar Chart
+
+```jsx
+import { BarChart } from '@superset-ui/chart-components';
+
+const data = [
+  { category: 'A', value: 10 },
+  { category: 'B', value: 20 },
+  { category: 'C', value: 15 },
+  { category: 'D', value: 25 },
+];
+
+function Example() {
+  return (
+    <BarChart
+      data={data}
+      width={800}
+      height={400}
+      xField="category"
+      yField="value"
+      colorScheme="supersetColors"
+    />
+  );
+}
+```
+
+### Grouped Bar Chart
+
+```jsx
+import { BarChart } from '@superset-ui/chart-components';
+
+const data = [
+  { category: 'A', group: 'Group 1', value: 10 },
+  { category: 'A', group: 'Group 2', value: 15 },
+  { category: 'B', group: 'Group 1', value: 20 },
+  { category: 'B', group: 'Group 2', value: 25 },
+  { category: 'C', group: 'Group 1', value: 15 },
+  { category: 'C', group: 'Group 2', value: 10 },
+];
+
+function Example() {
+  return (
+    <BarChart
+      data={data}
+      width={800}
+      height={400}
+      xField="category"
+      yField="value"
+      colorField="group"
+      colorScheme="supersetColors"
+    />
+  );
+}
+```
+
+## Best Practices
+
+- Use bar charts when comparing quantities across categories
+- Sort bars by value for better readability, unless there's a natural order to 
the categories
+- Use consistent colors for the same categories across different charts
+- Consider using horizontal bar charts when category labels are long
diff --git 
a/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/index.md
 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/index.md
new file mode 100644
index 0000000000..dedcc49df6
--- /dev/null
+++ 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/index.md
@@ -0,0 +1,43 @@
+---
+title: Component Library
+sidebar_position: 1
+---
+
+# Superset Component Library (v1.0.0)
+
+Welcome to the Apache Superset Component Library documentation. This section 
provides comprehensive documentation for all the UI components, chart 
components, and layout components used in Superset.
+
+## What is the Component Library?
+
+The Component Library is a collection of reusable UI components that are used 
to build the Superset user interface. These components are designed to be 
consistent, accessible, and easy to use.
+
+## Component Categories
+
+The Component Library is organized into the following categories:
+
+### UI Components
+
+Basic UI components like buttons, inputs, dropdowns, and other form elements.
+
+### Chart Components
+
+Visualization components used to render different types of charts and graphs.
+
+### Layout Components
+
+Components used for page layout, such as containers, grids, and navigation 
elements.
+
+## Versioning
+
+The Component Library documentation follows its own versioning scheme, 
independent from the main Superset documentation. This allows us to update the 
component documentation as the components evolve, without affecting the main 
documentation.
+
+This is version 1.0.0 of the Component Library documentation.
+
+## Getting Started
+
+Browse the sidebar to explore the different components available in the 
library. Each component documentation includes:
+
+- Component description and purpose
+- Props and configuration options
+- Usage examples
+- Best practices
diff --git 
a/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/introduction.md
 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/introduction.md
new file mode 100644
index 0000000000..dedcc49df6
--- /dev/null
+++ 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/introduction.md
@@ -0,0 +1,43 @@
+---
+title: Component Library
+sidebar_position: 1
+---
+
+# Superset Component Library (v1.0.0)
+
+Welcome to the Apache Superset Component Library documentation. This section 
provides comprehensive documentation for all the UI components, chart 
components, and layout components used in Superset.
+
+## What is the Component Library?
+
+The Component Library is a collection of reusable UI components that are used 
to build the Superset user interface. These components are designed to be 
consistent, accessible, and easy to use.
+
+## Component Categories
+
+The Component Library is organized into the following categories:
+
+### UI Components
+
+Basic UI components like buttons, inputs, dropdowns, and other form elements.
+
+### Chart Components
+
+Visualization components used to render different types of charts and graphs.
+
+### Layout Components
+
+Components used for page layout, such as containers, grids, and navigation 
elements.
+
+## Versioning
+
+The Component Library documentation follows its own versioning scheme, 
independent from the main Superset documentation. This allows us to update the 
component documentation as the components evolve, without affecting the main 
documentation.
+
+This is version 1.0.0 of the Component Library documentation.
+
+## Getting Started
+
+Browse the sidebar to explore the different components available in the 
library. Each component documentation includes:
+
+- Component description and purpose
+- Props and configuration options
+- Usage examples
+- Best practices
diff --git 
a/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/layout-components/grid.md
 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/layout-components/grid.md
new file mode 100644
index 0000000000..70d8a1bbb5
--- /dev/null
+++ 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/layout-components/grid.md
@@ -0,0 +1,95 @@
+---
+title: Grid (v1.0.0)
+sidebar_position: 1
+---
+
+# Grid Component
+
+The Grid component provides a flexible layout system for arranging content in 
rows and columns.
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `gutter` | `number` or `[number, number]` | `0` | Grid spacing between 
items, can be a single number or [horizontal, vertical] |
+| `columns` | `number` | `12` | Number of columns in the grid |
+| `justify` | `string` | `'start'` | Horizontal alignment: 'start', 'center', 
'end', 'space-between', 'space-around' |
+| `align` | `string` | `'top'` | Vertical alignment: 'top', 'middle', 'bottom' 
|
+| `wrap` | `boolean` | `true` | Whether to wrap items when they overflow |
+
+### Row Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `gutter` | `number` or `[number, number]` | `0` | Spacing between items in 
the row |
+| `justify` | `string` | `'start'` | Horizontal alignment for this row |
+| `align` | `string` | `'top'` | Vertical alignment for this row |
+
+### Col Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `span` | `number` | - | Number of columns the grid item spans |
+| `offset` | `number` | `0` | Number of columns the grid item is offset |
+| `xs`, `sm`, `md`, `lg`, `xl` | `number` or `object` | - | Responsive props 
for different screen sizes |
+
+## Examples
+
+### Basic Grid
+
+```jsx
+import { Grid, Row, Col } from '@superset-ui/core';
+
+function Example() {
+  return (
+    <Grid>
+      <Row gutter={16}>
+        <Col span={8}>
+          <div>Column 1</div>
+        </Col>
+        <Col span={8}>
+          <div>Column 2</div>
+        </Col>
+        <Col span={8}>
+          <div>Column 3</div>
+        </Col>
+      </Row>
+    </Grid>
+  );
+}
+```
+
+### Responsive Grid
+
+```jsx
+import { Grid, Row, Col } from '@superset-ui/core';
+
+function Example() {
+  return (
+    <Grid>
+      <Row gutter={[16, 24]}>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 1</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 2</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 3</div>
+        </Col>
+        <Col xs={24} sm={12} md={8} lg={6}>
+          <div>Responsive Column 4</div>
+        </Col>
+      </Row>
+    </Grid>
+  );
+}
+```
+
+## Best Practices
+
+- Use the Grid system for complex layouts that need to be responsive
+- Specify column widths for different screen sizes to ensure proper responsive 
behavior
+- Use gutters to create appropriate spacing between grid items
+- Keep the grid structure consistent throughout your application
+- Consider using the grid system for dashboard layouts to ensure consistent 
spacing and alignment
diff --git 
a/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/ui-components/button.md
 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/ui-components/button.md
new file mode 100644
index 0000000000..6e8675f649
--- /dev/null
+++ 
b/docs/components_versioned_docs/version-1.1.0/versioned_docs/version-1.0.0/ui-components/button.md
@@ -0,0 +1,129 @@
+---
+title: Button Component (v1.0.0)
+sidebar_position: 1
+---
+
+import { StoryExample, StoryWithControls } from 
'../../../../src/components/StorybookWrapper';
+import Button from '../../../../../superset-frontend/src/components/Button';
+
+# Button Component (v1.0.0)
+
+The Button component is a fundamental UI element used throughout Superset for 
user interactions.
+
+## Basic Usage
+
+The default button with primary styling:
+
+<StoryExample
+  component={() => (
+    <Button buttonStyle="primary" onClick={() => console.log('Clicked!')}>
+      Click Me
+    </Button>
+  )}
+/>
+
+## Interactive Example
+
+<StoryWithControls
+  component={({ buttonStyle, buttonSize, label, disabled }) => (
+    <Button
+      buttonStyle={buttonStyle}
+      buttonSize={buttonSize}
+      disabled={disabled}
+      onClick={() => console.log('Clicked!')}
+    >
+      {label}
+    </Button>
+  )}
+  props={{
+    buttonStyle: 'primary',
+    buttonSize: 'default',
+    label: 'Click Me',
+    disabled: false
+  }}
+  controls={[
+    {
+      name: 'buttonStyle',
+      label: 'Button Style',
+      type: 'select',
+      options: ['primary', 'secondary', 'tertiary', 'success', 'warning', 
'danger', 'default', 'link', 'dashed']
+    },
+    {
+      name: 'buttonSize',
+      label: 'Button Size',
+      type: 'select',
+      options: ['default', 'small', 'xsmall']
+    },
+    {
+      name: 'label',
+      label: 'Button Text',
+      type: 'text'
+    },
+    {
+      name: 'disabled',
+      label: 'Disabled',
+      type: 'boolean'
+    }
+  ]}
+/>
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `buttonStyle` | `'primary' \| 'secondary' \| 'tertiary' \| 'success' \| 
'warning' \| 'danger' \| 'default' \| 'link' \| 'dashed'` | `'default'` | 
Button style |
+| `buttonSize` | `'default' \| 'small' \| 'xsmall'` | `'default'` | Button 
size |
+| `disabled` | `boolean` | `false` | Whether the button is disabled |
+| `cta` | `boolean` | `false` | Whether the button is a call-to-action button |
+| `tooltip` | `ReactNode` | - | Tooltip content |
+| `placement` | `TooltipProps['placement']` | - | Tooltip placement |
+| `onClick` | `function` | - | Callback when button is clicked |
+| `href` | `string` | - | Turns button into an anchor link |
+| `target` | `string` | - | Target attribute for anchor links |
+
+## Usage
+
+```jsx
+import Button from 'src/components/Button';
+
+function MyComponent() {
+  return (
+    <Button
+      buttonStyle="primary"
+      onClick={() => console.log('Button clicked')}
+    >
+      Click Me
+    </Button>
+  );
+}
+```
+
+## Button Styles
+
+Superset provides a variety of button styles for different purposes:
+
+- **Primary**: Used for primary actions
+- **Secondary**: Used for secondary actions
+- **Tertiary**: Used for less important actions
+- **Success**: Used for successful or confirming actions
+- **Warning**: Used for actions that require caution
+- **Danger**: Used for destructive actions
+- **Link**: Used for navigation
+- **Dashed**: Used for adding new items or features
+
+## Button Sizes
+
+Buttons come in three sizes:
+
+- **Default**: Standard size for most use cases
+- **Small**: Compact size for tight spaces
+- **XSmall**: Extra small size for very limited spaces
+
+## Best Practices
+
+- Use primary buttons for the main action in a form or page
+- Use secondary buttons for alternative actions
+- Use danger buttons for destructive actions
+- Limit the number of primary buttons on a page to avoid confusion
+- Use consistent button styles throughout your application
+- Add tooltips to buttons when their purpose might not be immediately clear
diff --git a/docs/components_versions.json 
b/docs/components_versioned_docs/version-1.1.0/versions.json
similarity index 100%
copy from docs/components_versions.json
copy to docs/components_versioned_docs/version-1.1.0/versions.json
diff --git a/docs/components_versioned_sidebars/version-1.1.0-sidebars.json 
b/docs/components_versioned_sidebars/version-1.1.0-sidebars.json
new file mode 100644
index 0000000000..87e987e63c
--- /dev/null
+++ b/docs/components_versioned_sidebars/version-1.1.0-sidebars.json
@@ -0,0 +1,39 @@
+{
+  "ComponentSidebar": [
+    {
+      "type": "doc",
+      "label": "Introduction",
+      "id": "index"
+    },
+    {
+      "type": "category",
+      "label": "UI Components",
+      "items": [
+        {
+          "type": "autogenerated",
+          "dirName": "ui-components"
+        }
+      ]
+    },
+    {
+      "type": "category",
+      "label": "Chart Components",
+      "items": [
+        {
+          "type": "autogenerated",
+          "dirName": "chart-components"
+        }
+      ]
+    },
+    {
+      "type": "category",
+      "label": "Layout Components",
+      "items": [
+        {
+          "type": "autogenerated",
+          "dirName": "layout-components"
+        }
+      ]
+    }
+  ]
+}
diff --git a/docs/components_versions.json b/docs/components_versions.json
index 5e1abcd8a6..81fc2b722b 100644
--- a/docs/components_versions.json
+++ b/docs/components_versions.json
@@ -1,3 +1,4 @@
 [
+  "1.1.0",
   "1.0.0"
 ]
diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts
index a2ddb3e124..b7969a5359 100644
--- a/docs/docusaurus.config.ts
+++ b/docs/docusaurus.config.ts
@@ -234,6 +234,29 @@ const config: Config = {
         showLastUpdateTime: true,
       },
     ],
+    [
+      '@docusaurus/plugin-content-docs',
+      {
+        id: 'tutorials',
+        path: 'tutorials',
+        routeBasePath: 'tutorials',
+        sidebarPath: require.resolve('./sidebarTutorials.js'),
+        editUrl:
+          'https://github.com/apache/superset/edit/master/docs/tutorials',
+        remarkPlugins: [require('remark-import-partial')],
+        // Enable MDX v2
+        docItemComponent: '@theme/DocItem',
+        includeCurrentVersion: true,
+        // We'll create versions later, for now just show the current version
+        versions: {
+          current: {
+            label: 'Next',
+            path: '',
+            banner: 'unreleased',
+          },
+        },
+      },
+    ],
   ],
 
   presets: [
@@ -288,6 +311,28 @@ const config: Config = {
           dropdownItemsAfter: [],
           dropdownActiveClassDisabled: true,
         },
+        // Add version dropdown for tutorials
+        {
+          type: 'docsVersionDropdown',
+          position: 'right',
+          docsPluginId: 'tutorials',
+          dropdownItemsAfter: [],
+          dropdownActiveClassDisabled: true,
+        },
+        {
+          label: 'Tutorials',
+          to: '/tutorials',
+          items: [
+            {
+              label: 'Introduction',
+              to: '/tutorials',
+            },
+            {
+              label: 'Getting Started',
+              to: '/tutorials/getting-started',
+            },
+          ],
+        },
         {
           label: 'Documentation',
           to: '/docs/intro',
@@ -404,7 +449,6 @@ const config: Config = {
     //   src: 
'https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa',
     //   async: true,
     // },
-    '/script/matomo.js',
     {
       src: 'https://widget.kapa.ai/kapa-widget.bundle.js',
       async: true,
diff --git a/docs/sidebarTutorials.js b/docs/sidebarTutorials.js
new file mode 100644
index 0000000000..10ebd71019
--- /dev/null
+++ b/docs/sidebarTutorials.js
@@ -0,0 +1,48 @@
+/* eslint-env node */
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// @ts-check
+
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const sidebars = {
+  // By default, Docusaurus generates a sidebar from the docs folder structure
+  //tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
+
+  // But we're not doing that.
+  TutorialsSidebar: [
+    {
+      type: 'doc',
+      label: 'Introduction',
+      id: 'index',
+    },
+    {
+      type: 'category',
+      label: 'Getting Started',
+      items: [
+        {
+          type: 'autogenerated',
+          dirName: 'getting-started',
+        },
+      ],
+    },
+  ],
+};
+
+module.exports = sidebars;
diff --git a/docs/src/pages/tutorials.tsx b/docs/src/pages/tutorials.tsx
new file mode 100644
index 0000000000..08edb403fb
--- /dev/null
+++ b/docs/src/pages/tutorials.tsx
@@ -0,0 +1,21 @@
+import React, { useEffect } from 'react';
+import { useHistory } from '@docusaurus/router';
+import versions from '../../tutorials/versions.json';
+
+export default function TutorialsRedirect(): JSX.Element {
+  const history = useHistory();
+
+  useEffect(() => {
+    // Get the latest released version (first one in the versions array)
+    const latestVersion = versions.length > 0 ? versions[0] : '1.0.0';
+
+    // Redirect to the latest version
+    history.replace(`/tutorials/${latestVersion}`);
+  }, [history]);
+
+  return (
+    <div>
+      <p>Redirecting to Tutorials...</p>
+    </div>
+  );
+}
diff --git a/docs/src/pages/tutorials/getting-started.tsx 
b/docs/src/pages/tutorials/getting-started.tsx
new file mode 100644
index 0000000000..81c7e65bd3
--- /dev/null
+++ b/docs/src/pages/tutorials/getting-started.tsx
@@ -0,0 +1,21 @@
+import React, { useEffect } from 'react';
+import { useHistory } from '@docusaurus/router';
+import versions from '../../../tutorials/versions.json';
+
+export default function GettingStartedRedirect(): JSX.Element {
+  const history = useHistory();
+
+  useEffect(() => {
+    // Get the latest released version (first one in the versions array)
+    const latestVersion = versions.length > 0 ? versions[0] : '1.0.0';
+
+    // Redirect to the latest version
+    history.replace(`/tutorials/${latestVersion}/getting-started`);
+  }, [history]);
+
+  return (
+    <div>
+      <p>Redirecting to Getting Started Tutorials...</p>
+    </div>
+  );
+}
diff --git a/docs/tutorials/getting-started/index.md 
b/docs/tutorials/getting-started/index.md
new file mode 100644
index 0000000000..d8b3be1012
--- /dev/null
+++ b/docs/tutorials/getting-started/index.md
@@ -0,0 +1,46 @@
+---
+title: Getting Started with Superset
+sidebar_position: 1
+---
+
+# Getting Started with Superset
+
+This guide will help you get up and running with Apache Superset.
+
+## Prerequisites
+
+Before you begin, make sure you have:
+
+- Python 3.8 or later
+- pip or conda for package management
+- A database you want to connect to (MySQL, PostgreSQL, etc.)
+
+## Installation
+
+There are several ways to install Superset:
+
+1. [Using Docker Compose](/tutorials/getting-started/docker-compose)
+2. [Using pip](/tutorials/getting-started/pip-installation)
+3. [Using Kubernetes](/tutorials/getting-started/kubernetes)
+
+For most users, the Docker Compose method is recommended for simplicity.
+
+## First Steps
+
+Once you have Superset installed, you'll want to:
+
+1. Connect to your database
+2. Create your first dataset
+3. Build your first chart
+4. Assemble your first dashboard
+
+Follow our [First Steps Guide](/tutorials/getting-started/first-steps) to 
learn how.
+
+## Next Steps
+
+After you've mastered the basics, explore:
+
+- Advanced chart types
+- Dashboard features
+- SQL Lab
+- Security and access control
diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md
new file mode 100644
index 0000000000..37cb5ed58b
--- /dev/null
+++ b/docs/tutorials/index.md
@@ -0,0 +1,22 @@
+---
+title: Tutorials
+sidebar_position: 1
+---
+
+# Superset Tutorials
+
+Welcome to the Superset Tutorials section. Here you'll find step-by-step 
guides to help you get the most out of Superset.
+
+## Getting Started
+
+If you're new to Superset, start with our [Getting 
Started](/tutorials/getting-started) guides.
+
+## What's in this section?
+
+This tutorials section is versioned independently from the main documentation 
and the component library. This means:
+
+1. We can update tutorials for new Superset versions without affecting 
documentation for older versions
+2. We can maintain tutorials for multiple Superset versions simultaneously
+3. Users can easily find tutorials relevant to their specific Superset version
+
+Use the version dropdown in the navbar to switch between different versions of 
the tutorials.
diff --git a/docs/components_versions.json b/docs/tutorials/versions.json
similarity index 100%
copy from docs/components_versions.json
copy to docs/tutorials/versions.json
diff --git 
a/docs/tutorials_versioned_docs/version-1.0.0/getting-started/index.md 
b/docs/tutorials_versioned_docs/version-1.0.0/getting-started/index.md
new file mode 100644
index 0000000000..d8b3be1012
--- /dev/null
+++ b/docs/tutorials_versioned_docs/version-1.0.0/getting-started/index.md
@@ -0,0 +1,46 @@
+---
+title: Getting Started with Superset
+sidebar_position: 1
+---
+
+# Getting Started with Superset
+
+This guide will help you get up and running with Apache Superset.
+
+## Prerequisites
+
+Before you begin, make sure you have:
+
+- Python 3.8 or later
+- pip or conda for package management
+- A database you want to connect to (MySQL, PostgreSQL, etc.)
+
+## Installation
+
+There are several ways to install Superset:
+
+1. [Using Docker Compose](/tutorials/getting-started/docker-compose)
+2. [Using pip](/tutorials/getting-started/pip-installation)
+3. [Using Kubernetes](/tutorials/getting-started/kubernetes)
+
+For most users, the Docker Compose method is recommended for simplicity.
+
+## First Steps
+
+Once you have Superset installed, you'll want to:
+
+1. Connect to your database
+2. Create your first dataset
+3. Build your first chart
+4. Assemble your first dashboard
+
+Follow our [First Steps Guide](/tutorials/getting-started/first-steps) to 
learn how.
+
+## Next Steps
+
+After you've mastered the basics, explore:
+
+- Advanced chart types
+- Dashboard features
+- SQL Lab
+- Security and access control
diff --git a/docs/tutorials_versioned_docs/version-1.0.0/index.md 
b/docs/tutorials_versioned_docs/version-1.0.0/index.md
new file mode 100644
index 0000000000..37cb5ed58b
--- /dev/null
+++ b/docs/tutorials_versioned_docs/version-1.0.0/index.md
@@ -0,0 +1,22 @@
+---
+title: Tutorials
+sidebar_position: 1
+---
+
+# Superset Tutorials
+
+Welcome to the Superset Tutorials section. Here you'll find step-by-step 
guides to help you get the most out of Superset.
+
+## Getting Started
+
+If you're new to Superset, start with our [Getting 
Started](/tutorials/getting-started) guides.
+
+## What's in this section?
+
+This tutorials section is versioned independently from the main documentation 
and the component library. This means:
+
+1. We can update tutorials for new Superset versions without affecting 
documentation for older versions
+2. We can maintain tutorials for multiple Superset versions simultaneously
+3. Users can easily find tutorials relevant to their specific Superset version
+
+Use the version dropdown in the navbar to switch between different versions of 
the tutorials.
diff --git a/docs/components_versions.json 
b/docs/tutorials_versioned_docs/version-1.0.0/versions.json
similarity index 100%
copy from docs/components_versions.json
copy to docs/tutorials_versioned_docs/version-1.0.0/versions.json
diff --git a/docs/tutorials_versioned_sidebars/version-1.0.0-sidebars.json 
b/docs/tutorials_versioned_sidebars/version-1.0.0-sidebars.json
new file mode 100644
index 0000000000..67f6f21a4a
--- /dev/null
+++ b/docs/tutorials_versioned_sidebars/version-1.0.0-sidebars.json
@@ -0,0 +1,19 @@
+{
+  "TutorialsSidebar": [
+    {
+      "type": "doc",
+      "label": "Introduction",
+      "id": "index"
+    },
+    {
+      "type": "category",
+      "label": "Getting Started",
+      "items": [
+        {
+          "type": "autogenerated",
+          "dirName": "getting-started"
+        }
+      ]
+    }
+  ]
+}
diff --git a/docs/components_versions.json b/docs/tutorials_versions.json
similarity index 100%
copy from docs/components_versions.json
copy to docs/tutorials_versions.json


Reply via email to