@grupalia/rn-ui-kit 0.6.0 → 0.7.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.
Files changed (37) hide show
  1. package/lib/commonjs/components/BaseDateInput.js +114 -0
  2. package/lib/commonjs/components/BaseDateInput.js.map +1 -0
  3. package/lib/commonjs/components/BaseSwitch.js +50 -0
  4. package/lib/commonjs/components/BaseSwitch.js.map +1 -0
  5. package/lib/commonjs/components/FormikDateInput.js +39 -0
  6. package/lib/commonjs/components/FormikDateInput.js.map +1 -0
  7. package/lib/commonjs/components/index.js +21 -0
  8. package/lib/commonjs/components/index.js.map +1 -1
  9. package/lib/module/components/BaseDateInput.js +108 -0
  10. package/lib/module/components/BaseDateInput.js.map +1 -0
  11. package/lib/module/components/BaseSwitch.js +46 -0
  12. package/lib/module/components/BaseSwitch.js.map +1 -0
  13. package/lib/module/components/FormikDateInput.js +33 -0
  14. package/lib/module/components/FormikDateInput.js.map +1 -0
  15. package/lib/module/components/index.js +3 -0
  16. package/lib/module/components/index.js.map +1 -1
  17. package/lib/typescript/commonjs/components/BaseDateInput.d.ts +23 -0
  18. package/lib/typescript/commonjs/components/BaseDateInput.d.ts.map +1 -0
  19. package/lib/typescript/commonjs/components/BaseSwitch.d.ts +11 -0
  20. package/lib/typescript/commonjs/components/BaseSwitch.d.ts.map +1 -0
  21. package/lib/typescript/commonjs/components/FormikDateInput.d.ts +20 -0
  22. package/lib/typescript/commonjs/components/FormikDateInput.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/components/index.d.ts +3 -0
  24. package/lib/typescript/commonjs/components/index.d.ts.map +1 -1
  25. package/lib/typescript/module/components/BaseDateInput.d.ts +23 -0
  26. package/lib/typescript/module/components/BaseDateInput.d.ts.map +1 -0
  27. package/lib/typescript/module/components/BaseSwitch.d.ts +11 -0
  28. package/lib/typescript/module/components/BaseSwitch.d.ts.map +1 -0
  29. package/lib/typescript/module/components/FormikDateInput.d.ts +20 -0
  30. package/lib/typescript/module/components/FormikDateInput.d.ts.map +1 -0
  31. package/lib/typescript/module/components/index.d.ts +3 -0
  32. package/lib/typescript/module/components/index.d.ts.map +1 -1
  33. package/package.json +5 -1
  34. package/src/components/BaseDateInput.tsx +149 -0
  35. package/src/components/BaseSwitch.tsx +47 -0
  36. package/src/components/FormikDateInput.tsx +50 -0
  37. package/src/components/index.ts +3 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BaseDateInput;
