@activecollab/components 2.0.116 → 2.0.118

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 (45) hide show
  1. package/dist/cjs/components/EditableHours/EditableHours.js +1 -1
  2. package/dist/cjs/components/EditableHours/EditableHours.js.map +1 -1
  3. package/dist/cjs/components/ProgressRing/Styles.js +2 -2
  4. package/dist/cjs/components/ProgressRing/Styles.js.map +1 -1
  5. package/dist/cjs/components/SelectTrigger/SelectTrigger.js +11 -1
  6. package/dist/cjs/components/SelectTrigger/SelectTrigger.js.map +1 -1
  7. package/dist/cjs/components/SelectTrigger/Styles.js +6 -3
  8. package/dist/cjs/components/SelectTrigger/Styles.js.map +1 -1
  9. package/dist/cjs/hooks/useInputHours.js +3 -3
  10. package/dist/cjs/hooks/useInputHours.js.map +1 -1
  11. package/dist/cjs/utils/index.js +7 -0
  12. package/dist/cjs/utils/index.js.map +1 -1
  13. package/dist/cjs/utils/timeUtils.js +87 -33
  14. package/dist/cjs/utils/timeUtils.js.map +1 -1
  15. package/dist/cjs/utils/timeUtils.test.js +1 -1
  16. package/dist/cjs/utils/timeUtils.test.js.map +1 -1
  17. package/dist/esm/components/EditableHours/EditableHours.js +2 -2
  18. package/dist/esm/components/EditableHours/EditableHours.js.map +1 -1
  19. package/dist/esm/components/ProgressRing/Styles.js +2 -2
  20. package/dist/esm/components/ProgressRing/Styles.js.map +1 -1
  21. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts +2 -3
  22. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts.map +1 -1
  23. package/dist/esm/components/SelectTrigger/SelectTrigger.js +12 -2
  24. package/dist/esm/components/SelectTrigger/SelectTrigger.js.map +1 -1
  25. package/dist/esm/components/SelectTrigger/Styles.d.ts +2 -3
  26. package/dist/esm/components/SelectTrigger/Styles.d.ts.map +1 -1
  27. package/dist/esm/components/SelectTrigger/Styles.js +8 -3
  28. package/dist/esm/components/SelectTrigger/Styles.js.map +1 -1
  29. package/dist/esm/hooks/useInputHours.js +4 -4
  30. package/dist/esm/hooks/useInputHours.js.map +1 -1
  31. package/dist/esm/utils/index.d.ts +1 -1
  32. package/dist/esm/utils/index.d.ts.map +1 -1
  33. package/dist/esm/utils/index.js +1 -1
  34. package/dist/esm/utils/index.js.map +1 -1
  35. package/dist/esm/utils/timeUtils.d.ts +34 -0
  36. package/dist/esm/utils/timeUtils.d.ts.map +1 -1
  37. package/dist/esm/utils/timeUtils.js +83 -30
  38. package/dist/esm/utils/timeUtils.js.map +1 -1
  39. package/dist/esm/utils/timeUtils.test.js +2 -2
  40. package/dist/esm/utils/timeUtils.test.js.map +1 -1
  41. package/dist/index.js +110 -42
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.min.js +1 -1
  44. package/dist/index.min.js.map +1 -1
  45. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.js","names":["decimalToHours","exports","num","withLeadingZeroHours","arguments","length","undefined","indexOf","_num$split","split","_num$split2","_slicedToArray","_hours","_minutes","Number","concat","withLeadingZero","replace","input","parseFloat","isDecimal","decimal","toFixed","time","toString","hours","minutes","minutes_formatted","Math","round","parseInt","size","s","isInteger"],"sources":["../../../src/utils/timeUtils.ts"],"sourcesContent":["// export const decimalToHours = (decimal: string) => {\n// // we round it on two decimals first, to eliminate quirks, eg, 5.99999999 will return 5:59 instead of 6:00\n// decimal = parseFloat(decimal).toFixed(2);\n// decimal = decimal + \"\";\n// let hours;\n// let minutes_decimal;\n//\n// if (decimal.indexOf(\".\") < 0) {\n// hours = parseInt(decimal);\n// minutes_decimal = 0;\n// } else {\n// hours = parseInt(decimal.substring(0, decimal.indexOf(\".\")));\n// minutes_decimal = decimal.substring(decimal.indexOf(\".\") + 1);\n// minutes_decimal = minutes_decimal.substring(0, 2);\n// if (minutes_decimal.length === 1) {\n// minutes_decimal += \"0\";\n// } // if\n// minutes_decimal = parseInt(minutes_decimal);\n// } // if\n//\n// const minutes = Math.round((minutes_decimal / 100) * 60);\n//\n// if (hours < 10) {\n// hours = `0${hours}`;\n// }\n// return {\n// hours: hours,\n// minutes: minutes,\n// };\n// };\n\nexport const decimalToHours = (\n num: number | string | undefined,\n withLeadingZeroHours = false\n): string => {\n if (!num) {\n return \"\";\n }\n if (typeof num === \"string\" && !num) {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n if (typeof num === \"string\" && num.indexOf(\":\") >= 0) {\n //eslint-disable-next-line\n let [_hours, _minutes] = num.split(\":\");\n if (_minutes && _minutes.length === 1 && Number(_minutes) < 10) {\n _minutes = `${Number(_minutes)}0`;\n }\n if (_hours && _minutes) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(_hours)}:${_minutes}`;\n }\n return `${_hours}:${_minutes}`;\n } else if (!_hours && _minutes) {\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n } else if (!_minutes && _hours) {\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:00`\n : `${_hours}:00`;\n } else {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n }\n if (typeof num === \"string\" && num.indexOf(\",\") >= 0) {\n num = num.replace(\",\", \".\");\n }\n const input = typeof num === \"string\" ? parseFloat(num) : num;\n\n if (!isDecimal(input)) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(input)}:00`;\n }\n return `${input}:00`;\n }\n\n const decimal = input.toFixed(2);\n const time = decimal.toString().split(\".\");\n let hours: string = time[0];\n if (withLeadingZeroHours) {\n hours = withLeadingZero(hours);\n }\n const minutes: string = time[1];\n const minutes_formatted = Math.round((parseInt(minutes, 10) / 100) * 60);\n\n return `${hours}:${withLeadingZero(minutes_formatted)}`;\n};\n\nexport const withLeadingZero = (num: string | number, size = 2) => {\n let s = `${num}`;\n while (s.length < size) s = `0` + s;\n return s;\n};\n\nexport const isDecimal = (num: number): boolean => {\n return !Number.isInteger(num);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"timeUtils.js","names":["formatHours","exports","num","withLeadingZeroHours","arguments","length","undefined","indexOf","_num$split","split","_num$split2","_slicedToArray","_hours","_minutes","Number","concat","withLeadingZero","replace","input","parseFloat","isDecimal","decimal","toFixed","time","toString","hours","minutes","minutes_formatted","Math","round","parseInt","decimalToHours","console","warn","_num$split3","_num$split4","size","s","isInteger"],"sources":["../../../src/utils/timeUtils.ts"],"sourcesContent":["/**\n * @function formatHours\n * @description\n * Formats a decimal number representing hours into a formatted string (HH:MM).\n * The input can be a number, string, or undefined. The function handles various formats\n * and can optionally add a leading zero to the hours component.\n *\n * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.\n * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.\n *\n * @returns {string} - A formatted time string in HH:MM format.\n *\n * @example\n * formatHours(1.5) // \"1:30\"\n * formatHours(\"3.5\", true) // \"03:30\"\n */\nexport const formatHours = (\n num: number | string | undefined,\n withLeadingZeroHours = false\n): string => {\n if (!num) {\n return \"\";\n }\n if (typeof num === \"string\" && !num) {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n if (typeof num === \"string\" && num.indexOf(\":\") >= 0) {\n //eslint-disable-next-line\n let [_hours, _minutes] = num.split(\":\");\n if (_minutes && _minutes.length === 1 && Number(_minutes) < 10) {\n _minutes = `${Number(_minutes)}0`;\n }\n if (_hours && _minutes) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(_hours)}:${_minutes}`;\n }\n return `${_hours}:${_minutes}`;\n } else if (!_hours && _minutes) {\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n } else if (!_minutes && _hours) {\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:00`\n : `${_hours}:00`;\n } else {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n }\n if (typeof num === \"string\" && num.indexOf(\",\") >= 0) {\n num = num.replace(\",\", \".\");\n }\n const input = typeof num === \"string\" ? parseFloat(num) : num;\n\n if (!isDecimal(input)) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(input)}:00`;\n }\n return `${input}:00`;\n }\n\n const decimal = input.toFixed(2);\n const time = decimal.toString().split(\".\");\n let hours: string = time[0];\n if (withLeadingZeroHours) {\n hours = withLeadingZero(hours);\n }\n const minutes: string = time[1];\n const minutes_formatted = Math.round((parseInt(minutes, 10) / 100) * 60);\n\n return `${hours}:${withLeadingZero(minutes_formatted)}`;\n};\n\n/**\n * @function decimalToHours\n * @deprecated\n * @description\n * Converts a decimal number representing hours into a formatted string (HH:MM).\n * The input can be a number, string, or undefined. The function handles various formats\n * and can optionally add a leading zero to the hours component.\n *\n * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.\n * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.\n *\n * @returns {string} - A formatted time string in HH:MM format.\n *\n * @example\n * decimalToHours(1.5) // \"1:30\"\n * decimalToHours(\"3.5\", true) // \"03:30\"\n */\nexport const decimalToHours = (\n num: number | string | undefined,\n withLeadingZeroHours = false\n): string => {\n console.warn(\n \"Deprecated. Please use formatHours from @activecollab/components.\"\n );\n if (!num) {\n return \"\";\n }\n if (typeof num === \"string\" && !num) {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n if (typeof num === \"string\" && num.indexOf(\":\") >= 0) {\n //eslint-disable-next-line\n let [_hours, _minutes] = num.split(\":\");\n if (_minutes && _minutes.length === 1 && Number(_minutes) < 10) {\n _minutes = `${Number(_minutes)}0`;\n }\n if (_hours && _minutes) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(_hours)}:${_minutes}`;\n }\n return `${_hours}:${_minutes}`;\n } else if (!_hours && _minutes) {\n return withLeadingZeroHours ? `00:${_minutes}` : `0:${_minutes}`;\n } else if (!_minutes && _hours) {\n return withLeadingZeroHours\n ? `${withLeadingZero(_hours)}:00`\n : `${_hours}:00`;\n } else {\n return withLeadingZeroHours ? `00:00` : \"0:00\";\n }\n }\n if (typeof num === \"string\" && num.indexOf(\",\") >= 0) {\n num = num.replace(\",\", \".\");\n }\n const input = typeof num === \"string\" ? parseFloat(num) : num;\n\n if (!isDecimal(input)) {\n if (withLeadingZeroHours) {\n return `${withLeadingZero(input)}:00`;\n }\n return `${input}:00`;\n }\n\n const decimal = input.toFixed(2);\n const time = decimal.toString().split(\".\");\n let hours: string = time[0];\n if (withLeadingZeroHours) {\n hours = withLeadingZero(hours);\n }\n const minutes: string = time[1];\n const minutes_formatted = Math.round((parseInt(minutes, 10) / 100) * 60);\n\n return `${hours}:${withLeadingZero(minutes_formatted)}`;\n};\n\nexport const withLeadingZero = (num: string | number, size = 2) => {\n let s = `${num}`;\n while (s.length < size) s = `0` + s;\n return s;\n};\n\nexport const isDecimal = (num: number): boolean => {\n return !Number.isInteger(num);\n};\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ var _timeUtils = require("./timeUtils");
