@mw-kit/mw-ui 1.8.10 → 1.8.12

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.
@@ -10,6 +10,7 @@ export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputEle
10
10
  invalid?: boolean;
11
11
  htmlDisabled?: boolean;
12
12
  viewMode?: boolean;
13
+ breakLabel?: boolean;
13
14
  type: 'switch';
14
15
  }
15
16
  export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
@@ -20,4 +21,5 @@ export interface LabelContainerProps extends React.HTMLAttributes<HTMLDivElement
20
21
  $required?: boolean;
21
22
  $viewMode?: boolean;
22
23
  $keepSpace?: boolean;
24
+ $breakLabel?: boolean;
23
25
  }
@@ -1,6 +1,8 @@
1
1
  import type { InputProps } from '../Input/interfaces';
2
- export interface TimeProps extends Omit<InputProps, 'type' | 'mask'> {
2
+ export interface TimeProps extends Omit<InputProps, 'type' | 'mask' | 'min' | 'max'> {
3
3
  type: 'time';
4
4
  seconds?: boolean;
5
5
  value: string;
6
+ min?: string;
7
+ max?: string;
6
8
  }
package/dist/index.d.mts CHANGED
@@ -925,10 +925,12 @@ interface ButtonProps extends Omit<Partial<CommonProps>, 'loading'> {
925
925
 
926
926
  declare const Button: (props: ButtonProps) => react_jsx_runtime.JSX.Element;
927
927
 
928
- interface TimeProps extends Omit<InputProps$1, 'type' | 'mask'> {
928
+ interface TimeProps extends Omit<InputProps$1, 'type' | 'mask' | 'min' | 'max'> {
929
929
  type: 'time';
930
930
  seconds?: boolean;
931
931
  value: string;
932
+ min?: string;
933
+ max?: string;
932
934
  }
933
935
 
934
936
  type Types = 'default' | 'info' | 'danger' | 'success' | 'warning' | 'temporary';
@@ -1363,6 +1365,7 @@ interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>,
1363
1365
  invalid?: boolean;
1364
1366
  htmlDisabled?: boolean;
1365
1367
  viewMode?: boolean;
1368
+ breakLabel?: boolean;
1366
1369
  type: 'switch';
1367
1370
  }
1368
1371
 
package/dist/index.js CHANGED
@@ -212,12 +212,23 @@ var keys = (value) => {
212
212
  var notEmptyString = (value) => {
213
213
  return typeof value === "string" && value.trim() !== "";
214
214
  };
215
+ var isNumber = (value) => {
216
+ return typeof value === "number" && isFinite(value);
217
+ };
215
218
  var isString = (value) => {
216
219
  return typeof value === "string";
217
220
  };
221
+ var isNumeric = (value) => {
222
+ if (isNumber(value)) return true;
223
+ if (!isString(value)) return false;
224
+ return !isNaN(parseFloat(value));
225
+ };
218
226
  var isBoolean = (value) => {
219
227
  return typeof value === "boolean";
220
228
  };
229
+ var isNumericString = (value) => {
230
+ return notEmptyString(value) && isNumeric(value);
231
+ };
221
232
  var isDateInstance = (value) => {
222
233
  return value instanceof Date && !isNaN(value.valueOf());
223
234
  };
@@ -310,6 +321,11 @@ var filterObject = (object, remove, inital = {}) => {
310
321
  );
311
322
  return r;
312
323
  };
324
+ var numberOrDefault = (value, defaultValue2) => {
325
+ if (isNumber(value)) return value;
326
+ if (isNumericString(value)) return parseFloat(value);
327
+ return defaultValue2;
328
+ };
313
329
  var isoStringToDate = (value) => {
314
330
  const [d, t = "00:00:00"] = value.split(" ");
315
331
  const date = /* @__PURE__ */ new Date(
@@ -10060,6 +10076,15 @@ var mask = (v, seconds) => {
10060
10076
  else if (v.length < 5) return v.substring(0, 2) + ":" + v.substring(2);
10061
10077
  else return v.substring(0, 2) + ":" + v.substring(2, 4) + ":" + v.substring(4);
10062
10078
  };
10079
+ var getDate = (value) => {
10080
+ const v = value.replace(/[^0-9\s]/g, "");
10081
+ const h = numberOrDefault(v.substring(0, 2), 0);
10082
+ const m = numberOrDefault(v.substring(2, 4), 0);
10083
+ const s = numberOrDefault(v.substring(4, 6), 0);
10084
+ const date = /* @__PURE__ */ new Date();
10085
+ date.setHours(h, m, s, 0);
10086
+ return date;
10087
+ };
10063
10088
  var Time = import_react15.default.forwardRef(
10064
10089
  (props, ref) => {
10065
10090
  const { value, seconds } = props;
@@ -10075,65 +10100,70 @@ var Time = import_react15.default.forwardRef(
10075
10100
  const curS = todayDate.getSeconds();
10076
10101
  const value2 = target.value.replace(/[^0-9\s]/g, "");
10077
10102
  let tmp = value2.substring(0, 2);
10078
- let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, "0"));
10103
+ const h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, "0"));
10079
10104
  tmp = value2.substring(2, 4);
10080
- let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, "0"));
10105
+ const m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, "0"));
10081
10106
  tmp = value2.substring(4, 6);