7
+ var _clsx = _interopRequireDefault(require("clsx"));
8
+ var _dateFns = require("date-fns");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactNativeDatePicker = _interopRequireDefault(require("react-native-date-picker"));
11
+ var _outline = require("react-native-heroicons/outline");
12
+ var _hocComponents = require("../hoc-components");
13
+ var _BaseIcon = _interopRequireDefault(require("./BaseIcon"));
14
+ var _BaseSpinner = _interopRequireDefault(require("./BaseSpinner"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ function BaseDateInput({
19
+ value,
20
+ onChange,
21
+ label,
22
+ description,
23
+ className = '',
24
+ style = {},
25
+ disabled = false,
26
+ loading = false,
27
+ displayFormat = 'MMMM d, yyyy',
28
+ fixedHour,
29
+ fixedMinutes,
30
+ fixedSeconds,
31
+ placeholder = 'Seleccionar fecha',
32
+ error,
33
+ touched = false,
34
+ ...props
35
+ }) {
36
+ const [isFocused, setIsFocused] = (0, _react.useState)(false);
37
+ const [open, setOpen] = (0, _react.useState)(false);
38
+ const hasFixedAttribute = fixedHour !== undefined || fixedMinutes !== undefined || fixedSeconds !== undefined;
39
+ const handleSelectDate = (0, _react.useCallback)(date => {
40
+ if (hasFixedAttribute) {
41
+ const newDate = new Date(date);
42
+ if (fixedHour !== undefined) newDate.setHours(fixedHour);
43
+ if (fixedMinutes !== undefined) newDate.setMinutes(fixedMinutes);
44
+ if (fixedSeconds !== undefined) newDate.setSeconds(fixedSeconds);
45
+ onChange?.(newDate);
46
+ } else {
47
+ onChange?.(date);
48
+ }
49
+ setOpen(false);
50
+ }, [fixedHour, fixedMinutes, fixedSeconds, onChange, hasFixedAttribute]);
51
+ const formattedDate = value ? (0, _dateFns.format)(new Date(value), displayFormat) : '';
52
+ const getInitialDate = () => {
53
+ if (!value) {
54
+ const now = new Date();
55
+ if (fixedHour !== undefined) now.setHours(fixedHour);
56
+ if (fixedMinutes !== undefined) now.setMinutes(fixedMinutes);
57
+ if (fixedSeconds !== undefined) now.setSeconds(fixedSeconds);
58
+ return now;
59
+ }
60
+ const date = new Date(value);
61
+ if (fixedHour !== undefined) date.setHours(fixedHour);
62
+ if (fixedMinutes !== undefined) date.setMinutes(fixedMinutes);
63
+ if (fixedSeconds !== undefined) date.setSeconds(fixedSeconds);
64
+ return date;
65
+ };
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_hocComponents.View, {
67
+ className: (0, _clsx.default)('flex flex-col', className),
68
+ style: style,
69
+ children: [label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.Text, {
70
+ className: "mb-2 font-semibold text-secondary",
71
+ children: label
72
+ }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.Text, {
73
+ className: "mb-2 text-tertiary",
74
+ children: description
75
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_hocComponents.Pressable, {
76
+ onPress: () => {
77
+ if (!disabled) {
78
+ setOpen(true);
79
+ setIsFocused(true);
80
+ }
81
+ },
82
+ className: (0, _clsx.default)('flex flex-row items-center justify-between p-2', disabled ? 'rounded-lg bg-disabled text-disabled' : 'rounded-lg border border-primary bg-primary', error && touched && 'border-error', isFocused && 'border-brand'),
83
+ disabled: disabled,
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.View, {
85
+ className: "flex flex-row items-center",
86
+ children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseSpinner.default, {
87
+ className: "mr-2",
88
+ size: 16
89
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseIcon.default, {
90
+ icon: _outline.CalendarIcon,
91
+ size: 20,
92
+ color: "fg-tertiary",
93
+ className: "mr-2"
94
+ })
95
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.Text, {
96
+ className: (0, _clsx.default)('flex-1', formattedDate ? 'text-primary' : 'text-placeholder'),
97
+ children: formattedDate || placeholder
98
+ })]
99
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeDatePicker.default, {
100
+ ...props,
101
+ open: open,
102
+ date: getInitialDate(),
103
+ onConfirm: handleSelectDate,
104
+ onCancel: () => {
105
+ setOpen(false);
106
+ setIsFocused(false);
107
+ }
108
+ }), touched && error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.Text, {
109
+ className: "text-error-primary",
110
+ children: error
111
+ })]
112
+ });
113
+ }
114
+ //# sourceMappingURL=BaseDateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_dateFns","_react","_interopRequireWildcard","_reactNativeDatePicker","_outline","_hocComponents","_BaseIcon","_BaseSpinner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BaseDateInput","value","onChange","label","description","className","style","disabled","loading","displayFormat","fixedHour","fixedMinutes","fixedSeconds","placeholder","error","touched","props","isFocused","setIsFocused","useState","open","setOpen","hasFixedAttribute","undefined","handleSelectDate","useCallback","date","newDate","Date","setHours","setMinutes","setSeconds","formattedDate","format","getInitialDate","now","jsxs","View","clsx","children","jsx","Text","Pressable","onPress","size","icon","CalendarIcon","color","onConfirm","onCancel"],"sourceRoot":"../../../src","sources":["components/BaseDateInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _ = require("..");
9
+ var _hocComponents = require("../hoc-components");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function BaseSwitch({
12
+ value,
13
+ onValueChange,
14
+ disabled,
15
+ size = 'md',
16
+ ...props
17
+ }) {
18
+ const scaleFactor = (0, _react.useMemo)(() => {
19
+ switch (size) {
20
+ case 'xs':
21
+ return 0.5;
22
+ case 'sm':
23
+ return 0.75;
24
+ case 'lg':
25
+ return 1.25;
26
+ case 'xl':
27
+ return 1.5;
28
+ default:
29
+ return 1;
30
+ }
31
+ }, [size]);
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_hocComponents.Switch, {
33
+ style: {
34
+ transform: [{
35
+ scale: scaleFactor
36
+ }]
37
+ },
38
+ value: value,
39
+ onValueChange: onValueChange,
40
+ disabled: disabled,
41
+ trackColor: {
42
+ false: _.utilityColors['utility-gray-200'].light,
43
+ true: _.foregroundColors['fg-brand-primary'].light
44
+ },
45
+ thumbColor: _.foregroundColors['fg-white'].light,
46
+ ...props
47
+ });
48
+ }
49
+ var _default = exports.default = BaseSwitch;
50
+ //# sourceMappingURL=BaseSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_","_hocComponents","_jsxRuntime","BaseSwitch","value","onValueChange","disabled","size","props","scaleFactor","useMemo","jsx","Switch","style","transform","scale","trackColor","false","utilityColors","light","true","foregroundColors","thumbColor","_default","exports","default"],"sourceRoot":"../../../src","sources":["components/BaseSwitch.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,CAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAA2C,IAAAG,WAAA,GAAAH,OAAA;AAS3C,SAASI,UAAUA,CAAC;EAClBC,KAAK;EAAEC,aAAa;EAAEC,QAAQ;EAAEC,IAAI,GAAG,IAAI;EAAE,GAAGC;AAC3C,CAAC,EAAE;EACR,MAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,QAAQH,IAAI;MACV,KAAK,IAAI;QACP,OAAO,GAAG;MACZ,KAAK,IAAI;QACP,OAAO,IAAI;MACb,KAAK,IAAI;QACP,OAAO,IAAI;MACb,KAAK,IAAI;QACP,OAAO,GAAG;MACZ;QACE,OAAO,CAAC;IACZ;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,oBACE,IAAAL,WAAA,CAAAS,GAAA,EAACV,cAAA,CAAAW,MAAM;IACLC,KAAK,EAAE;MACLC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAEN;MAAY,CAAC;IACpC,CAAE;IACFL,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BC,QAAQ,EAAEA,QAAS;IACnBU,UAAU,EAAE;MAAEC,KAAK,EAAEC,eAAa,CAAC,kBAAkB,CAAC,CAACC,KAAK;MAAEC,IAAI,EAAEC,kBAAgB,CAAC,kBAAkB,CAAC,CAACF;IAAM,CAAE;IACjHG,UAAU,EAAED,kBAAgB,CAAC,UAAU,CAAC,CAACF,KAAM;IAAA,GAC3CX;EAAK,CACV,CAAC;AAEN;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEctB,UAAU","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = FormikDateInput;
7
+ var _formik = require("formik");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _BaseDateInput = _interopRequireDefault(require("./BaseDateInput"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ function FormikDateInput({
14
+ name,
15
+ fixedHour,
16
+ fixedMinutes,
17
+ fixedSeconds,
18
+ ...props
19
+ }) {
20
+ const [field, meta, helpers] = (0, _formik.useField)(name);
21
+ const {
22
+ setFieldValue
23
+ } = (0, _formik.useFormikContext)();
24
+ const handleChange = (0, _react.useCallback)(date => {
25
+ setFieldValue(name, date);
26
+ helpers.setTouched(true);
27
+ }, [helpers, name, setFieldValue]);
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseDateInput.default, {
29
+ ...props,
30
+ value: field.value,
31
+ onChange: handleChange,
32
+ error: meta.error,
33
+ touched: meta.touched,
34
+ fixedHour: fixedHour,
35
+ fixedMinutes: fixedMinutes,
36
+ fixedSeconds: fixedSeconds
37
+ });
38
+ }
39
+ //# sourceMappingURL=FormikDateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_formik","require","_react","_interopRequireWildcard","_BaseDateInput","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FormikDateInput","name","fixedHour","fixedMinutes","fixedSeconds","props","field","meta","helpers","useField","setFieldValue","useFormikContext","handleChange","useCallback","date","setTouched","jsx","value","onChange","error","touched"],"sourceRoot":"../../../src","sources":["components/FormikDateInput.tsx"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAIA,IAAAG,cAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAI,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAiB7B,SAASgB,eAAeA,CAAC;EACtCC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC,YAAY;EACZ,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAM,CAACC,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,gBAAQ,EAACR,IAAI,CAAC;EAC7C,MAAM;IAAES;EAAc,CAAC,GAAG,IAAAC,wBAAgB,EAAC,CAAC;EAE5C,MAAMC,YAAY,GAAG,IAAAC,kBAAW,EAAEC,IAAU,IAAK;IAC/CJ,aAAa,CAACT,IAAI,EAAEa,IAAI,CAAC;IACzBN,OAAO,CAACO,UAAU,CAAC,IAAI,CAAC;EAC1B,CAAC,EAAE,CAACP,OAAO,EAAEP,IAAI,EAAES,aAAa,CAAC,CAAC;EAElC,oBACE,IAAA9B,WAAA,CAAAoC,GAAA,EAACtC,cAAA,CAAAK,OAAa;IAAA,GACRsB,KAAK;IACTY,KAAK,EAAEX,KAAK,CAACW,KAAM;IACnBC,QAAQ,EAAEN,YAAa;IACvBO,KAAK,EAAEZ,IAAI,CAACY,KAAM;IAClBC,OAAO,EAAEb,IAAI,CAACa,OAAQ;IACtBlB,SAAS,EAAEA,SAAU;IACrBC,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA;EAAa,CAC5B,CAAC;AAEN","ignoreList":[]}
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "BaseButton", {
21
21
  return _BaseButton.default;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "BaseDateInput", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _BaseDateInput.default;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "BaseHorizontalTabs", {
25
31
  enumerable: true,
26
32
  get: function () {
@@ -63,6 +69,18 @@ Object.defineProperty(exports, "BaseStackedList", {
63
69
  return _BaseStackedList.default;
64
70
  }
65
71
  });
72
+ Object.defineProperty(exports, "BaseSwitch", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _BaseSwitch.default;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "FormikDateInput", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _FormikDateInput.default;
82
+ }
83
+ });
66
84
  Object.defineProperty(exports, "FormikRadioGroup", {
67
85
  enumerable: true,
68
86
  get: function () {
@@ -93,6 +111,9 @@ var _BaseHorizontalTabs = _interopRequireDefault(require("./BaseHorizontalTabs")
93
111
  var _BaseSelectionItem = _interopRequireDefault(require("./BaseSelectionItem"));
94
112
  var _BaseRadioGroup = _interopRequireDefault(require("./BaseRadioGroup"));
95
113
  var _FormikRadioGroup = _interopRequireDefault(require("./FormikRadioGroup"));
114
+ var _BaseDateInput = _interopRequireDefault(require("./BaseDateInput"));
115
+ var _FormikDateInput = _interopRequireDefault(require("./FormikDateInput"));
116
+ var _BaseSwitch = _interopRequireDefault(require("./BaseSwitch"));
96
117
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
97
118
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
98
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_BaseButton","_interopRequireDefault","require","_BaseBadge","_BaseSpinner","_BaseStackedList","_BaseIcon","_BaseAlert","_BaseSelect","_interopRequireWildcard","_FormikSelect","_BaseHorizontalTabs","_BaseSelectionItem","_BaseRadioGroup","_FormikRadioGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,mBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,kBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,eAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,iBAAA,GAAAb,sBAAA,CAAAC,OAAA;AAAiE,SAAAO,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAf,uBAAAc,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA","ignoreList":[]}
1
+ {"version":3,"names":["_BaseButton","_interopRequireDefault","require","_BaseBadge","_BaseSpinner","_BaseStackedList","_BaseIcon","_BaseAlert","_BaseSelect","_interopRequireWildcard","_FormikSelect","_BaseHorizontalTabs","_BaseSelectionItem","_BaseRadioGroup","_FormikRadioGroup","_BaseDateInput","_FormikDateInput","_BaseSwitch","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,mBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,kBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,eAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,iBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,cAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,gBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,WAAA,GAAAhB,sBAAA,CAAAC,OAAA;AAAqD,SAAAO,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAlB,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA","ignoreList":[]}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ import clsx from 'clsx';
4
+ import { format } from 'date-fns';
5
+ import React, { useState, useCallback } from 'react';
6
+ import DatePicker from 'react-native-date-picker';
7
+ import { CalendarIcon } from 'react-native-heroicons/outline';
8
+ import { Text, View, Pressable } from "../hoc-components.js";
9
+ import BaseIcon from "./BaseIcon.js";
10
+ import BaseSpinner from "./BaseSpinner.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ export default function BaseDateInput({
13
+ value,
14
+ onChange,
15
+ label,
16
+ description,
17
+ className = '',
18
+ style = {},
19
+ disabled = false,
20
+ loading = false,
21
+ displayFormat = 'MMMM d, yyyy',
22
+ fixedHour,
23
+ fixedMinutes,
24
+ fixedSeconds,
25
+ placeholder = 'Seleccionar fecha',
26
+ error,
27
+ touched = false,
28
+ ...props
29
+ }) {
30
+ const [isFocused, setIsFocused] = useState(false);
31
+ const [open, setOpen] = useState(false);
32
+ const hasFixedAttribute = fixedHour !== undefined || fixedMinutes !== undefined || fixedSeconds !== undefined;
33
+ const handleSelectDate = useCallback(date => {
34
+ if (hasFixedAttribute) {
35
+ const newDate = new Date(date);
36
+ if (fixedHour !== undefined) newDate.setHours(fixedHour);
37
+ if (fixedMinutes !== undefined) newDate.setMinutes(fixedMinutes);
38
+ if (fixedSeconds !== undefined) newDate.setSeconds(fixedSeconds);
39
+ onChange?.(newDate);
40
+ } else {
41
+ onChange?.(date);
42
+ }
43
+ setOpen(false);
44
+ }, [fixedHour, fixedMinutes, fixedSeconds, onChange, hasFixedAttribute]);
45
+ const formattedDate = value ? format(new Date(value), displayFormat) : '';
46
+ const getInitialDate = () => {
47
+ if (!value) {
48
+ const now = new Date();
49
+ if (fixedHour !== undefined) now.setHours(fixedHour);
50
+ if (fixedMinutes !== undefined) now.setMinutes(fixedMinutes);
51
+ if (fixedSeconds !== undefined) now.setSeconds(fixedSeconds);
52
+ return now;
53
+ }
54
+ const date = new Date(value);
55
+ if (fixedHour !== undefined) date.setHours(fixedHour);
56
+ if (fixedMinutes !== undefined) date.setMinutes(fixedMinutes);
57
+ if (fixedSeconds !== undefined) date.setSeconds(fixedSeconds);
58
+ return date;
59
+ };
60
+ return /*#__PURE__*/_jsxs(View, {
61
+ className: clsx('flex flex-col', className),
62
+ style: style,
63
+ children: [label && /*#__PURE__*/_jsx(Text, {
64
+ className: "mb-2 font-semibold text-secondary",
65
+ children: label
66
+ }), description && /*#__PURE__*/_jsx(Text, {
67
+ className: "mb-2 text-tertiary",
68
+ children: description
69
+ }), /*#__PURE__*/_jsxs(Pressable, {
70
+ onPress: () => {
71
+ if (!disabled) {
72
+ setOpen(true);
73
+ setIsFocused(true);
74
+ }
75
+ },
76
+ className: clsx('flex flex-row items-center justify-between p-2', disabled ? 'rounded-lg bg-disabled text-disabled' : 'rounded-lg border border-primary bg-primary', error && touched && 'border-error', isFocused && 'border-brand'),
77
+ disabled: disabled,
78
+ children: [/*#__PURE__*/_jsx(View, {
79
+ className: "flex flex-row items-center",
80
+ children: loading ? /*#__PURE__*/_jsx(BaseSpinner, {
81
+ className: "mr-2",
82
+ size: 16
83
+ }) : /*#__PURE__*/_jsx(BaseIcon, {
84
+ icon: CalendarIcon,
85
+ size: 20,
86
+ color: "fg-tertiary",
87
+ className: "mr-2"
88
+ })
89
+ }), /*#__PURE__*/_jsx(Text, {
90
+ className: clsx('flex-1', formattedDate ? 'text-primary' : 'text-placeholder'),
91
+ children: formattedDate || placeholder
92
+ })]
93
+ }), /*#__PURE__*/_jsx(DatePicker, {
94
+ ...props,
95
+ open: open,
96
+ date: getInitialDate(),
97
+ onConfirm: handleSelectDate,
98
+ onCancel: () => {
99
+ setOpen(false);
100
+ setIsFocused(false);
101
+ }
102
+ }), touched && error && /*#__PURE__*/_jsx(Text, {
103
+ className: "text-error-primary",
104
+ children: error
105
+ })]
106
+ });
107
+ }
108
+ //# sourceMappingURL=BaseDateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clsx","format","React","useState","useCallback","DatePicker","CalendarIcon","Text","View","Pressable","BaseIcon","BaseSpinner","jsx","_jsx","jsxs","_jsxs","BaseDateInput","value","onChange","label","description","className","style","disabled","loading","displayFormat","fixedHour","fixedMinutes","fixedSeconds","placeholder","error","touched","props","isFocused","setIsFocused","open","setOpen","hasFixedAttribute","undefined","handleSelectDate","date","newDate","Date","setHours","setMinutes","setSeconds","formattedDate","getInitialDate","now","children","onPress","size","icon","color","onConfirm","onCancel"],"sourceRoot":"../../../src","sources":["components/BaseDateInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ import { foregroundColors, utilityColors } from "../index.js";
5
+ import { Switch } from "../hoc-components.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ function BaseSwitch({
8
+ value,
9
+ onValueChange,
10
+ disabled,
11
+ size = 'md',
12
+ ...props
13
+ }) {
14
+ const scaleFactor = useMemo(() => {
15
+ switch (size) {
16
+ case 'xs':
17
+ return 0.5;
18
+ case 'sm':
19
+ return 0.75;
20
+ case 'lg':
21
+ return 1.25;
22
+ case 'xl':
23
+ return 1.5;
24
+ default:
25
+ return 1;
26
+ }
27
+ }, [size]);
28
+ return /*#__PURE__*/_jsx(Switch, {
29
+ style: {
30
+ transform: [{
31
+ scale: scaleFactor
32
+ }]
33
+ },
34
+ value: value,
35
+ onValueChange: onValueChange,
36
+ disabled: disabled,
37
+ trackColor: {
38
+ false: utilityColors['utility-gray-200'].light,
39
+ true: foregroundColors['fg-brand-primary'].light
40
+ },
41
+ thumbColor: foregroundColors['fg-white'].light,
42
+ ...props
43
+ });
44
+ }
45
+ export default BaseSwitch;
46
+ //# sourceMappingURL=BaseSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","foregroundColors","utilityColors","Switch","jsx","_jsx","BaseSwitch","value","onValueChange","disabled","size","props","scaleFactor","style","transform","scale","trackColor","false","light","true","thumbColor"],"sourceRoot":"../../../src","sources":["components/BaseSwitch.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAG/B,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,aAAI;AACpD,SAASC,MAAM,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS3C,SAASC,UAAUA,CAAC;EAClBC,KAAK;EAAEC,aAAa;EAAEC,QAAQ;EAAEC,IAAI,GAAG,IAAI;EAAE,GAAGC;AAC3C,CAAC,EAAE;EACR,MAAMC,WAAW,GAAGZ,OAAO,CAAC,MAAM;IAChC,QAAQU,IAAI;MACV,KAAK,IAAI;QACP,OAAO,GAAG;MACZ,KAAK,IAAI;QACP,OAAO,IAAI;MACb,KAAK,IAAI;QACP,OAAO,IAAI;MACb,KAAK,IAAI;QACP,OAAO,GAAG;MACZ;QACE,OAAO,CAAC;IACZ;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,oBACEL,IAAA,CAACF,MAAM;IACLU,KAAK,EAAE;MACLC,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAEH;MAAY,CAAC;IACpC,CAAE;IACFL,KAAK,EAAEA,KAAM;IACbC,aAAa,EAAEA,aAAc;IAC7BC,QAAQ,EAAEA,QAAS;IACnBO,UAAU,EAAE;MAAEC,KAAK,EAAEf,aAAa,CAAC,kBAAkB,CAAC,CAACgB,KAAK;MAAEC,IAAI,EAAElB,gBAAgB,CAAC,kBAAkB,CAAC,CAACiB;IAAM,CAAE;IACjHE,UAAU,EAAEnB,gBAAgB,CAAC,UAAU,CAAC,CAACiB,KAAM;IAAA,GAC3CP;EAAK,CACV,CAAC;AAEN;AAEA,eAAeL,UAAU","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { useField, useFormikContext } from 'formik';
4
+ import React, { useCallback } from 'react';
5
+ import BaseDateInput from "./BaseDateInput.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export default function FormikDateInput({
8
+ name,
9
+ fixedHour,
10
+ fixedMinutes,
11
+ fixedSeconds,
12
+ ...props
13
+ }) {
14
+ const [field, meta, helpers] = useField(name);
15
+ const {
16
+ setFieldValue
17
+ } = useFormikContext();
18
+ const handleChange = useCallback(date => {
19
+ setFieldValue(name, date);
20
+ helpers.setTouched(true);
21
+ }, [helpers, name, setFieldValue]);
22
+ return /*#__PURE__*/_jsx(BaseDateInput, {
23
+ ...props,
24
+ value: field.value,
25
+ onChange: handleChange,
26
+ error: meta.error,
27
+ touched: meta.touched,
28
+ fixedHour: fixedHour,
29
+ fixedMinutes: fixedMinutes,
30
+ fixedSeconds: fixedSeconds
31
+ });
32
+ }
33
+ //# sourceMappingURL=FormikDateInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useField","useFormikContext","React","useCallback","BaseDateInput","jsx","_jsx","FormikDateInput","name","fixedHour","fixedMinutes","fixedSeconds","props","field","meta","helpers","setFieldValue","handleChange","date","setTouched","value","onChange","error","touched"],"sourceRoot":"../../../src","sources":["components/FormikDateInput.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,gBAAgB,QAAQ,QAAQ;AACnD,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAI1C,OAAOC,aAAa,MAAM,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAiB5C,eAAe,SAASC,eAAeA,CAAC;EACtCC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC,YAAY;EACZ,GAAGC;AACiB,CAAC,EAAE;EACvB,MAAM,CAACC,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC,GAAGf,QAAQ,CAACQ,IAAI,CAAC;EAC7C,MAAM;IAAEQ;EAAc,CAAC,GAAGf,gBAAgB,CAAC,CAAC;EAE5C,MAAMgB,YAAY,GAAGd,WAAW,CAAEe,IAAU,IAAK;IAC/CF,aAAa,CAACR,IAAI,EAAEU,IAAI,CAAC;IACzBH,OAAO,CAACI,UAAU,CAAC,IAAI,CAAC;EAC1B,CAAC,EAAE,CAACJ,OAAO,EAAEP,IAAI,EAAEQ,aAAa,CAAC,CAAC;EAElC,oBACEV,IAAA,CAACF,aAAa;IAAA,GACRQ,KAAK;IACTQ,KAAK,EAAEP,KAAK,CAACO,KAAM;IACnBC,QAAQ,EAAEJ,YAAa;IACvBK,KAAK,EAAER,IAAI,CAACQ,KAAM;IAClBC,OAAO,EAAET,IAAI,CAACS,OAAQ;IACtBd,SAAS,EAAEA,SAAU;IACrBC,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA;EAAa,CAC5B,CAAC;AAEN","ignoreList":[]}
@@ -12,4 +12,7 @@ export { default as BaseHorizontalTabs } from "./BaseHorizontalTabs.js";
12
12
  export { default as BaseSelectionItem } from "./BaseSelectionItem.js";