4
4
  describe("timeUtis.ts", function () {
5
5
  it.each([["1:30", "1:30"], ["1:30", "01:30", true], ["1.5", "1:30"], ["1.05", "1:03"], ["5,5", "5:30"], ["5.5", "5:30"], ["5:30", "5:30"], [",5", "0:30"], [".5", "0:30"], ["", ""], [":", "0:00"], ["1:", "1:00"], ["1:", "01:00", true], [":05", "00:05", true], [",05", "00:03", true], [0.5, "00:30", true], [1.5, "01:30", true], [1.5, "1:30", false], ["0:3", "0:30", false], ["555:35", "555:35", false], ["555", "555:00", false], [555.5, "555:30", false]])("should formatTime", function (value, expected) {
6
6
  var leadingZero = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7
- expect((0, _timeUtils.decimalToHours)(value, leadingZero)).toEqual(expected);
7
+ expect((0, _timeUtils.formatHours)(value, leadingZero)).toEqual(expected);
8
8
  });
9
9
  });
10
10
  //# sourceMappingURL=timeUtils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.test.js","names":["_timeUtils","require","describe","it","each","value","expected","leadingZero","arguments","length","undefined","expect","decimalToHours","toEqual"],"sources":["../../../src/utils/timeUtils.test.ts"],"sourcesContent":["import { decimalToHours } from \"./timeUtils\";\n\ndescribe(\"timeUtis.ts\", () => {\n it.each([\n [\"1:30\", \"1:30\"],\n [\"1:30\", \"01:30\", true],\n [\"1.5\", \"1:30\"],\n [\"1.05\", \"1:03\"],\n [\"5,5\", \"5:30\"],\n [\"5.5\", \"5:30\"],\n [\"5:30\", \"5:30\"],\n [\",5\", \"0:30\"],\n [\".5\", \"0:30\"],\n [\"\", \"\"],\n [\":\", \"0:00\"],\n [\"1:\", \"1:00\"],\n [\"1:\", \"01:00\", true],\n [\":05\", \"00:05\", true],\n [\",05\", \"00:03\", true],\n [0.5, \"00:30\", true],\n [1.5, \"01:30\", true],\n [1.5, \"1:30\", false],\n [\"0:3\", \"0:30\", false],\n [\"555:35\", \"555:35\", false],\n [\"555\", \"555:00\", false],\n [555.5, \"555:30\", false],\n ])(\"should formatTime\", (value, expected, leadingZero = false) => {\n expect(decimalToHours(value, leadingZero)).toEqual(expected);\n });\n});\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,aAAa,EAAE,YAAM;EAC5BC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACvB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EACrB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EACpB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EACtB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,mBAAmB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAA0B;IAAA,IAAxBC,WAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC3DG,MAAM,CAAC,IAAAC,yBAAc,EAACP,KAAK,EAAEE,WAAW,CAAC,CAAC,CAACM,OAAO,CAACP,QAAQ,CAAC;EAC9D,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"timeUtils.test.js","names":["_timeUtils","require","describe","it","each","value","expected","leadingZero","arguments","length","undefined","expect","formatHours","toEqual"],"sources":["../../../src/utils/timeUtils.test.ts"],"sourcesContent":["import { formatHours } from \"./timeUtils\";\n\ndescribe(\"timeUtis.ts\", () => {\n it.each([\n [\"1:30\", \"1:30\"],\n [\"1:30\", \"01:30\", true],\n [\"1.5\", \"1:30\"],\n [\"1.05\", \"1:03\"],\n [\"5,5\", \"5:30\"],\n [\"5.5\", \"5:30\"],\n [\"5:30\", \"5:30\"],\n [\",5\", \"0:30\"],\n [\".5\", \"0:30\"],\n [\"\", \"\"],\n [\":\", \"0:00\"],\n [\"1:\", \"1:00\"],\n [\"1:\", \"01:00\", true],\n [\":05\", \"00:05\", true],\n [\",05\", \"00:03\", true],\n [0.5, \"00:30\", true],\n [1.5, \"01:30\", true],\n [1.5, \"1:30\", false],\n [\"0:3\", \"0:30\", false],\n [\"555:35\", \"555:35\", false],\n [\"555\", \"555:00\", false],\n [555.5, \"555:30\", false],\n ])(\"should formatTime\", (value, expected, leadingZero = false) => {\n expect(formatHours(value, leadingZero)).toEqual(expected);\n });\n});\n"],"mappings":";;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,aAAa,EAAE,YAAM;EAC5BC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EACvB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,KAAK,EAAE,MAAM,CAAC,EACf,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,CAAC,IAAI,EAAE,MAAM,CAAC,EACd,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EACrB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EACtB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EACpB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EACpB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EACtB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CACzB,CAAC,CAAC,mBAAmB,EAAE,UAACC,KAAK,EAAEC,QAAQ,EAA0B;IAAA,IAAxBC,WAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC3DG,MAAM,CAAC,IAAAC,sBAAW,EAACP,KAAK,EAAEE,WAAW,CAAC,CAAC,CAACM,OAAO,CAACP,QAAQ,CAAC;EAC3D,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React, { useEffect, useMemo, useRef } from "react";
3
3
  import styled, { css } from "styled-components";
4
4
  import { useInputHours } from "../../hooks/useInputHours";
5
- import { decimalToHours, validateTimeInput } from "../../utils";
5
+ import { formatHours, validateTimeInput } from "../../utils";
6
6
  import useForkRef from "../../utils/useForkRef";
7
7
  import { EditableContent } from "../EditableContent";
