@rolster/react-components 19.0.0 → 19.0.2

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.
Files changed (38) hide show
  1. package/dist/cjs/assets/{index-QCv-Uo8R.css → index-DEldF_Je.css} +203 -8
  2. package/dist/cjs/index.js +264 -23
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/es/assets/{index-QCv-Uo8R.css → index-DEldF_Je.css} +203 -8
  5. package/dist/es/index.js +266 -27
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/esm/components/atoms/Badge/Badge.css +4 -2
  8. package/dist/esm/components/atoms/Badge/Badge.css.map +1 -1
  9. package/dist/esm/components/organisms/FieldClock/FieldClock.css +71 -0
  10. package/dist/esm/components/organisms/FieldClock/FieldClock.css.map +1 -0
  11. package/dist/esm/components/organisms/FieldClock/FieldClock.d.ts +37 -0
  12. package/dist/esm/components/organisms/FieldClock/FieldClock.js +52 -0
  13. package/dist/esm/components/organisms/FieldClock/FieldClock.js.map +1 -0
  14. package/dist/esm/components/organisms/FieldDate/FieldDate.css +2 -2
  15. package/dist/esm/components/organisms/FieldDate/FieldDate.css.map +1 -1
  16. package/dist/esm/components/organisms/FieldDate/FieldDate.js +5 -5
  17. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  18. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.css +5 -2
  19. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.css.map +1 -1
  20. package/dist/esm/components/organisms/PickerClock/PickerClock.css +116 -0
  21. package/dist/esm/components/organisms/PickerClock/PickerClock.css.map +1 -0
  22. package/dist/esm/components/organisms/PickerClock/PickerClock.d.ts +13 -0
  23. package/dist/esm/components/organisms/PickerClock/PickerClock.js +208 -0
  24. package/dist/esm/components/organisms/PickerClock/PickerClock.js.map +1 -0
  25. package/dist/esm/components/organisms/PickerDate/PickerDate.css +3 -2
  26. package/dist/esm/components/organisms/PickerDate/PickerDate.css.map +1 -1
  27. package/dist/esm/components/organisms/PickerDate/PickerDate.js +11 -13
  28. package/dist/esm/components/organisms/PickerDate/PickerDate.js.map +1 -1
  29. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.d.ts +1 -1
  30. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js +2 -2
  31. package/dist/esm/components/organisms/PickerDateRange/PickerDateRange.js.map +1 -1
  32. package/dist/esm/index.d.ts +2 -0
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/package.json +4 -4
  36. package/dist/esm/components/molecules/PickerClock/PickerClock.d.ts +0 -1
  37. package/dist/esm/components/molecules/PickerClock/PickerClock.js +0 -5
  38. package/dist/esm/components/molecules/PickerClock/PickerClock.js.map +0 -1
@@ -1,5 +1,7 @@
1
1
  .rls-badge {
2
2
  --pvt-dimension: var(--rlc-badge-dimension, var(--rls-sizing-x12));
3
+ --pvt-font-color: var(--rls-app-color-050);
4
+ --pvt-background: var(--rls-app-color-700);
3
5
  --pvt-contrast-font-color: var(--rls-app-color-600);
4
6
  --pvt-contrast-background: var(--rls-app-color-200);
5
7
  position: relative;
@@ -26,10 +28,10 @@
26
28
  background: var(--pvt-contrast-background);
27
29
  }
28
30
  .rls-badge[rls-theme] {
31
+ --pvt-font-color: var(--rls-theme-color-050);
32
+ --pvt-background: var(--rls-theme-color-500);
29
33
  --pvt-contrast-font-color: var(--rls-theme-color-700);
30
34
  --pvt-contrast-background: var(--rls-theme-color-100);
31
- color: var(--rls-theme-color-050);
32
- background: var(--rls-theme-color-500);
33
35
  }