13
13
  export { default as BaseRadioGroup } from "./BaseRadioGroup.js";
14
14
  export { default as FormikRadioGroup } from "./FormikRadioGroup.js";
15
+ export { default as BaseDateInput } from "./BaseDateInput.js";
16
+ export { default as FormikDateInput } from "./FormikDateInput.js";
17
+ export { default as BaseSwitch } from "./BaseSwitch.js";
15
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","BaseButton","BaseBadge","BaseSpinner","BaseStackedList","BaseIcon","BaseAlert","BaseSelect","SelectOption","FormikSelect","BaseHorizontalTabs","BaseSelectionItem","BaseRadioGroup","FormikRadioGroup"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,UAAU,QAAQ,iBAAc;AACpD,SAASD,OAAO,IAAIE,SAAS,QAAQ,gBAAa;AAClD,SAASF,OAAO,IAAIG,WAAW,QAAQ,kBAAe;AACtD,SAASH,OAAO,IAAII,eAAe,QAAQ,sBAAmB;AAC9D,SAASJ,OAAO,IAAIK,QAAQ,QAAQ,eAAY;AAChD,SAASL,OAAO,IAAIM,SAAS,QAAQ,gBAAa;AAClD,SAASN,OAAO,IAAIO,UAAU,EAAEC,YAAY,QAAQ,iBAAc;AAClE,SAASR,OAAO,IAAIS,YAAY,QAAQ,mBAAgB;AACxD,SAAST,OAAO,IAAIU,kBAAkB,QAAQ,yBAAsB;AACpE,SAASV,OAAO,IAAIW,iBAAiB,QAAQ,wBAAqB;AAClE,SAASX,OAAO,IAAIY,cAAc,QAAQ,qBAAkB;AAC5D,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["default","BaseButton","BaseBadge","BaseSpinner","BaseStackedList","BaseIcon","BaseAlert","BaseSelect","SelectOption","FormikSelect","BaseHorizontalTabs","BaseSelectionItem","BaseRadioGroup","FormikRadioGroup","BaseDateInput","FormikDateInput","BaseSwitch"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,UAAU,QAAQ,iBAAc;AACpD,SAASD,OAAO,IAAIE,SAAS,QAAQ,gBAAa;AAClD,SAASF,OAAO,IAAIG,WAAW,QAAQ,kBAAe;AACtD,SAASH,OAAO,IAAII,eAAe,QAAQ,sBAAmB;AAC9D,SAASJ,OAAO,IAAIK,QAAQ,QAAQ,eAAY;AAChD,SAASL,OAAO,IAAIM,SAAS,QAAQ,gBAAa;AAClD,SAASN,OAAO,IAAIO,UAAU,EAAEC,YAAY,QAAQ,iBAAc;AAClE,SAASR,OAAO,IAAIS,YAAY,QAAQ,mBAAgB;AACxD,SAAST,OAAO,IAAIU,kBAAkB,QAAQ,yBAAsB;AACpE,SAASV,OAAO,IAAIW,iBAAiB,QAAQ,wBAAqB;AAClE,SAASX,OAAO,IAAIY,cAAc,QAAQ,qBAAkB;AAC5D,SAASZ,OAAO,IAAIa,gBAAgB,QAAQ,uBAAoB;AAChE,SAASb,OAAO,IAAIc,aAAa,QAAQ,oBAAiB;AAC1D,SAASd,OAAO,IAAIe,eAAe,QAAQ,sBAAmB;AAC9D,SAASf,OAAO,IAAIgB,UAAU,QAAQ,iBAAc","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { ViewProps } from 'react-native';
3
+ import { DatePickerProps } from 'react-native-date-picker';
4
+ interface BaseDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
5
+ value?: Date | null;
6
+ onChange?: (date: Date) => void;
7
+ label?: string;
8
+ description?: string;
9
+ className?: string;
10
+ style?: ViewProps['style'];
11
+ disabled?: boolean;
12
+ loading?: boolean;
13
+ displayFormat?: string;
14
+ fixedHour?: number;
15
+ fixedMinutes?: number;
16
+ fixedSeconds?: number;
17
+ placeholder?: string;
18
+ error?: string;
19
+ touched?: boolean;
20
+ }
21
+ export default function BaseDateInput({ value, onChange, label, description, className, style, disabled, loading, displayFormat, fixedHour, fixedMinutes, fixedSeconds, placeholder, error, touched, ...props }: BaseDateInputProps): React.JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=BaseDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BaseDateInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOvE,UAAU,kBAAmB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACpG,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAc,EACd,KAAU,EACV,QAAgB,EAChB,OAAe,EACf,aAA8B,EAC9B,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAiC,EACjC,KAAK,EACL,OAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,qBAsGpB"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { SwitchProps } from 'react-native';
3
+ interface Props extends SwitchProps {
4
+ value: boolean;
5
+ onValueChange: (value: boolean) => void;
6
+ disabled?: boolean;
7
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
+ }
9
+ declare function BaseSwitch({ value, onValueChange, disabled, size, ...props }: Props): import("react").JSX.Element;
10
+ export default BaseSwitch;
11
+ //# sourceMappingURL=BaseSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSwitch.d.ts","sourceRoot":"","sources":["../../../../src/components/BaseSwitch.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,UAAU,KAAM,SAAQ,WAAW;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,iBAAS,UAAU,CAAC,EAClB,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAW,EAAE,GAAG,KAAK,EACtD,EAAE,KAAK,+BA6BP;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ViewProps } from 'react-native';
3
+ import { DatePickerProps } from 'react-native-date-picker';
4
+ interface FormikDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
5
+ name: string;
6
+ label?: string;
7
+ description?: string;
8
+ className?: string;
9
+ style?: ViewProps['style'];
10
+ disabled?: boolean;
11
+ loading?: boolean;
12
+ displayFormat?: string;
13
+ fixedHour?: number;
14
+ fixedMinutes?: number;
15
+ fixedSeconds?: number;
16
+ placeholder?: string;
17
+ }
18
+ export default function FormikDateInput({ name, fixedHour, fixedMinutes, fixedSeconds, ...props }: FormikDateInputProps): React.JSX.Element;
19
+ export {};
20
+ //# sourceMappingURL=FormikDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikDateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/FormikDateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,UAAU,oBAAqB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,oBAAoB,qBAqBtB"}
@@ -10,4 +10,7 @@ export { default as BaseHorizontalTabs } from './BaseHorizontalTabs';
10
10
  export { default as BaseSelectionItem } from './BaseSelectionItem';
