rusackas commented on code in PR #38196:
URL: https://github.com/apache/superset/pull/38196#discussion_r2842725285


##########
docs/developer_docs/components/ui/slider.mdx:
##########
@@ -0,0 +1,253 @@
+---
+title: Slider
+sidebar_label: Slider
+---
+
+<!--
+    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.
+-->
+
+import { StoryWithControls } from '../../../src/components/StorybookWrapper';
+
+# Slider
+
+A slider input for selecting a value or range from a continuous or stepped 
interval. Supports single value, range, vertical orientation, marks, and 
tooltip display.
+
+## Live Example
+
+<StoryWithControls
+  component="Slider"
+  props={{
+  min: 0,
+  max: 100,
+  defaultValue: 70,
+  step: 1,
+  disabled: false,
+  reverse: false,
+  vertical: false,
+  keyboard: true,
+  dots: false,
+  included: true
+}}
+  controls={[
+  {
+    name: "min",
+    label: "Min",
+    type: "number",
+    description: "Minimum value of the slider."
+  },
+  {
+    name: "max",
+    label: "Max",
+    type: "number",
+    description: "Maximum value of the slider."
+  },
+  {
+    name: "defaultValue",
+    label: "Default Value",
+    type: "number",
+    description: "Initial value of the slider."
+  },
+  {
+    name: "step",
+    label: "Step",
+    type: "number",
+    description: "Step increment between values. Use null for marks-only mode."
+  },
+  {
+    name: "disabled",
+    label: "Disabled",
+    type: "boolean",
+    description: "Whether the slider is disabled."
+  },
+  {
+    name: "reverse",
+    label: "Reverse",
+    type: "boolean",
+    description: "Whether to reverse the slider direction."
+  },
+  {
+    name: "vertical",
+    label: "Vertical",
+    type: "boolean",
+    description: "Whether to display the slider vertically."
+  },
+  {
+    name: "keyboard",
+    label: "Keyboard",
+    type: "boolean",
+    description: "Whether keyboard arrow keys can control the slider."
+  },
+  {
+    name: "dots",
+    label: "Dots",
+    type: "boolean",
+    description: "Whether to show dots at each step mark."
+  },
+  {
+    name: "included",
+    label: "Included",
+    type: "boolean",
+    description: "Whether to highlight the filled portion of the track."
+  },
+  {
+    name: "tooltipOpen",
+    label: "Tooltip Open",
+    type: "boolean",
+    description: "Whether the value tooltip is always visible."
+  },
+  {
+    name: "tooltipPosition",
+    label: "Tooltip Position",
+    type: "select",
+    options: [
+      "top",
+      "left",
+      "bottom",
+      "right",
+      "topLeft",
+      "topRight",
+      "bottomLeft",
+      "bottomRight",
+      "leftTop",
+      "leftBottom",
+      "rightTop",
+      "rightBottom"
+    ],
+    description: "Position of the value tooltip relative to the handle."
+  }
+]}
+/>
+
+## Try It
+
+Edit the code below to experiment with the component:
+
+```tsx live
+function Demo() {
+  return (
+    <div style={{ width: 400, padding: '20px 0' }}>
+      <Slider
+        min={0}
+        max={100}
+        defaultValue={70}
+        step={1}
+      />
+    </div>
+  );
+}
+```
+
+## Range Slider
+
+```tsx live
+function RangeSliderDemo() {
+  return (
+    <div style={{ width: 400, padding: '20px 0' }}>
+      <h4>Basic Range</h4>
+      <Slider range defaultValue={[20, 70]} min={0} max={100} />
+      <br />
+      <h4>Draggable Track</h4>
+      <Slider range={{ draggableTrack: true }} defaultValue={[30, 60]} min={0} 
max={100} />
+    </div>
+  );
+}
+```
+
+## With Marks
+
+```tsx live
+function MarksDemo() {
+  return (
+    <div style={{ width: 400, padding: '20px 0' }}>
+      <Slider
+        min={0}
+        max={100}
+        defaultValue={37}
+        marks={{
+          0: '0°C',
+          25: '25°C',
+          50: '50°C',
+          75: '75°C',
+          100: '100°C',
+        }}
+      />
+    </div>
+  );
+}
+```
+
+## Stepped and Dots
+
+```tsx live
+function SteppedDemo() {
+  return (
+    <div style={{ width: 400, padding: '20px 0' }}>
+      <h4>Step = 10 with Dots</h4>
+      <Slider min={0} max={100} defaultValue={30} step={10} dots />
+      <br />
+      <h4>Step = 25</h4>
+      <Slider min={0} max={100} defaultValue={50} step={25} dots
+        marks={{ 0: '0', 25: '25', 50: '50', 75: '75', 100: '100' }} />
+    </div>
+  );
+}
+```
+
+## Vertical Slider
+
+```tsx live
+function VerticalDemo() {
+  return (
+    <div style={{ height: 300, display: 'flex', gap: 40, padding: '0 40px' }}>
+      <Slider vertical defaultValue={30} />
+      <Slider vertical range defaultValue={[20, 60]} />
+      <Slider vertical defaultValue={50} dots step={10}
+        marks={{ 0: '0', 50: '50', 100: '100' }} />
+    </div>
+  );
+}
+```
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `min` | `number` | `0` | Minimum value of the slider. |
+| `max` | `number` | `100` | Maximum value of the slider. |
+| `defaultValue` | `number` | `70` | Initial value of the slider. |
+| `step` | `number` | `1` | Step increment between values. Use null for 
marks-only mode. |
+| `disabled` | `boolean` | `false` | Whether the slider is disabled. |
+| `reverse` | `boolean` | `false` | Whether to reverse the slider direction. |
+| `vertical` | `boolean` | `false` | Whether to display the slider vertically. 
|
+| `keyboard` | `boolean` | `true` | Whether keyboard arrow keys can control 
the slider. |
+| `dots` | `boolean` | `false` | Whether to show dots at each step mark. |
+| `included` | `boolean` | `true` | Whether to highlight the filled portion of 
the track. |
+
+## Import
+
+```tsx
+import Slider from '@superset/components';

Review Comment:
   Good catch — fixed in 779d677b11. This was a bug in the auto-generated docs: 
`@superset/components` only exposes named exports, so the default import would 
resolve to the module object rather than the component. Fixed this for Slider 
and 4 other components (Tree, ProgressBar, TableCollection, Tabs) that had the 
same issue.



##########
docs/developer_docs/components/ui/tree.mdx:
##########
@@ -0,0 +1,268 @@
+---
+title: Tree
+sidebar_label: Tree
+---
+
+<!--
+    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.
+-->
+
+import { StoryWithControls } from '../../../src/components/StorybookWrapper';
+
+# Tree
+
+The Tree component is used to display hierarchical data in a tree structure. 
It allows for features such as selection, expansion, and drag-and-drop 
functionality.
+
+## Live Example
+
+<StoryWithControls
+  component="Tree"
+  props={{
+  checkable: false,
+  defaultExpandAll: false,
+  disabled: false,
+  draggable: false,
+  multiple: false,
+  selectable: true,
+  showIcon: false,
+  showLine: false,
+  treeData: [
+    {
+      title: "parent 1",
+      key: "0-0",
+      children: [
+        {
+          title: "parent 1-0",
+          key: "0-0-0",
+          children: [
+            {
+              title: "leaf",
+              key: "0-0-0-0"
+            },
+            {
+              title: "leaf",
+              key: "0-0-0-1"
+            },
+            {
+              title: "leaf",
+              key: "0-0-0-2"
+            }
+          ]
+        },
+        {
+          title: "parent 1-1",
+          key: "0-0-1",
+          children: [
+            {
+              title: "leaf",
+              key: "0-0-1-0"
+            }
+          ]
+        },
+        {
+          title: "parent 1-2",
+          key: "0-0-2",
+          children: [
+            {
+              title: "leaf",
+              key: "0-0-2-0"
+            },
+            {
+              title: "leaf",
+              key: "0-0-2-1"
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  defaultExpandedKeys: [
+    "0-0",
+    "0-0-0"
+  ]
+}}
+  controls={[
+  {
+    name: "checkable",
+    label: "Checkable",
+    type: "boolean",
+    description: "Add a Checkbox before the treeNodes"
+  },
+  {
+    name: "defaultExpandAll",
+    label: "Default Expand All",
+    type: "boolean",
+    description: "Whether to expand all treeNodes by default"
+  },
+  {
+    name: "disabled",
+    label: "Disabled",
+    type: "boolean",
+    description: "Whether disabled the tree"
+  },
+  {
+    name: "draggable",
+    label: "Draggable",
+    type: "boolean",
+    description: "Specifies whether this Tree or the node is draggable"
+  },
+  {
+    name: "multiple",
+    label: "Multiple",
+    type: "boolean",
+    description: "Allows selecting multiple treeNodes"
+  },
+  {
+    name: "selectable",
+    label: "Selectable",
+    type: "boolean",
+    description: "Whether can be selected"
+  },
+  {
+    name: "showIcon",
+    label: "Show Icon",
+    type: "boolean",
+    description: "Controls whether to display the icon node"
+  },
+  {
+    name: "showLine",
+    label: "Show Line",
+    type: "boolean",
+    description: "Shows a connecting line"
+  }
+]}
+/>
+
+## Try It
+
+Edit the code below to experiment with the component:
+
+```tsx live
+function Demo() {
+  const treeData = [
+    {
+      title: 'Databases',
+      key: 'databases',
+      children: [
+        { title: 'PostgreSQL', key: 'postgres' },
+        { title: 'MySQL', key: 'mysql' },
+        { title: 'SQLite', key: 'sqlite' },
+      ],
+    },
+    {
+      title: 'Charts',
+      key: 'charts',
+      children: [
+        { title: 'Bar Chart', key: 'bar' },
+        { title: 'Line Chart', key: 'line' },
+        { title: 'Pie Chart', key: 'pie' },
+      ],
+    },
+  ];
+  return <Tree treeData={treeData} defaultExpandAll />;
+}
+```
+
+## Checkable Tree
+
+```tsx live
+function CheckableTree() {
+  const [checkedKeys, setCheckedKeys] = React.useState(['postgres']);
+  const treeData = [
+    {
+      title: 'Databases',
+      key: 'databases',
+      children: [
+        { title: 'PostgreSQL', key: 'postgres' },
+        { title: 'MySQL', key: 'mysql' },
+      ],
+    },
+    {
+      title: 'Charts',
+      key: 'charts',
+      children: [
+        { title: 'Bar Chart', key: 'bar' },
+        { title: 'Line Chart', key: 'line' },
+      ],
+    },
+  ];
+  return (
+    <Tree
+      treeData={treeData}
+      checkable
+      defaultExpandAll
+      checkedKeys={checkedKeys}
+      onCheck={setCheckedKeys}
+    />
+  );
+}
+```
+
+## With Lines and Icons
+
+```tsx live
+function LinesAndIcons() {
+  const treeData = [
+    {
+      title: 'Dashboards',
+      key: 'dashboards',
+      children: [
+        { title: 'Sales Dashboard', key: 'sales' },
+        { title: 'Marketing Dashboard', key: 'marketing' },
+      ],
+    },
+    {
+      title: 'Reports',
+      key: 'reports',
+      children: [
+        { title: 'Weekly Report', key: 'weekly' },
+        { title: 'Monthly Report', key: 'monthly' },
+      ],
+    },
+  ];
+  return <Tree treeData={treeData} showLine showIcon defaultExpandAll />;
+}
+```
+
+## Props
+
+| Prop | Type | Default | Description |
+|------|------|---------|-------------|
+| `checkable` | `boolean` | `false` | Add a Checkbox before the treeNodes |
+| `defaultExpandAll` | `boolean` | `false` | Whether to expand all treeNodes 
by default |
+| `disabled` | `boolean` | `false` | Whether disabled the tree |
+| `draggable` | `boolean` | `false` | Specifies whether this Tree or the node 
is draggable |
+| `multiple` | `boolean` | `false` | Allows selecting multiple treeNodes |
+| `selectable` | `boolean` | `true` | Whether can be selected |
+| `showIcon` | `boolean` | `false` | Controls whether to display the icon node 
|
+| `showLine` | `boolean` | `false` | Shows a connecting line |
+| `treeData` | `any` | `[{"title":"parent 
1","key":"0-0","children":[{"title":"parent 
1-0","key":"0-0-0","children":[{"title":"leaf","key":"0-0-0-0"},{"title":"leaf","key":"0-0-0-1"},{"title":"leaf","key":"0-0-0-2"}]},{"title":"parent
 
1-1","key":"0-0-1","children":[{"title":"leaf","key":"0-0-1-0"}]},{"title":"parent
 
1-2","key":"0-0-2","children":[{"title":"leaf","key":"0-0-2-0"},{"title":"leaf","key":"0-0-2-1"}]}]}]`
 | - |
+| `defaultExpandedKeys` | `any` | `["0-0","0-0-0"]` | - |
+
+## Import
+
+```tsx
+import Tree from '@superset/components';

Review Comment:
   Same issue as the Slider comment above — fixed in 779d677b11 alongside all 
other components that had default imports.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to