documentation-site/components/yard/config/slider.ts (116 lines of code) (raw):

/* Copyright (c) Uber Technologies, Inc. This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. */ import { Slider } from "baseui/slider"; import { PropTypes } from "react-view"; import type { TConfig } from "../types"; const SliderConfig: TConfig = { componentName: "Slider", imports: { "baseui/slider": { named: ["Slider"] }, }, scope: { Slider, }, theme: [ "sliderTrackFill", "sliderHandleFill", "sliderHandleFillDisabled", "sliderHandleInnerFill", ], props: { value: { value: "[10]", type: PropTypes.Array, description: "Slider value.", stateful: true, }, onChange: { value: "({value}) => value && setValue(value)", type: PropTypes.Function, description: "Called when slider value is changed.", propHook: { what: "JSON.stringify(value)", into: "value", }, }, onFinalChange: { value: "({value}) => console.log(value)", type: PropTypes.Function, description: "Called when slider value is done changing.", }, min: { value: undefined, type: PropTypes.Number, placeholder: "0", description: "The minimum allowed value of the slider. Cannot not be bigger than max.", }, max: { value: undefined, placeholder: "100", type: PropTypes.Number, description: "The maximum allowed value of the slider. Cannot not be smaller than min.", }, step: { value: undefined, placeholder: "1", type: PropTypes.Number, description: "The granularity the slider can step through value. Default step is 1.", }, marks: { value: false, type: PropTypes.Boolean, description: "Display a mark at each step.", }, disabled: { value: false, type: PropTypes.Boolean, description: "True when all tabs are disabled.", }, persistentThumb: { value: false, type: PropTypes.Boolean, description: "Causes the value/thumb to always display.", }, valueToLabel: { value: undefined, placeholder: "(value) => `${value}:00 AM", type: PropTypes.Function, description: "Used to transform the thumb value/min/max labels into a user-friendly label.", }, overrides: { value: undefined, type: PropTypes.Custom, description: "Lets you customize all aspects of the component.", custom: { names: [ "InnerThumb", "InnerTrack", "Root", "Thumb", "ThumbValue", "Tick", "TickBar", "Track", "Mark", ], sharedProps: { $disabled: "disabled", $isDragged: { type: PropTypes.Boolean, description: "True when the handler is being dragged.", }, $max: "max", $min: "min", $thumbIndex: { type: PropTypes.Number, description: "The index of the handler that is being rendered.", }, $value: "value", }, }, }, }, }; export default SliderConfig;