11
11
  export { default as BaseRadioGroup } from './BaseRadioGroup';
12
12
  export { default as FormikRadioGroup } from './FormikRadioGroup';
13
+ export { default as BaseDateInput } from './BaseDateInput';
14
+ export { default as FormikDateInput } from './FormikDateInput';
15
+ export { default as BaseSwitch } from './BaseSwitch';
13
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { ViewProps } from 'react-native';
3
+ import { DatePickerProps } from 'react-native-date-picker';
4
+ interface BaseDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
5
+ value?: Date | null;
6
+ onChange?: (date: Date) => void;
7
+ label?: string;
8
+ description?: string;
9
+ className?: string;
10
+ style?: ViewProps['style'];
11
+ disabled?: boolean;
12
+ loading?: boolean;
13
+ displayFormat?: string;
14
+ fixedHour?: number;
15
+ fixedMinutes?: number;
16
+ fixedSeconds?: number;
17
+ placeholder?: string;
18
+ error?: string;
19
+ touched?: boolean;
20
+ }
21
+ export default function BaseDateInput({ value, onChange, label, description, className, style, disabled, loading, displayFormat, fixedHour, fixedMinutes, fixedSeconds, placeholder, error, touched, ...props }: BaseDateInputProps): React.JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=BaseDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/BaseDateInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOvE,UAAU,kBAAmB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACpG,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAc,EACd,KAAU,EACV,QAAgB,EAChB,OAAe,EACf,aAA8B,EAC9B,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAiC,EACjC,KAAK,EACL,OAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,qBAsGpB"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { SwitchProps } from 'react-native';
3
+ interface Props extends SwitchProps {
4
+ value: boolean;
5
+ onValueChange: (value: boolean) => void;
6
+ disabled?: boolean;
7
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
+ }
9
+ declare function BaseSwitch({ value, onValueChange, disabled, size, ...props }: Props): import("react").JSX.Element;
10
+ export default BaseSwitch;
11
+ //# sourceMappingURL=BaseSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSwitch.d.ts","sourceRoot":"","sources":["../../../../src/components/BaseSwitch.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAK3C,UAAU,KAAM,SAAQ,WAAW;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,iBAAS,UAAU,CAAC,EAClB,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAW,EAAE,GAAG,KAAK,EACtD,EAAE,KAAK,+BA6BP;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ViewProps } from 'react-native';
3
+ import { DatePickerProps } from 'react-native-date-picker';
4
+ interface FormikDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
5
+ name: string;
6
+ label?: string;
7
+ description?: string;
8
+ className?: string;
9
+ style?: ViewProps['style'];
10
+ disabled?: boolean;
11
+ loading?: boolean;
12
+ displayFormat?: string;
13
+ fixedHour?: number;
14
+ fixedMinutes?: number;
15
+ fixedSeconds?: number;
16
+ placeholder?: string;
17
+ }
18
+ export default function FormikDateInput({ name, fixedHour, fixedMinutes, fixedSeconds, ...props }: FormikDateInputProps): React.JSX.Element;
19
+ export {};
20
+ //# sourceMappingURL=FormikDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikDateInput.d.ts","sourceRoot":"","sources":["../../../../src/components/FormikDateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,UAAU,oBAAqB,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,oBAAoB,qBAqBtB"}
@@ -10,4 +10,7 @@ export { default as BaseHorizontalTabs } from './BaseHorizontalTabs';
10
10
  export { default as BaseSelectionItem } from './BaseSelectionItem';
