@progress/kendo-themes-html 6.3.1-dev.0 → 6.4.0-dev.0
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/dist/bottom-nav/bottom-nav-item.js +234 -0
- package/dist/bottom-nav/bottom-nav-item.js.map +7 -0
- package/dist/bottom-nav/bottom-nav.spec.js +122 -0
- package/dist/bottom-nav/bottom-nav.spec.js.map +7 -0
- package/dist/bottom-nav/tests/bottom-nav-colors.js +269 -358
- package/dist/bottom-nav/tests/bottom-nav-colors.js.map +4 -4
- package/dist/bottom-nav/tests/bottom-nav-items.js +168 -53
- package/dist/bottom-nav/tests/bottom-nav-items.js.map +4 -4
- package/dist/bottom-nav/tests/bottom-nav-rtl.js +153 -50
- package/dist/bottom-nav/tests/bottom-nav-rtl.js.map +4 -4
- package/dist/bottom-nav/tests/bottom-nav.js +167 -76
- package/dist/bottom-nav/tests/bottom-nav.js.map +4 -4
- package/dist/breadcrumb/breadcrumb-container.js +76 -0
- package/dist/breadcrumb/breadcrumb-container.js.map +7 -0
- package/dist/breadcrumb/breadcrumb-input-container.js +65 -0
- package/dist/breadcrumb/breadcrumb-input-container.js.map +7 -0
- package/dist/breadcrumb/breadcrumb-item-text.js +70 -0
- package/dist/breadcrumb/breadcrumb-item-text.js.map +7 -0
- package/dist/breadcrumb/breadcrumb-item.js +75 -0
- package/dist/breadcrumb/breadcrumb-item.js.map +7 -0
- package/dist/breadcrumb/breadcrumb-link.js +132 -0
- package/dist/breadcrumb/breadcrumb-link.js.map +7 -0
- package/dist/breadcrumb/breadcrumb-root-item-container.js +65 -0
- package/dist/breadcrumb/breadcrumb-root-item-container.js.map +7 -0
- package/dist/breadcrumb/breadcrumb.spec.js +125 -0
- package/dist/breadcrumb/breadcrumb.spec.js.map +7 -0
- package/dist/breadcrumb/tests/breadcrumb-rtl.js +349 -153
- package/dist/breadcrumb/tests/breadcrumb-rtl.js.map +4 -4
- package/dist/breadcrumb/tests/breadcrumb.js +349 -153
- package/dist/breadcrumb/tests/breadcrumb.js.map +4 -4
- package/dist/coloreditor/color-editor.spec.js +1586 -0
- package/dist/coloreditor/color-editor.spec.js.map +7 -0
- package/dist/coloreditor/tests/coloreditor-focused-colorgradient.js +821 -176
- package/dist/coloreditor/tests/coloreditor-focused-colorgradient.js.map +4 -4
- package/dist/coloreditor/tests/coloreditor-rtl.js +727 -265
- package/dist/coloreditor/tests/coloreditor-rtl.js.map +4 -4
- package/dist/coloreditor/tests/coloreditor-states.js +821 -176
- package/dist/coloreditor/tests/coloreditor-states.js.map +4 -4
- package/dist/coloreditor/tests/coloreditor-views.js +727 -265
- package/dist/coloreditor/tests/coloreditor-views.js.map +4 -4
- package/dist/coloreditor/tests/coloreditor.js +821 -176
- package/dist/coloreditor/tests/coloreditor.js.map +4 -4
- package/dist/colorgradient/color-contrast.js +199 -0
- package/dist/colorgradient/color-contrast.js.map +7 -0
- package/dist/colorgradient/color-gradient.spec.js +1246 -0
- package/dist/colorgradient/color-gradient.spec.js.map +7 -0
- package/dist/colorgradient/color-input.js +1029 -0
- package/dist/colorgradient/color-input.js.map +7 -0
- package/dist/colorgradient/tests/colorgradient-contrast.js +532 -155
- package/dist/colorgradient/tests/colorgradient-contrast.js.map +4 -4
- package/dist/colorgradient/tests/colorgradient-draghandle.js +536 -202
- package/dist/colorgradient/tests/colorgradient-draghandle.js.map +4 -4
- package/dist/colorgradient/tests/colorgradient-modes.js +433 -260
- package/dist/colorgradient/tests/colorgradient-modes.js.map +4 -4
- package/dist/colorgradient/tests/colorgradient-rtl.js +532 -155
- package/dist/colorgradient/tests/colorgradient-rtl.js.map +4 -4
- package/dist/colorgradient/tests/colorgradient-states.js +536 -132
- package/dist/colorgradient/tests/colorgradient-states.js.map +4 -4
- package/dist/colorgradient/tests/colorgradient.js +532 -132
- package/dist/colorgradient/tests/colorgradient.js.map +4 -4
- package/dist/colorpalette/colorpalette.spec.js +1 -1
- package/dist/colorpalette/colorpalette.spec.js.map +2 -2
- package/dist/colorpalette/tests/colorpalette-states.js +1 -1
- package/dist/colorpalette/tests/colorpalette-states.js.map +2 -2
- package/dist/colorpalette/tests/colorpalette-variants.js +1 -1
- package/dist/colorpalette/tests/colorpalette-variants.js.map +2 -2
- package/dist/colorpalette/tests/colorpalette.js +1 -1
- package/dist/colorpalette/tests/colorpalette.js.map +2 -2
- package/dist/colorpicker/tests/colorpicker-dropdown.js +757 -185
- package/dist/colorpicker/tests/colorpicker-dropdown.js.map +4 -4
- package/dist/editor/tests/editor-table-wizard.js +1984 -0
- package/dist/editor/tests/editor-table-wizard.js.map +7 -0
- package/dist/expansion-panel/expansion-panel.spec.js +253 -0
- package/dist/expansion-panel/expansion-panel.spec.js.map +7 -0
- package/dist/expansion-panel/tests/expansion-panel-rtl.js +100 -83
- package/dist/expansion-panel/tests/expansion-panel-rtl.js.map +4 -4
- package/dist/expansion-panel/tests/expansion-panel.js +100 -83
- package/dist/expansion-panel/tests/expansion-panel.js.map +4 -4
- package/dist/filemanager/tests/filemanager-contextmenu.js +492 -340
- package/dist/filemanager/tests/filemanager-contextmenu.js.map +4 -4
- package/dist/filemanager/tests/filemanager-drag-hint.js +468 -316
- package/dist/filemanager/tests/filemanager-drag-hint.js.map +4 -4
- package/dist/filemanager/tests/filemanager-gridview.js +533 -381
- package/dist/filemanager/tests/filemanager-gridview.js.map +4 -4
- package/dist/filemanager/tests/filemanager-listview.js +487 -335
- package/dist/filemanager/tests/filemanager-listview.js.map +4 -4
- package/dist/filemanager/tests/filemanager-preview.js +586 -434
- package/dist/filemanager/tests/filemanager-preview.js.map +4 -4
- package/dist/grid/tests/grid-column-menu-rtl.js +15 -15
- package/dist/grid/tests/grid-column-menu-rtl.js.map +2 -2
- package/dist/grid/tests/grid-column-menu.js +15 -15
- package/dist/grid/tests/grid-column-menu.js.map +2 -2
- package/dist/index.js +2131 -1244
- package/dist/index.js.map +4 -4
- package/dist/multiselecttree/multiselecttree.spec.js +1003 -0
- package/dist/multiselecttree/multiselecttree.spec.js.map +7 -0
- package/dist/multiselecttree/tests/multiselecttree-flat.js +1208 -0
- package/dist/multiselecttree/tests/multiselecttree-flat.js.map +7 -0
- package/dist/{editor/tests/editor-table-wizard-accessibility.js → multiselecttree/tests/multiselecttree-opened.js} +646 -645
- package/dist/multiselecttree/tests/multiselecttree-opened.js.map +7 -0
- package/dist/multiselecttree/tests/multiselecttree-outline.js +1208 -0
- package/dist/multiselecttree/tests/multiselecttree-outline.js.map +7 -0
- package/dist/multiselecttree/tests/multiselecttree-size.js +1107 -0
- package/dist/multiselecttree/tests/multiselecttree-size.js.map +7 -0
- package/dist/multiselecttree/tests/multiselecttree.js +1194 -0
- package/dist/multiselecttree/tests/multiselecttree.js.map +7 -0
- package/dist/pivotgrid/tests/pivotgrid-column-menus.js +8 -8
- package/dist/pivotgrid/tests/pivotgrid-column-menus.js.map +2 -2
- package/dist/scheduler/tests/scheduler-adaptive-agenda.js +6 -4
- package/dist/scheduler/tests/scheduler-adaptive-agenda.js.map +2 -2
- package/dist/scheduler/tests/scheduler-adaptive-day-resource-group.js +6 -4
- package/dist/scheduler/tests/scheduler-adaptive-day-resource-group.js.map +2 -2
- package/dist/scheduler/tests/scheduler-adaptive-day.js +6 -4
- package/dist/scheduler/tests/scheduler-adaptive-day.js.map +2 -2
- package/dist/scheduler/tests/scheduler-adaptive-month.js +6 -4
- package/dist/scheduler/tests/scheduler-adaptive-month.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-agenda-rtl.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-agenda-rtl.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-agenda.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-agenda.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-day-rtl.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-day-rtl.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-month-rtl.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-month-rtl.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-month.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-month.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular-rtl.js +8 -11
- package/dist/scheduler/tests/scheduler-angular-rtl.js.map +2 -2
- package/dist/scheduler/tests/scheduler-angular.js +8 -11
- package/dist/scheduler/tests/scheduler-angular.js.map +2 -2
- package/dist/scheduler/tests/scheduler-flex-layout.js +7 -10
- package/dist/scheduler/tests/scheduler-flex-layout.js.map +2 -2
- package/dist/scheduler/tests/scheduler-jquery-agenda.js +7 -10
- package/dist/scheduler/tests/scheduler-jquery-agenda.js.map +2 -2
- package/dist/scheduler/tests/scheduler-jquery-month.js +7 -10
- package/dist/scheduler/tests/scheduler-jquery-month.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-agenda.js +7 -10
- package/dist/scheduler/tests/scheduler-react-agenda.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-day.js +7 -10
- package/dist/scheduler/tests/scheduler-react-day.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-month.js +7 -10
- package/dist/scheduler/tests/scheduler-react-month.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-timeline-multi.js +7 -10
- package/dist/scheduler/tests/scheduler-react-timeline-multi.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-timeline.js +14 -20
- package/dist/scheduler/tests/scheduler-react-timeline.js.map +2 -2
- package/dist/scheduler/tests/scheduler-react-week.js +7 -10
- package/dist/scheduler/tests/scheduler-react-week.js.map +2 -2
- package/dist/scheduler/tests/scheduler-year.js +6 -9
- package/dist/scheduler/tests/scheduler-year.js.map +2 -2
- package/dist/scheduler/tests/scheduler.js +13 -19
- package/dist/scheduler/tests/scheduler.js.map +2 -2
- package/dist/slider/slider-tick.js +48 -0
- package/dist/slider/slider-tick.js.map +7 -0
- package/dist/slider/slider.spec.js +411 -0
- package/dist/slider/slider.spec.js.map +7 -0
- package/dist/slider/tests/slider-css-vars.js +300 -268
- package/dist/slider/tests/slider-css-vars.js.map +4 -4
- package/dist/slider/tests/slider-tick-absolute-position.js +155 -36
- package/dist/slider/tests/slider-tick-absolute-position.js.map +4 -4
- package/dist/slider/tests/slider.js +235 -209
- package/dist/slider/tests/slider.js.map +4 -4
- package/dist/spreadsheet/tests/spreadsheet-filter-menu.js +2 -2
- package/dist/spreadsheet/tests/spreadsheet-filter-menu.js.map +2 -2
- package/package.json +2 -2
- package/src/bottom-nav/bottom-nav-item.tsx +62 -0
- package/src/bottom-nav/bottom-nav.spec.tsx +76 -0
- package/src/bottom-nav/index.ts +2 -0
- package/src/bottom-nav/tests/bottom-nav-colors.tsx +109 -325
- package/src/bottom-nav/tests/bottom-nav-items.tsx +12 -22
- package/src/bottom-nav/tests/bottom-nav-rtl.tsx +13 -37
- package/src/bottom-nav/tests/bottom-nav.tsx +29 -77
- package/src/breadcrumb/breadcrumb-container.tsx +36 -0
- package/src/breadcrumb/breadcrumb-input-container.tsx +22 -0
- package/src/breadcrumb/breadcrumb-item-text.tsx +32 -0
- package/src/breadcrumb/breadcrumb-item.tsx +34 -0
- package/src/breadcrumb/breadcrumb-link.tsx +55 -0
- package/src/breadcrumb/breadcrumb-root-item-container.tsx +22 -0
- package/src/breadcrumb/breadcrumb.spec.tsx +55 -0
- package/src/breadcrumb/index.ts +7 -0
- package/src/breadcrumb/tests/breadcrumb-rtl.tsx +275 -231
- package/src/breadcrumb/tests/breadcrumb.tsx +274 -231
- package/src/coloreditor/color-editor.spec.tsx +93 -0
- package/src/coloreditor/index.ts +1 -0
- package/src/coloreditor/tests/coloreditor-focused-colorgradient.tsx +2 -76
- package/src/coloreditor/tests/coloreditor-rtl.tsx +3 -107
- package/src/coloreditor/tests/coloreditor-states.tsx +2 -77
- package/src/coloreditor/tests/coloreditor-views.tsx +3 -107
- package/src/coloreditor/tests/coloreditor.tsx +2 -77
- package/src/colorgradient/color-contrast.tsx +44 -0
- package/src/colorgradient/color-gradient.spec.tsx +102 -0
- package/src/colorgradient/color-input.tsx +123 -0
- package/src/colorgradient/index.ts +4 -0
- package/src/colorgradient/tests/colorgradient-contrast.tsx +2 -83
- package/src/colorgradient/tests/colorgradient-draghandle.tsx +4 -146
- package/src/colorgradient/tests/colorgradient-modes.tsx +6 -214
- package/src/colorgradient/tests/colorgradient-rtl.tsx +2 -74
- package/src/colorgradient/tests/colorgradient-states.tsx +14 -51
- package/src/colorgradient/tests/colorgradient.tsx +2 -55
- package/src/colorpalette/colorpalette.spec.tsx +5 -5
- package/src/colorpicker/tests/colorpicker-dropdown.tsx +7 -184
- package/src/editor/tests/editor-table-wizard.tsx +280 -0
- package/src/expansion-panel/expansion-panel.spec.tsx +86 -0
- package/src/expansion-panel/index.ts +1 -0
- package/src/expansion-panel/tests/expansion-panel-rtl.tsx +48 -111
- package/src/expansion-panel/tests/expansion-panel.tsx +49 -111
- package/src/filemanager/tests/filemanager-contextmenu.tsx +9 -8
- package/src/filemanager/tests/filemanager-drag-hint.tsx +9 -8
- package/src/filemanager/tests/filemanager-gridview.tsx +17 -16
- package/src/filemanager/tests/filemanager-listview.tsx +17 -16
- package/src/filemanager/tests/filemanager-preview.tsx +25 -24
- package/src/grid/tests/grid-column-menu-rtl.tsx +45 -15
- package/src/grid/tests/grid-column-menu.tsx +45 -15
- package/src/index.ts +7 -4
- package/src/multiselecttree/index.ts +1 -0
- package/src/multiselecttree/multiselecttree.spec.tsx +150 -0
- package/src/multiselecttree/tests/multiselecttree-flat.tsx +179 -0
- package/src/multiselecttree/tests/multiselecttree-opened.tsx +119 -0
- package/src/multiselecttree/tests/multiselecttree-outline.tsx +179 -0
- package/src/multiselecttree/tests/multiselecttree-size.tsx +54 -0
- package/src/multiselecttree/tests/multiselecttree.tsx +179 -0
- package/src/pivotgrid/tests/pivotgrid-column-menus.tsx +24 -8
- package/src/scheduler/tests/scheduler-adaptive-agenda.tsx +13 -14
- package/src/scheduler/tests/scheduler-adaptive-day-resource-group.tsx +13 -14
- package/src/scheduler/tests/scheduler-adaptive-day.tsx +13 -14
- package/src/scheduler/tests/scheduler-adaptive-month.tsx +13 -14
- package/src/scheduler/tests/scheduler-angular-agenda-rtl.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular-agenda.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular-day-rtl.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular-month-rtl.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular-month.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular-rtl.tsx +13 -17
- package/src/scheduler/tests/scheduler-angular.tsx +13 -17
- package/src/scheduler/tests/scheduler-flex-layout.tsx +10 -14
- package/src/scheduler/tests/scheduler-jquery-agenda.tsx +10 -14
- package/src/scheduler/tests/scheduler-jquery-month.tsx +10 -14
- package/src/scheduler/tests/scheduler-react-agenda.tsx +10 -14
- package/src/scheduler/tests/scheduler-react-day.tsx +10 -14
- package/src/scheduler/tests/scheduler-react-month.tsx +10 -14
- package/src/scheduler/tests/scheduler-react-timeline-multi.tsx +10 -14
- package/src/scheduler/tests/scheduler-react-timeline.tsx +19 -28
- package/src/scheduler/tests/scheduler-react-week.tsx +10 -14
- package/src/scheduler/tests/scheduler-year.tsx +9 -13
- package/src/scheduler/tests/scheduler.tsx +20 -27
- package/src/slider/index.ts +2 -0
- package/src/slider/slider-tick.tsx +52 -0
- package/src/slider/slider.spec.tsx +120 -0
- package/src/slider/tests/slider-css-vars.tsx +185 -349
- package/src/slider/tests/slider-tick-absolute-position.tsx +40 -64
- package/src/slider/tests/slider.tsx +118 -262
- package/src/spreadsheet/tests/spreadsheet-filter-menu.tsx +6 -2
- package/dist/editor/tests/editor-table-wizard-accessibility.js.map +0 -7
- package/src/editor/tests/editor-table-wizard-accessibility.tsx +0 -69
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { classNames } from '../utils';
|
|
2
|
+
import { Icon } from '../icon';
|
|
3
|
+
|
|
4
|
+
const COLOR_CONTRAST_CLASSNAME = 'k-colorgradient-color-contrast';
|
|
5
|
+
|
|
6
|
+
const states = [];
|
|
7
|
+
|
|
8
|
+
const options = {};
|
|
9
|
+
|
|
10
|
+
const defaultProps = {};
|
|
11
|
+
|
|
12
|
+
export const ColorContrast = (
|
|
13
|
+
) => (
|
|
14
|
+
<div className={classNames(COLOR_CONTRAST_CLASSNAME, 'k-vbox')}>
|
|
15
|
+
<div className="k-contrast-ratio">
|
|
16
|
+
<span className="k-contrast-ratio-text">Contrast ratio: 7.1</span>
|
|
17
|
+
<span className="k-contrast-validation !k-text-success">
|
|
18
|
+
<Icon name="check" />
|
|
19
|
+
<Icon name="check" />
|
|
20
|
+
</span>
|
|
21
|
+
</div>
|
|
22
|
+
<div>
|
|
23
|
+
<span>AA: 4.5</span>
|
|
24
|
+
<span className="k-contrast-validation !k-text-success">
|
|
25
|
+
Pass
|
|
26
|
+
<Icon name="check" />
|
|
27
|
+
</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div>
|
|
30
|
+
<span>AAA: 7.0</span>
|
|
31
|
+
<span className="k-contrast-validation !k-text-error">
|
|
32
|
+
Fail
|
|
33
|
+
<Icon name="x" />
|
|
34
|
+
</span>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
ColorContrast.states = states;
|
|
40
|
+
ColorContrast.options = options;
|
|
41
|
+
ColorContrast.className = COLOR_CONTRAST_CLASSNAME;
|
|
42
|
+
ColorContrast.defaultProps = defaultProps;
|
|
43
|
+
|
|
44
|
+
export default ColorContrast;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { classNames, stateClassNames, States } from '../utils';
|
|
2
|
+
import { Slider } from '../slider';
|
|
3
|
+
import { ColorInput } from './color-input';
|
|
4
|
+
import { ColorContrast } from './color-contrast';
|
|
5
|
+
|
|
6
|
+
const COLOR_GRADIENT_CLASSNAME = 'k-colorgradient';
|
|
7
|
+
|
|
8
|
+
const states = [
|
|
9
|
+
States.hover,
|
|
10
|
+
States.focus,
|
|
11
|
+
States.readonly,
|
|
12
|
+
States.disabled,
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const options = {};
|
|
16
|
+
|
|
17
|
+
export type KendoColorGradientProps = {
|
|
18
|
+
mode: 'rgba' | 'rgb' | 'hsva' | 'hsv' | 'hex'
|
|
19
|
+
dir?: 'ltr' | 'rtl';
|
|
20
|
+
contrast?: boolean;
|
|
21
|
+
hoverHandle?: boolean;
|
|
22
|
+
focusHandle?: boolean;
|
|
23
|
+
gradientStyle?: React.CSSProperties;
|
|
24
|
+
dragHandleStyle?: React.CSSProperties;
|
|
25
|
+
alphaStyle?: React.CSSProperties;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type KendoColorGradientState = { [K in (typeof states)[number]]?: boolean };
|
|
29
|
+
|
|
30
|
+
const defaultProps = {
|
|
31
|
+
mode: 'rgba',
|
|
32
|
+
readonly: false,
|
|
33
|
+
disabled: false,
|
|
34
|
+
contrast: false,
|
|
35
|
+
gradientStyle: { background: "rgb(255, 0, 0 )" },
|
|
36
|
+
dragHandleStyle: { top: "50px", left: "73px" },
|
|
37
|
+
alphaStyle: { background: "linear-gradient(to top, transparent, rgb(255, 0, 0))" }
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const ColorGradient = (
|
|
41
|
+
props: KendoColorGradientProps &
|
|
42
|
+
KendoColorGradientState &
|
|
43
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
44
|
+
) => {
|
|
45
|
+
const {
|
|
46
|
+
mode = defaultProps.mode,
|
|
47
|
+
readonly = defaultProps.readonly,
|
|
48
|
+
disabled = defaultProps.disabled,
|
|
49
|
+
dir,
|
|
50
|
+
contrast = defaultProps.contrast,
|
|
51
|
+
hover,
|
|
52
|
+
focus,
|
|
53
|
+
hoverHandle,
|
|
54
|
+
focusHandle,
|
|
55
|
+
gradientStyle = defaultProps.gradientStyle,
|
|
56
|
+
dragHandleStyle = defaultProps.dragHandleStyle,
|
|
57
|
+
alphaStyle = defaultProps.alphaStyle,
|
|
58
|
+
} = props;
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
<div className={classNames(
|
|
62
|
+
props.className,
|
|
63
|
+
COLOR_GRADIENT_CLASSNAME,
|
|
64
|
+
stateClassNames(COLOR_GRADIENT_CLASSNAME, {
|
|
65
|
+
hover,
|
|
66
|
+
focus,
|
|
67
|
+
readonly,
|
|
68
|
+
disabled
|
|
69
|
+
})
|
|
70
|
+
)} dir={dir}>
|
|
71
|
+
<div className="k-colorgradient-canvas k-hstack">
|
|
72
|
+
<div className="k-hsv-rectangle" style={gradientStyle}>
|
|
73
|
+
<div className="k-hsv-gradient">
|
|
74
|
+
<div className={classNames(
|
|
75
|
+
'k-hsv-draghandle',
|
|
76
|
+
'k-draghandle',
|
|
77
|
+
{
|
|
78
|
+
'k-hover': hoverHandle,
|
|
79
|
+
'k-focus': focusHandle
|
|
80
|
+
}
|
|
81
|
+
)} style={dragHandleStyle} ></div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div className="k-hsv-controls k-hstack">
|
|
85
|
+
<Slider type="gradient" orientation="vertical" className="k-hue-slider" hover={hoverHandle} focus={focusHandle} />
|
|
86
|
+
{
|
|
87
|
+
mode !== 'rgb' && mode !== 'hsv' && <Slider type="gradient" orientation="vertical" className="k-alpha-slider" hover={hoverHandle} focus={focusHandle} trackStyle={alphaStyle}/>
|
|
88
|
+
}
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
<ColorInput mode={props.mode} />
|
|
92
|
+
{ contrast && <ColorContrast /> }
|
|
93
|
+
</div>
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
ColorGradient.states = states;
|
|
98
|
+
ColorGradient.options = options;
|
|
99
|
+
ColorGradient.className = COLOR_GRADIENT_CLASSNAME;
|
|
100
|
+
ColorGradient.defaultProps = defaultProps;
|
|
101
|
+
|
|
102
|
+
export default ColorGradient;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { classNames } from '../utils';
|
|
2
|
+
import { Button } from '../button';
|
|
3
|
+
import { NumericTextbox } from '../numerictextbox';
|
|
4
|
+
import { Textbox } from '../textbox';
|
|
5
|
+
|
|
6
|
+
const COLOR_INPUT_CLASSNAME = 'k-colorgradient-inputs';
|
|
7
|
+
|
|
8
|
+
const states = [];
|
|
9
|
+
|
|
10
|
+
const options = {};
|
|
11
|
+
|
|
12
|
+
export type KendoColorInputOptions = {
|
|
13
|
+
mode: 'rgba' | 'rgb' | 'hsva' | 'hsv' | 'hex'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const defaultProps = {
|
|
17
|
+
mode: 'rgba'
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const ColorInput = (
|
|
21
|
+
props: KendoColorInputOptions &
|
|
22
|
+
React.HTMLAttributes<HTMLDivElement>
|
|
23
|
+
|
|
24
|
+
) => {
|
|
25
|
+
const {
|
|
26
|
+
mode = defaultProps.mode,
|
|
27
|
+
} = props;
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<div className={classNames(COLOR_INPUT_CLASSNAME, 'k-hstack')}>
|
|
31
|
+
<div className="k-vstack">
|
|
32
|
+
<Button fillMode="flat" icon="arrows-kpi" className="k-cologradient-toggle-mode" />
|
|
33
|
+
</div>
|
|
34
|
+
{ mode === 'rgba' &&
|
|
35
|
+
<>
|
|
36
|
+
<div className="k-vstack">
|
|
37
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
38
|
+
<label className="k-colorgradient-input-label">R</label>
|
|
39
|
+
</div>
|
|
40
|
+
<div className="k-vstack">
|
|
41
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
42
|
+
<label className="k-colorgradient-input-label">G</label>
|
|
43
|
+
</div>
|
|
44
|
+
<div className="k-vstack">
|
|
45
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
46
|
+
<label className="k-colorgradient-input-label">B</label>
|
|
47
|
+
</div>
|
|
48
|
+
<div className="k-vstack">
|
|
49
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
50
|
+
<label className="k-colorgradient-input-label">A</label>
|
|
51
|
+
</div>
|
|
52
|
+
</>
|
|
53
|
+
}
|
|
54
|
+
{ mode === 'rgb' &&
|
|
55
|
+
<>
|
|
56
|
+
<div className="k-vstack">
|
|
57
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
58
|
+
<label className="k-colorgradient-input-label">R</label>
|
|
59
|
+
</div>
|
|
60
|
+
<div className="k-vstack">
|
|
61
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
62
|
+
<label className="k-colorgradient-input-label">G</label>
|
|
63
|
+
</div>
|
|
64
|
+
<div className="k-vstack">
|
|
65
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
66
|
+
<label className="k-colorgradient-input-label">B</label>
|
|
67
|
+
</div>
|
|
68
|
+
</>
|
|
69
|
+
}
|
|
70
|
+
{ mode === 'hsva' &&
|
|
71
|
+
<>
|
|
72
|
+
<div className="k-vstack">
|
|
73
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
74
|
+
<label className="k-colorgradient-input-label">H</label>
|
|
75
|
+
</div>
|
|
76
|
+
<div className="k-vstack">
|
|
77
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
78
|
+
<label className="k-colorgradient-input-label">S</label>
|
|
79
|
+
</div>
|
|
80
|
+
<div className="k-vstack">
|
|
81
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
82
|
+
<label className="k-colorgradient-input-label">V</label>
|
|
83
|
+
</div>
|
|
84
|
+
<div className="k-vstack">
|
|
85
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
86
|
+
<label className="k-colorgradient-input-label">A</label>
|
|
87
|
+
</div>
|
|
88
|
+
</>
|
|
89
|
+
}
|
|
90
|
+
{ mode === 'hsv' &&
|
|
91
|
+
<>
|
|
92
|
+
<div className="k-vstack">
|
|
93
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
94
|
+
<label className="k-colorgradient-input-label">H</label>
|
|
95
|
+
</div>
|
|
96
|
+
<div className="k-vstack">
|
|
97
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
98
|
+
<label className="k-colorgradient-input-label">S</label>
|
|
99
|
+
</div>
|
|
100
|
+
<div className="k-vstack">
|
|
101
|
+
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
102
|
+
<label className="k-colorgradient-input-label">V</label>
|
|
103
|
+
</div>
|
|
104
|
+
</>
|
|
105
|
+
}
|
|
106
|
+
{ mode === 'hex' &&
|
|
107
|
+
<>
|
|
108
|
+
<div className="k-vstack k-flex-1">
|
|
109
|
+
<Textbox showClearButton={false} value="#b88484AA" className="k-hex-value" />
|
|
110
|
+
<label className="k-colorgradient-input-label">HEX</label>
|
|
111
|
+
</div>
|
|
112
|
+
</>
|
|
113
|
+
}
|
|
114
|
+
</div>
|
|
115
|
+
);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
ColorInput.states = states;
|
|
119
|
+
ColorInput.options = options;
|
|
120
|
+
ColorInput.className = COLOR_INPUT_CLASSNAME;
|
|
121
|
+
ColorInput.defaultProps = defaultProps;
|
|
122
|
+
|
|
123
|
+
export default ColorInput;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import ReactDOM from 'react-dom/client';
|
|
2
|
-
import {
|
|
3
|
-
import { Icon } from '../../icon';
|
|
4
|
-
import { NumericTextbox } from '../../numerictextbox';
|
|
2
|
+
import { ColorGradient } from '../../colorgradient';
|
|
5
3
|
|
|
6
4
|
const root = ReactDOM.createRoot(
|
|
7
5
|
document.getElementById('app') as HTMLElement
|
|
@@ -25,86 +23,7 @@ root.render(
|
|
|
25
23
|
|
|
26
24
|
<span>Contrast Tool</span>
|
|
27
25
|
<section>
|
|
28
|
-
<
|
|
29
|
-
<div className="k-colorgradient-canvas k-hstack">
|
|
30
|
-
<div className="k-hsv-rectangle" style={{ background: "rgb(255, 0, 0)" }}>
|
|
31
|
-
<div className="k-hsv-gradient">
|
|
32
|
-
<div className="k-hsv-draghandle k-draghandle" style={{ top: '50px', left: "73px" }}></div>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
<div className="k-hsv-controls k-hstack">
|
|
36
|
-
|
|
37
|
-
<div className="k-slider k-slider-vertical k-hue-slider k-colorgradient-slider">
|
|
38
|
-
<div className="k-slider-track-wrap">
|
|
39
|
-
<div className="k-slider-track">
|
|
40
|
-
<div className="k-slider-selection"></div>
|
|
41
|
-
<a className="k-draghandle k-draghandle-end"></a>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
<div className="k-slider k-slider-vertical k-alpha-slider k-colorgradient-slider">
|
|
47
|
-
<div className="k-slider-track-wrap">
|
|
48
|
-
<div className="k-slider-track" style={{ background: "linear-gradient(to top, transparent, rgb(255, 0, 0))" }}>
|
|
49
|
-
<div className="k-slider-selection"></div>
|
|
50
|
-
<a className="k-draghandle k-draghandle-end"></a>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<div className="k-colorgradient-inputs k-hstack">
|
|
58
|
-
<div className="k-vstack">
|
|
59
|
-
<Button fillMode="flat" icon="arrows-kpi" className="k-colorgradient-toggle-mode"></Button>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
<div className="k-vstack">
|
|
63
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
64
|
-
<label className="k-colorgradient-input-label">R</label>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<div className="k-vstack">
|
|
68
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
69
|
-
<label className="k-colorgradient-input-label">G</label>
|
|
70
|
-
</div>
|
|
71
|
-
|
|
72
|
-
<div className="k-vstack">
|
|
73
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
74
|
-
<label className="k-colorgradient-input-label">B</label>
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<div className="k-vstack">
|
|
78
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
79
|
-
<label className="k-colorgradient-input-label">A</label>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
|
|
83
|
-
<div className="k-colorgradient-color-contrast k-vbox">
|
|
84
|
-
<div className="k-contrast-ratio">
|
|
85
|
-
<span className="k-contrast-ratio-text">Contrast ratio: 7.1</span>
|
|
86
|
-
<span className="k-contrast-validation !k-text-success">
|
|
87
|
-
<Icon name="check" />
|
|
88
|
-
<Icon name="check" />
|
|
89
|
-
</span>
|
|
90
|
-
</div>
|
|
91
|
-
<div>
|
|
92
|
-
<span>AA: 4.5</span>
|
|
93
|
-
<span className="k-contrast-validation !k-text-success">
|
|
94
|
-
Pass
|
|
95
|
-
<Icon name="check" />
|
|
96
|
-
</span>
|
|
97
|
-
</div>
|
|
98
|
-
<div>
|
|
99
|
-
<span>AAA: 7.0</span>
|
|
100
|
-
<span className="k-contrast-validation !k-text-error">
|
|
101
|
-
Fail
|
|
102
|
-
<Icon name="x" />
|
|
103
|
-
</span>
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
|
|
26
|
+
<ColorGradient contrast />
|
|
108
27
|
</section>
|
|
109
28
|
|
|
110
29
|
</div>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import ReactDOM from 'react-dom/client';
|
|
2
|
-
import {
|
|
3
|
-
import { NumericTextbox } from '../../numerictextbox';
|
|
2
|
+
import { ColorGradient } from '../../colorgradient';
|
|
4
3
|
|
|
5
4
|
const root = ReactDOM.createRoot(
|
|
6
5
|
document.getElementById('app') as HTMLElement
|
|
@@ -27,156 +26,15 @@ root.render(
|
|
|
27
26
|
<span>DragHandle Hover</span>
|
|
28
27
|
|
|
29
28
|
<section>
|
|
30
|
-
<
|
|
31
|
-
<div className="k-colorgradient-canvas k-hstack">
|
|
32
|
-
<div className="k-hsv-rectangle" style={{ background: "rgb(255, 0, 0)" }}>
|
|
33
|
-
<div className="k-hsv-gradient">
|
|
34
|
-
<div className="k-hsv-draghandle k-draghandle" style={{ top: '50px', left: "73px" }}></div>
|
|
35
|
-
</div>
|
|
36
|
-
</div>
|
|
37
|
-
<div className="k-hsv-controls k-hstack">
|
|
38
|
-
<div className="k-slider k-slider-vertical k-hue-slider k-colorgradient-slider">
|
|
39
|
-
<div className="k-slider-track-wrap">
|
|
40
|
-
<div className="k-slider-track">
|
|
41
|
-
<div className="k-slider-selection"></div>
|
|
42
|
-
<a className="k-draghandle k-draghandle-end"></a>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
<div className="k-slider k-slider-vertical k-alpha-slider k-colorgradient-slider">
|
|
47
|
-
<div className="k-slider-track-wrap">
|
|
48
|
-
<div className="k-slider-track" style={{ background: "linear-gradient(to top, transparent, rgb(255, 0, 0))" }}>
|
|
49
|
-
<div className="k-slider-selection"></div>
|
|
50
|
-
<a className="k-draghandle k-draghandle-end"></a>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
<div className="k-colorgradient-inputs k-hstack">
|
|
57
|
-
<div className="k-vstack">
|
|
58
|
-
<Button fillMode="flat" icon="arrows-kpi" className="k-colorgradient-toggle-mode"></Button>
|
|
59
|
-
</div>
|
|
60
|
-
<div className="k-vstack">
|
|
61
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
62
|
-
<label className="k-colorgradient-input-label">R</label>
|
|
63
|
-
</div>
|
|
64
|
-
<div className="k-vstack">
|
|
65
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
66
|
-
<label className="k-colorgradient-input-label">G</label>
|
|
67
|
-
</div>
|
|
68
|
-
<div className="k-vstack">
|
|
69
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
70
|
-
<label className="k-colorgradient-input-label">B</label>
|
|
71
|
-
</div>
|
|
72
|
-
<div className="k-vstack">
|
|
73
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
74
|
-
<label className="k-colorgradient-input-label">A</label>
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
29
|
+
<ColorGradient />
|
|
78
30
|
</section>
|
|
79
31
|
|
|
80
32
|
<section>
|
|
81
|
-
<
|
|
82
|
-
<div className="k-colorgradient-canvas k-hstack">
|
|
83
|
-
<div className="k-hsv-rectangle" style={{ background: "rgb(255, 0, 0)" }}>
|
|
84
|
-
<div className="k-hsv-gradient">
|
|
85
|
-
<div className="k-hsv-draghandle k-draghandle k-focus" style={{ top: '50px', left: "73px" }}></div>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
<div className="k-hsv-controls k-hstack">
|
|
89
|
-
<div className="k-slider k-slider-vertical k-hue-slider k-colorgradient-slider k-focus">
|
|
90
|
-
<div className="k-slider-track-wrap">
|
|
91
|
-
<div className="k-slider-track">
|
|
92
|
-
<div className="k-slider-selection"></div>
|
|
93
|
-
<a className="k-draghandle k-draghandle-end k-focus"></a>
|
|
94
|
-
</div>
|
|
95
|
-
</div>
|
|
96
|
-
</div>
|
|
97
|
-
<div className="k-slider k-slider-vertical k-alpha-slider k-colorgradient-slider k-focus" style={{ "--kendo-slider-end": "100" } as any }>
|
|
98
|
-
<div className="k-slider-track-wrap">
|
|
99
|
-
<div className="k-slider-track" style={{ background: "linear-gradient(to top, transparent, rgb(255, 0, 0))" }}>
|
|
100
|
-
<div className="k-slider-selection"></div>
|
|
101
|
-
<a className="k-draghandle k-draghandle-end k-focus"></a>
|
|
102
|
-
</div>
|
|
103
|
-
</div>
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div className="k-colorgradient-inputs k-hstack">
|
|
108
|
-
<div className="k-vstack">
|
|
109
|
-
<Button fillMode="flat" icon="arrows-kpi" className="k-colorgradient-toggle-mode"></Button>
|
|
110
|
-
</div>
|
|
111
|
-
<div className="k-vstack">
|
|
112
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
113
|
-
<label className="k-colorgradient-input-label">R</label>
|
|
114
|
-
</div>
|
|
115
|
-
<div className="k-vstack">
|
|
116
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
117
|
-
<label className="k-colorgradient-input-label">G</label>
|
|
118
|
-
</div>
|
|
119
|
-
<div className="k-vstack">
|
|
120
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
121
|
-
<label className="k-colorgradient-input-label">B</label>
|
|
122
|
-
</div>
|
|
123
|
-
<div className="k-vstack">
|
|
124
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
125
|
-
<label className="k-colorgradient-input-label">A</label>
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
33
|
+
<ColorGradient focusHandle />
|
|
129
34
|
</section>
|
|
130
35
|
|
|
131
36
|
<section>
|
|
132
|
-
<
|
|
133
|
-
<div className="k-colorgradient-canvas k-hstack">
|
|
134
|
-
<div className="k-hsv-rectangle" style={{ background: "rgb(255, 0, 0)" }}>
|
|
135
|
-
<div className="k-hsv-gradient">
|
|
136
|
-
<div className="k-hsv-draghandle k-draghandle k-hover" style={{ top: '50px', left: "73px" }}></div>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
<div className="k-hsv-controls k-hstack">
|
|
140
|
-
<div className="k-slider k-slider-vertical k-hue-slider k-colorgradient-slider k-hover">
|
|
141
|
-
<div className="k-slider-track-wrap">
|
|
142
|
-
<div className="k-slider-track">
|
|
143
|
-
<div className="k-slider-selection"></div>
|
|
144
|
-
<a className="k-draghandle k-draghandle-end k-hover"></a>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
<div className="k-slider k-slider-vertical k-alpha-slider k-colorgradient-slider k-hover" style={{ "--kendo-slider-end": "100" } as any }>
|
|
149
|
-
<div className="k-slider-track-wrap">
|
|
150
|
-
<div className="k-slider-track" style={{ background: "linear-gradient(to top, transparent, rgb(255, 0, 0))" }}>
|
|
151
|
-
<div className="k-slider-selection"></div>
|
|
152
|
-
<a className="k-draghandle k-draghandle-end k-hover"></a>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
<div className="k-colorgradient-inputs k-hstack">
|
|
159
|
-
<div className="k-vstack">
|
|
160
|
-
<Button fillMode="flat" icon="arrows-kpi" className="k-colorgradient-toggle-mode"></Button>
|
|
161
|
-
</div>
|
|
162
|
-
<div className="k-vstack">
|
|
163
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
164
|
-
<label className="k-colorgradient-input-label">R</label>
|
|
165
|
-
</div>
|
|
166
|
-
<div className="k-vstack">
|
|
167
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
168
|
-
<label className="k-colorgradient-input-label">G</label>
|
|
169
|
-
</div>
|
|
170
|
-
<div className="k-vstack">
|
|
171
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="132" />
|
|
172
|
-
<label className="k-colorgradient-input-label">B</label>
|
|
173
|
-
</div>
|
|
174
|
-
<div className="k-vstack">
|
|
175
|
-
<NumericTextbox showSpinButton={false} showClearButton={false} value="1.00" />
|
|
176
|
-
<label className="k-colorgradient-input-label">A</label>
|
|
177
|
-
</div>
|
|
178
|
-
</div>
|
|
179
|
-
</div>
|
|
37
|
+
<ColorGradient hoverHandle />
|
|
180
38
|
</section>
|
|
181
39
|
</div>
|
|
182
40
|
</>
|