10082
- let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, "0"));
10107
+ const s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, "0"));
10108
+ const date = /* @__PURE__ */ new Date();
10109
+ date.setHours(h);
10110
+ date.setMinutes(m);
10111
+ date.setSeconds(s);
10112
+ const getReference = (date2) => {
10113
+ if (props.min) {
10114
+ const min = getDate(props.min);
10115
+ if (min.getTime() > date2.getTime()) {
10116
+ return min;
10117
+ }
10118
+ }
10119
+ if (props.max) {
10120
+ const max = getDate(props.max);
10121
+ if (max.getTime() < date2.getTime()) {
10122
+ return max;
10123
+ }
10124
+ }
10125
+ return date2;
10126
+ };
10083
10127
  if (event.key === "ArrowUp") {
10084
- const date = /* @__PURE__ */ new Date();
10085
- date.setHours(h);
10086
- date.setMinutes(m);
10087
- date.setSeconds(s);
10088
10128
  if (seconds) {
10089
10129
  date.setSeconds(s + 1);
10090
- h = date.getHours();
10091
- m = date.getMinutes();
10092
- s = date.getSeconds();
10130
+ const reference = getReference(date);
10093
10131
  setValue(
10094
10132
  [
10095
- h.toString().padStart(2, "0"),
10096
- m.toString().padStart(2, "0"),
10097
- s.toString().padStart(2, "0")
10133
+ reference.getHours().toString().padStart(2, "0"),
10134
+ reference.getMinutes().toString().padStart(2, "0"),
10135
+ reference.getSeconds().toString().padStart(2, "0")
10098
10136
  ].join(":")
10099
10137
  );
10100
10138
  } else {
10101
10139
  date.setMinutes(m + 1);
10102
- h = date.getHours();
10103
- m = date.getMinutes();
10104
- s = date.getSeconds();
10140
+ const reference = getReference(date);
10105
10141
  setValue(
10106
- [h.toString().padStart(2, "0"), m.toString().padStart(2, "0")].join(
10107
- ":"
10108
- )
10142
+ [
10143
+ reference.getHours().toString().padStart(2, "0"),
10144
+ reference.getMinutes().toString().padStart(2, "0")
10145
+ ].join(":")
10109
10146
  );
10110
10147
  }
10111
10148
  } else if (event.key === "ArrowDown") {
10112
- const date = /* @__PURE__ */ new Date();
10113
- date.setHours(h);
10114
- date.setMinutes(m);
10115
- date.setSeconds(s);
10116
10149
  if (seconds) {
10117
10150
  date.setSeconds(s - 1);
10118
- h = date.getHours();
10119
- m = date.getMinutes();
10120
- s = date.getSeconds();
10151
+ const reference = getReference(date);
10121
10152
  setValue(
10122
10153
  [
10123
- h.toString().padStart(2, "0"),
10124
- m.toString().padStart(2, "0"),
10125
- s.toString().padStart(2, "0")
10154
+ reference.getHours().toString().padStart(2, "0"),
10155
+ reference.getMinutes().toString().padStart(2, "0"),
10156
+ reference.getSeconds().toString().padStart(2, "0")
10126
10157
  ].join(":")
10127
10158
  );
10128
10159
  } else {
10129
10160
  date.setMinutes(m - 1);
10130
- h = date.getHours();
10131
- m = date.getMinutes();
10132
- s = date.getSeconds();
10161
+ const reference = getReference(date);
10133
10162
  setValue(
10134
- [h.toString().padStart(2, "0"), m.toString().padStart(2, "0")].join(
10135
- ":"
10136
- )
10163
+ [
10164
+ reference.getHours().toString().padStart(2, "0"),
10165
+ reference.getMinutes().toString().padStart(2, "0")
10166
+ ].join(":")
10137
10167
  );
10138
10168
  }
10139
10169
  }