11
11
  export { default as BaseRadioGroup } from './BaseRadioGroup';
12
12
  export { default as FormikRadioGroup } from './FormikRadioGroup';
13
+ export { default as BaseDateInput } from './BaseDateInput';
14
+ export { default as FormikDateInput } from './FormikDateInput';
15
+ export { default as BaseSwitch } from './BaseSwitch';
13
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grupalia/rn-ui-kit",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Grupalia React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/module/index.d.ts",
@@ -21,10 +21,12 @@
21
21
  "peerDependencies": {
22
22
  "@gorhom/bottom-sheet": "^5",
23
23
  "clsx": "^2.1.1",
24
+ "date-fns": "^4.1.0",
24
25
  "formik": "^2",
25
26
  "nativewind": "^2.0.11",
26
27
  "react": "*",
27
28
  "react-native": "*",
29
+ "react-native-date-picker": "^5.0.12",
28
30
  "react-native-gesture-handler": "^2.21.0",
29
31
  "react-native-heroicons": "^4.0.0",
30
32
  "react-native-svg": "*",
@@ -38,6 +40,7 @@
38
40
  "@typescript-eslint/parser": "^7.10.0",
39
41
  "chokidar-cli": "^3.0.0",
40
42
  "clsx": "^2.1.1",
43
+ "date-fns": "^4.1.0",
41
44
  "eslint": "^8.29.0",
42
45
  "eslint-config-airbnb": "^19.0.4",
43
46
  "eslint-plugin-import": "^2.29.1",
@@ -50,6 +53,7 @@
50
53
  "react": "18.2.0",
51
54
  "react-native": "0.74.5",
52
55
  "react-native-builder-bob": "^0.40.6",
56
+ "react-native-date-picker": "^5.0.12",
53
57
  "react-native-gesture-handler": "^2.21.0",
54
58
  "react-native-heroicons": "^4.0.0",
55
59
  "react-native-svg": "^15.11.2",
@@ -0,0 +1,149 @@
1
+ import clsx from 'clsx';
2
+ import { format } from 'date-fns';
3
+ import React, { useState, useCallback } from 'react';
4
+ import { ViewProps } from 'react-native';
5
+ import DatePicker, { DatePickerProps } from 'react-native-date-picker';
6
+ import { CalendarIcon } from 'react-native-heroicons/outline';
7
+
8
+ import { Text, View, Pressable } from '../hoc-components';
9
+ import BaseIcon from './BaseIcon';
10
+ import BaseSpinner from './BaseSpinner';
11
+
12
+ interface BaseDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
13
+ value?: Date | null;
14
+ onChange?: (date: Date) => void;
15
+ label?: string;
16
+ description?: string;
17
+ className?: string;
18
+ style?: ViewProps['style'];
19
+ disabled?: boolean;
20
+ loading?: boolean;
21
+ displayFormat?: string;
22
+ fixedHour?: number;
23
+ fixedMinutes?: number;
24
+ fixedSeconds?: number;
25
+ placeholder?: string;
26
+ error?: string;
27
+ touched?: boolean;
28
+ }
29
+
30
+ export default function BaseDateInput({
31
+ value,
32
+ onChange,
33
+ label,
34
+ description,
35
+ className = '',
36
+ style = {},
37
+ disabled = false,
38
+ loading = false,
39
+ displayFormat = 'MMMM d, yyyy',
40
+ fixedHour,
41
+ fixedMinutes,
42
+ fixedSeconds,
43
+ placeholder = 'Seleccionar fecha',
44
+ error,
45
+ touched = false,
46
+ ...props
47
+ }: BaseDateInputProps) {
48
+ const [isFocused, setIsFocused] = useState(false);
49
+ const [open, setOpen] = useState(false);
50
+
51
+ const hasFixedAttribute = (
52
+ fixedHour !== undefined || fixedMinutes !== undefined || fixedSeconds !== undefined
53
+ );
54
+
55
+ const handleSelectDate = useCallback((date: Date) => {
56
+ if (hasFixedAttribute) {
57
+ const newDate = new Date(date);
58
+ if (fixedHour !== undefined) newDate.setHours(fixedHour);
59
+ if (fixedMinutes !== undefined) newDate.setMinutes(fixedMinutes);
60
+ if (fixedSeconds !== undefined) newDate.setSeconds(fixedSeconds);
61
+
62
+ onChange?.(newDate);
63
+ } else {
64
+ onChange?.(date);
65
+ }
66
+ setOpen(false);
67
+ }, [fixedHour, fixedMinutes, fixedSeconds, onChange, hasFixedAttribute]);
68
+
69
+ const formattedDate = value ? format(new Date(value), displayFormat) : '';
70
+
71
+ const getInitialDate = () => {
72
+ if (!value) {
73
+ const now = new Date();
74
+ if (fixedHour !== undefined) now.setHours(fixedHour);
75
+ if (fixedMinutes !== undefined) now.setMinutes(fixedMinutes);
76
+ if (fixedSeconds !== undefined) now.setSeconds(fixedSeconds);
77
+
78
+ return now;
79
+ }
80
+
81
+ const date = new Date(value);
82
+ if (fixedHour !== undefined) date.setHours(fixedHour);
83
+ if (fixedMinutes !== undefined) date.setMinutes(fixedMinutes);
84
+ if (fixedSeconds !== undefined) date.setSeconds(fixedSeconds);
85
+
86
+ return date;
87
+ };
88
+
89
+ return (
90
+ <View
91
+ className={clsx('flex flex-col', className)}
92
+ style={style}
93
+ >
94
+ {label && <Text className="mb-2 font-semibold text-secondary">{label}</Text>}
95
+ {description && <Text className="mb-2 text-tertiary">{description}</Text>}
96
+ <Pressable
97
+ onPress={() => {
98
+ if (!disabled) {
99
+ setOpen(true);
100
+ setIsFocused(true);
101
+ }
102
+ }}
103
+ className={clsx(
104
+ 'flex flex-row items-center justify-between p-2',
105
+ disabled ? 'rounded-lg bg-disabled text-disabled' : 'rounded-lg border border-primary bg-primary',
106
+ error && touched && 'border-error',
107
+ isFocused && 'border-brand',
108
+ )}
109
+ disabled={disabled}
110
+ >
111
+ <View className="flex flex-row items-center">
112
+ {loading ? (
113
+ <BaseSpinner
114
+ className="mr-2"
115
+ size={16}
116
+ />
117
+ ) : (
118
+ <BaseIcon
119
+ icon={CalendarIcon}
120
+ size={20}
121
+ color="fg-tertiary"
122
+ className="mr-2"
123
+ />
124
+ )}
125
+ </View>
126
+ <Text className={clsx(
127
+ 'flex-1',
128
+ formattedDate ? 'text-primary' : 'text-placeholder',
129
+ )}
130
+ >
131
+ {formattedDate || placeholder}
132
+ </Text>
133
+ </Pressable>
134
+ <DatePicker
135
+ {...props}
136
+ open={open}
137
+ date={getInitialDate()}
138
+ onConfirm={handleSelectDate}
139
+ onCancel={() => {
140
+ setOpen(false);
141
+ setIsFocused(false);
142
+ }}
143
+ />
144
+ {touched && error && (
145
+ <Text className="text-error-primary">{error}</Text>
146
+ )}
147
+ </View>
148
+ );
149
+ }
@@ -0,0 +1,47 @@
1
+ import { useMemo } from 'react';
2
+ import { SwitchProps } from 'react-native';
3
+
4
+ import { foregroundColors, utilityColors } from '..';
5
+ import { Switch } from '../hoc-components';
6
+
7
+ interface Props extends SwitchProps {
8
+ value: boolean;
9
+ onValueChange: (value: boolean) => void;
10
+ disabled?: boolean;
11
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
+ }
13
+
14
+ function BaseSwitch({
15
+ value, onValueChange, disabled, size = 'md', ...props
16
+ }: Props) {
17
+ const scaleFactor = useMemo(() => {
18
+ switch (size) {
19
+ case 'xs':
20
+ return 0.5;
21
+ case 'sm':
22
+ return 0.75;
23
+ case 'lg':
24
+ return 1.25;
25
+ case 'xl':
26
+ return 1.5;
27
+ default:
28
+ return 1;
29
+ }
30
+ }, [size]);
31
+
32
+ return (
33
+ <Switch
34
+ style={{
35
+ transform: [{ scale: scaleFactor }],
36
+ }}
37
+ value={value}
38
+ onValueChange={onValueChange}
39
+ disabled={disabled}
40
+ trackColor={{ false: utilityColors['utility-gray-200'].light, true: foregroundColors['fg-brand-primary'].light }}
41
+ thumbColor={foregroundColors['fg-white'].light}
42
+ {...props}
43
+ />
44
+ );
45
+ }
46
+
47
+ export default BaseSwitch;
@@ -0,0 +1,50 @@
1
+ import { useField, useFormikContext } from 'formik';
2
+ import React, { useCallback } from 'react';
3
+ import { ViewProps } from 'react-native';
4
+ import { DatePickerProps } from 'react-native-date-picker';
5
+
6
+ import BaseDateInput from './BaseDateInput';
7
+
8
+ interface FormikDateInputProps extends Omit<DatePickerProps, 'open' | 'date' | 'onConfirm' | 'onCancel'> {
9
+ name: string;
10
+ label?: string;
11
+ description?: string;
12
+ className?: string;
13
+ style?: ViewProps['style'];
14
+ disabled?: boolean;
15
+ loading?: boolean;
16
+ displayFormat?: string;
17
+ fixedHour?: number;
18
+ fixedMinutes?: number;
19
+ fixedSeconds?: number;
20
+ placeholder?: string;
21
+ }
22
+
23
+ export default function FormikDateInput({
24
+ name,
25
+ fixedHour,
26
+ fixedMinutes,
27
+ fixedSeconds,
28
+ ...props
29
+ }: FormikDateInputProps) {
30
+ const [field, meta, helpers] = useField(name);
31
+ const { setFieldValue } = useFormikContext();
32
+
33
+ const handleChange = useCallback((date: Date) => {
34
+ setFieldValue(name, date);
35
+ helpers.setTouched(true);
36
+ }, [helpers, name, setFieldValue]);
37
+
38
+ return (
39
+ <BaseDateInput
40
+ {...props}
41
+ value={field.value}
42
+ onChange={handleChange}
43
+ error={meta.error}
44
+ touched={meta.touched}
45
+ fixedHour={fixedHour}
46
+ fixedMinutes={fixedMinutes}
47
+ fixedSeconds={fixedSeconds}
48
+ />
49
+ );
50
+ }
@@ -10,3 +10,6 @@ export { default as BaseHorizontalTabs } from './BaseHorizontalTabs';
10
10
  export { default as BaseSelectionItem } from './BaseSelectionItem';
11
11
  export { default as BaseRadioGroup } from './BaseRadioGroup';
12
12
  export { default as FormikRadioGroup } from './FormikRadioGroup';
13
+ export { default as BaseDateInput } from './BaseDateInput';
14
+ export { default as FormikDateInput } from './FormikDateInput';
15
+ export { default as BaseSwitch } from './BaseSwitch';