8
8
  const StyledEditableContent = styled(EditableContent).withConfig({
@@ -61,7 +61,7 @@ export const EditableHours = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
61
61
  useEffect(() => {
62
62
  let _value;
63
63
  if (defaultValue !== undefined) {
64
- _value = decimalToHours(defaultValue, withLeadingZero);
64
+ _value = formatHours(defaultValue, withLeadingZero);
65
65
  }
66
66
  setCurrentValue(prevState => {
67
67
  if (prevState !== _value) {
@@ -1 +1 @@
1
- {"version":3,"file":"EditableHours.js","names":["React","useEffect","useMemo","useRef","styled","css","useInputHours","decimalToHours","validateTimeInput","useForkRef","EditableContent","StyledEditableContent","withConfig","displayName","componentId","_ref","$ticking","EditableHours","forwardRef","_ref2","ref","value","defaultValue","onCancel","onSave","allowEmptyValue","withLeadingZero","validation","incrementOnlySelected","minuteIncrement","className","onEnterKeyPress","externalEnterKeyPress","inputProps","externalInputProps","onClick","externalOnClick","ticking","onFocus","rest","inputRef","handleRef","setCurrentValue","setPrevValue","onBlur","onKeyDown","onChange","onDoubleClick","_value","undefined","prevState","splitTime","hours","minutes","split","createElement","_extends","type","Fragment"],"sources":["../../../../src/components/EditableHours/EditableHours.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, FocusEvent } from \"react\";\n\nimport styled, { css } from \"styled-components\";\n\nimport { IInputHours, useInputHours } from \"../../hooks/useInputHours\";\nimport { decimalToHours, validateTimeInput } from \"../../utils\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\n\nexport interface EditableHoursProps\n extends EditableContentInterface,\n Omit<IInputHours, \"onChange\"> {\n className?: string;\n ticking?: boolean;\n onFocus?: (event: FocusEvent) => void;\n}\n\nconst StyledEditableContent = styled(EditableContent)<{ $ticking?: boolean }>`\n ${({ $ticking }) =>\n $ticking &&\n css`\n .presentation {\n visibility: visible;\n }\n\n input {\n opacity: 0;\n }\n `}\n`;\n\nexport const EditableHours = React.forwardRef<\n HTMLDivElement,\n EditableHoursProps\n>(\n (\n {\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n withLeadingZero = true,\n validation = validateTimeInput,\n incrementOnlySelected = false,\n minuteIncrement = 1,\n className,\n onEnterKeyPress: externalEnterKeyPress,\n inputProps: externalInputProps,\n onClick: externalOnClick,\n ticking,\n onFocus,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps, setCurrentValue, setPrevValue } = useInputHours(\n {\n value: defaultValue,\n withLeadingZero,\n onSave,\n validation,\n allowEmptyValue,\n onCancel,\n minuteIncrement,\n incrementOnlySelected,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n },\n inputRef\n );\n\n const { value, onBlur, onKeyDown, onChange, onClick, onDoubleClick } =\n inputProps;\n\n useEffect(() => {\n let _value;\n if (defaultValue !== undefined) {\n _value = decimalToHours(defaultValue, withLeadingZero);\n }\n setCurrentValue((prevState) => {\n if (prevState !== _value) {\n return _value;\n }\n return prevState;\n });\n setPrevValue((prevState) => {\n if (prevState !== _value) {\n return _value;\n }\n return prevState;\n });\n }, [defaultValue, setCurrentValue, setPrevValue, withLeadingZero]);\n\n const splitTime = useMemo(() => {\n if (value && ticking) {\n const [hours, minutes] = value.split(\":\");\n\n return {\n hours,\n minutes,\n };\n }\n }, [value, ticking]);\n\n return (\n <StyledEditableContent\n ref={handleRef}\n className={className}\n inputProps={{\n ...externalInputProps,\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n type: \"text\",\n }}\n $ticking={ticking}\n {...rest}\n >\n {ticking && (\n <>\n {splitTime?.hours}\n <span className=\"tw-animate-ping\">:</span>\n {splitTime?.minutes}\n </>\n )}\n </StyledEditableContent>\n );\n }\n);\n\nEditableHours.displayName = \"EditableHours\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"EditableHours.js","names":["React","useEffect","useMemo","useRef","styled","css","useInputHours","formatHours","validateTimeInput","useForkRef","EditableContent","StyledEditableContent","withConfig","displayName","componentId","_ref","$ticking","EditableHours","forwardRef","_ref2","ref","value","defaultValue","onCancel","onSave","allowEmptyValue","withLeadingZero","validation","incrementOnlySelected","minuteIncrement","className","onEnterKeyPress","externalEnterKeyPress","inputProps","externalInputProps","onClick","externalOnClick","ticking","onFocus","rest","inputRef","handleRef","setCurrentValue","setPrevValue","onBlur","onKeyDown","onChange","onDoubleClick","_value","undefined","prevState","splitTime","hours","minutes","split","createElement","_extends","type","Fragment"],"sources":["../../../../src/components/EditableHours/EditableHours.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, FocusEvent } from \"react\";\n\nimport styled, { css } from \"styled-components\";\n\nimport { IInputHours, useInputHours } from \"../../hooks/useInputHours\";\nimport { formatHours, validateTimeInput } from \"../../utils\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\n\nexport interface EditableHoursProps\n extends EditableContentInterface,\n Omit<IInputHours, \"onChange\"> {\n className?: string;\n ticking?: boolean;\n onFocus?: (event: FocusEvent) => void;\n}\n\nconst StyledEditableContent = styled(EditableContent)<{ $ticking?: boolean }>`\n ${({ $ticking }) =>\n $ticking &&\n css`\n .presentation {\n visibility: visible;\n }\n\n input {\n opacity: 0;\n }\n `}\n`;\n\nexport const EditableHours = React.forwardRef<\n HTMLDivElement,\n EditableHoursProps\n>(\n (\n {\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n withLeadingZero = true,\n validation = validateTimeInput,\n incrementOnlySelected = false,\n minuteIncrement = 1,\n className,\n onEnterKeyPress: externalEnterKeyPress,\n inputProps: externalInputProps,\n onClick: externalOnClick,\n ticking,\n onFocus,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps, setCurrentValue, setPrevValue } = useInputHours(\n {\n value: defaultValue,\n withLeadingZero,\n onSave,\n validation,\n allowEmptyValue,\n onCancel,\n minuteIncrement,\n incrementOnlySelected,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n },\n inputRef\n );\n\n const { value, onBlur, onKeyDown, onChange, onClick, onDoubleClick } =\n inputProps;\n\n useEffect(() => {\n let _value;\n if (defaultValue !== undefined) {\n _value = formatHours(defaultValue, withLeadingZero);\n }\n setCurrentValue((prevState) => {\n if (prevState !== _value) {\n return _value;\n }\n return prevState;\n });\n setPrevValue((prevState) => {\n if (prevState !== _value) {\n return _value;\n }\n return prevState;\n });\n }, [defaultValue, setCurrentValue, setPrevValue, withLeadingZero]);\n\n const splitTime = useMemo(() => {\n if (value && ticking) {\n const [hours, minutes] = value.split(\":\");\n\n return {\n hours,\n minutes,\n };\n }\n }, [value, ticking]);\n\n return (\n <StyledEditableContent\n ref={handleRef}\n className={className}\n inputProps={{\n ...externalInputProps,\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n type: \"text\",\n }}\n $ticking={ticking}\n {...rest}\n >\n {ticking && (\n <>\n {splitTime?.hours}\n <span className=\"tw-animate-ping\">:</span>\n {splitTime?.minutes}\n </>\n )}\n </StyledEditableContent>\n );\n }\n);\n\nEditableHours.displayName = \"EditableHours\";\n"],"mappings":"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"}
@@ -17,12 +17,12 @@ StyledSvg.displayName = "StyledSvg";
17
17
  export const StyledBackgroundCircle = styled.circle.withConfig({
18
18
  displayName: "Styles__StyledBackgroundCircle",
19
19
  componentId: "sc-o6dcyu-3"
20
- })(["fill:transparent;transition:stroke-dashoffset 0.5s linear;", " ", ""], props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-theme-transparent-300);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
20
+ })(["fill:transparent;transition:stroke-dashoffset 0.5s linear,stroke 300ms ease-out;", " ", ""], props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-theme-transparent-300);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
21
21
  StyledBackgroundCircle.displayName = "StyledBackgroundCircle";
22
22
  export const StyledForegroundCircle = styled.circle.withConfig({
23
23
  displayName: "Styles__StyledForegroundCircle",
24
24
  componentId: "sc-o6dcyu-4"
25
- })(["fill:transparent;transition:stroke-dashoffset 0.5s linear;", " ", " ", ""], props => props.$roundStroke && css(["stroke-linecap:round;"]), props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-secondary);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
25
+ })(["fill:transparent;transition:stroke-dashoffset 0.5s linear,stroke 300ms ease-out;", " ", " ", ""], props => props.$roundStroke && css(["stroke-linecap:round;"]), props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-secondary);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
26
26
  StyledForegroundCircle.displayName = "StyledForegroundCircle";
27
27
  export const StyledProgressRingPercentage = styled.text.withConfig({
28
28
  displayName: "Styles__StyledProgressRingPercentage",
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","StyledWrapper","div","withConfig","displayName","componentId","StyledChildrenWrapper","StyledSvg","svg","StyledBackgroundCircle","circle","props","$color","$strokeDashOffset","StyledForegroundCircle","$roundStroke","StyledProgressRingPercentage","text","$fontSize"],"sources":["../../../../src/components/ProgressRing/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\ninterface IStyledProgressRing {\n $color?: string;\n $strokeDashOffset?: number;\n $fontSize?: number;\n $roundStroke?: boolean;\n}\n\nexport const StyledWrapper = styled.div`\n position: relative;\n display: inline-flex;\n`;\n\nStyledWrapper.displayName = \"StyledWrapper\";\n\nexport const StyledChildrenWrapper = styled.div`\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n display: inline-flex;\n`;\n\nStyledChildrenWrapper.displayName = \"StyledChildrenWrapper\";\n\nexport const StyledSvg = styled.svg`\n transform: rotate(-90deg);\n`;\n\nStyledSvg.displayName = \"StyledSvg\";\n\nexport const StyledBackgroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-theme-transparent-300);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledBackgroundCircle.displayName = \"StyledBackgroundCircle\";\n\nexport const StyledForegroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$roundStroke &&\n css`\n stroke-linecap: round;\n `}\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledForegroundCircle.displayName = \"StyledForegroundCircle\";\n\nexport const StyledProgressRingPercentage = styled.text<IStyledProgressRing>`\n transform: rotate(90deg);\n\n ${(props) =>\n props.$color\n ? css`\n fill: ${props.$color};\n `\n : css`\n fill: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$fontSize\n ? css`\n font-size: ${props.$fontSize}px;\n `\n : css`\n font-size: 10px;\n `}\n`;\n\nStyledProgressRingPercentage.displayName = \"StyledProgressRingPercentage\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAS/C,OAAO,MAAMC,aAAa,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8CAGtC;AAEDJ,aAAa,CAACG,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAME,qBAAqB,GAAGP,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8FAM9C;AAEDC,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMG,SAAS,GAAGR,MAAM,CAACS,GAAG,CAAAL,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iCAElC;AAEDE,SAAS,CAACH,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAMK,sBAAsB,GAAGV,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,4EAI9CM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,gDAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDJ,sBAAsB,CAACL,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMU,sBAAsB,GAAGf,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iFAI9CM,KAAK,IACNA,KAAK,CAACI,YAAY,IAClBf,GAAG,2BAEF,EAEAW,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,oCAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDC,sBAAsB,CAACV,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMY,4BAA4B,GAAGjB,MAAM,CAACkB,IAAI,CAAAd,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0CAGlDM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,iBACOW,KAAK,CAACC,MAAM,IAEtBZ,GAAG,kCAEF,EAEJW,KAAK,IACNA,KAAK,CAACO,SAAS,GACXlB,GAAG,wBACYW,KAAK,CAACO,SAAS,IAE9BlB,GAAG,qBAEF,CACR;AAEDgB,4BAA4B,CAACZ,WAAW,GAAG,8BAA8B"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","StyledWrapper","div","withConfig","displayName","componentId","StyledChildrenWrapper","StyledSvg","svg","StyledBackgroundCircle","circle","props","$color","$strokeDashOffset","StyledForegroundCircle","$roundStroke","StyledProgressRingPercentage","text","$fontSize"],"sources":["../../../../src/components/ProgressRing/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\ninterface IStyledProgressRing {\n $color?: string;\n $strokeDashOffset?: number;\n $fontSize?: number;\n $roundStroke?: boolean;\n}\n\nexport const StyledWrapper = styled.div`\n position: relative;\n display: inline-flex;\n`;\n\nStyledWrapper.displayName = \"StyledWrapper\";\n\nexport const StyledChildrenWrapper = styled.div`\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n display: inline-flex;\n`;\n\nStyledChildrenWrapper.displayName = \"StyledChildrenWrapper\";\n\nexport const StyledSvg = styled.svg`\n transform: rotate(-90deg);\n`;\n\nStyledSvg.displayName = \"StyledSvg\";\n\nexport const StyledBackgroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear, stroke 300ms ease-out;\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-theme-transparent-300);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledBackgroundCircle.displayName = \"StyledBackgroundCircle\";\n\nexport const StyledForegroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear, stroke 300ms ease-out;\n\n ${(props) =>\n props.$roundStroke &&\n css`\n stroke-linecap: round;\n `}\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledForegroundCircle.displayName = \"StyledForegroundCircle\";\n\nexport const StyledProgressRingPercentage = styled.text<IStyledProgressRing>`\n transform: rotate(90deg);\n\n ${(props) =>\n props.$color\n ? css`\n fill: ${props.$color};\n `\n : css`\n fill: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$fontSize\n ? css`\n font-size: ${props.$fontSize}px;\n `\n : css`\n font-size: 10px;\n `}\n`;\n\nStyledProgressRingPercentage.displayName = \"StyledProgressRingPercentage\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAS/C,OAAO,MAAMC,aAAa,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8CAGtC;AAEDJ,aAAa,CAACG,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAME,qBAAqB,GAAGP,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8FAM9C;AAEDC,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMG,SAAS,GAAGR,MAAM,CAACS,GAAG,CAAAL,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iCAElC;AAEDE,SAAS,CAACH,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAMK,sBAAsB,GAAGV,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kGAI9CM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,gDAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDJ,sBAAsB,CAACL,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMU,sBAAsB,GAAGf,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uGAI9CM,KAAK,IACNA,KAAK,CAACI,YAAY,IAClBf,GAAG,2BAEF,EAEAW,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,oCAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDC,sBAAsB,CAACV,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMY,4BAA4B,GAAGjB,MAAM,CAACkB,IAAI,CAAAd,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0CAGlDM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,iBACOW,KAAK,CAACC,MAAM,IAEtBZ,GAAG,kCAEF,EAEJW,KAAK,IACNA,KAAK,CAACO,SAAS,GACXlB,GAAG,wBACYW,KAAK,CAACO,SAAS,IAE9BlB,GAAG,qBAEF,CACR;AAEDgB,4BAA4B,CAACZ,WAAW,GAAG,8BAA8B"}
@@ -1,9 +1,8 @@
1
1
  import React, { ComponentPropsWithoutRef } from "react";
2
- import { InputMode } from "../Input/types";
2
+ import { InputMode, InputSize } from "../Input/types";
3
3
  import { ITypographyProps } from "../Typography/Typography";
4
- export type Size = "regular" | "big" | "small";
5
4
  export interface SelectTriggerProps extends ComponentPropsWithoutRef<"button"> {
6
- size?: Size;
5
+ size?: InputSize;
7
6
  invalid?: boolean;
8
7
  endAdornment?: JSX.Element;
9
8
  open?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAc,MAAM,0BAA0B,CAAC;AAExE,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IAC5E,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,8FAyCzB,CAAC"}
1
+ {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,wBAAwB,EAAW,MAAM,OAAO,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAc,MAAM,0BAA0B,CAAC;AAExE,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IAC5E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,8FAmDzB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { forwardRef } from "react";
2
+ import React, { forwardRef, useMemo } from "react";
3
3
  import { StyledCaretIcon, StyledSelectTrigger } from "./Styles";
4
4
  import { Typography } from "../Typography/Typography";
5
5
  export const SelectTrigger = /*#__PURE__*/forwardRef((_ref, ref) => {
@@ -14,6 +14,15 @@ export const SelectTrigger = /*#__PURE__*/forwardRef((_ref, ref) => {
14
14
  mode = "outlined",
15
15
  ...rest
16
16
  } = _ref;
17
+ const variant = useMemo(() => {
18
+ if (size === "big") {
19
+ return "Body 1";
20
+ }
21
+ if (size === "biggest") {
22
+ return "Header 2";
23
+ }
24
+ return "Body 2";
25
+ }, [size]);
17
26
  return /*#__PURE__*/React.createElement(StyledSelectTrigger, _extends({
18
27
  ref: ref,
19
28
  role: "button",
@@ -26,7 +35,8 @@ export const SelectTrigger = /*#__PURE__*/forwardRef((_ref, ref) => {
26
35
  as: "div",
27
36
  overflow: "truncate",
28
37
  whitespace: "no-wrap",
29
- variant: size === "small" || size === "regular" ? "Body 2" : "Body 1",
38
+ variant: variant,
39
+ weight: size === "biggest" ? "bold" : "regular",
30
40
  color: mode === "flat" && invalid ? "alert" : undefined
31
41
  }, typographyProps), children), endAdornment ? endAdornment : /*#__PURE__*/React.createElement(StyledCaretIcon, {
32
42
  $open: open
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.js","names":["React","forwardRef","StyledCaretIcon","StyledSelectTrigger","Typography","SelectTrigger","_ref","ref","children","type","size","invalid","open","endAdornment","typographyProps","mode","rest","createElement","_extends","role","$size","$invalid","$mode","as","overflow","whitespace","variant","color","undefined","$open","displayName"],"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\nimport { InputMode } from \"../Input/types\";\nimport { ITypographyProps, Typography } from \"../Typography/Typography\";\n\nexport type Size = \"regular\" | \"big\" | \"small\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: Size;\n invalid?: boolean;\n endAdornment?: JSX.Element;\n open?: boolean;\n typographyProps?: ITypographyProps;\n mode?: InputMode;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n children,\n type = \"button\",\n size = \"regular\",\n invalid = false,\n open = false,\n endAdornment,\n typographyProps,\n mode = \"outlined\",\n ...rest\n },\n ref\n ) => {\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n aria-invalid={invalid}\n $mode={mode}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={size === \"small\" || size === \"regular\" ? \"Body 2\" : \"Body 1\"}\n color={mode === \"flat\" && invalid ? \"alert\" : undefined}\n {...typographyProps}\n >\n {children}\n </Typography>\n\n {endAdornment ? endAdornment : <StyledCaretIcon $open={open} />}\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAkC,OAAO;AAEnE,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,UAAU;AAE/D,SAA2BC,UAAU,QAAQ,0BAA0B;AAavE,OAAO,MAAMC,aAAa,gBAAGJ,UAAU,CACrC,CAAAK,IAAA,EAYEC,GAAG,KACA;EAAA,IAZH;IACEC,QAAQ;IACRC,IAAI,GAAG,QAAQ;IACfC,IAAI,GAAG,SAAS;IAChBC,OAAO,GAAG,KAAK;IACfC,IAAI,GAAG,KAAK;IACZC,YAAY;IACZC,eAAe;IACfC,IAAI,GAAG,UAAU;IACjB,GAAGC;EACL,CAAC,GAAAV,IAAA;EAGD,oBACEN,KAAA,CAAAiB,aAAA,CAACd,mBAAmB,EAAAe,QAAA;IAClBX,GAAG,EAAEA,GAAI;IACTY,IAAI,EAAC,QAAQ;IACbV,IAAI,EAAEA,IAAK;IACXW,KAAK,EAAEV,IAAK;IACZW,QAAQ,EAAEV,OAAQ;IAClB,gBAAcA,OAAQ;IACtBW,KAAK,EAAEP;EAAK,GACRC,IAAI,gBAERhB,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTK,EAAE,EAAC,KAAK;IACRC,QAAQ,EAAC,UAAU;IACnBC,UAAU,EAAC,SAAS;IACpBC,OAAO,EAAEhB,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAS;IACtEiB,KAAK,EAAEZ,IAAI,KAAK,MAAM,IAAIJ,OAAO,GAAG,OAAO,GAAGiB;EAAU,GACpDd,eAAe,GAElBN,QACS,CAAC,EAEZK,YAAY,GAAGA,YAAY,gBAAGb,KAAA,CAAAiB,aAAA,CAACf,eAAe;IAAC2B,KAAK,EAAEjB;EAAK,CAAE,CAC3C,CAAC;AAE1B,CACF,CAAC;AAEDP,aAAa,CAACyB,WAAW,GAAG,eAAe"}
1
+ {"version":3,"file":"SelectTrigger.js","names":["React","forwardRef","useMemo","StyledCaretIcon","StyledSelectTrigger","Typography","SelectTrigger","_ref","ref","children","type","size","invalid","open","endAdornment","typographyProps","mode","rest","variant","createElement","_extends","role","$size","$invalid","$mode","as","overflow","whitespace","weight","color","undefined","$open","displayName"],"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef, useMemo } from \"react\";\n\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { ITypographyProps, Typography } from \"../Typography/Typography\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: InputSize;\n invalid?: boolean;\n endAdornment?: JSX.Element;\n open?: boolean;\n typographyProps?: ITypographyProps;\n mode?: InputMode;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n children,\n type = \"button\",\n size = \"regular\",\n invalid = false,\n open = false,\n endAdornment,\n typographyProps,\n mode = \"outlined\",\n ...rest\n },\n ref\n ) => {\n const variant = useMemo(() => {\n if (size === \"big\") {\n return \"Body 1\";\n }\n if (size === \"biggest\") {\n return \"Header 2\";\n }\n return \"Body 2\";\n }, [size]);\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n aria-invalid={invalid}\n $mode={mode}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={variant}\n weight={size === \"biggest\" ? \"bold\" : \"regular\"}\n color={mode === \"flat\" && invalid ? \"alert\" : undefined}\n {...typographyProps}\n >\n {children}\n </Typography>\n\n {endAdornment ? endAdornment : <StyledCaretIcon $open={open} />}\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAA4BC,OAAO,QAAQ,OAAO;AAE5E,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,UAAU;AAE/D,SAA2BC,UAAU,QAAQ,0BAA0B;AAWvE,OAAO,MAAMC,aAAa,gBAAGL,UAAU,CACrC,CAAAM,IAAA,EAYEC,GAAG,KACA;EAAA,IAZH;IACEC,QAAQ;IACRC,IAAI,GAAG,QAAQ;IACfC,IAAI,GAAG,SAAS;IAChBC,OAAO,GAAG,KAAK;IACfC,IAAI,GAAG,KAAK;IACZC,YAAY;IACZC,eAAe;IACfC,IAAI,GAAG,UAAU;IACjB,GAAGC;EACL,CAAC,GAAAV,IAAA;EAGD,MAAMW,OAAO,GAAGhB,OAAO,CAAC,MAAM;IAC5B,IAAIS,IAAI,KAAK,KAAK,EAAE;MAClB,OAAO,QAAQ;IACjB;IACA,IAAIA,IAAI,KAAK,SAAS,EAAE;MACtB,OAAO,UAAU;IACnB;IACA,OAAO,QAAQ;EACjB,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EACV,oBACEX,KAAA,CAAAmB,aAAA,CAACf,mBAAmB,EAAAgB,QAAA;IAClBZ,GAAG,EAAEA,GAAI;IACTa,IAAI,EAAC,QAAQ;IACbX,IAAI,EAAEA,IAAK;IACXY,KAAK,EAAEX,IAAK;IACZY,QAAQ,EAAEX,OAAQ;IAClB,gBAAcA,OAAQ;IACtBY,KAAK,EAAER;EAAK,GACRC,IAAI,gBAERjB,KAAA,CAAAmB,aAAA,CAACd,UAAU,EAAAe,QAAA;IACTK,EAAE,EAAC,KAAK;IACRC,QAAQ,EAAC,UAAU;IACnBC,UAAU,EAAC,SAAS;IACpBT,OAAO,EAAEA,OAAQ;IACjBU,MAAM,EAAEjB,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG,SAAU;IAChDkB,KAAK,EAAEb,IAAI,KAAK,MAAM,IAAIJ,OAAO,GAAG,OAAO,GAAGkB;EAAU,GACpDf,eAAe,GAElBN,QACS,CAAC,EAEZK,YAAY,GAAGA,YAAY,gBAAGd,KAAA,CAAAmB,aAAA,CAAChB,eAAe;IAAC4B,KAAK,EAAElB;EAAK,CAAE,CAC3C,CAAC;AAE1B,CACF,CAAC;AAEDP,aAAa,CAAC0B,WAAW,GAAG,eAAe"}
@@ -1,8 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { Size } from "./SelectTrigger";
3
- import { InputMode } from "../Input/types";
2
+ import { InputMode, InputSize } from "../Input/types";
4
3
  export declare const StyledSelectTrigger: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>, any, {
5
- $size?: Size | undefined;
4
+ $size?: InputSize | undefined;
6
5
  $invalid?: boolean | undefined;
7
6
  $mode?: InputMode | undefined;
8
7
  }, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/Styles.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,eAAO,MAAM,mBAAmB;;;;SAsE/B,CAAC;AAIF,eAAO,MAAM,eAAe;WACnB,OAAO;SAWf,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/Styles.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtD,eAAO,MAAM,mBAAmB;;;;SA6E/B,CAAC;AAIF,eAAO,MAAM,eAAe;WACnB,OAAO;SAWf,CAAC"}
@@ -4,7 +4,7 @@ import { Trigger } from "../Trigger";
4
4
  export const StyledSelectTrigger = styled(Trigger).withConfig({
5
5
  displayName: "Styles__StyledSelectTrigger",
6
6
  componentId: "sc-9799p2-0"
7
- })(["display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 8px;width:300px;transition:border-color 0.3s ease;background-color:transparent;border:none;", " ", " ", " ", " ", " ", " ", ";"], _ref => {
7
+ })(["display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 8px;width:300px;transition:border-color 0.3s ease;background-color:transparent;border:none;", " ", " ", " ", " ", " ", " ", ";", ";"], _ref => {
8
8
  let {
9
9
  $mode
10
10
  } = _ref;
@@ -46,15 +46,20 @@ export const StyledSelectTrigger = styled(Trigger).withConfig({
46
46
  $size
47
47
  } = _ref7;
48
48
  return $size === "big" && css(["height:40px;border-radius:var(--ac-br-8);"]);
49
+ }, _ref8 => {
50
+ let {
51
+ $size
52
+ } = _ref8;
53
+ return $size === "biggest" && css(["height:48px;border-radius:var(--ac-br-8);"]);
49
54
  });
50
55
  StyledSelectTrigger.displayName = "StyledSelectTrigger";
51
56
  export const StyledCaretIcon = styled(CollapseExpandSingleIcon).withConfig({
52
57
  displayName: "Styles__StyledCaretIcon",
53
58
  componentId: "sc-9799p2-1"
54
- })(["margin-left:8px;flex-shrink:0;transition:transform 200ms ease;", ""], _ref8 => {
59
+ })(["margin-left:8px;flex-shrink:0;transition:transform 200ms ease;", ""], _ref9 => {
55
60
  let {
56
61
  $open
57
- } = _ref8;
62
+ } = _ref9;
58
63
  return !$open && css(["transform:rotate(180deg);"]);
59
64
  });
60
65
  StyledCaretIcon.displayName = "StyledCaretIcon";
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","CollapseExpandSingleIcon","Trigger","StyledSelectTrigger","withConfig","displayName","componentId","_ref","$mode","_ref2","disabled","_ref3","$invalid","_ref4","_ref5","$size","_ref6","_ref7","StyledCaretIcon","_ref8","$open"],"sources":["../../../../src/components/SelectTrigger/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Size } from \"./SelectTrigger\";\nimport { CollapseExpandSingleIcon } from \"../Icons\";\nimport { InputMode } from \"../Input/types\";\nimport { Trigger } from \"../Trigger\";\n\nexport const StyledSelectTrigger = styled(Trigger)<{\n $size?: Size;\n $invalid?: boolean;\n $mode?: InputMode;\n}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 4px 0 8px;\n width: 300px;\n transition: border-color 0.3s ease;\n background-color: transparent;\n border: none;\n\n ${({ $mode }) =>\n $mode === \"outlined\" &&\n css`\n border: 1px solid var(--color-theme-500);\n background-color: var(--input-background-color);\n `}\n\n ${({ disabled }) =>\n disabled &&\n css`\n opacity: 50%;\n cursor: default;\n `}\n\n ${({ $invalid, disabled, $mode }) =>\n !$invalid &&\n !disabled &&\n $mode === \"outlined\" &&\n css`\n &:hover,\n &:focus {\n border-color: var(--color-primary-700);\n }\n `}\n\n ${({ $invalid, $mode }) =>\n $invalid &&\n $mode === \"outlined\" &&\n css`\n ${tw`tw-border-alert`}\n\n &:hover {\n ${tw`tw-border-alert`}\n }\n `}\n\n ${({ $size }) =>\n $size === \"small\" &&\n css`\n height: 24px;\n border-radius: var(--ac-br-6);\n `}\n\n ${({ $size }) =>\n $size === \"regular\" &&\n css`\n height: 32px;\n border-radius: var(--ac-br-8);\n `}\n\n ${({ $size }) =>\n $size === \"big\" &&\n css`\n height: 40px;\n border-radius: var(--ac-br-8);\n `};\n`;\n\nStyledSelectTrigger.displayName = \"StyledSelectTrigger\";\n\nexport const StyledCaretIcon = styled(CollapseExpandSingleIcon)<{\n $open: boolean;\n}>`\n margin-left: 8px;\n flex-shrink: 0;\n transition: transform 200ms ease;\n\n ${({ $open }) =>\n !$open &&\n css`\n transform: rotate(180deg);\n `}\n`;\n\nStyledCaretIcon.displayName = \"StyledCaretIcon\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAI/C,SAASC,wBAAwB,QAAQ,UAAU;AAEnD,SAASC,OAAO,QAAQ,YAAY;AAEpC,OAAO,MAAMC,mBAAmB,GAAGJ,MAAM,CAACG,OAAO,CAAC,CAAAE,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qNAc9CC,IAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,IAAA;EAAA,OACVC,KAAK,KAAK,UAAU,IACpBR,GAAG,6FAGF;AAAA,GAEDS,KAAA;EAAA,IAAC;IAAEC;EAAS,CAAC,GAAAD,KAAA;EAAA,OACbC,QAAQ,IACRV,GAAG,iCAGF;AAAA,GAEDW,KAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEF,QAAQ;IAAEF;EAAM,CAAC,GAAAG,KAAA;EAAA,OAC9B,CAACC,QAAQ,IACT,CAACF,QAAQ,IACTF,KAAK,KAAK,UAAU,IACpBR,GAAG,6DAKF;AAAA,GAEDa,KAAA;EAAA,IAAC;IAAED,QAAQ;IAAEJ;EAAM,CAAC,GAAAK,KAAA;EAAA,OACpBD,QAAQ,IACRJ,KAAK,KAAK,UAAU,IACpBR,GAAG,yBACG;IAAA;EAAgB,CAAC,EAGf;IAAA;EAAgB,CAAC,CAExB;AAAA,GAEDc,KAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,KAAA;EAAA,OACVC,KAAK,KAAK,OAAO,IACjBf,GAAG,+CAGF;AAAA,GAEDgB,KAAA;EAAA,IAAC;IAAED;EAAM,CAAC,GAAAC,KAAA;EAAA,OACVD,KAAK,KAAK,SAAS,IACnBf,GAAG,+CAGF;AAAA,GAECiB,KAAA;EAAA,IAAC;IAAEF;EAAM,CAAC,GAAAE,KAAA;EAAA,OACZF,KAAK,KAAK,KAAK,IACff,GAAG,+CAGF;AAAA,EACJ;AAEDG,mBAAmB,CAACE,WAAW,GAAG,qBAAqB;AAEvD,OAAO,MAAMa,eAAe,GAAGnB,MAAM,CAACE,wBAAwB,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2EAO3Da,KAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,KAAA;EAAA,OACV,CAACC,KAAK,IACNpB,GAAG,+BAEF;AAAA,EACJ;AAEDkB,eAAe,CAACb,WAAW,GAAG,iBAAiB"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","CollapseExpandSingleIcon","Trigger","StyledSelectTrigger","withConfig","displayName","componentId","_ref","$mode","_ref2","disabled","_ref3","$invalid","_ref4","_ref5","$size","_ref6","_ref7","_ref8","StyledCaretIcon","_ref9","$open"],"sources":["../../../../src/components/SelectTrigger/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { CollapseExpandSingleIcon } from \"../Icons\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { Trigger } from \"../Trigger\";\n\nexport const StyledSelectTrigger = styled(Trigger)<{\n $size?: InputSize;\n $invalid?: boolean;\n $mode?: InputMode;\n}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 4px 0 8px;\n width: 300px;\n transition: border-color 0.3s ease;\n background-color: transparent;\n border: none;\n\n ${({ $mode }) =>\n $mode === \"outlined\" &&\n css`\n border: 1px solid var(--color-theme-500);\n background-color: var(--input-background-color);\n `}\n\n ${({ disabled }) =>\n disabled &&\n css`\n opacity: 50%;\n cursor: default;\n `}\n\n ${({ $invalid, disabled, $mode }) =>\n !$invalid &&\n !disabled &&\n $mode === \"outlined\" &&\n css`\n &:hover,\n &:focus {\n border-color: var(--color-primary-700);\n }\n `}\n\n ${({ $invalid, $mode }) =>\n $invalid &&\n $mode === \"outlined\" &&\n css`\n ${tw`tw-border-alert`}\n\n &:hover {\n ${tw`tw-border-alert`}\n }\n `}\n\n ${({ $size }) =>\n $size === \"small\" &&\n css`\n height: 24px;\n border-radius: var(--ac-br-6);\n `}\n\n ${({ $size }) =>\n $size === \"regular\" &&\n css`\n height: 32px;\n border-radius: var(--ac-br-8);\n `}\n\n ${({ $size }) =>\n $size === \"big\" &&\n css`\n height: 40px;\n border-radius: var(--ac-br-8);\n `};\n\n ${({ $size }) =>\n $size === \"biggest\" &&\n css`\n height: 48px;\n border-radius: var(--ac-br-8);\n `};\n`;\n\nStyledSelectTrigger.displayName = \"StyledSelectTrigger\";\n\nexport const StyledCaretIcon = styled(CollapseExpandSingleIcon)<{\n $open: boolean;\n}>`\n margin-left: 8px;\n flex-shrink: 0;\n transition: transform 200ms ease;\n\n ${({ $open }) =>\n !$open &&\n css`\n transform: rotate(180deg);\n `}\n`;\n\nStyledCaretIcon.displayName = \"StyledCaretIcon\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,wBAAwB,QAAQ,UAAU;AAEnD,SAASC,OAAO,QAAQ,YAAY;AAEpC,OAAO,MAAMC,mBAAmB,GAAGJ,MAAM,CAACG,OAAO,CAAC,CAAAE,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0NAc9CC,IAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,IAAA;EAAA,OACVC,KAAK,KAAK,UAAU,IACpBR,GAAG,6FAGF;AAAA,GAEDS,KAAA;EAAA,IAAC;IAAEC;EAAS,CAAC,GAAAD,KAAA;EAAA,OACbC,QAAQ,IACRV,GAAG,iCAGF;AAAA,GAEDW,KAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEF,QAAQ;IAAEF;EAAM,CAAC,GAAAG,KAAA;EAAA,OAC9B,CAACC,QAAQ,IACT,CAACF,QAAQ,IACTF,KAAK,KAAK,UAAU,IACpBR,GAAG,6DAKF;AAAA,GAEDa,KAAA;EAAA,IAAC;IAAED,QAAQ;IAAEJ;EAAM,CAAC,GAAAK,KAAA;EAAA,OACpBD,QAAQ,IACRJ,KAAK,KAAK,UAAU,IACpBR,GAAG,yBACG;IAAA;EAAgB,CAAC,EAGf;IAAA;EAAgB,CAAC,CAExB;AAAA,GAEDc,KAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,KAAA;EAAA,OACVC,KAAK,KAAK,OAAO,IACjBf,GAAG,+CAGF;AAAA,GAEDgB,KAAA;EAAA,IAAC;IAAED;EAAM,CAAC,GAAAC,KAAA;EAAA,OACVD,KAAK,KAAK,SAAS,IACnBf,GAAG,+CAGF;AAAA,GAECiB,KAAA;EAAA,IAAC;IAAEF;EAAM,CAAC,GAAAE,KAAA;EAAA,OACZF,KAAK,KAAK,KAAK,IACff,GAAG,+CAGF;AAAA,GAEDkB,KAAA;EAAA,IAAC;IAAEH;EAAM,CAAC,GAAAG,KAAA;EAAA,OACVH,KAAK,KAAK,SAAS,IACnBf,GAAG,+CAGF;AAAA,EACJ;AAEDG,mBAAmB,CAACE,WAAW,GAAG,qBAAqB;AAEvD,OAAO,MAAMc,eAAe,GAAGpB,MAAM,CAACE,wBAAwB,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2EAO3Dc,KAAA;EAAA,IAAC;IAAEC;EAAM,CAAC,GAAAD,KAAA;EAAA,OACV,CAACC,KAAK,IACNrB,GAAG,+BAEF;AAAA,EACJ;AAEDmB,eAAe,CAACd,WAAW,GAAG,iBAAiB"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useMemo, useRef, useState } from "react";
2
- import { decimalToHours } from "../utils";
2
+ import { formatHours } from "../utils";
3
3
  import { validateTimeInput } from "../utils";
4
4
  export const useInputHours = (_ref, inputRef) => {
5
5
  let {
@@ -15,15 +15,15 @@ export const useInputHours = (_ref, inputRef) => {
15
15
  onChange,
16
16
  onClick
17
17
  } = _ref;
18
- const [currentValue, setCurrentValue] = useState(() => decimalToHours(value, withLeadingZero));
19
- const [prevValue, setPrevValue] = useState(() => decimalToHours(value, withLeadingZero));
18
+ const [currentValue, setCurrentValue] = useState(() => formatHours(value, withLeadingZero));
19
+ const [prevValue, setPrevValue] = useState(() => formatHours(value, withLeadingZero));
20
20
  const escapeRef = useRef(false);
21
21
  const handleBlur = useCallback(e => {
22
22
  if (escapeRef.current) {
23
23
  setCurrentValue(prevValue);
24
24
  } else {
25
25
  if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {
26
- const _value = decimalToHours(e.target.value, withLeadingZero);
26
+ const _value = formatHours(e.target.value, withLeadingZero);
27
27
  setPrevValue(_value);
28
28
  setCurrentValue(_value);
29
29
  typeof onSave === "function" && onSave(e);
@@ -1 +1 @@
1
- {"version":3,"file":"useInputHours.js","names":["useCallback","useMemo","useRef","useState","decimalToHours","validateTimeInput","useInputHours","_ref","inputRef","value","withLeadingZero","onSave","validation","allowEmptyValue","onCancel","minuteIncrement","incrementOnlySelected","onEnterKeyPress","onChange","onClick","currentValue","setCurrentValue","prevValue","setPrevValue","escapeRef","handleBlur","e","current","target","trim","length","_value","handleIncrementDecrement","increment","selectionStart","dotsIndex","indexOf","hours","minutes","split","map","Number","newHours","newMinutes","newMinutesString","newHoursString","newValue","requestAnimationFrame","_inputRef$current","newDotsIndex","isHoursSelected","newSelectionStart","selectionEnd","setSelectionRange","handleKeyDown","key","blur","metaKey","ctrlKey","_inputRef$current2","select","input","start","end","shiftKey","isMinutesSelected","_inputRef$current3","preventDefault","_inputRef$current4","substring","handleChange","handleClick","_inputRef$current5","_inputRef$current6","_inputRef$current7","handleDoubleClick","_inputRef$current8","inputProps","onBlur","onKeyDown","onDoubleClick"],"sources":["../../../src/hooks/useInputHours.tsx"],"sourcesContent":["import {\n RefObject,\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n} from \"react\";\n\nimport { decimalToHours } from \"../utils\";\nimport { validateTimeInput } from \"../utils\";\n\nexport interface IInputHours {\n value?: string | number;\n withLeadingZero?: boolean;\n onSave?: (e: Event) => void;\n validation?: (...args) => boolean;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n minuteIncrement?: number;\n incrementOnlySelected?: boolean;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n}\n\nexport const useInputHours = (\n {\n value,\n withLeadingZero,\n onSave,\n validation = validateTimeInput,\n allowEmptyValue,\n onCancel,\n minuteIncrement = 1,\n incrementOnlySelected,\n onEnterKeyPress,\n onChange,\n onClick,\n }: IInputHours,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n decimalToHours(value, withLeadingZero)\n );\n const [prevValue, setPrevValue] = useState(() =>\n decimalToHours(value, withLeadingZero)\n );\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = decimalToHours(e.target.value, withLeadingZero);\n setPrevValue(_value);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n },\n [allowEmptyValue, onCancel, onSave, prevValue, withLeadingZero]\n );\n\n const handleIncrementDecrement = useCallback(\n (increment: boolean) => {\n if (inputRef.current) {\n const selectionStart = inputRef.current.selectionStart;\n if (selectionStart !== null) {\n const dotsIndex = currentValue.indexOf(\":\");\n const [hours, minutes] = currentValue.split(\":\").map(Number);\n let newHours = hours;\n let newMinutes = minutes;\n\n if (selectionStart < dotsIndex) {\n if (increment) {\n newHours += 1;\n } else {\n newHours -= 1;\n if (newHours < 0) newHours = 0;\n }\n } else if (selectionStart > dotsIndex) {\n if (increment) {\n newMinutes += minuteIncrement;\n if (newMinutes > 59) {\n newMinutes = 0;\n if (!incrementOnlySelected) newHours += 1;\n }\n } else {\n if (newMinutes >= minuteIncrement || newMinutes === 0) {\n newMinutes -= minuteIncrement;\n if (newMinutes < 0 && newHours > 0) {\n newMinutes = 60 - minuteIncrement;\n if (!incrementOnlySelected) newHours -= 1;\n }\n if (newHours < 0) {\n newHours = 0;\n }\n } else {\n newMinutes = 0;\n }\n }\n }\n\n const newMinutesString =\n newMinutes < 10 ? `0${newMinutes}` : newMinutes;\n const newHoursString =\n withLeadingZero && newHours < 10 ? `0${newHours}` : newHours;\n const newValue = `${newHoursString}:${newMinutesString}`;\n\n if (validation(newValue, withLeadingZero)) {\n setCurrentValue(newValue);\n\n if (onChange) onChange(newValue);\n\n requestAnimationFrame(() => {\n const newDotsIndex = newValue.indexOf(\":\");\n const isHoursSelected = selectionStart < newDotsIndex;\n const newSelectionStart = isHoursSelected ? 0 : newDotsIndex + 1;\n const selectionEnd = isHoursSelected\n ? newDotsIndex\n : newValue.length;\n inputRef.current?.setSelectionRange(\n newSelectionStart,\n selectionEnd\n );\n });\n }\n }\n }\n },\n [\n currentValue,\n incrementOnlySelected,\n inputRef,\n minuteIncrement,\n onChange,\n validation,\n withLeadingZero,\n ]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n const input = e.target;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const currentValue = input.value;\n if (e.key === \"Tab\") {\n if (start !== end) {\n if (e.shiftKey) {\n const newDotsIndex = currentValue.indexOf(\":\");\n const isMinutesSelected = start > newDotsIndex;\n if (isMinutesSelected) {\n e.preventDefault();\n inputRef.current?.setSelectionRange(0, newDotsIndex);\n }\n } else {\n const newDotsIndex = currentValue.indexOf(\":\");\n const isHoursSelected = start < newDotsIndex;\n if (isHoursSelected) {\n e.preventDefault();\n inputRef.current?.setSelectionRange(\n newDotsIndex + 1,\n currentValue.length\n );\n }\n }\n }\n return;\n }\n\n if (start !== end) {\n if (e.key === \"ArrowUp\") {\n handleIncrementDecrement(true);\n return;\n }\n if (e.key === \"ArrowDown\") {\n handleIncrementDecrement(false);\n return;\n }\n const newValue =\n currentValue.substring(0, start) +\n e.key +\n currentValue.substring(end);\n if (!validation(newValue, withLeadingZero)) {\n e.preventDefault();\n return;\n }\n } else {\n const newValue =\n currentValue.substring(0, start) +\n e.key +\n currentValue.substring(end);\n\n if (!validation(newValue, withLeadingZero)) {\n e.preventDefault();\n return;\n }\n }\n },\n [\n handleIncrementDecrement,\n inputRef,\n onCancel,\n onEnterKeyPress,\n validation,\n withLeadingZero,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n setCurrentValue(e.target.value);\n if (onChange) onChange(e.target.value);\n },\n [onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n const selectionStart = inputRef.current?.selectionStart;\n if (\n inputRef.current &&\n currentValue &&\n currentValue.length > 0 &&\n typeof selectionStart === \"number\"\n ) {\n const dotsIndex = currentValue.indexOf(\":\");\n if (selectionStart < dotsIndex) {\n inputRef.current?.setSelectionRange(0, dotsIndex);\n } else if (selectionStart >= dotsIndex) {\n inputRef.current?.setSelectionRange(\n dotsIndex + 1,\n currentValue.length\n );\n }\n }\n\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [currentValue, inputRef, onClick]\n );\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n };\n }, [\n currentValue,\n handleBlur,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleKeyDown,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useInputHours.js","names":["useCallback","useMemo","useRef","useState","formatHours","validateTimeInput","useInputHours","_ref","inputRef","value","withLeadingZero","onSave","validation","allowEmptyValue","onCancel","minuteIncrement","incrementOnlySelected","onEnterKeyPress","onChange","onClick","currentValue","setCurrentValue","prevValue","setPrevValue","escapeRef","handleBlur","e","current","target","trim","length","_value","handleIncrementDecrement","increment","selectionStart","dotsIndex","indexOf","hours","minutes","split","map","Number","newHours","newMinutes","newMinutesString","newHoursString","newValue","requestAnimationFrame","_inputRef$current","newDotsIndex","isHoursSelected","newSelectionStart","selectionEnd","setSelectionRange","handleKeyDown","key","blur","metaKey","ctrlKey","_inputRef$current2","select","input","start","end","shiftKey","isMinutesSelected","_inputRef$current3","preventDefault","_inputRef$current4","substring","handleChange","handleClick","_inputRef$current5","_inputRef$current6","_inputRef$current7","handleDoubleClick","_inputRef$current8","inputProps","onBlur","onKeyDown","onDoubleClick"],"sources":["../../../src/hooks/useInputHours.tsx"],"sourcesContent":["import {\n RefObject,\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n} from \"react\";\n\nimport { formatHours } from \"../utils\";\nimport { validateTimeInput } from \"../utils\";\n\nexport interface IInputHours {\n value?: string | number;\n withLeadingZero?: boolean;\n onSave?: (e: Event) => void;\n validation?: (...args) => boolean;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n minuteIncrement?: number;\n incrementOnlySelected?: boolean;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n}\n\nexport const useInputHours = (\n {\n value,\n withLeadingZero,\n onSave,\n validation = validateTimeInput,\n allowEmptyValue,\n onCancel,\n minuteIncrement = 1,\n incrementOnlySelected,\n onEnterKeyPress,\n onChange,\n onClick,\n }: IInputHours,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n formatHours(value, withLeadingZero)\n );\n const [prevValue, setPrevValue] = useState(() =>\n formatHours(value, withLeadingZero)\n );\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = formatHours(e.target.value, withLeadingZero);\n setPrevValue(_value);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n },\n [allowEmptyValue, onCancel, onSave, prevValue, withLeadingZero]\n );\n\n const handleIncrementDecrement = useCallback(\n (increment: boolean) => {\n if (inputRef.current) {\n const selectionStart = inputRef.current.selectionStart;\n if (selectionStart !== null) {\n const dotsIndex = currentValue.indexOf(\":\");\n const [hours, minutes] = currentValue.split(\":\").map(Number);\n let newHours = hours;\n let newMinutes = minutes;\n\n if (selectionStart < dotsIndex) {\n if (increment) {\n newHours += 1;\n } else {\n newHours -= 1;\n if (newHours < 0) newHours = 0;\n }\n } else if (selectionStart > dotsIndex) {\n if (increment) {\n newMinutes += minuteIncrement;\n if (newMinutes > 59) {\n newMinutes = 0;\n if (!incrementOnlySelected) newHours += 1;\n }\n } else {\n if (newMinutes >= minuteIncrement || newMinutes === 0) {\n newMinutes -= minuteIncrement;\n if (newMinutes < 0 && newHours > 0) {\n newMinutes = 60 - minuteIncrement;\n if (!incrementOnlySelected) newHours -= 1;\n }\n if (newHours < 0) {\n newHours = 0;\n }\n } else {\n newMinutes = 0;\n }\n }\n }\n\n const newMinutesString =\n newMinutes < 10 ? `0${newMinutes}` : newMinutes;\n const newHoursString =\n withLeadingZero && newHours < 10 ? `0${newHours}` : newHours;\n const newValue = `${newHoursString}:${newMinutesString}`;\n\n if (validation(newValue, withLeadingZero)) {\n setCurrentValue(newValue);\n\n if (onChange) onChange(newValue);\n\n requestAnimationFrame(() => {\n const newDotsIndex = newValue.indexOf(\":\");\n const isHoursSelected = selectionStart < newDotsIndex;\n const newSelectionStart = isHoursSelected ? 0 : newDotsIndex + 1;\n const selectionEnd = isHoursSelected\n ? newDotsIndex\n : newValue.length;\n inputRef.current?.setSelectionRange(\n newSelectionStart,\n selectionEnd\n );\n });\n }\n }\n }\n },\n [\n currentValue,\n incrementOnlySelected,\n inputRef,\n minuteIncrement,\n onChange,\n validation,\n withLeadingZero,\n ]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n const input = e.target;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const currentValue = input.value;\n if (e.key === \"Tab\") {\n if (start !== end) {\n if (e.shiftKey) {\n const newDotsIndex = currentValue.indexOf(\":\");\n const isMinutesSelected = start > newDotsIndex;\n if (isMinutesSelected) {\n e.preventDefault();\n inputRef.current?.setSelectionRange(0, newDotsIndex);\n }\n } else {\n const newDotsIndex = currentValue.indexOf(\":\");\n const isHoursSelected = start < newDotsIndex;\n if (isHoursSelected) {\n e.preventDefault();\n inputRef.current?.setSelectionRange(\n newDotsIndex + 1,\n currentValue.length\n );\n }\n }\n }\n return;\n }\n\n if (start !== end) {\n if (e.key === \"ArrowUp\") {\n handleIncrementDecrement(true);\n return;\n }\n if (e.key === \"ArrowDown\") {\n handleIncrementDecrement(false);\n return;\n }\n const newValue =\n currentValue.substring(0, start) +\n e.key +\n currentValue.substring(end);\n if (!validation(newValue, withLeadingZero)) {\n e.preventDefault();\n return;\n }\n } else {\n const newValue =\n currentValue.substring(0, start) +\n e.key +\n currentValue.substring(end);\n\n if (!validation(newValue, withLeadingZero)) {\n e.preventDefault();\n return;\n }\n }\n },\n [\n handleIncrementDecrement,\n inputRef,\n onCancel,\n onEnterKeyPress,\n validation,\n withLeadingZero,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n setCurrentValue(e.target.value);\n if (onChange) onChange(e.target.value);\n },\n [onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n const selectionStart = inputRef.current?.selectionStart;\n if (\n inputRef.current &&\n currentValue &&\n currentValue.length > 0 &&\n typeof selectionStart === \"number\"\n ) {\n const dotsIndex = currentValue.indexOf(\":\");\n if (selectionStart < dotsIndex) {\n inputRef.current?.setSelectionRange(0, dotsIndex);\n } else if (selectionStart >= dotsIndex) {\n inputRef.current?.setSelectionRange(\n dotsIndex + 1,\n currentValue.length\n );\n }\n }\n\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [currentValue, inputRef, onClick]\n );\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n };\n }, [\n currentValue,\n handleBlur,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleKeyDown,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":"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"}
@@ -3,6 +3,6 @@ export * from "./colors";
3
3
  export * from "./validation";
4
4
  export { default as useForkRef } from "./useForkRef";
5
5
  export { default as useResizeObserver } from "./useResizeObserver";
6
- export { decimalToHours } from "./timeUtils";
6
+ export { decimalToHours, formatHours } from "./timeUtils";
7
7
  export { formatNumber, formatCurrency, numberWithSeparator, getNumberFromString, } from "./currencyUtils";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
@@ -3,6 +3,6 @@ export * from "./colors";
3
3
  export * from "./validation";
4
4
  export { default as useForkRef } from "./useForkRef";
5
5
  export { default as useResizeObserver } from "./useResizeObserver";
6
- export { decimalToHours } from "./timeUtils";
6
+ export { decimalToHours, formatHours } from "./timeUtils";
7
7
  export { formatNumber, formatCurrency, numberWithSeparator, getNumberFromString } from "./currencyUtils";
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","useForkRef","useResizeObserver","decimalToHours","formatNumber","formatCurrency","numberWithSeparator","getNumberFromString"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours } from \"./timeUtils\";\nexport {\n formatNumber,\n formatCurrency,\n numberWithSeparator,\n getNumberFromString,\n} from \"./currencyUtils\";\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,SAASA,OAAO,IAAIC,UAAU,QAAQ,cAAc;AACpD,SAASD,OAAO,IAAIE,iBAAiB,QAAQ,qBAAqB;AAClE,SAASC,cAAc,QAAQ,aAAa;AAC5C,SACEC,YAAY,EACZC,cAAc,EACdC,mBAAmB,EACnBC,mBAAmB,QACd,iBAAiB"}
1
+ {"version":3,"file":"index.js","names":["default","useForkRef","useResizeObserver","decimalToHours","formatHours","formatNumber","formatCurrency","numberWithSeparator","getNumberFromString"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours, formatHours } from \"./timeUtils\";\nexport {\n formatNumber,\n formatCurrency,\n numberWithSeparator,\n getNumberFromString,\n} from \"./currencyUtils\";\n"],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,SAASA,OAAO,IAAIC,UAAU,QAAQ,cAAc;AACpD,SAASD,OAAO,IAAIE,iBAAiB,QAAQ,qBAAqB;AAClE,SAASC,cAAc,EAAEC,WAAW,QAAQ,aAAa;AACzD,SACEC,YAAY,EACZC,cAAc,EACdC,mBAAmB,EACnBC,mBAAmB,QACd,iBAAiB"}
@@ -1,3 +1,37 @@
1
+ /**
2
+ * @function formatHours
3
+ * @description
4
+ * Formats a decimal number representing hours into a formatted string (HH:MM).
5
+ * The input can be a number, string, or undefined. The function handles various formats
6
+ * and can optionally add a leading zero to the hours component.
7
+ *
8
+ * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.
9
+ * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.
10
+ *
11
+ * @returns {string} - A formatted time string in HH:MM format.
12
+ *
13
+ * @example
14
+ * formatHours(1.5) // "1:30"
15
+ * formatHours("3.5", true) // "03:30"
16
+ */
17
+ export declare const formatHours: (num: number | string | undefined, withLeadingZeroHours?: boolean) => string;
18
+ /**
19
+ * @function decimalToHours
20
+ * @deprecated
21
+ * @description
22
+ * Converts a decimal number representing hours into a formatted string (HH:MM).
23
+ * The input can be a number, string, or undefined. The function handles various formats
24
+ * and can optionally add a leading zero to the hours component.
25
+ *
26
+ * @param {number | string | undefined} num - The input representing the hours, which can be in decimal format, a time string, or undefined.
27
+ * @param {boolean} [withLeadingZeroHours=false] - Whether to add a leading zero to the hours part of the output.
28
+ *
29
+ * @returns {string} - A formatted time string in HH:MM format.
30
+ *
31
+ * @example
32
+ * decimalToHours(1.5) // "1:30"
33
+ * decimalToHours("3.5", true) // "03:30"
34
+ */
1
35
  export declare const decimalToHours: (num: number | string | undefined, withLeadingZeroHours?: boolean) => string;
2
36
  export declare const withLeadingZero: (num: string | number, size?: number) => string;
3
37
  export declare const isDecimal: (num: number) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/timeUtils.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc,QACpB,MAAM,GAAG,MAAM,GAAG,SAAS,qCAE/B,MAkDF,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,MAAM,0BAInD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,OAEvC,CAAC"}
1
+ {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/timeUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,MAAM,GAAG,SAAS,qCAE/B,MAkDF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,QACpB,MAAM,GAAG,MAAM,GAAG,SAAS,qCAE/B,MAqDF,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,MAAM,0BAInD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,OAEvC,CAAC"}