@@ -13895,6 +13925,10 @@ var LabelContainer7 = import_styled_components44.default.div`
13895
13925
  display: flex;
13896
13926
  align-items: center;
13897
13927
 
13928
+ ${({ $breakLabel: breakLabel }) => breakLabel && import_styled_components44.css`
13929
+ width: 100%;
13930
+ `}
13931
+
13898
13932
  ${({ $required: required, $viewMode: viewMode }) => {
13899
13933
  if (!required || viewMode) return;
13900
13934
  return import_styled_components44.css`
@@ -13919,6 +13953,7 @@ var Label7 = import_styled_components44.default.label`
13919
13953
  gap: ${({ theme: theme4 }) => theme4.spacings.s1};
13920
13954
  position: relative;
13921
13955
  align-items: center;
13956
+ flex-wrap: wrap;
13922
13957
 
13923
13958
  ${({ $disabled: disabled }) => {
13924
13959
  if (!disabled) {
@@ -14014,7 +14049,8 @@ var Switch = (props) => {
14014
14049
  "required",
14015
14050
  "htmlDisabled",
14016
14051
  "labelProps",
14017
- "viewMode"
14052
+ "viewMode",
14053
+ "breakLabel"
14018
14054
  ]);
14019
14055
  htmlProps.disabled = props.disabled || props.htmlDisabled;
14020
14056
  return /* @__PURE__ */ (0, import_jsx_runtime328.jsxs)(
@@ -14024,7 +14060,15 @@ var Switch = (props) => {
14024
14060
  $disabled: disabled,
14025
14061
  $invalid: invalid,
14026
14062
  children: [
14027
- label.label && /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(LabelContainer7, { $required: required, $viewMode: viewMode, children: label.label }),
14063
+ label.label && /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
14064
+ LabelContainer7,
14065
+ {
14066
+ $required: required,
14067
+ $viewMode: viewMode,
14068
+ $breakLabel: props.breakLabel,
14069
+ children: label.label
14070
+ }
14071
+ ),
14028
14072
  viewMode ? /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
14029
14073
  LabelContainer7,
14030
14074
  {
package/dist/index.mjs CHANGED
@@ -155,12 +155,23 @@ var keys = (value) => {
155
155
  var notEmptyString = (value) => {
156
156
  return typeof value === "string" && value.trim() !== "";
157
157
  };
158
+ var isNumber = (value) => {
159
+ return typeof value === "number" && isFinite(value);
160
+ };
158
161
  var isString = (value) => {
159
162
  return typeof value === "string";
160
163
  };
164
+ var isNumeric = (value) => {
165
+ if (isNumber(value)) return true;
166
+ if (!isString(value)) return false;
167
+ return !isNaN(parseFloat(value));
168
+ };
161
169
  var isBoolean = (value) => {
162
170
  return typeof value === "boolean";
163
171
  };
172
+ var isNumericString = (value) => {
173
+ return notEmptyString(value) && isNumeric(value);
174
+ };
164
175
  var isDateInstance = (value) => {
165
176
  return value instanceof Date && !isNaN(value.valueOf());
166
177
  };
@@ -253,6 +264,11 @@ var filterObject = (object, remove, inital = {}) => {
253
264
  );
254
265
  return r;
255
266
  };
267
+ var numberOrDefault = (value, defaultValue2) => {
268
+ if (isNumber(value)) return value;
269
+ if (isNumericString(value)) return parseFloat(value);
270
+ return defaultValue2;
271
+ };
256
272
  var isoStringToDate = (value) => {
257
273
  const [d, t = "00:00:00"] = value.split(" ");
258
274
  const date = /* @__PURE__ */ new Date(
@@ -10003,6 +10019,15 @@ var mask = (v, seconds) => {
10003
10019
  else if (v.length < 5) return v.substring(0, 2) + ":" + v.substring(2);
10004
10020
  else return v.substring(0, 2) + ":" + v.substring(2, 4) + ":" + v.substring(4);
10005
10021
  };
10022
+ var getDate = (value) => {
10023
+ const v = value.replace(/[^0-9\s]/g, "");
10024
+ const h = numberOrDefault(v.substring(0, 2), 0);
10025
+ const m = numberOrDefault(v.substring(2, 4), 0);
10026
+ const s = numberOrDefault(v.substring(4, 6), 0);
10027
+ const date = /* @__PURE__ */ new Date();
10028
+ date.setHours(h, m, s, 0);
10029
+ return date;
10030
+ };
10006
10031
  var Time = React13.forwardRef(
10007
10032
  (props, ref) => {
10008
10033
  const { value, seconds } = props;
@@ -10018,65 +10043,70 @@ var Time = React13.forwardRef(
10018
10043
  const curS = todayDate.getSeconds();
10019
10044
  const value2 = target.value.replace(/[^0-9\s]/g, "");
10020
10045
  let tmp = value2.substring(0, 2);
10021
- let h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, "0"));
10046
+ const h = tmp.length === 0 ? curH : parseInt(tmp.padEnd(2, "0"));
10022
10047
  tmp = value2.substring(2, 4);
10023
- let m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, "0"));
10048
+ const m = tmp.length === 0 ? curM : parseInt(tmp.padEnd(2, "0"));
10024
10049
  tmp = value2.substring(4, 6);
10025
- let s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, "0"));
10050
+ const s = tmp.length === 0 ? curS : parseInt(tmp.padEnd(2, "0"));
10051
+ const date = /* @__PURE__ */ new Date();
10052
+ date.setHours(h);
10053
+ date.setMinutes(m);
10054
+ date.setSeconds(s);
10055
+ const getReference = (date2) => {
10056
+ if (props.min) {
10057
+ const min = getDate(props.min);
10058
+ if (min.getTime() > date2.getTime()) {
10059
+ return min;
10060
+ }
10061
+ }
10062
+ if (props.max) {
10063
+ const max = getDate(props.max);
10064
+ if (max.getTime() < date2.getTime()) {
10065
+ return max;
10066
+ }
10067
+ }
10068
+ return date2;
10069
+ };
10026
10070
  if (event.key === "ArrowUp") {
10027
- const date = /* @__PURE__ */ new Date();
10028
- date.setHours(h);
10029
- date.setMinutes(m);
10030
- date.setSeconds(s);
10031
10071
  if (seconds) {
10032
10072
  date.setSeconds(s + 1);
10033
- h = date.getHours();
10034
- m = date.getMinutes();
10035
- s = date.getSeconds();
10073
+ const reference = getReference(date);
10036
10074
  setValue(
10037
10075
  [
10038
- h.toString().padStart(2, "0"),
10039
- m.toString().padStart(2, "0"),
10040
- s.toString().padStart(2, "0")
10076
+ reference.getHours().toString().padStart(2, "0"),
10077
+ reference.getMinutes().toString().padStart(2, "0"),
10078
+ reference.getSeconds().toString().padStart(2, "0")
10041
10079
  ].join(":")
10042
10080
  );
10043
10081
  } else {
10044
10082
  date.setMinutes(m + 1);
10045
- h = date.getHours();
10046
- m = date.getMinutes();
10047
- s = date.getSeconds();
10083
+ const reference = getReference(date);
10048
10084
  setValue(
10049
- [h.toString().padStart(2, "0"), m.toString().padStart(2, "0")].join(
10050
- ":"
10051
- )
10085
+ [
10086
+ reference.getHours().toString().padStart(2, "0"),
10087
+ reference.getMinutes().toString().padStart(2, "0")
10088
+ ].join(":")
10052
10089
  );
10053
10090
  }
10054
10091
  } else if (event.key === "ArrowDown") {
10055
- const date = /* @__PURE__ */ new Date();
10056
- date.setHours(h);
10057
- date.setMinutes(m);
10058
- date.setSeconds(s);
10059
10092
  if (seconds) {
10060
10093
  date.setSeconds(s - 1);
10061
- h = date.getHours();
10062
- m = date.getMinutes();
10063
- s = date.getSeconds();
10094
+ const reference = getReference(date);
10064
10095
  setValue(
10065
10096
  [
10066
- h.toString().padStart(2, "0"),
10067
- m.toString().padStart(2, "0"),
10068
- s.toString().padStart(2, "0")
10097
+ reference.getHours().toString().padStart(2, "0"),
10098
+ reference.getMinutes().toString().padStart(2, "0"),
10099
+ reference.getSeconds().toString().padStart(2, "0")
10069
10100
  ].join(":")
10070
10101
  );
10071
10102
  } else {
10072
10103
  date.setMinutes(m - 1);
10073
- h = date.getHours();
10074
- m = date.getMinutes();
10075
- s = date.getSeconds();
10104
+ const reference = getReference(date);
10076
10105
  setValue(
10077
- [h.toString().padStart(2, "0"), m.toString().padStart(2, "0")].join(
10078
- ":"
10079
- )
10106
+ [
10107
+ reference.getHours().toString().padStart(2, "0"),
10108
+ reference.getMinutes().toString().padStart(2, "0")
10109
+ ].join(":")
10080
10110
  );
10081
10111
  }
10082
10112
  }
@@ -13838,6 +13868,10 @@ var LabelContainer7 = styled41.div`
13838
13868
  display: flex;
