@darajs/ui-components 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/accordion/accordion-item.d.ts +24 -0
- package/dist/accordion/accordion-item.d.ts.map +1 -0
- package/dist/accordion/accordion-item.js +92 -0
- package/dist/accordion/accordion-item.js.map +1 -0
- package/dist/accordion/accordion.d.ts +32 -0
- package/dist/accordion/accordion.d.ts.map +1 -0
- package/dist/accordion/accordion.js +87 -0
- package/dist/accordion/accordion.js.map +1 -0
- package/dist/badge/badge.d.ts +20 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +42 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/button/button.d.ts +35 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.js +169 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button-bar/button-bar.d.ts +19 -0
- package/dist/button-bar/button-bar.d.ts.map +1 -0
- package/dist/button-bar/button-bar.js +124 -0
- package/dist/button-bar/button-bar.js.map +1 -0
- package/dist/carousel/carousel.d.ts +23 -0
- package/dist/carousel/carousel.d.ts.map +1 -0
- package/dist/carousel/carousel.js +178 -0
- package/dist/carousel/carousel.js.map +1 -0
- package/dist/chat/chat.d.ts +28 -0
- package/dist/chat/chat.d.ts.map +1 -0
- package/dist/chat/chat.js +182 -0
- package/dist/chat/chat.js.map +1 -0
- package/dist/chat/message.d.ts +28 -0
- package/dist/chat/message.d.ts.map +1 -0
- package/dist/chat/message.js +220 -0
- package/dist/chat/message.js.map +1 -0
- package/dist/checkbox/checkbox-group.d.ts +35 -0
- package/dist/checkbox/checkbox-group.d.ts.map +1 -0
- package/dist/checkbox/checkbox-group.js +116 -0
- package/dist/checkbox/checkbox-group.js.map +1 -0
- package/dist/checkbox/checkbox.d.ts +27 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +164 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/checkbox/tri-state-checkbox.d.ts +22 -0
- package/dist/checkbox/tri-state-checkbox.d.ts.map +1 -0
- package/dist/checkbox/tri-state-checkbox.js +87 -0
- package/dist/checkbox/tri-state-checkbox.js.map +1 -0
- package/dist/code-viewer/code-viewer.d.ts +31 -0
- package/dist/code-viewer/code-viewer.d.ts.map +1 -0
- package/dist/code-viewer/code-viewer.js +115 -0
- package/dist/code-viewer/code-viewer.js.map +1 -0
- package/dist/combo-box/combo-box.d.ts +39 -0
- package/dist/combo-box/combo-box.d.ts.map +1 -0
- package/dist/combo-box/combo-box.js +176 -0
- package/dist/combo-box/combo-box.js.map +1 -0
- package/dist/component-select-list/component-select-list.d.ts +27 -0
- package/dist/component-select-list/component-select-list.d.ts.map +1 -0
- package/dist/component-select-list/component-select-list.js +131 -0
- package/dist/component-select-list/component-select-list.js.map +1 -0
- package/dist/constants.d.ts +33 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +47 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-menu/context-menu.d.ts +24 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +116 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/datepicker/datepicker-select.d.ts +48 -0
- package/dist/datepicker/datepicker-select.d.ts.map +1 -0
- package/dist/datepicker/datepicker-select.js +219 -0
- package/dist/datepicker/datepicker-select.js.map +1 -0
- package/dist/datepicker/datepicker.d.ts +56 -0
- package/dist/datepicker/datepicker.d.ts.map +1 -0
- package/dist/datepicker/datepicker.js +669 -0
- package/dist/datepicker/datepicker.js.map +1 -0
- package/dist/dropzone/dropzone.d.ts +21 -0
- package/dist/dropzone/dropzone.d.ts.map +1 -0
- package/dist/dropzone/dropzone.js +80 -0
- package/dist/dropzone/dropzone.js.map +1 -0
- package/dist/error-boundary/error-boundary.d.ts +33 -0
- package/dist/error-boundary/error-boundary.d.ts.map +1 -0
- package/dist/error-boundary/error-boundary.js +72 -0
- package/dist/error-boundary/error-boundary.js.map +1 -0
- package/dist/filter/categorical-filter.d.ts +26 -0
- package/dist/filter/categorical-filter.d.ts.map +1 -0
- package/dist/filter/categorical-filter.js +153 -0
- package/dist/filter/categorical-filter.js.map +1 -0
- package/dist/filter/datetime-filter.d.ts +28 -0
- package/dist/filter/datetime-filter.d.ts.map +1 -0
- package/dist/filter/datetime-filter.js +174 -0
- package/dist/filter/datetime-filter.js.map +1 -0
- package/dist/filter/numeric-filter.d.ts +24 -0
- package/dist/filter/numeric-filter.d.ts.map +1 -0
- package/dist/filter/numeric-filter.js +148 -0
- package/dist/filter/numeric-filter.js.map +1 -0
- package/dist/hierarchy-selector/hierarchy-selector.d.ts +31 -0
- package/dist/hierarchy-selector/hierarchy-selector.d.ts.map +1 -0
- package/dist/hierarchy-selector/hierarchy-selector.js +65 -0
- package/dist/hierarchy-selector/hierarchy-selector.js.map +1 -0
- package/dist/hierarchy-selector/node/branch.d.ts +47 -0
- package/dist/hierarchy-selector/node/branch.d.ts.map +1 -0
- package/dist/hierarchy-selector/node/branch.js +132 -0
- package/dist/hierarchy-selector/node/branch.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/input/input.d.ts +44 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +91 -0
- package/dist/input/input.js.map +1 -0
- package/dist/jest-setup.d.ts +18 -0
- package/dist/jest-setup.d.ts.map +1 -0
- package/dist/jest-setup.js +18 -0
- package/dist/jest-setup.js.map +1 -0
- package/dist/markdown/markdown.d.ts +18 -0
- package/dist/markdown/markdown.d.ts.map +1 -0
- package/dist/markdown/markdown.js +356 -0
- package/dist/markdown/markdown.js.map +1 -0
- package/dist/modal/modal.d.ts +37 -0
- package/dist/modal/modal.d.ts.map +1 -0
- package/dist/modal/modal.js +121 -0
- package/dist/modal/modal.js.map +1 -0
- package/dist/multiselect/multiselect.d.ts +31 -0
- package/dist/multiselect/multiselect.d.ts.map +1 -0
- package/dist/multiselect/multiselect.js +231 -0
- package/dist/multiselect/multiselect.js.map +1 -0
- package/dist/numeric-input/input-stepper.d.ts +33 -0
- package/dist/numeric-input/input-stepper.d.ts.map +1 -0
- package/dist/numeric-input/input-stepper.js +54 -0
- package/dist/numeric-input/input-stepper.js.map +1 -0
- package/dist/numeric-input/numeric-input.d.ts +42 -0
- package/dist/numeric-input/numeric-input.d.ts.map +1 -0
- package/dist/numeric-input/numeric-input.js +234 -0
- package/dist/numeric-input/numeric-input.js.map +1 -0
- package/dist/progress-bar/progress-bar.d.ts +23 -0
- package/dist/progress-bar/progress-bar.d.ts.map +1 -0
- package/dist/progress-bar/progress-bar.js +90 -0
- package/dist/progress-bar/progress-bar.js.map +1 -0
- package/dist/radio/radio-group.d.ts +19 -0
- package/dist/radio/radio-group.d.ts.map +1 -0
- package/dist/radio/radio-group.js +160 -0
- package/dist/radio/radio-group.js.map +1 -0
- package/dist/search-bar/search-bar.d.ts +34 -0
- package/dist/search-bar/search-bar.d.ts.map +1 -0
- package/dist/search-bar/search-bar.js +39 -0
- package/dist/search-bar/search-bar.js.map +1 -0
- package/dist/sectioned-list/sectioned-list.d.ts +29 -0
- package/dist/sectioned-list/sectioned-list.d.ts.map +1 -0
- package/dist/sectioned-list/sectioned-list.js +205 -0
- package/dist/sectioned-list/sectioned-list.js.map +1 -0
- package/dist/select/select.d.ts +54 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +143 -0
- package/dist/select/select.js.map +1 -0
- package/dist/shared/chevron-button.d.ts +13 -0
- package/dist/shared/chevron-button.d.ts.map +1 -0
- package/dist/shared/chevron-button.js +35 -0
- package/dist/shared/chevron-button.js.map +1 -0
- package/dist/shared/dropdown-list.d.ts +34 -0
- package/dist/shared/dropdown-list.d.ts.map +1 -0
- package/dist/shared/dropdown-list.js +33 -0
- package/dist/shared/dropdown-list.js.map +1 -0
- package/dist/shared/list-item.d.ts +35 -0
- package/dist/shared/list-item.d.ts.map +1 -0
- package/dist/shared/list-item.js +69 -0
- package/dist/shared/list-item.js.map +1 -0
- package/dist/slider/slider-inputs.d.ts +36 -0
- package/dist/slider/slider-inputs.d.ts.map +1 -0
- package/dist/slider/slider-inputs.js +88 -0
- package/dist/slider/slider-inputs.js.map +1 -0
- package/dist/slider/slider.d.ts +53 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +273 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/spinner/spinner.d.ts +19 -0
- package/dist/spinner/spinner.d.ts.map +1 -0
- package/dist/spinner/spinner.js +144 -0
- package/dist/spinner/spinner.js.map +1 -0
- package/dist/switch/sun-icon.d.ts +3 -0
- package/dist/switch/sun-icon.d.ts.map +1 -0
- package/dist/switch/sun-icon.js +24 -0
- package/dist/switch/sun-icon.js.map +1 -0
- package/dist/switch/switch.d.ts +16 -0
- package/dist/switch/switch.d.ts.map +1 -0
- package/dist/switch/switch.js +92 -0
- package/dist/switch/switch.js.map +1 -0
- package/dist/table/cells/action-cell.d.ts +34 -0
- package/dist/table/cells/action-cell.d.ts.map +1 -0
- package/dist/table/cells/action-cell.js +68 -0
- package/dist/table/cells/action-cell.js.map +1 -0
- package/dist/table/cells/datetime-cell.d.ts +12 -0
- package/dist/table/cells/datetime-cell.d.ts.map +1 -0
- package/dist/table/cells/datetime-cell.js +36 -0
- package/dist/table/cells/datetime-cell.js.map +1 -0
- package/dist/table/cells/edit-cell-utils.d.ts +32 -0
- package/dist/table/cells/edit-cell-utils.d.ts.map +1 -0
- package/dist/table/cells/edit-cell-utils.js +2 -0
- package/dist/table/cells/edit-cell-utils.js.map +1 -0
- package/dist/table/cells/edit-input-cell.d.ts +10 -0
- package/dist/table/cells/edit-input-cell.d.ts.map +1 -0
- package/dist/table/cells/edit-input-cell.js +61 -0
- package/dist/table/cells/edit-input-cell.js.map +1 -0
- package/dist/table/cells/edit-select-cell.d.ts +12 -0
- package/dist/table/cells/edit-select-cell.d.ts.map +1 -0
- package/dist/table/cells/edit-select-cell.js +55 -0
- package/dist/table/cells/edit-select-cell.js.map +1 -0
- package/dist/table/filters.d.ts +46 -0
- package/dist/table/filters.d.ts.map +1 -0
- package/dist/table/filters.js +226 -0
- package/dist/table/filters.js.map +1 -0
- package/dist/table/headers/select-header.d.ts +14 -0
- package/dist/table/headers/select-header.d.ts.map +1 -0
- package/dist/table/headers/select-header.js +41 -0
- package/dist/table/headers/select-header.js.map +1 -0
- package/dist/table/options-menu.d.ts +25 -0
- package/dist/table/options-menu.d.ts.map +1 -0
- package/dist/table/options-menu.js +123 -0
- package/dist/table/options-menu.js.map +1 -0
- package/dist/table/render-row.d.ts +25 -0
- package/dist/table/render-row.d.ts.map +1 -0
- package/dist/table/render-row.js +163 -0
- package/dist/table/render-row.js.map +1 -0
- package/dist/table/table.d.ts +95 -0
- package/dist/table/table.d.ts.map +1 -0
- package/dist/table/table.js +422 -0
- package/dist/table/table.js.map +1 -0
- package/dist/table/types.d.ts +30 -0
- package/dist/table/types.d.ts.map +1 -0
- package/dist/table/types.js +2 -0
- package/dist/table/types.js.map +1 -0
- package/dist/tabs/tabs.d.ts +22 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +91 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/textarea/textarea.d.ts +47 -0
- package/dist/textarea/textarea.d.ts.map +1 -0
- package/dist/textarea/textarea.js +121 -0
- package/dist/textarea/textarea.js.map +1 -0
- package/dist/tooltip/tooltip.d.ts +48 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -0
- package/dist/tooltip/tooltip.js +116 -0
- package/dist/tooltip/tooltip.js.map +1 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/chevron.d.ts +34 -0
- package/dist/utils/chevron.d.ts.map +1 -0
- package/dist/utils/chevron.js +38 -0
- package/dist/utils/chevron.js.map +1 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/label.d.ts +3 -0
- package/dist/utils/label.d.ts.map +1 -0
- package/dist/utils/label.js +24 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/utils/list-styles.d.ts +8 -0
- package/dist/utils/list-styles.d.ts.map +1 -0
- package/dist/utils/list-styles.js +43 -0
- package/dist/utils/list-styles.js.map +1 -0
- package/dist/utils/match-width-to-reference.d.ts +24 -0
- package/dist/utils/match-width-to-reference.d.ts.map +1 -0
- package/dist/utils/match-width-to-reference.js +30 -0
- package/dist/utils/match-width-to-reference.js.map +1 -0
- package/dist/utils/syncKbdHighlightIdx.d.ts +23 -0
- package/dist/utils/syncKbdHighlightIdx.d.ts.map +1 -0
- package/dist/utils/syncKbdHighlightIdx.js +41 -0
- package/dist/utils/syncKbdHighlightIdx.js.map +1 -0
- package/dist/utils/use-infinite-loader.d.ts +32 -0
- package/dist/utils/use-infinite-loader.d.ts.map +1 -0
- package/dist/utils/use-infinite-loader.js +119 -0
- package/dist/utils/use-infinite-loader.js.map +1 -0
- package/dist/utils/use-on-click-outside.d.ts +3 -0
- package/dist/utils/use-on-click-outside.d.ts.map +1 -0
- package/dist/utils/use-on-click-outside.js +36 -0
- package/dist/utils/use-on-click-outside.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { InteractiveComponentProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Compute what step should be used for the given domain difference
|
|
4
|
+
*
|
|
5
|
+
* @param difference difference
|
|
6
|
+
*/
|
|
7
|
+
export declare function computeStep(difference: number): number;
|
|
8
|
+
export interface BaseSliderProps<T> extends InteractiveComponentProps<Array<number>> {
|
|
9
|
+
/** An optional flag to disable the input alternative switch render, its false by default */
|
|
10
|
+
disableInputAlternative?: boolean;
|
|
11
|
+
/** The domain defines the range of possible values that the slider can take */
|
|
12
|
+
domain: [number, number];
|
|
13
|
+
/** The getValueLabel can be used to map a numeric value to something else when displayed in the UI */
|
|
14
|
+
getValueLabel?: (value: number) => T;
|
|
15
|
+
/** An optional onChange handler that will be called when the current value of any handle changes */
|
|
16
|
+
onChange?: (values: Array<T>) => void | Promise<void>;
|
|
17
|
+
/** The step size for changes in the slider */
|
|
18
|
+
step?: number;
|
|
19
|
+
/**
|
|
20
|
+
* An optional parameter to control the number of ticks, alternatively an array can be passed to specify a specific
|
|
21
|
+
* set of ticks to display
|
|
22
|
+
*/
|
|
23
|
+
ticks?: Array<number> | number;
|
|
24
|
+
/** An array of track labels that will be shown above the tracks */
|
|
25
|
+
trackLabels?: Array<string>;
|
|
26
|
+
/** Whether a track should be drawn from the right most handle to the end of the rail */
|
|
27
|
+
trackToEnd?: boolean;
|
|
28
|
+
/** Whether a track should be drawn from the left most handle to the start of the rail */
|
|
29
|
+
trackToStart?: boolean;
|
|
30
|
+
/** The starting values for the handles, the number of values === the number of handles created */
|
|
31
|
+
values?: Array<number>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A simple numeric slider, essentially the same as BaseSlider
|
|
35
|
+
*
|
|
36
|
+
* @param props - the component props
|
|
37
|
+
*/
|
|
38
|
+
export declare function Slider(props: BaseSliderProps<number>): JSX.Element;
|
|
39
|
+
export interface CategoricalSliderProps extends Omit<BaseSliderProps<string>, 'domain' | 'initialValue' | 'disableInputAlternative'> {
|
|
40
|
+
/** The set of string values to have as options on the slider */
|
|
41
|
+
domain: Array<string>;
|
|
42
|
+
/** the initialValue of the slider */
|
|
43
|
+
initialValue?: Array<string>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The Categorical slider component accepts an array of string values to use on the slider, e.g.
|
|
47
|
+
*
|
|
48
|
+
* domain = ['low', 'med', 'high']
|
|
49
|
+
*
|
|
50
|
+
* @param {BaseSliderProps<string>} props - the component props
|
|
51
|
+
*/
|
|
52
|
+
export declare function CategoricalSlider(props: CategoricalSliderProps): JSX.Element;
|
|
53
|
+
//# sourceMappingURL=slider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/slider/slider.tsx"],"names":[],"mappings":"AA0BA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAGrD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAYtD;AAgJD,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChF,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,+EAA+E;IAC/E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,sGAAsG;IACtG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC;IACrC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/B,mEAAmE;IACnE,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,wFAAwF;IACxF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yFAAyF;IACzF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kGAAkG;IAClG,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC1B;AAuOD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAQlE;AAED,MAAM,WAAW,sBACb,SAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,yBAAyB,CAAC;IAC5F,gEAAgE;IAChE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,qCAAqC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAe5E"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import isEqual from 'lodash/isEqual';
|
|
19
|
+
import round from 'lodash/round';
|
|
20
|
+
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
21
|
+
import { Handles, Slider as RCSlider, Rail, Ticks, Tracks } from 'react-compound-slider';
|
|
22
|
+
import styled from '@darajs/styled-components';
|
|
23
|
+
import { SwapHorizontal } from '@darajs/ui-icons';
|
|
24
|
+
import { useDeepCompare } from '@darajs/ui-utils';
|
|
25
|
+
import Tooltip from '../tooltip/tooltip';
|
|
26
|
+
import SliderInputs from './slider-inputs';
|
|
27
|
+
/**
|
|
28
|
+
* Compute what step should be used for the given domain difference
|
|
29
|
+
*
|
|
30
|
+
* @param difference difference
|
|
31
|
+
*/
|
|
32
|
+
export function computeStep(difference) {
|
|
33
|
+
const log = Math.floor(Math.log10(difference));
|
|
34
|
+
const step = Math.pow(10, Math.floor(log)) / 10;
|
|
35
|
+
// If the step is a decimal, round it to the correct number of digits
|
|
36
|
+
// to prevent floating-point errors
|
|
37
|
+
if (log < 0) {
|
|
38
|
+
const precisionString = step.toFixed(Math.abs(log) + 1);
|
|
39
|
+
return parseFloat(precisionString);
|
|
40
|
+
}
|
|
41
|
+
return step;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Map a value to its closest step.
|
|
45
|
+
*
|
|
46
|
+
* @param value value to map
|
|
47
|
+
* @param step current step
|
|
48
|
+
*/
|
|
49
|
+
function mapToClosestStep(value, step) {
|
|
50
|
+
// this has to be rounded as otherwise we could get floating point errors
|
|
51
|
+
const stepsNumber = parseFloat((value / step).toFixed(1));
|
|
52
|
+
const mappedRaw = Math.floor(stepsNumber) * step;
|
|
53
|
+
const fractionDigits = Math.abs(Math.floor(Math.log10(step)));
|
|
54
|
+
return parseFloat(mappedRaw.toFixed(fractionDigits));
|
|
55
|
+
}
|
|
56
|
+
const SliderWrapper = styled.div `
|
|
57
|
+
display: flex;
|
|
58
|
+
width: 100%;
|
|
59
|
+
`;
|
|
60
|
+
const SliderInner = styled.div `
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
display: flex;
|
|
63
|
+
width: 100%;
|
|
64
|
+
`;
|
|
65
|
+
const StyledSlider = styled(RCSlider) `
|
|
66
|
+
position: relative;
|
|
67
|
+
|
|
68
|
+
display: inline-flex;
|
|
69
|
+
flex-direction: column;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
|
|
72
|
+
width: 100%;
|
|
73
|
+
height: 3rem;
|
|
74
|
+
margin: 0 1rem;
|
|
75
|
+
`;
|
|
76
|
+
const SliderRail = styled.div `
|
|
77
|
+
cursor: pointer;
|
|
78
|
+
|
|
79
|
+
width: 100%;
|
|
80
|
+
height: 0.25rem;
|
|
81
|
+
padding: 0 0.3rem;
|
|
82
|
+
|
|
83
|
+
background-color: ${(props) => props.theme.colors.grey2};
|
|
84
|
+
border-radius: 0.125rem;
|
|
85
|
+
`;
|
|
86
|
+
const Handle = styled.span `
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
|
|
89
|
+
position: absolute;
|
|
90
|
+
z-index: 2;
|
|
91
|
+
|
|
92
|
+
width: 1rem;
|
|
93
|
+
height: 1rem;
|
|
94
|
+
margin-top: ${(props) => (props.hasTicks ? '-0.5rem' : '0')};
|
|
95
|
+
margin-left: -0.6rem;
|
|
96
|
+
|
|
97
|
+
background-color: ${(props) => props.theme.colors.primary};
|
|
98
|
+
border-radius: 50%;
|
|
99
|
+
`;
|
|
100
|
+
const Track = styled.span `
|
|
101
|
+
position: absolute;
|
|
102
|
+
|
|
103
|
+
height: 0.25rem;
|
|
104
|
+
margin-top: ${(props) => (props.hasTicks ? '-0.5rem' : '0')};
|
|
105
|
+
|
|
106
|
+
background-color: ${(props) => props.theme.colors.primary};
|
|
107
|
+
border-radius: 0.125rem;
|
|
108
|
+
`;
|
|
109
|
+
const TrackLabel = styled.span `
|
|
110
|
+
position: absolute;
|
|
111
|
+
z-index: 1;
|
|
112
|
+
top: -0.3rem;
|
|
113
|
+
color: ${(props) => props.theme.colors.grey6};
|
|
114
|
+
`;
|
|
115
|
+
const LabelInner = styled.span `
|
|
116
|
+
margin-left: -50%;
|
|
117
|
+
line-height: 1.5rem;
|
|
118
|
+
`;
|
|
119
|
+
const SliderTicks = styled.div `
|
|
120
|
+
position: relative;
|
|
121
|
+
margin-top: 0.5rem;
|
|
122
|
+
`;
|
|
123
|
+
const Tick = styled.span `
|
|
124
|
+
position: absolute;
|
|
125
|
+
font-size: 0.875rem;
|
|
126
|
+
color: ${(props) => props.theme.colors.grey6};
|
|
127
|
+
|
|
128
|
+
&${(props) => (props.showLine ? '' : ':not(:first-child):not(:last-child)')}::before {
|
|
129
|
+
content: '';
|
|
130
|
+
|
|
131
|
+
position: absolute;
|
|
132
|
+
z-index: 1;
|
|
133
|
+
left: 50%;
|
|
134
|
+
|
|
135
|
+
display: block;
|
|
136
|
+
|
|
137
|
+
width: 0.125rem;
|
|
138
|
+
height: 0.125rem;
|
|
139
|
+
margin-top: -0.685rem;
|
|
140
|
+
|
|
141
|
+
background-color: ${(props) => props.theme.colors.grey3};
|
|
142
|
+
border-radius: 50%;
|
|
143
|
+
}
|
|
144
|
+
`;
|
|
145
|
+
const SwapButtonWrapper = styled.div `
|
|
146
|
+
display: flex;
|
|
147
|
+
height: fit-content;
|
|
148
|
+
margin-top: 0.3rem;
|
|
149
|
+
`;
|
|
150
|
+
/**
|
|
151
|
+
* Helper to get the transformation for the tick labels, has the affect to tuck in the start and end labels so they
|
|
152
|
+
* don't get cut off
|
|
153
|
+
*
|
|
154
|
+
* @param idx the idx of the tick
|
|
155
|
+
* @param length the length of the tick array
|
|
156
|
+
*/
|
|
157
|
+
function getTickTransform(idx, length) {
|
|
158
|
+
if (idx === 0) {
|
|
159
|
+
return 'translateX(-0.7rem)';
|
|
160
|
+
}
|
|
161
|
+
return idx === length - 1 ? 'translateX(-100%) translateX(0.7rem)' : 'translateX(-50%)';
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The BaseSlider component forms the basis for the other sliders. It wraps the thirdparty react-compound-slider library
|
|
165
|
+
* and adds a simple UI to the component, with support for multiple handle sliders. It accepts a domain property that
|
|
166
|
+
* defines the range of the slider and can be further tweaked by passing the step and ticks parameters which adjust the
|
|
167
|
+
* step size and control the display of ticks respectively.
|
|
168
|
+
*
|
|
169
|
+
* The number of handles is controlled by the number of values passed to the values array. A single value will create a
|
|
170
|
+
* single handle and two will create 2, etc... The trackToStart and trackToEnd properties can be used to define whether
|
|
171
|
+
* the tracks to the left and right most handles are filled to the end or not. By default trackToStart is true.
|
|
172
|
+
*
|
|
173
|
+
* @param {BaseSliderProps} props - the props for the component
|
|
174
|
+
*/
|
|
175
|
+
function BaseSlider({ domain, getValueLabel, initialValue, onChange, step, style, ticks = 5, trackLabels, trackToStart = true, trackToEnd = false, disableInputAlternative = false, values, className, }) {
|
|
176
|
+
// If step isn't set then pick a reasonable one
|
|
177
|
+
const adjustedStep = useMemo(() => {
|
|
178
|
+
if (step) {
|
|
179
|
+
return step;
|
|
180
|
+
}
|
|
181
|
+
return computeStep(domain[1] - domain[0]);
|
|
182
|
+
}, [domain, step]);
|
|
183
|
+
const [sliderValues, setSliderValues] = useState((values === null || values === void 0 ? void 0 : values.map((v) => mapToClosestStep(v, adjustedStep))) ||
|
|
184
|
+
(initialValue === null || initialValue === void 0 ? void 0 : initialValue.map((v) => mapToClosestStep(v, adjustedStep))) || [domain[0]]);
|
|
185
|
+
const currSliderValues = useRef(sliderValues);
|
|
186
|
+
currSliderValues.current = sliderValues;
|
|
187
|
+
const isFirstRender = useRef(true);
|
|
188
|
+
useEffect(() => {
|
|
189
|
+
if (values !== undefined) {
|
|
190
|
+
const mappedValues = values.map((v) => mapToClosestStep(v, adjustedStep));
|
|
191
|
+
if (!isEqual(mappedValues, currSliderValues.current)) {
|
|
192
|
+
setSliderValues(mappedValues);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}, [adjustedStep, values]);
|
|
196
|
+
const [showInputs, setShowInputs] = useState(false);
|
|
197
|
+
const precision = useMemo(() => (Math.floor(adjustedStep) === adjustedStep ? 0 : adjustedStep.toString().split('.')[1].length || 0), [adjustedStep]);
|
|
198
|
+
// Get the error message for inputs when value is out of domain range
|
|
199
|
+
const getErrorMsg = useCallback((value, index) => {
|
|
200
|
+
if (Number.isNaN(value)) {
|
|
201
|
+
return 'Value should not be left blank';
|
|
202
|
+
}
|
|
203
|
+
if (value < domain[0] || value > domain[1]) {
|
|
204
|
+
return `Value out of allowed range of ${domain[0]} - ${domain[1]}`;
|
|
205
|
+
}
|
|
206
|
+
if ((index > 0 && value < sliderValues[index - 1]) ||
|
|
207
|
+
(index < sliderValues.length - 1 && value > sliderValues[index + 1])) {
|
|
208
|
+
return 'Values have to be in ascending order';
|
|
209
|
+
}
|
|
210
|
+
return '';
|
|
211
|
+
}, [domain, sliderValues]);
|
|
212
|
+
// Validate values are in order and in range
|
|
213
|
+
const validateValues = useCallback((value) => {
|
|
214
|
+
for (let index = 0; index < value.length; index++) {
|
|
215
|
+
if (getErrorMsg(value[index], index) !== '') {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return true;
|
|
220
|
+
}, [getErrorMsg]);
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
if (isFirstRender.current) {
|
|
223
|
+
isFirstRender.current = false;
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (validateValues(sliderValues)) {
|
|
227
|
+
const formattedValues = sliderValues.map(getValueLabel);
|
|
228
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(formattedValues);
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
232
|
+
useDeepCompare([sliderValues]));
|
|
233
|
+
const onSliderChange = useCallback((value) => {
|
|
234
|
+
setSliderValues(value.map((val) => parseFloat(val.toFixed(precision))));
|
|
235
|
+
}, [precision]);
|
|
236
|
+
const tickProps = typeof ticks === 'number' ? { count: ticks } : { values: ticks };
|
|
237
|
+
return (_jsxs(SliderWrapper, { className: className, children: [_jsx(SliderInner, { children: showInputs ?
|
|
238
|
+
_jsx(SliderInputs, { domain: domain, getErrorMsg: getErrorMsg, setSliderValues: setSliderValues, sliderValues: sliderValues })
|
|
239
|
+
: _jsxs(StyledSlider, { domain: domain, onChange: onSliderChange, rootStyle: style, step: adjustedStep, values: sliderValues, children: [_jsx(Rail, { children: ({ getRailProps }) => _jsx(SliderRail, Object.assign({}, getRailProps(), { "data-testid": "rail" })) }), _jsx(Handles, { children: ({ handles, getHandleProps }) => (_jsx(_Fragment, { children: handles.map((handle, idx) => (_jsx(Tooltip, { content: getValueLabel(handle.value), hideOnClick: false, interactive: true, placement: "top", children: _jsx(Handle, Object.assign({}, getHandleProps(handle.id), { "data-testid": `handle-${idx}`, hasTicks: !!ticks, style: { left: `${handle.percent}%` } })) }, handle.id))) })) }), _jsx(Tracks, { left: trackToStart, right: trackToEnd, children: ({ tracks, getTrackProps }) => (_jsx(_Fragment, { children: tracks.map(({ id, source, target }, idx) => (_jsxs(Fragment, { children: [_jsx(Track, Object.assign({ hasTicks: !!ticks }, getTrackProps(), { "data-testid": `track-${idx}`, style: {
|
|
240
|
+
left: `${source.percent}%`,
|
|
241
|
+
width: `${target.percent - source.percent}%`,
|
|
242
|
+
} }), id), trackLabels && trackLabels.length > 0 && (_jsx(TrackLabel, { "data-testid": `track-label-${idx}`, style: {
|
|
243
|
+
display: target.percent - source.percent === 0 ? 'none' : 'flex',
|
|
244
|
+
left: `${(target.percent - source.percent) / 2 + source.percent}%`,
|
|
245
|
+
}, children: _jsx(LabelInner, { children: trackLabels[idx] }) }, `label_${id}`))] }, id))) })) }), ticks && (_jsx(Ticks, Object.assign({}, tickProps, { children: ({ ticks: sliderTicks }) => (_jsx(SliderTicks, { children: sliderTicks.map((tick, idx) => (_jsx(Tick, { "data-testid": `tick-${idx}`, showLine: tick.value !== domain[0] && tick.value !== domain[1], style: {
|
|
246
|
+
left: `${tick.percent}%`,
|
|
247
|
+
transform: getTickTransform(idx, sliderTicks.length),
|
|
248
|
+
}, children: getValueLabel(tick.value) }, tick.id))) })) })))] }) }), !disableInputAlternative && sliderValues && (_jsx(Tooltip, { content: showInputs ? 'Use Slider?' : 'Use Input Alternative?', placement: "top", children: _jsx(SwapButtonWrapper, { children: _jsx(SwapHorizontal, { asButton: true, onClick: () => setShowInputs(!showInputs), size: "2x" }) }) }))] }));
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* A simple numeric slider, essentially the same as BaseSlider
|
|
252
|
+
*
|
|
253
|
+
* @param props - the component props
|
|
254
|
+
*/
|
|
255
|
+
export function Slider(props) {
|
|
256
|
+
return (_jsx(BaseSlider, Object.assign({ disableInputAlternative: props.disableInputAlternative }, props, { getValueLabel: (val) => round(val, 4) })));
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* The Categorical slider component accepts an array of string values to use on the slider, e.g.
|
|
260
|
+
*
|
|
261
|
+
* domain = ['low', 'med', 'high']
|
|
262
|
+
*
|
|
263
|
+
* @param {BaseSliderProps<string>} props - the component props
|
|
264
|
+
*/
|
|
265
|
+
export function CategoricalSlider(props) {
|
|
266
|
+
var _a;
|
|
267
|
+
const initialValue = ((_a = props.initialValue) === null || _a === void 0 ? void 0 : _a.map((val) => props.domain.indexOf(val))) || [0];
|
|
268
|
+
return (_jsx(BaseSlider, Object.assign({}, props, { domain: [0, props.domain.length - 1],
|
|
269
|
+
initialValue,
|
|
270
|
+
step: 1,
|
|
271
|
+
ticks: Array.from(Array(props.domain.length).keys()), getValueLabel: (val) => props.domain[val] })));
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.js","sourceRoot":"","sources":["../../src/slider/slider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SpinnerProps {
|
|
2
|
+
/** Standard class prop */
|
|
3
|
+
className?: string;
|
|
4
|
+
color?: string;
|
|
5
|
+
showText?: boolean;
|
|
6
|
+
size?: string;
|
|
7
|
+
/** style prop */
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
/** custom text to show in place of Loading */
|
|
10
|
+
text?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A simple spinner component, that can be used to denote something as loading
|
|
14
|
+
*
|
|
15
|
+
* @param props any prop that could be passed to a div can be passed here
|
|
16
|
+
*/
|
|
17
|
+
declare function Spinner(props: SpinnerProps): JSX.Element;
|
|
18
|
+
export default Spinner;
|
|
19
|
+
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/spinner/spinner.tsx"],"names":[],"mappings":"AAiJA,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAcjD;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import styled from '@darajs/styled-components';
|
|
19
|
+
const Wrapper = styled.div `
|
|
20
|
+
display: flex;
|
|
21
|
+
gap: 1rem;
|
|
22
|
+
align-items: center;
|
|
23
|
+
justify-content: center;
|
|
24
|
+
|
|
25
|
+
height: 100%;
|
|
26
|
+
`;
|
|
27
|
+
const LoadingText = styled.span `
|
|
28
|
+
font-size: 1.2rem;
|
|
29
|
+
color: ${(props) => { var _a; return (_a = props.color) !== null && _a !== void 0 ? _a : props.theme.colors.grey4; }};
|
|
30
|
+
`;
|
|
31
|
+
const Loader = styled.span `
|
|
32
|
+
position: relative;
|
|
33
|
+
width: ${(props) => { var _a; return (_a = props.size) !== null && _a !== void 0 ? _a : '2.5rem'; }};
|
|
34
|
+
height: ${(props) => { var _a; return (_a = props.size) !== null && _a !== void 0 ? _a : '2.5rem'; }};
|
|
35
|
+
animation: sk-chase 2.5s infinite linear both;
|
|
36
|
+
|
|
37
|
+
.sk-chase-dot {
|
|
38
|
+
position: absolute;
|
|
39
|
+
top: 0;
|
|
40
|
+
left: 0;
|
|
41
|
+
|
|
42
|
+
width: 100%;
|
|
43
|
+
height: 100%;
|
|
44
|
+
|
|
45
|
+
animation: sk-chase-dot 2s infinite ease-in-out both;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.sk-chase-dot::before {
|
|
49
|
+
content: '';
|
|
50
|
+
|
|
51
|
+
display: block;
|
|
52
|
+
|
|
53
|
+
width: 25%;
|
|
54
|
+
height: 25%;
|
|
55
|
+
|
|
56
|
+
background-color: ${(props) => { var _a; return (_a = props.color) !== null && _a !== void 0 ? _a : props.theme.colors.grey4; }};
|
|
57
|
+
border-radius: 100%;
|
|
58
|
+
|
|
59
|
+
animation: sk-chase-dot-before 2s infinite ease-in-out both;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.sk-chase-dot:nth-child(1) {
|
|
63
|
+
animation-delay: -1.1s;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.sk-chase-dot:nth-child(2) {
|
|
67
|
+
animation-delay: -1s;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.sk-chase-dot:nth-child(3) {
|
|
71
|
+
animation-delay: -0.9s;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.sk-chase-dot:nth-child(4) {
|
|
75
|
+
animation-delay: -0.8s;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.sk-chase-dot:nth-child(5) {
|
|
79
|
+
animation-delay: -0.7s;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.sk-chase-dot:nth-child(6) {
|
|
83
|
+
animation-delay: -0.6s;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.sk-chase-dot:nth-child(1)::before {
|
|
87
|
+
animation-delay: -1.1s;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.sk-chase-dot:nth-child(2)::before {
|
|
91
|
+
animation-delay: -1s;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.sk-chase-dot:nth-child(3)::before {
|
|
95
|
+
animation-delay: -0.9s;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.sk-chase-dot:nth-child(4)::before {
|
|
99
|
+
animation-delay: -0.8s;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.sk-chase-dot:nth-child(5)::before {
|
|
103
|
+
animation-delay: -0.7s;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.sk-chase-dot:nth-child(6)::before {
|
|
107
|
+
animation-delay: -0.6s;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@keyframes sk-chase {
|
|
111
|
+
100% {
|
|
112
|
+
transform: rotate(360deg);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@keyframes sk-chase-dot {
|
|
117
|
+
80%,
|
|
118
|
+
100% {
|
|
119
|
+
transform: rotate(360deg);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@keyframes sk-chase-dot-before {
|
|
124
|
+
50% {
|
|
125
|
+
transform: scale(0.4);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
100%,
|
|
129
|
+
0% {
|
|
130
|
+
transform: scale(1);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`;
|
|
134
|
+
/**
|
|
135
|
+
* A simple spinner component, that can be used to denote something as loading
|
|
136
|
+
*
|
|
137
|
+
* @param props any prop that could be passed to a div can be passed here
|
|
138
|
+
*/
|
|
139
|
+
function Spinner(props) {
|
|
140
|
+
var _a;
|
|
141
|
+
return (_jsxs(Wrapper, { className: props.className, style: props.style, children: [_jsxs(Loader, { color: props.color, size: props.size, children: [_jsx("div", { className: "sk-chase-dot" }), _jsx("div", { className: "sk-chase-dot" }), _jsx("div", { className: "sk-chase-dot" }), _jsx("div", { className: "sk-chase-dot" }), _jsx("div", { className: "sk-chase-dot" }), _jsx("div", { className: "sk-chase-dot" })] }), (props.showText || props.text) && _jsx(LoadingText, { color: props.color, children: (_a = props.text) !== null && _a !== void 0 ? _a : 'LOADING' })] }));
|
|
142
|
+
}
|
|
143
|
+
export default Spinner;
|
|
144
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/spinner/spinner.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOzB,CAAC;AAMF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAkB;;aAEpC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAA;CAC9D,CAAC;AAOF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAa;;aAE1B,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,IAAI,mCAAI,QAAQ,CAAA,EAAA;cAChC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,IAAI,mCAAI,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;4BAsBnB,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E7E,CAAC;AAiBF;;;;GAIG;AACH,SAAS,OAAO,CAAC,KAAmB;;IAChC,OAAO,CACH,MAAC,OAAO,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,aACnD,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,aACxC,cAAK,SAAS,EAAC,cAAc,GAAG,EAChC,cAAK,SAAS,EAAC,cAAc,GAAG,EAChC,cAAK,SAAS,EAAC,cAAc,GAAG,EAChC,cAAK,SAAS,EAAC,cAAc,GAAG,EAChC,cAAK,SAAS,EAAC,cAAc,GAAG,EAChC,cAAK,SAAS,EAAC,cAAc,GAAG,IAC3B,EACR,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,SAAS,GAAe,IACrG,CACb,CAAC;AACN,CAAC;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sun-icon.d.ts","sourceRoot":"","sources":["../../src/switch/sun-icon.tsx"],"names":[],"mappings":"AAkBA,iBAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CA4C1B;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { useTheme } from '@darajs/styled-components';
|
|
19
|
+
function Sun() {
|
|
20
|
+
const theme = useTheme();
|
|
21
|
+
return (_jsx("div", { style: { display: 'flex', height: '1rem', width: '1rem' }, children: _jsxs("svg", { fill: "none", viewBox: "0 0 200 200", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M138 100C138 120.987 120.987 138 100 138C79.0132 138 62 120.987 62 100C62 79.0132 79.0132 62 100 62C120.987 62 138 79.0132 138 100Z", fill: theme.colors.background }), _jsx("path", { d: "M87 13C87 5.8203 92.8203 0 100 0C107.18 0 113 5.8203 113 13V31C113 38.1797 107.18 44 100 44C92.8203 44 87 38.1797 87 31V13Z", fill: theme.colors.background }), _jsx("path", { d: "M87 169C87 161.82 92.8203 156 100 156C107.18 156 113 161.82 113 169V187C113 194.18 107.18 200 100 200C92.8203 200 87 194.18 87 187V169Z", fill: theme.colors.background }), _jsx("path", { d: "M169 113C161.82 113 156 107.18 156 100C156 92.8203 161.82 87 169 87H187C194.18 87 200 92.8203 200 100C200 107.18 194.18 113 187 113H169Z", fill: theme.colors.background }), _jsx("path", { d: "M13 113C5.8203 113 0 107.18 0 100C0 92.8203 5.8203 87 13 87H31C38.1797 87 44 92.8203 44 100C44 107.18 38.1797 113 31 113H13Z", fill: theme.colors.background }), _jsx("path", { d: "M28.1924 46.5772C23.1156 41.5003 23.1156 33.2692 28.1924 28.1924C33.2692 23.1156 41.5003 23.1156 46.5772 28.1924L59.3051 40.9203C64.3819 45.9971 64.3819 54.2283 59.3051 59.3051C54.2283 64.3819 45.9971 64.3819 40.9203 59.3051L28.1924 46.5772Z", fill: theme.colors.background }), _jsx("path", { d: "M159.579 59.3051C154.502 64.3819 146.271 64.3819 141.194 59.3051C136.118 54.2283 136.118 45.9972 141.194 40.9203L153.922 28.1924C158.999 23.1156 167.23 23.1156 172.307 28.1924C177.384 33.2692 177.384 41.5004 172.307 46.5772L159.579 59.3051Z", fill: theme.colors.background }), _jsx("path", { d: "M141.192 159.577C136.116 154.5 136.116 146.269 141.192 141.192C146.269 136.116 154.5 136.116 159.577 141.192L172.305 153.92C177.382 158.997 177.382 167.228 172.305 172.305C167.228 177.382 158.997 177.382 153.92 172.305L141.192 159.577Z", fill: theme.colors.background }), _jsx("path", { d: "M40.9209 141.192C45.9977 136.116 54.2289 136.116 59.3057 141.192C64.3825 146.269 64.3825 154.5 59.3057 159.577L46.5777 172.305C41.5009 177.382 33.2698 177.382 28.193 172.305C23.1162 167.228 23.1162 158.997 28.193 153.92L40.9209 141.192Z", fill: theme.colors.background })] }) }));
|
|
22
|
+
}
|
|
23
|
+
export default Sun;
|
|
24
|
+
//# sourceMappingURL=sun-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sun-icon.js","sourceRoot":"","sources":["../../src/switch/sun-icon.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,SAAS,GAAG;IACR,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,CACH,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAC1D,eAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,KAAK,EAAC,4BAA4B,aACrE,eACI,CAAC,EAAC,qIAAqI,EACvI,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,6HAA6H,EAC/H,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,yIAAyI,EAC3I,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,0IAA0I,EAC5I,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,8HAA8H,EAChI,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,mPAAmP,EACrP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,kPAAkP,EACpP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,6OAA6O,EAC/O,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,EACF,eACI,CAAC,EAAC,8OAA8O,EAChP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,GAC/B,IACA,GACJ,CACT,CAAC;AACN,CAAC;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { InteractiveComponentProps } from '../types';
|
|
2
|
+
interface SwitchLabel {
|
|
3
|
+
off: React.ReactNode;
|
|
4
|
+
on: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface SwitchProps extends InteractiveComponentProps<boolean> {
|
|
7
|
+
/** An optional prop object with on and off properties that map to alternate labels for those states */
|
|
8
|
+
labels?: SwitchLabel;
|
|
9
|
+
/** A boolean defining whether to show lightdark switch */
|
|
10
|
+
lightDark?: boolean;
|
|
11
|
+
/** An optional onChange handler that will be called when the switch it toggled */
|
|
12
|
+
onChange?: (enabled: boolean) => void | Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
15
|
+
export default _default;
|
|
16
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/switch/switch.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAiDrD,UAAU,WAAW;IACjB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,yBAAyB,CAAC,OAAO,CAAC;IACnE,uGAAuG;IACvG,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;;AA2DD,wBAAkC"}
|