34
36
  .rls-badge > span {
35
37
  font-size: inherit;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../../src/components/atoms/Badge/Badge.scss"],"names":[],"mappings":"AAOA,WACE,mEACA,oDACA,oDAEA,kBACA,qBACA,WACA,+BACA,4BACA,iCACA,4DACA,sBACA,qEACA,yEACA,kBACA,oFAIA,+BACA,oCACA,6EAEA,qBACE,qCACA,0CAGF,sBACE,sDACA,sDAEA,iCACA,sCAGF,gBACE,kBACA,uBACA","file":"Badge.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../../src/components/atoms/Badge/Badge.scss"],"names":[],"mappings":"AAOA,WACE,mEACA,2CACA,2CACA,oDACA,oDAEA,kBACA,qBACA,WACA,+BACA,4BACA,iCACA,4DACA,sBACA,qEACA,yEACA,kBACA,oFAIA,+BACA,oCACA,6EAEA,qBACE,qCACA,0CAGF,sBACE,6CACA,6CACA,sDACA,sDAGF,gBACE,kBACA,uBACA","file":"Badge.css"}
@@ -0,0 +1,71 @@
1
+ .rls-field-clock {
2
+ --rlc-field-box-body-padding: var(--rls-sizing-x3) var(--rls-sizing-x4);
3
+ --pvt-font-size: var(--rlc-field-clock-font-size, var(--rls-input-font-size));
4
+ --pvt-letter-spacing: var(
5
+ --rlc-field-clock-letter-spacing,
6
+ var(--rls-input-letter-spacing)
7
+ );
8
+ --pvt-action-dimension: var(
9
+ --rlc-field-box-action-dimension,
10
+ var(--rls-sizing-x12)
11
+ );
12
+ --pvt-action-background: var(
13
+ --rlc-field-box-action-background,
14
+ var(--rls-app-color-200)
15
+ );
16
+ --pvt-control-width: calc(100% - var(--pvt-action-dimension));
17
+ position: relative;
18
+ width: 100%;
19
+ box-sizing: border-box;
20
+ }
21
+ .rls-field-clock .rls-field-box--readonly {
22
+ --pvt-control-width: 100%;
23
+ }
24
+ .rls-field-clock .rls-field-box__body {
25
+ column-gap: var(--rls-sizing-x2);
26
+ }
27
+ .rls-field-clock__control {
28
+ position: relative;
29
+ width: var(--pvt-control-width);
30
+ height: var(--rls-sizing-x12);
31
+ line-height: var(--rls-sizing-x12);
32
+ padding: 0rem;
33
+ cursor: default;
34
+ border: none;
35
+ outline: none;
36
+ background: rgba(0, 0, 0, 0);
37
+ color: var(--rls-app-color-900);
38
+ font-weight: var(--rls-font-weight-medium);
39
+ font-size: var(--pvt-font-size);
40
+ letter-spacing: var(--pvt-letter-spacing);
41
+ }
42
+ .rls-field-clock__control::placeholder {
43
+ color: var(--rls-app-color-400);
44
+ }
45
+ .rls-field-clock__control:disabled {
46
+ opacity: 0.5;
47
+ cursor: not-allowed;
48
+ }
49
+ .rls-field-clock__action {
50
+ --rlc-icon-dimension: calc(var(--pvt-action-dimension) - 2rem);
51
+ width: var(--pvt-action-dimension);
52
+ height: var(--pvt-action-dimension);
53
+ color: var(--rls-app-color-600);
54
+ padding: 0rem;
55
+ outline: none;
56
+ border-radius: var(--rlc-field-box-action-radius, var(--rls-sizing-x2));
57
+ background: var(--pvt-action-background);
58
+ }
59
+ .rls-field-clock__action:disabled {
60
+ opacity: 0.5;
61
+ background: rgba(0, 0, 0, 0);
62
+ }
63
+ .rls-field-clock__action .rls-icon {
64
+ margin: 1rem;
65
+ }
66
+ .rls-field-clock-modal {
67
+ --rlc-modal-background: transparent;
68
+ --rlc-modal-max-width: 150rem;
69
+ --rlc-picker-clock-radius: var(--rls-sizing-x4);
70
+ --rlc-picker-clock-background: var(--rls-app-color-050);
71
+ } /*# sourceMappingURL=FieldClock.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/FieldClock/FieldClock.scss"],"names":[],"mappings":"AAOA,iBACE,wEAEA,8EAEA,+FAKA,uFAKA,4FAKA,8DAEA,kBACA,WACA,sBAEA,0CACE,0BAGF,sCACE,gCAGF,0BACE,kBACA,+BACA,6BACA,kCACA,aACA,eACA,YACA,aACA,yBACA,+BACA,0CACA,+BACA,yCAEA,uCACE,+BAGF,mCACE,WACA,mBAIJ,yBACE,+DAEA,kCACA,mCACA,+BACA,aACA,aACA,uEACA,wCAEA,kCACE,WACA,yBAGF,mCACE,YAKN,uBACE,oCACA,8BACA,gDACA","file":"FieldClock.css"}
@@ -0,0 +1,37 @@
1
+ import { Time } from '@rolster/dates';
2
+ import { ReactControl } from '@rolster/react-forms';
3
+ import { ReactNode } from 'react';
4
+ import { RlsComponent } from '../../definitions';
5
+ import './FieldClock.css';
6
+ interface FieldClockProps extends RlsComponent {
7
+ disabled?: boolean;
8
+ formControl?: ReactControl<HTMLElement, Time> | ReactControl<HTMLElement, Time | undefined>;
9
+ msgErrorDisabled?: boolean;
10
+ onValue?: ((value?: Time) => void) | ((value: Time) => void);
11
+ placeholder?: string;
12
+ readOnly?: boolean;
13
+ value?: Time;
14
+ time?: Time;
15
+ }
16
+ interface FieldClockDefinedProps extends FieldClockProps {
17
+ formControl: ReactControl<HTMLElement, Time>;
18
+ value: Time;
19
+ onValue?: (value: Time) => void;
20
+ }
21
+ interface FieldClockUndefinedProps extends FieldClockProps {
22
+ formControl: ReactControl<HTMLElement, Time | undefined>;
23
+ value: undefined;
24
+ onValue?: (value?: Time) => void;
25
+ }
26
+ interface FieldClockVoidProps extends Omit<FieldClockProps, 'value'> {
27
+ formControl: ReactControl<HTMLElement, Time | undefined>;
28
+ onValue?: (value?: Time) => void;
29
+ }
30
+ interface FieldClockEmptyProps extends Omit<FieldClockProps, 'formControl' | 'value'> {
31
+ onValue?: (value?: Time) => void;
32
+ }
33
+ export declare function RlsFieldClock(props: FieldClockDefinedProps): ReactNode;
34
+ export declare function RlsFieldClock(props: FieldClockUndefinedProps): ReactNode;
35
+ export declare function RlsFieldClock(props: FieldClockVoidProps): ReactNode;
36
+ export declare function RlsFieldClock(props: FieldClockEmptyProps): ReactNode;
37
+ export {};
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PickerListenerEvent } from '@rolster/components';
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { renderClassStatus } from '../../../helpers/css';
5
+ import { RlsIcon } from '../../atoms/Icon/Icon';
6
+ import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFormError';
7
+ import { RlsModal } from '../Modal/Modal';
8
+ import { RlsPickerClock } from '../PickerClock/PickerClock';
9
+ import './FieldClock.css';
10
+ export function RlsFieldClock({ children, disabled, formControl, identifier, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, time, value: valueInitial }) {
11
+ const [value, setValue] = useState(formControl?.value ?? valueInitial);
12
+ const [modalIsVisible, setModalIsVisible] = useState(false);
13
+ const _disabled = useMemo(() => {
14
+ return formControl?.disabled || disabled;
15
+ }, [formControl?.disabled, disabled]);
16
+ const className = useMemo(() => {
17
+ return renderClassStatus('rls-field-box', {
18
+ disabled: _disabled,
19
+ readonly: readOnly
20
+ });
21
+ }, [_disabled, readOnly]);
22
+ const { icon, valueInput } = useMemo(() => {
23
+ return {
24
+ icon: value ? 'trash-2' : 'timer',
25
+ valueInput: value?.normalizeMeridiemFormat || ''
26
+ };
27
+ }, [value]);
28
+ const onClickInput = useCallback(() => {
29
+ !readOnly && setModalIsVisible(true);
30
+ }, [readOnly]);
31
+ const onChange = useCallback((value) => {
32
+ setValue(value);
33
+ onValue?.(value);
34
+ }, [onValue]);
35
+ const onClickAction = useCallback(() => {
36
+ if (value) {
37
+ formControl?.setValue(valueInitial);
38
+ formControl?.touch();
39
+ onChange(valueInitial);
40
+ }
41
+ else {
42
+ setModalIsVisible(true);
43
+ }
44
+ }, [value, formControl, valueInitial, onChange]);
45
+ const onListener = useCallback(({ event, value }) => {
46
+ event !== PickerListenerEvent.Cancel && onChange(value);
47
+ formControl?.touch();
48
+ setModalIsVisible(false);
49
+ }, [formControl, onChange]);
50
+ return (_jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [_jsxs("div", { className: className, children: [children && _jsx("span", { className: "rls-field-box__label", children: children }), _jsx("div", { className: "rls-field-box__component", children: _jsxs("div", { className: "rls-field-box__body", children: [_jsx("input", { className: "rls-field-date__control", type: "text", value: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), !readOnly && (_jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: _disabled, children: _jsx(RlsIcon, { value: icon }) }))] }) }), !msgErrorDisabled && (_jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), _jsx(RlsModal, { className: "rls-field-clock-modal", visible: modalIsVisible, rlsTheme: rlsTheme, children: _jsx(RlsPickerClock, { formControl: formControl, time: time, disabled: _disabled, onListener: onListener }) })] }));
51
+ }
52
+ //# sourceMappingURL=FieldClock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldClock.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldClock/FieldClock.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  .rls-field-date {
2
2
  --rlc-field-box-body-padding: var(--rls-sizing-x3) var(--rls-sizing-x4);
3
- --pvt-font-size: var(--rlc-datefield-font-size, var(--rls-input-font-size));
3
+ --pvt-font-size: var(--rlc-field-date-font-size, var(--rls-input-font-size));
4
4
  --pvt-letter-spacing: var(
5
- --rlc-datefield-letter-spacing,
5
+ --rlc-field-date-letter-spacing,
6
6
  var(--rls-input-letter-spacing)
7
7
  );
8
8
  --pvt-action-dimension: var(
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.scss"],"names":[],"mappings":"AAOA,gBACE,wEAEA,4EAEA,6FAKA,uFAKA,4FAKA,8DAEA,kBACA,WACA,sBAEA,yCACE,0BAGF,qCACE,gCAGF,yBACE,kBACA,+BACA,6BACA,kCACA,aACA,eACA,YACA,aACA,yBACA,+BACA,0CACA,+BACA,yCAEA,sCACE,+BAGF,kCACE,WACA,mBAIJ,wBACE,+DAEA,kCACA,mCACA,+BACA,aACA,aACA,uEACA,wCAEA,iCACE,WACA,yBAGF,kCACE,YAKN,sBACE,oCACA,8BACA,+CACA","file":"FieldDate.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.scss"],"names":[],"mappings":"AAOA,gBACE,wEAEA,6EAEA,8FAKA,uFAKA,4FAKA,8DAEA,kBACA,WACA,sBAEA,yCACE,0BAGF,qCACE,gCAGF,yBACE,kBACA,+BACA,6BACA,kCACA,aACA,eACA,YACA,aACA,yBACA,+BACA,0CACA,+BACA,yCAEA,sCACE,+BAGF,kCACE,WACA,mBAIJ,wBACE,+DAEA,kCACA,mCACA,+BACA,aACA,aACA,uEACA,wCAEA,iCACE,WACA,yBAGF,kCACE,YAKN,sBACE,oCACA,8BACA,+CACA","file":"FieldDate.css"}
@@ -9,9 +9,9 @@ import { RlsMessageFormError } from '../../molecules/MessageFormError/MessageFor
9
9
  import { RlsModal } from '../Modal/Modal';
10
10
  import { RlsPickerDate } from '../PickerDate/PickerDate';
11
11
  import './FieldDate.css';
12
- export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: _value }) {
12
+ export function RlsFieldDate({ children, date, disabled, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
13
13
  const today = useRef(new Date()); // Initial current date in component
14
- const [value, setValue] = useState(formControl?.value ?? _value);
14
+ const [value, setValue] = useState(formControl?.value ?? valueInitial);
15
15
  const [modalIsVisible, setModalIsVisible] = useState(false);
16
16
  const _disabled = useMemo(() => {
17
17
  return formControl?.disabled || disabled;
@@ -46,14 +46,14 @@ export function RlsFieldDate({ children, date, disabled, formControl, format, id
46
46
  }, [onValue]);
47
47
  const onClickAction = useCallback(() => {
48
48
  if (value) {
49
- formControl?.setValue(_value);
49
+ formControl?.setValue(valueInitial);
50
50
  formControl?.touch();
51
- onChange(_value);
51
+ onChange(valueInitial);
52
52
  }
53
53
  else {
54
54
  setModalIsVisible(true);
55
55
  }
56
- }, [value, formControl, _value, onChange]);
56
+ }, [value, formControl, valueInitial, onChange]);
57
57
  const onListener = useCallback(({ event, value }) => {
58
58
  event !== PickerListenerEvent.Cancel && onChange(value);
59
59
  formControl?.touch();
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldDate.js","sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDate/FieldDate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,mBAAmB,EACnB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAEL,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,iBAAiB,CAAC;AA4CzB,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,UAAU,EACV,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EAAE,YAAY,EACJ;IACf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,oCAAoC;IAEtE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;IACvE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,WAAW,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAC3C,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,iBAAiB,CAAC,eAAe,EAAE;YACxC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YACpC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;SAC1E,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,eAAe,CAAC;YAC5B,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO;YACjD,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,KAAY,EAAE,EAAE;QACf,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,IAAI,OAAO,CAAC,KAAa,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,EAAE,QAAQ,CAAC,YAAoB,CAAC,CAAC;YAC5C,WAAW,EAAE,KAAK,EAAE,CAAC;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAwB,EAAE,EAAE;QACzC,KAAK,KAAK,mBAAmB,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,WAAW,EAAE,KAAK,EAAE,CAAC;QACrB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,EACD,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;IAEF,OAAO,CACL,eAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,gBAAgB,eAAY,QAAQ,aACjE,eAAK,SAAS,EAAE,SAAS,aACtB,QAAQ,IAAI,eAAM,SAAS,EAAC,sBAAsB,YAAE,QAAQ,GAAQ,EAErE,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,qBAAqB,aAClC,gBACE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,IAAI,EACd,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,GACnB,EAED,CAAC,QAAQ,IAAI,CACZ,iBACE,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,SAAS,YAEnB,KAAC,OAAO,IAAC,KAAK,EAAE,IAAI,GAAI,GACjB,CACV,IACG,GACF,EAEL,CAAC,gBAAgB,IAAI,CACpB,KAAC,mBAAmB,IAClB,SAAS,EAAC,sBAAsB,EAChC,WAAW,EAAE,WAAW,GACxB,CACH,IACG,EAEN,KAAC,QAAQ,IACP,SAAS,EAAC,sBAAsB,EAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,QAAQ,YAElB,KAAC,aAAa,IACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,GACO,IACP,CACP,CAAC;AACJ,CAAC"}
@@ -1,8 +1,11 @@
1
1
  .rls-field-date-range {
2
2
  --rlc-field-box-body-padding: var(--rls-sizing-x3) var(--rls-sizing-x4);
3
- --pvt-font-size: var(--rlc-datefield-font-size, var(--rls-input-font-size));
3
+ --pvt-font-size: var(
4
+ --rlc-field-date-range-font-size,
5
+ var(--rls-input-font-size)
6
+ );
4
7
  --pvt-letter-spacing: var(
5
- --rlc-datefield-letter-spacing,
8
+ --rlc-field-date-range-letter-spacing,
6
9
  var(--rls-input-letter-spacing)
7
10
  );
8
11
  --pvt-action-dimension: var(
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDateRange/FieldDateRange.scss"],"names":[],"mappings":"AAOA,sBACE,wEAEA,4EAEA,6FAKA,uFAKA,4FAKA,8DAEA,kBACA,WACA,sBAEA,+CACE,0BAGF,+BACE,kBACA,+BACA,6BACA,kCACA,aACA,eACA,YACA,aACA,yBACA,+BACA,0CACA,+BACA,yCAEA,4CACE,+BAGF,wCACE,WACA,mBAIJ,8BACE,+DAEA,kCACA,mCACA,+BACA,aACA,aACA,uEACA,wCAEA,uCACE,WACA,yBAGF,wCACE,YAKN,4BACE,oCACA,8BACA,qDACA","file":"FieldDateRange.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/FieldDateRange/FieldDateRange.scss"],"names":[],"mappings":"AAOA,sBACE,wEAEA,qFAKA,oGAKA,uFAKA,4FAKA,8DAEA,kBACA,WACA,sBAEA,+CACE,0BAGF,+BACE,kBACA,+BACA,6BACA,kCACA,aACA,eACA,YACA,aACA,yBACA,+BACA,0CACA,+BACA,yCAEA,4CACE,+BAGF,wCACE,WACA,mBAIJ,8BACE,+DAEA,kCACA,mCACA,+BACA,aACA,aACA,uEACA,wCAEA,uCACE,WACA,yBAGF,wCACE,YAKN,4BACE,oCACA,8BACA,qDACA","file":"FieldDateRange.css"}
@@ -0,0 +1,116 @@
1
+ .rls-picker-clock {
2
+ position: relative;
3
+ display: flex;
4
+ width: 150rem;
5
+ flex-direction: column;
6
+ row-gap: var(--rls-sizing-x8);
7
+ overflow: hidden;
8
+ user-select: none;
9
+ padding: var(--rlc-picker-clock-padding, 0rem);
10
+ box-sizing: border-box;
11
+ border-radius: var(--rlc-picker-clock-radius, 0rem);
12
+ background: var(--rlc-picker-clock-background, transparent);
13
+ }
14
+ .rls-picker-clock__header {
15
+ display: flex;
16
+ column-gap: var(--rls-sizing-x8);
17
+ padding: var(--rls-sizing-x4) var(--rls-sizing-x4) 0rem var(--rls-sizing-x4);
18
+ box-sizing: border-box;
19
+ justify-content: center;
20
+ }
21
+ .rls-picker-clock__title {
22
+ display: flex;
23
+ width: auto;
24
+ column-gap: var(--rls-sizing-x2);
25
+ align-items: center;
26
+ }
27
+ .rls-picker-clock__title__value {
28
+ width: 16rem;
29
+ text-align: center;
30
+ font-size: var(--rls-heading4-font-size);
31
+ font-weight: var(--rls-font-weight-semibold);
32
+ color: var(--rls-app-color-600);
33
+ }
34
+ .rls-picker-clock__title__value--active {
35
+ color: var(--rls-theme-color-500);
36
+ }
37
+ .rls-picker-clock__title__value:hover {
38
+ color: var(--rls-app-color-900);
39
+ }
40
+ .rls-picker-clock__title__separator {
41
+ font-size: var(--rls-title-font-size);
42
+ font-weight: var(--rls-font-weight-semibold);
43
+ }
44
+ .rls-picker-clock__zone {
45
+ display: flex;
46
+ width: auto;
47
+ column-gap: var(--rls-sizing-x4);
48
+ align-items: center;
49
+ }
50
+ .rls-picker-clock__zone__value {
51
+ width: 18rem;
52
+ text-align: center;
53
+ padding: var(--rls-sizing-x1) var(--rls-sizing-x2);
54
+ border-radius: var(--rls-sizing-x2);
55
+ font-size: var(--rls-body-font-size);
56
+ font-weight: var(--rls-font-weight-semibold);
57
+ background: var(--rls-app-color-200);
58
+ }
59
+ .rls-picker-clock__zone__value--active {
60
+ background: var(--rls-theme-gradient-500);
61
+ color: var(--rls-theme-color-050);
62
+ }
63
+ .rls-picker-clock__body {
64
+ display: flex;
65
+ justify-content: center;
66
+ }
67
+ .rls-picker-clock__plate {
68
+ width: 120rem;
69
+ height: 120rem;
70
+ border-radius: 50%;
71
+ border: var(--rls-app-border-2-200);
72
+ box-sizing: border-box;
73
+ overflow: hidden;
74
+ }
75
+ .rls-picker-clock__canvas {
76
+ position: absolute;
77
+ }
78
+ .rls-picker-clock__canvas__line {
79
+ stroke: var(--rls-theme-color-500);
80
+ stroke-width: var(--rls-sizing-x1);
81
+ }
82
+ .rls-picker-clock__canvas__center {
83
+ fill: var(--rls-theme-color-500);
84
+ }
85
+ .rls-picker-clock__canvas__indicator {
86
+ fill: var(--rls-theme-color-300);
87
+ }
88
+ .rls-picker-clock__canvas__point {
89
+ fill: var(--rls-theme-color-050);
90
+ }
91
+ .rls-picker-clock__tick {
92
+ position: absolute;
93
+ width: var(--rls-sizing-x14);
94
+ height: var(--rls-sizing-x14);
95
+ line-height: var(--rls-sizing-x14);
96
+ text-align: center;
97
+ cursor: pointer;
98
+ font-size: var(--rls-paragraph-font-size);
99
+ font-weight: var(--rls-font-weight-semibold);
100
+ }
101
+ .rls-picker-clock__footer {
102
+ --rlc-button-width: 100%;
103
+ display: flex;
104
+ column-gap: var(--rls-sizing-x6);
105
+ align-items: center;
106
+ padding: var(--rls-sizing-x4) var(--rls-sizing-x8) var(--rls-sizing-x6)
107
+ var(--rls-sizing-x8);
108
+ overflow: hidden;
109
+ box-sizing: border-box;
110
+ }
111
+ .rls-picker-clock__footer--today {
112
+ display: flex;
113
+ width: var(--rls-sizing-x16);
114
+ align-items: center;
115
+ justify-content: center;
116
+ } /*# sourceMappingURL=PickerClock.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../../../../src/components/organisms/PickerClock/PickerClock.scss"],"names":[],"mappings":"AAOA,kBACE,kBACA,aACA,aACA,sBACA,6BACA,gBACA,iBACA,8CACA,sBACA,mDACA,2DAEA,0BACE,aACA,gCACA,4EACA,sBACA,uBAGF,yBACE,aACA,WACA,gCACA,mBAEA,gCACE,YACA,kBACA,wCACA,4CACA,+BAEA,wCACE,iCAGF,sCACE,+BAIJ,oCACE,qCACA,4CAIJ,wBACE,aACA,WACA,gCACA,mBAEA,+BACE,YACA,kBACA,kDACA,mCACA,oCACA,4CACA,oCAEA,uCACE,yCACA,iCAKN,wBACE,aACA,uBAGF,yBACE,aACA,cACA,kBACA,mCACA,sBACA,gBAGF,0BACE,kBAEA,gCACE,kCACA,kCAGF,kCACE,gCAGF,qCACE,gCAGF,iCACE,gCAIJ,wBACE,kBACA,4BACA,6BACA,kCACA,kBACA,eACA,yCACA,4CAGF,0BACE,yBAEA,aACA,gCACA,mBACA,4FAEA,gBACA,sBAEA,iCACE,aACA,4BACA,mBACA","file":"PickerClock.css"}
@@ -0,0 +1,13 @@
1
+ import { PickerListener } from '@rolster/components';
2
+ import { Time } from '@rolster/dates';
3
+ import { ReactControl } from '@rolster/react-forms';
4
+ import { RlsComponent } from '../../definitions';
5
+ import './PickerClock.css';
6
+ interface PickerClockProps extends RlsComponent {
7
+ disabled?: boolean;
8
+ formControl?: ReactControl<HTMLElement, Time> | ReactControl<HTMLElement, Time | undefined>;
9
+ onListener?: (listener: PickerListener<Time>) => void;
10
+ time?: Time;
11
+ }
12
+ export declare function RlsPickerClock({ formControl, onListener, rlsTheme, time }: PickerClockProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,208 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PickerListenerEvent } from '@rolster/components';
3
+ import { Time } from '@rolster/dates';
4
+ import { i18nSubscribe } from '@rolster/i18n';
5
+ import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';
6
+ import { renderClassStatus } from '../../../helpers/css';
7
+ import { reactI18n } from '../../../i18n';
8
+ import { RlsButton } from '../../atoms/Button/Button';
9
+ import { RlsButtonAction } from '../../atoms/ButtonAction/ButtonAction';
10
+ import './PickerClock.css';
11
+ function formatTime(value) {
12
+ return String(value).padStart(2, '0');
13
+ }
14
+ const CLOCK_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
15
+ const RADIUS = 48;
16
+ const DIAL_RADIUS = 60;
17
+ const TICK_RADIUS = 7;
18
+ function RlsPickerClockTick({ onValue, selectionIsHours, value }) {
19
+ const styleTick = useMemo(() => {
20
+ const radian = (value / 6) * Math.PI;
21
+ const x = Math.sin(radian) * RADIUS;
22
+ const y = Math.cos(radian) * RADIUS;
23
+ return {
24
+ left: `${DIAL_RADIUS + x - TICK_RADIUS - 1}rem`,
25
+ top: `${DIAL_RADIUS - y - TICK_RADIUS - 1}rem`
26
+ };
27
+ }, []);
28
+ const label = useMemo(() => {
29
+ if (selectionIsHours) {
30
+ return formatTime(value);
31
+ }
32
+ if (value === 12) {
33
+ return formatTime(0);
34
+ }
35
+ return formatTime(value * 5);
36
+ }, [selectionIsHours]);
37
+ const onClick = useCallback((event) => {
38
+ event.preventDefault();
39
+ onValue(value);
40
+ }, [onValue]);
41
+ return (_jsx("div", { className: "rls-picker-clock__tick", style: styleTick, onClick: onClick, children: label }));
42
+ }
43
+ export function RlsPickerClock({ formControl, onListener, rlsTheme, time }) {
44
+ const timeInitial = useMemo(() => {
45
+ return formControl?.value ?? time ?? Time.now();
46
+ }, [formControl?.value, time]);
47
+ const plateElement = useRef(null);
48
+ const lineElement = useRef(null);
49
+ const centerElement = useRef(null);
50
+ const indicatorElement = useRef(null);
51
+ const pointElement = useRef(null);
52
+ const [labels, setLabels] = useState({
53
+ timeActionCancel: reactI18n('dateActionCancel'),
54
+ timeActionSelect: reactI18n('dateActionSelect')
55
+ });
56
+ const [zoneIsPM, setZoneIsPM] = useState(timeInitial.hour >= 12);
57
+ const [hour, setHour] = useState(zoneIsPM ? timeInitial.hour - 12 : timeInitial.hour);
58
+ const [minute, setMinute] = useState(timeInitial.minute);
59
+ const [selectionIsHours, setSelectionIsHours] = useState(true);
60
+ const selectionIsActive = useRef(false);
61
+ const radianUnit = useMemo(() => {
62
+ return Math.PI / (selectionIsHours ? 6 : 30);
63
+ }, [selectionIsHours]);
64
+ const hourFormat = useMemo(() => {
65
+ return formatTime(hour === 0 ? 12 : hour);
66
+ }, [hour]);
67
+ const minuteFormat = useMemo(() => {
68
+ return formatTime(minute);
69
+ }, [minute]);
70
+ const classNameHour = useMemo(() => {
71
+ return renderClassStatus('rls-picker-clock__title__value', {
72
+ active: selectionIsHours
73
+ });
74
+ }, [selectionIsHours]);
75
+ const classNameMinute = useMemo(() => {
76
+ return renderClassStatus('rls-picker-clock__title__value', {
77
+ active: !selectionIsHours
78
+ });
79
+ }, [selectionIsHours]);
80
+ const classNameAM = useMemo(() => {
81
+ return renderClassStatus('rls-picker-clock__zone__value', {
82
+ active: !zoneIsPM
83
+ });
84
+ }, [zoneIsPM]);
85
+ const classNamePM = useMemo(() => {
86
+ return renderClassStatus('rls-picker-clock__zone__value', {
87
+ active: zoneIsPM
88
+ });
89
+ }, [zoneIsPM]);
90
+ const refreshClockHour = useEffectEvent(() => {
91
+ refreshClock(hour > 12 ? hour - 12 : hour);
92
+ });
93
+ const refreshClockMinute = useEffectEvent(() => {
94
+ refreshClock(minute);
95
+ });
96
+ useEffect(() => {
97
+ return i18nSubscribe(() => {
98
+ setLabels({
99
+ timeActionCancel: reactI18n('dateActionCancel'),
100
+ timeActionSelect: reactI18n('dateActionSelect')
101
+ });
102
+ });
103
+ }, []);
104
+ useEffect(() => {
105
+ selectionIsHours ? refreshClockHour() : refreshClockMinute();
106
+ }, [selectionIsHours]);
107
+ const refreshComponent = useCallback((clientX, clientY) => {
108
+ const rectangle = plateElement.current.getBoundingClientRect();
109
+ const centerX = rectangle.left + rectangle.width / 2;
110
+ const centerY = rectangle.top + rectangle.height / 2;
111
+ const positionX = clientX - centerX;
112
+ const positionY = clientY - centerY;
113
+ const angle = Math.atan2(-positionX, positionY) + Math.PI;
114
+ const value = Math.round(angle / radianUnit);
115
+ refreshClock(value);
116
+ selectionIsHours ? setHour(value === 0 ? 12 : value) : setMinute(value);
117
+ }, [selectionIsHours, radianUnit]);
118
+ const refreshClock = useCallback((value) => {
119
+ const angle = value * radianUnit;
120
+ const x2 = Math.sin(angle) * (RADIUS - TICK_RADIUS);
121
+ const y2 = -Math.cos(angle) * (RADIUS - TICK_RADIUS);
122
+ const cx = Math.sin(angle) * RADIUS;
123
+ const cy = -Math.cos(angle) * RADIUS;
124
+ lineElement.current.setAttribute('x2', `${x2 - 1}rem`);
125
+ lineElement.current.setAttribute('y2', `${y2 - 1}rem`);
126
+ indicatorElement.current.setAttribute('cx', `${cx - 1}rem`);
127
+ indicatorElement.current.setAttribute('cy', `${cy - 1}rem`);
128
+ pointElement.current.setAttribute('cx', `${cx - 1}rem`);
129
+ pointElement.current.setAttribute('cy', `${cy - 1}rem`);
130
+ pointElement.current.style.visibility =
131
+ selectionIsHours || value % 5 === 0 ? 'hidden' : 'visible';
132
+ }, [selectionIsHours, radianUnit]);
133
+ const onClickHour = useCallback(() => {
134
+ setSelectionIsHours(true);
135
+ }, []);
136
+ const onClickMinute = useCallback(() => {
137
+ setSelectionIsHours(false);
138
+ }, []);
139
+ const onClickAM = useCallback(() => {
140
+ setZoneIsPM(false);
141
+ }, []);
142
+ const onClickPM = useCallback(() => {
143
+ setZoneIsPM(true);
144
+ }, []);
145
+ const onActiveSelection = useCallback(() => {
146
+ selectionIsActive.current = true;
147
+ }, []);
148
+ const onMouseSelection = useCallback((event) => {
149
+ if (selectionIsActive.current) {
150
+ event.preventDefault();
151
+ refreshComponent(event.clientX, event.clientY);
152
+ }
153
+ }, [refreshComponent]);
154
+ const onTouchSelection = useCallback((event) => {
155
+ const touch = event.touches.item(0);
156
+ if (selectionIsActive.current && touch) {
157
+ refreshComponent(touch.clientX, touch.clientY);
158
+ }
159
+ }, [refreshComponent]);
160
+ const onInactiveSelection = useCallback(() => {
161
+ selectionIsActive.current = false;
162
+ }, []);
163
+ const onClickValue = useCallback((value) => {
164
+ if (selectionIsHours) {
165
+ setHour(value);
166
+ refreshClock(value);
167
+ }
168
+ else {
169
+ const minute = value === 12 ? 0 : value * 5;
170
+ setMinute(minute);
171
+ refreshClock(minute);
172
+ }
173
+ }, [selectionIsHours]);
174
+ const onCancel = useCallback(() => {
175
+ onListener?.({ event: PickerListenerEvent.Cancel });
176
+ }, [onListener]);
177
+ const onCurrentTime = useCallback(() => {
178
+ const currentTime = Time.now();
179
+ formControl?.setValue(currentTime);
180
+ setHour(currentTime.hour);
181
+ setMinute(currentTime.minute);
182
+ onListener?.({
183
+ event: PickerListenerEvent.Select,
184
+ value: currentTime
185
+ });
186
+ }, [formControl, onListener]);
187
+ const onSelect = useCallback(() => {
188
+ const hourValue = zoneIsPM
189
+ ? hour !== 12
190
+ ? hour + 12
191
+ : 12
192
+ : hour === 12
193
+ ? 0
194
+ : hour;
195
+ const timeValue = new Time(hourValue, minute);
196
+ formControl?.setValue(timeValue);
197
+ onListener?.({
198
+ event: PickerListenerEvent.Select,
199
+ value: timeValue
200
+ });
201
+ }, [formControl, hour, minute, zoneIsPM, onListener]);
202
+ return (_jsxs("div", { className: "rls-picker-clock", "rls-theme": rlsTheme, children: [_jsxs("div", { className: "rls-picker-clock__header", children: [_jsxs("div", { className: "rls-picker-clock__title", children: [_jsx("span", { className: classNameHour, onClick: onClickHour, children: hourFormat }), _jsx("span", { className: "rls-picker-clock__title__separator", children: ":" }), _jsx("span", { className: classNameMinute, onClick: onClickMinute, children: minuteFormat })] }), _jsxs("div", { className: "rls-picker-clock__zone", children: [_jsx("span", { className: classNameAM, onClick: onClickAM, children: "AM" }), _jsx("span", { className: classNamePM, onClick: onClickPM, children: "PM" })] })] }), _jsx("div", { className: "rls-picker-clock__body", children: _jsxs("div", { className: "rls-picker-clock__plate", ref: plateElement, onMouseDown: onActiveSelection, onMouseMove: onMouseSelection, onMouseUp: onInactiveSelection, onMouseLeave: onInactiveSelection, onTouchStart: onActiveSelection, onTouchMove: onTouchSelection, onTouchEnd: onInactiveSelection, children: [_jsx("div", { className: "rls-picker-clock__canvas", children: _jsx("svg", { width: "120rem", height: "120rem", children: _jsxs("g", { style: {
203
+ transform: `translate(${DIAL_RADIUS}rem, ${DIAL_RADIUS}rem)`
204
+ }, children: [_jsx("line", { ref: lineElement, className: "rls-picker-clock__canvas__line", x1: "-1", y1: "-1" }), _jsx("circle", { ref: centerElement, className: "rls-picker-clock__canvas__center", r: "4", cx: "-1", cy: "-1" }), _jsx("circle", { ref: indicatorElement, className: "rls-picker-clock__canvas__indicator", r: `${TICK_RADIUS}rem` }), _jsx("circle", { ref: pointElement, className: "rls-picker-clock__canvas__point", r: "3.5" })] }) }) }), _jsx("div", { className: "rls-picker-clock__hours", children: CLOCK_VALUES.map((value) => {
205
+ return (_jsx(RlsPickerClockTick, { value: value, selectionIsHours: selectionIsHours, onValue: onClickValue }, value));
206
+ }) })] }) }), _jsxs("div", { className: "rls-picker-clock__footer", children: [_jsx("div", { className: "rls-picker-clock__footer--cancel", children: _jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.timeActionCancel }) }), _jsx("div", { className: "rls-picker-clock__footer--today", children: _jsx(RlsButtonAction, { icon: "timer", onClick: onCurrentTime }) }), _jsx("div", { className: "rls-picker-clock__footer--ok", children: _jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.timeActionSelect }) })] })] }));
207
+ }
208
+ //# sourceMappingURL=PickerClock.js.map