13839
13869
  align-items: center;
13840
13870
 
13871
+ ${({ $breakLabel: breakLabel }) => breakLabel && css31`
13872
+ width: 100%;
13873
+ `}
13874
+
13841
13875
  ${({ $required: required, $viewMode: viewMode }) => {
13842
13876
  if (!required || viewMode) return;
13843
13877
  return css31`
@@ -13862,6 +13896,7 @@ var Label7 = styled41.label`
13862
13896
  gap: ${({ theme: theme4 }) => theme4.spacings.s1};
13863
13897
  position: relative;
13864
13898
  align-items: center;
13899
+ flex-wrap: wrap;
13865
13900
 
13866
13901
  ${({ $disabled: disabled }) => {
13867
13902
  if (!disabled) {
@@ -13957,7 +13992,8 @@ var Switch = (props) => {
13957
13992
  "required",
13958
13993
  "htmlDisabled",
13959
13994
  "labelProps",
13960
- "viewMode"
13995
+ "viewMode",
13996
+ "breakLabel"
13961
13997
  ]);
13962
13998
  htmlProps.disabled = props.disabled || props.htmlDisabled;
13963
13999
  return /* @__PURE__ */ jsxs162(
@@ -13967,7 +14003,15 @@ var Switch = (props) => {
13967
14003
  $disabled: disabled,
13968
14004
  $invalid: invalid,
13969
14005
  children: [
13970
- label.label && /* @__PURE__ */ jsx328(LabelContainer7, { $required: required, $viewMode: viewMode, children: label.label }),
14006
+ label.label && /* @__PURE__ */ jsx328(
14007
+ LabelContainer7,
14008
+ {
14009
+ $required: required,
14010
+ $viewMode: viewMode,
14011
+ $breakLabel: props.breakLabel,
14012
+ children: label.label
14013
+ }
14014
+ ),
13971
14015
  viewMode ? /* @__PURE__ */ jsx328(
13972
14016
  LabelContainer7,
13973
14017
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mw-kit/mw-ui",
3
- "version": "1.8.10",
3
+ "version": "1.8.12",
4
4
  "description": "Made with create-react-library",
5
5
  "author": "fmgusmao",
6
6
  "license": "MIT",