@trsys-tech/matrix-library 1.1.1 → 1.1.5

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 (75) hide show
  1. package/dist/accordion.es.js +21 -19
  2. package/dist/accordion.es.js.map +1 -1
  3. package/dist/avatar.es.js +19 -19
  4. package/dist/avatar.es.js.map +1 -1
  5. package/dist/breadcrumb.es.js +7 -7
  6. package/dist/breadcrumb.es.js.map +1 -1
  7. package/dist/calendar.es.js +40 -33
  8. package/dist/calendar.es.js.map +1 -1
  9. package/dist/chip.es.js +28 -22
  10. package/dist/chip.es.js.map +1 -1
  11. package/dist/command.es.js +35 -32
  12. package/dist/command.es.js.map +1 -1
  13. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  14. package/dist/components/chip/Chip.d.ts.map +1 -1
  15. package/dist/components/command/Command.d.ts.map +1 -1
  16. package/dist/components/date-picker/DesktopDatePicker.d.ts +1 -1
  17. package/dist/components/date-picker/DesktopDatePicker.d.ts.map +1 -1
  18. package/dist/components/date-picker/DesktopTimePicker.d.ts +2 -2
  19. package/dist/components/date-picker/DesktopTimePicker.d.ts.map +1 -1
  20. package/dist/components/date-picker/TimePickerContent.d.ts.map +1 -1
  21. package/dist/components/date-picker/calendar.d.ts.map +1 -1
  22. package/dist/components/gantt-chart/GanttChart.d.ts +104 -0
  23. package/dist/components/gantt-chart/GanttChart.d.ts.map +1 -0
  24. package/dist/components/gantt-chart/GanttToolbar.d.ts +14 -0
  25. package/dist/components/gantt-chart/GanttToolbar.d.ts.map +1 -0
  26. package/dist/components/gantt-chart/gantt-chart.types.d.ts +45 -0
  27. package/dist/components/gantt-chart/gantt-chart.types.d.ts.map +1 -0
  28. package/dist/components/gantt-chart/gantt-chart.utils.d.ts +34 -0
  29. package/dist/components/gantt-chart/gantt-chart.utils.d.ts.map +1 -0
  30. package/dist/components/multi-select/MultiSelect.d.ts +0 -8
  31. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  32. package/dist/components/rating/Rating.d.ts +1 -0
  33. package/dist/components/rating/Rating.d.ts.map +1 -1
  34. package/dist/components/sidebar/Sidebar.d.ts +1 -1
  35. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  36. package/dist/components/tabs/Tabs.d.ts +5 -3
  37. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  38. package/dist/components/timeline/Timeline.d.ts +81 -0
  39. package/dist/components/timeline/Timeline.d.ts.map +1 -0
  40. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  41. package/dist/desktopdatepicker.es.js +2 -2
  42. package/dist/desktopdatepicker.es.js.map +1 -1
  43. package/dist/desktoptimepicker.es.js.map +1 -1
  44. package/dist/duration.es.js +1 -1
  45. package/dist/duration.es.js.map +1 -1
  46. package/dist/gantt-chart.es.js +93 -0
  47. package/dist/gantt-chart.es.js.map +1 -0
  48. package/dist/ganttchart.es.js +337 -0
  49. package/dist/ganttchart.es.js.map +1 -0
  50. package/dist/gantttoolbar.es.js +49 -0
  51. package/dist/gantttoolbar.es.js.map +1 -0
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.es.js +191 -187
  55. package/dist/index.es.js.map +1 -1
  56. package/dist/multiselect.es.js +121 -130
  57. package/dist/multiselect.es.js.map +1 -1
  58. package/dist/rating.es.js +47 -50
  59. package/dist/rating.es.js.map +1 -1
  60. package/dist/sidebar.es.js +1 -1
  61. package/dist/sidebar.es.js.map +1 -1
  62. package/dist/styles.css +1 -1
  63. package/dist/switch.es.js +5 -5
  64. package/dist/switch.es.js.map +1 -1
  65. package/dist/tabs.es.js +25 -26
  66. package/dist/tabs.es.js.map +1 -1
  67. package/dist/textfield.es.js +18 -18
  68. package/dist/textfield.es.js.map +1 -1
  69. package/dist/timeline.es.js +328 -0
  70. package/dist/timeline.es.js.map +1 -0
  71. package/dist/timepickercontent.es.js +39 -42
  72. package/dist/timepickercontent.es.js.map +1 -1
  73. package/dist/tooltip.es.js +15 -13
  74. package/dist/tooltip.es.js.map +1 -1
  75. package/package.json +7 -1
@@ -1,64 +1,61 @@
1
- import { jsxs as M, jsx as l } from "react/jsx-runtime";
2
- import { useState as P, useRef as h, useEffect as b } from "react";
1
+ import { jsxs as S, jsx as c } from "react/jsx-runtime";
2
+ import { useMemo as j, useRef as f, useEffect as g } from "react";
3
3
  import { cn as a } from "./utils.es.js";
4
- const k = () => {
4
+ const P = () => {
5
5
  const e = /* @__PURE__ */ new Date(), r = e.getHours();
6
6
  return { hour: r % 12 || 12, minute: e.getMinutes(), ampm: r < 12 ? "AM" : "PM" };
7
- }, y = (e, r, n) => Math.min(Math.max(e, r), n), B = (e) => e ? { hour: 0, minute: 0 } : k(), d = (e, r) => {
7
+ }, w = (e, r, n) => Math.min(Math.max(e, r), n), k = (e) => e ? { hour: 0, minute: 0 } : P(), b = (e, r) => {
8
8
  if (!e)
9
- return B(r);
10
- const n = y(e.minute, 0, 59), c = e.ampm ? e.hour % 12 + (e.ampm === "PM" ? 12 : 0) : e.hour;
11
- return r ? { hour: y(c, 0, 23), minute: n } : {
12
- hour: c % 12 || 12,
9
+ return k(r);
10
+ const n = w(e.minute, 0, 59), x = e.ampm ? e.hour % 12 + (e.ampm === "PM" ? 12 : 0) : e.hour;
11
+ return r ? { hour: w(x, 0, 23), minute: n } : {
12
+ hour: x % 12 || 12,
13
13
  minute: n,
14
- ampm: e.ampm ?? (c >= 12 ? "PM" : "AM")
14
+ ampm: e.ampm ?? (x >= 12 ? "PM" : "AM")
15
15
  };
16
- }, z = ({ isOpen: e, time: r, is24HourMode: n = !1, onTimeChange: c, slotsProps: i }) => {
17
- const [u, p] = P(() => d(r, n)), o = h(u), g = h(null), w = h(null), x = 32, s = 8, T = n ? Array.from({ length: 24 }, (t, m) => m) : Array.from({ length: 12 }, (t, m) => m + 1), v = (t) => {
18
- g?.current?.scrollTo({
19
- top: t * (x + s),
16
+ }, _ = ({ isOpen: e, time: r, is24HourMode: n = !1, onTimeChange: x, slotsProps: i }) => {
17
+ const l = j(() => b(r, n), [r, n]), m = f(l), d = f(null), p = f(null), s = 32, u = 8, y = n ? Array.from({ length: 24 }, (t, o) => o) : Array.from({ length: 12 }, (t, o) => o + 1), T = (t) => {
18
+ d?.current?.scrollTo({
19
+ top: t * (s + u),
20
20
  behavior: "smooth"
21
21
  });
22
- }, S = (t) => {
23
- w?.current?.scrollTo({
24
- top: t * (x + s),
22
+ }, v = (t) => {
23
+ p?.current?.scrollTo({
24
+ top: t * (s + u),
25
25
  behavior: "smooth"
26
26
  });
27
- }, f = (t) => {
28
- const m = d(t, n);
29
- o.current = m, p(m), c(m);
27
+ }, h = (t) => {
28
+ const o = b(t, n);
29
+ m.current = o, x(o);
30
30
  }, N = (t) => {
31
- f({ ...o.current, hour: t });
31
+ h({ ...m.current, hour: t });
32
32
  }, A = (t) => {
33
- f({ ...o.current, minute: t });
34
- }, j = (t) => {
35
- f({ ...o.current, ampm: t });
33
+ h({ ...m.current, minute: t });
34
+ }, M = (t) => {
35
+ h({ ...m.current, ampm: t });
36
36
  };
37
- return b(() => {
38
- if (e) {
39
- const t = d(r, n);
40
- o.current = t, p(t);
41
- }
42
- }, [e, r, n]), b(() => {
37
+ return g(() => {
38
+ m.current = l;
39
+ }, [l]), g(() => {
43
40
  if (!e)
44
41
  return;
45
42
  const t = window.setTimeout(() => {
46
- v(n ? o.current.hour : o.current.hour - 1), S(o.current.minute);
43
+ T(n ? m.current.hour : m.current.hour - 1), v(m.current.minute);
47
44
  });
48
45
  return () => window.clearTimeout(t);
49
- }, [e, n]), /* @__PURE__ */ M(
46
+ }, [e, n]), /* @__PURE__ */ S(
50
47
  "div",
51
48
  {
52
49
  ...i?.content ?? {},
53
50
  className: a("mtx-py-2 mtx-px-0 mtx-h-52 mtx-w-full mtx-flex mtx-justify-center mtx-gap-1", i?.content?.className),
54
51
  children: [
55
- /* @__PURE__ */ l("div", { className: "mtx-w-24 mtx-px-2 mtx-h-full mtx-relative mtx-overflow-auto mtx-thin-scrollbar", ref: g, children: T.map((t) => /* @__PURE__ */ l(
52
+ /* @__PURE__ */ c("div", { className: "mtx-w-24 mtx-px-2 mtx-h-full mtx-relative mtx-overflow-auto mtx-thin-scrollbar", ref: d, children: y.map((t) => /* @__PURE__ */ c(
56
53
  "button",
57
54
  {
58
- style: { height: x, marginBottom: s },
55
+ style: { height: s, marginBottom: u },
59
56
  className: a(
60
57
  "mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400",
61
- t === u.hour && "mtx-bg-secondary"
58
+ t === l.hour && "mtx-bg-secondary"
62
59
  ),
63
60
  onClick: () => N(t),
64
61
  type: "button",
@@ -66,13 +63,13 @@ const k = () => {
66
63
  },
67
64
  t
68
65
  )) }),
69
- /* @__PURE__ */ l("div", { className: "mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar", ref: w, children: Array.from({ length: 60 }, (t, m) => m).map((t) => /* @__PURE__ */ l(
66
+ /* @__PURE__ */ c("div", { className: "mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar", ref: p, children: Array.from({ length: 60 }, (t, o) => o).map((t) => /* @__PURE__ */ c(
70
67
  "button",
71
68
  {
72
- style: { height: x, marginBottom: s },
69
+ style: { height: s, marginBottom: u },
73
70
  className: a(
74
71
  "mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400",
75
- t === u.minute && "mtx-bg-secondary"
72
+ t === l.minute && "mtx-bg-secondary"
76
73
  ),
77
74
  onClick: () => A(t),
78
75
  type: "button",
@@ -80,15 +77,15 @@ const k = () => {
80
77
  },
81
78
  t
82
79
  )) }),
83
- !n && /* @__PURE__ */ l("div", { className: "mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar", children: ["AM", "PM"].map((t) => /* @__PURE__ */ l(
80
+ !n && /* @__PURE__ */ c("div", { className: "mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar", children: ["AM", "PM"].map((t) => /* @__PURE__ */ c(
84
81
  "button",
85
82
  {
86
- style: { height: x, marginBottom: s },
83
+ style: { height: s, marginBottom: u },
87
84
  className: a(
88
85
  "mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400",
89
- t === u.ampm && "mtx-bg-secondary"
86
+ t === l.ampm && "mtx-bg-secondary"
90
87
  ),
91
- onClick: () => j(t),
88
+ onClick: () => M(t),
92
89
  type: "button",
93
90
  children: t
94
91
  },
@@ -99,6 +96,6 @@ const k = () => {
99
96
  );
100
97
  };
101
98
  export {
102
- z as TimePickerContent
99
+ _ as TimePickerContent
103
100
  };
104
101
  //# sourceMappingURL=timepickercontent.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timepickercontent.es.js","sources":["../src/components/date-picker/TimePickerContent.tsx"],"sourcesContent":["import { HTMLAttributes, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\n/**\r\n * Public value used by the time pickers.\r\n *\r\n * In 12-hour mode, provide hour values from 1-12 and include ampm.\r\n * In 24-hour mode, provide hour values from 0-23 and omit ampm.\r\n */\r\ntype Time = {\r\n /** Hour segment of the time value. */\r\n hour: number;\r\n /** Minute segment of the time value. */\r\n minute: number;\r\n /** Optional meridiem used in 12-hour mode. */\r\n ampm?: \"AM\" | \"PM\";\r\n};\r\n\r\n/**\r\n * Props for the shared time picker content.\r\n *\r\n * This is the scrollable selector used by both the desktop and mobile wrappers.\r\n */\r\ntype TimePickerContentProps = {\r\n /** Current time value. */\r\n time: Time | undefined;\r\n /** Indicates whether the surrounding popover or drawer is open. */\r\n isOpen: boolean;\r\n /** Enables 24-hour mode and hides the AM/PM column when true. */\r\n is24HourMode?: boolean;\r\n /** Called whenever the user changes the selected time. */\r\n onTimeChange: (time: Time | undefined) => void;\r\n /** Props forwarded to the content container. */\r\n slotsProps?: {\r\n /** Props forwarded to the main content element. */\r\n content?: HTMLAttributes<HTMLDivElement>;\r\n };\r\n};\r\n\r\nconst getNow = (): Time => {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n\r\n return { hour: hour % 12 || 12, minute: now.getMinutes(), ampm: hour < 12 ? \"AM\" : \"PM\" };\r\n};\r\n\r\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\r\n\r\nconst getDefaultTime = (is24HourMode: boolean): Time => {\r\n return is24HourMode ? { hour: 0, minute: 0 } : getNow();\r\n};\r\n\r\nconst normalizeTime = (time: Time | undefined, is24HourMode: boolean): Time => {\r\n if (!time) {\r\n return getDefaultTime(is24HourMode);\r\n }\r\n\r\n const minute = clamp(time.minute, 0, 59);\r\n const hourFromAmpm = time.ampm ? (time.hour % 12) + (time.ampm === \"PM\" ? 12 : 0) : time.hour;\r\n\r\n if (is24HourMode) {\r\n return { hour: clamp(hourFromAmpm, 0, 23), minute };\r\n }\r\n\r\n const hour = hourFromAmpm % 12 || 12;\r\n\r\n return {\r\n hour,\r\n minute,\r\n ampm: time.ampm ?? (hourFromAmpm >= 12 ? \"PM\" : \"AM\"),\r\n };\r\n};\r\n\r\n/**\r\n * Shared time picker content used by the desktop popover and mobile drawer variants.\r\n * It normalizes values based on 12-hour or 24-hour mode and emits updates as the user picks segments.\r\n */\r\nconst TimePickerContent: React.FC<TimePickerContentProps> = ({ isOpen, time, is24HourMode = false, onTimeChange, slotsProps }) => {\r\n const [selectedTime, setSelectedTime] = useState<Time>(() => normalizeTime(time, is24HourMode));\r\n const selectedTimeRef = useRef<Time>(selectedTime);\r\n\r\n const hourRef = useRef<HTMLDivElement>(null);\r\n const minuteRef = useRef<HTMLDivElement>(null);\r\n\r\n const itemHeight = 32;\r\n const marginBetweenItems = 8;\r\n\r\n const hourOptions = is24HourMode ? Array.from({ length: 24 }, (_, index) => index) : Array.from({ length: 12 }, (_, index) => index + 1);\r\n\r\n const scrollToHour = (index: number) => {\r\n hourRef?.current?.scrollTo({\r\n top: index * (itemHeight + marginBetweenItems),\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const scrollToMinute = (index: number) => {\r\n minuteRef?.current?.scrollTo({\r\n top: index * (itemHeight + marginBetweenItems),\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const updateSelectedTime = (nextTime: Time) => {\r\n const normalizedTime = normalizeTime(nextTime, is24HourMode);\r\n selectedTimeRef.current = normalizedTime;\r\n setSelectedTime(normalizedTime);\r\n onTimeChange(normalizedTime);\r\n };\r\n\r\n const handleSetHour = (hour: number) => {\r\n updateSelectedTime({ ...selectedTimeRef.current, hour });\r\n };\r\n\r\n const handleSetMinute = (minute: number) => {\r\n updateSelectedTime({ ...selectedTimeRef.current, minute });\r\n };\r\n\r\n const handleSetAMPM = (ampm: \"AM\" | \"PM\") => {\r\n updateSelectedTime({ ...selectedTimeRef.current, ampm });\r\n };\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n const nextTime = normalizeTime(time, is24HourMode);\r\n selectedTimeRef.current = nextTime;\r\n setSelectedTime(nextTime);\r\n }\r\n }, [isOpen, time, is24HourMode]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n return;\r\n }\r\n\r\n const timeoutId = window.setTimeout(() => {\r\n scrollToHour(is24HourMode ? selectedTimeRef.current.hour : selectedTimeRef.current.hour - 1);\r\n scrollToMinute(selectedTimeRef.current.minute);\r\n });\r\n\r\n return () => window.clearTimeout(timeoutId);\r\n }, [isOpen, is24HourMode]);\r\n\r\n return (\r\n <div\r\n {...(slotsProps?.content ?? {})}\r\n className={cn(\"mtx-py-2 mtx-px-0 mtx-h-52 mtx-w-full mtx-flex mtx-justify-center mtx-gap-1\", slotsProps?.content?.className)}\r\n >\r\n <div className=\"mtx-w-24 mtx-px-2 mtx-h-full mtx-relative mtx-overflow-auto mtx-thin-scrollbar\" ref={hourRef}>\r\n {hourOptions.map(hour => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n hour === selectedTime.hour && \"mtx-bg-secondary\",\r\n )}\r\n key={hour}\r\n onClick={() => handleSetHour(hour)}\r\n type=\"button\"\r\n >\r\n {hour.toString().padStart(2, \"0\")}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar\" ref={minuteRef}>\r\n {Array.from({ length: 60 }, (_, i) => i).map(minute => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n minute === selectedTime.minute && \"mtx-bg-secondary\",\r\n )}\r\n key={minute}\r\n onClick={() => handleSetMinute(minute)}\r\n type=\"button\"\r\n >\r\n {minute.toString().padStart(2, \"0\")}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n {!is24HourMode && (\r\n <div className=\"mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar\">\r\n {[\"AM\", \"PM\"].map(ampm => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n ampm === selectedTime.ampm && \"mtx-bg-secondary\",\r\n )}\r\n key={ampm}\r\n onClick={() => handleSetAMPM(ampm as \"AM\" | \"PM\")}\r\n type=\"button\"\r\n >\r\n {ampm}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nexport { TimePickerContent, type TimePickerContentProps, type Time };\r\n"],"names":["getNow","now","hour","clamp","value","min","max","getDefaultTime","is24HourMode","normalizeTime","time","minute","hourFromAmpm","TimePickerContent","isOpen","onTimeChange","slotsProps","selectedTime","setSelectedTime","useState","selectedTimeRef","useRef","hourRef","minuteRef","itemHeight","marginBetweenItems","hourOptions","_","index","scrollToHour","scrollToMinute","updateSelectedTime","nextTime","normalizedTime","handleSetHour","handleSetMinute","handleSetAMPM","ampm","useEffect","timeoutId","jsxs","cn","jsx","i"],"mappings":"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"}
1
+ {"version":3,"file":"timepickercontent.es.js","sources":["../src/components/date-picker/TimePickerContent.tsx"],"sourcesContent":["import { HTMLAttributes, useEffect, useMemo, useRef } from \"react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\n/**\r\n * Public value used by the time pickers.\r\n *\r\n * In 12-hour mode, provide hour values from 1-12 and include ampm.\r\n * In 24-hour mode, provide hour values from 0-23 and omit ampm.\r\n */\r\ntype Time = {\r\n /** Hour segment of the time value. */\r\n hour: number;\r\n /** Minute segment of the time value. */\r\n minute: number;\r\n /** Optional meridiem used in 12-hour mode. */\r\n ampm?: \"AM\" | \"PM\";\r\n};\r\n\r\n/**\r\n * Props for the shared time picker content.\r\n *\r\n * This is the scrollable selector used by both the desktop and mobile wrappers.\r\n */\r\ntype TimePickerContentProps = {\r\n /** Current time value. */\r\n time: Time | undefined;\r\n /** Indicates whether the surrounding popover or drawer is open. */\r\n isOpen: boolean;\r\n /** Enables 24-hour mode and hides the AM/PM column when true. */\r\n is24HourMode?: boolean;\r\n /** Called whenever the user changes the selected time. */\r\n onTimeChange: (time: Time | undefined) => void;\r\n /** Props forwarded to the content container. */\r\n slotsProps?: {\r\n /** Props forwarded to the main content element. */\r\n content?: HTMLAttributes<HTMLDivElement>;\r\n };\r\n};\r\n\r\nconst getNow = (): Time => {\r\n const now = new Date();\r\n const hour = now.getHours();\r\n\r\n return { hour: hour % 12 || 12, minute: now.getMinutes(), ampm: hour < 12 ? \"AM\" : \"PM\" };\r\n};\r\n\r\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\r\n\r\nconst getDefaultTime = (is24HourMode: boolean): Time => {\r\n return is24HourMode ? { hour: 0, minute: 0 } : getNow();\r\n};\r\n\r\nconst normalizeTime = (time: Time | undefined, is24HourMode: boolean): Time => {\r\n if (!time) {\r\n return getDefaultTime(is24HourMode);\r\n }\r\n\r\n const minute = clamp(time.minute, 0, 59);\r\n const hourFromAmpm = time.ampm ? (time.hour % 12) + (time.ampm === \"PM\" ? 12 : 0) : time.hour;\r\n\r\n if (is24HourMode) {\r\n return { hour: clamp(hourFromAmpm, 0, 23), minute };\r\n }\r\n\r\n const hour = hourFromAmpm % 12 || 12;\r\n\r\n return {\r\n hour,\r\n minute,\r\n ampm: time.ampm ?? (hourFromAmpm >= 12 ? \"PM\" : \"AM\"),\r\n };\r\n};\r\n\r\n/**\r\n * Shared time picker content used by the desktop popover and mobile drawer variants.\r\n * It normalizes values based on 12-hour or 24-hour mode and emits updates as the user picks segments.\r\n */\r\nconst TimePickerContent: React.FC<TimePickerContentProps> = ({ isOpen, time, is24HourMode = false, onTimeChange, slotsProps }) => {\r\n const selectedTime = useMemo(() => normalizeTime(time, is24HourMode), [time, is24HourMode]);\r\n const selectedTimeRef = useRef<Time>(selectedTime);\r\n\r\n const hourRef = useRef<HTMLDivElement>(null);\r\n const minuteRef = useRef<HTMLDivElement>(null);\r\n\r\n const itemHeight = 32;\r\n const marginBetweenItems = 8;\r\n\r\n const hourOptions = is24HourMode ? Array.from({ length: 24 }, (_, index) => index) : Array.from({ length: 12 }, (_, index) => index + 1);\r\n\r\n const scrollToHour = (index: number) => {\r\n hourRef?.current?.scrollTo({\r\n top: index * (itemHeight + marginBetweenItems),\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const scrollToMinute = (index: number) => {\r\n minuteRef?.current?.scrollTo({\r\n top: index * (itemHeight + marginBetweenItems),\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n const updateSelectedTime = (nextTime: Time) => {\r\n const normalizedTime = normalizeTime(nextTime, is24HourMode);\r\n selectedTimeRef.current = normalizedTime;\r\n onTimeChange(normalizedTime);\r\n };\r\n\r\n const handleSetHour = (hour: number) => {\r\n updateSelectedTime({ ...selectedTimeRef.current, hour });\r\n };\r\n\r\n const handleSetMinute = (minute: number) => {\r\n updateSelectedTime({ ...selectedTimeRef.current, minute });\r\n };\r\n\r\n const handleSetAMPM = (ampm: \"AM\" | \"PM\") => {\r\n updateSelectedTime({ ...selectedTimeRef.current, ampm });\r\n };\r\n\r\n useEffect(() => {\r\n selectedTimeRef.current = selectedTime;\r\n }, [selectedTime]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n return;\r\n }\r\n\r\n const timeoutId = window.setTimeout(() => {\r\n scrollToHour(is24HourMode ? selectedTimeRef.current.hour : selectedTimeRef.current.hour - 1);\r\n scrollToMinute(selectedTimeRef.current.minute);\r\n });\r\n\r\n return () => window.clearTimeout(timeoutId);\r\n }, [isOpen, is24HourMode]);\r\n\r\n return (\r\n <div\r\n {...(slotsProps?.content ?? {})}\r\n className={cn(\"mtx-py-2 mtx-px-0 mtx-h-52 mtx-w-full mtx-flex mtx-justify-center mtx-gap-1\", slotsProps?.content?.className)}\r\n >\r\n <div className=\"mtx-w-24 mtx-px-2 mtx-h-full mtx-relative mtx-overflow-auto mtx-thin-scrollbar\" ref={hourRef}>\r\n {hourOptions.map(hour => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n hour === selectedTime.hour && \"mtx-bg-secondary\",\r\n )}\r\n key={hour}\r\n onClick={() => handleSetHour(hour)}\r\n type=\"button\"\r\n >\r\n {hour.toString().padStart(2, \"0\")}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar\" ref={minuteRef}>\r\n {Array.from({ length: 60 }, (_, i) => i).map(minute => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n minute === selectedTime.minute && \"mtx-bg-secondary\",\r\n )}\r\n key={minute}\r\n onClick={() => handleSetMinute(minute)}\r\n type=\"button\"\r\n >\r\n {minute.toString().padStart(2, \"0\")}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n {!is24HourMode && (\r\n <div className=\"mtx-h-full mtx-w-24 mtx-px-2 mtx-relative mtx-overflow-auto mtx-thin-scrollbar\">\r\n {[\"AM\", \"PM\"].map(ampm => (\r\n <button\r\n style={{ height: itemHeight, marginBottom: marginBetweenItems }}\r\n className={cn(\r\n \"mtx-w-full mtx-flex mtx-justify-center mtx-items-center mtx-rounded-full mtx-text-xs mtx-font-bold mtx-text-text-400\",\r\n ampm === selectedTime.ampm && \"mtx-bg-secondary\",\r\n )}\r\n key={ampm}\r\n onClick={() => handleSetAMPM(ampm as \"AM\" | \"PM\")}\r\n type=\"button\"\r\n >\r\n {ampm}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nexport { TimePickerContent, type TimePickerContentProps, type Time };\r\n"],"names":["getNow","now","hour","clamp","value","min","max","getDefaultTime","is24HourMode","normalizeTime","time","minute","hourFromAmpm","TimePickerContent","isOpen","onTimeChange","slotsProps","selectedTime","useMemo","selectedTimeRef","useRef","hourRef","minuteRef","itemHeight","marginBetweenItems","hourOptions","_","index","scrollToHour","scrollToMinute","updateSelectedTime","nextTime","normalizedTime","handleSetHour","handleSetMinute","handleSetAMPM","ampm","useEffect","timeoutId","jsxs","cn","jsx","i"],"mappings":"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"}
@@ -1,15 +1,17 @@
1
- import { jsx as t, jsxs as d } from "react/jsx-runtime";
2
- import * as s from "react";
3
- import { Root as x, Provider as n, Trigger as l, Portal as p, Content as o, Arrow as f } from "@radix-ui/react-tooltip";
1
+ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
+ import * as d from "react";
3
+ import { Root as s, Provider as x, Trigger as n, Portal as l, Content as p, Arrow as f } from "@radix-ui/react-tooltip";
4
4
  import { cn as c } from "./utils.es.js";
5
- const y = n, w = x, N = l, g = s.forwardRef(({ className: m, sideOffset: a = 4, children: e, ...r }, i) => /* @__PURE__ */ t(p, { children: /* @__PURE__ */ d(
6
- o,
5
+ const w = x, N = s, g = n;
6
+ g.displayName = "TooltipTrigger";
7
+ const T = d.forwardRef(({ className: o, sideOffset: m = 4, children: e, ...r }, a) => /* @__PURE__ */ t(l, { children: /* @__PURE__ */ i(
8
+ p,
7
9
  {
8
- ref: i,
9
- sideOffset: a,
10
+ ref: a,
11
+ sideOffset: m,
10
12
  className: c(
11
13
  "mtx-z-50 mtx-rounded-sm mtx-bg-primary-900 mtx-px-3 mtx-py-1.5 mtx-text-xs mtx-text-primary-foreground mtx-animate-in mtx-fade-in-0 mtx-zoom-in-95 data-[state=closed]:mtx-animate-out data-[state=closed]:mtx-fade-out-0 data-[state=closed]:mtx-zoom-out-95 data-[side=bottom]:mtx-slide-in-from-top-2 data-[side=left]:mtx-slide-in-from-right-2 data-[side=right]:mtx-slide-in-from-left-2 data-[side=top]:mtx-slide-in-from-bottom-2",
12
- m
14
+ o
13
15
  ),
14
16
  ...r,
15
17
  children: [
@@ -18,11 +20,11 @@ const y = n, w = x, N = l, g = s.forwardRef(({ className: m, sideOffset: a = 4,
18
20
  ]
19
21
  }
20
22
  ) }));
21
- g.displayName = o.displayName;
23
+ T.displayName = "TooltipContent";
22
24
  export {
23
- w as Tooltip,
24
- g as TooltipContent,
25
- y as TooltipProvider,
26
- N as TooltipTrigger
25
+ N as Tooltip,
26
+ T as TooltipContent,
27
+ w as TooltipProvider,
28
+ g as TooltipTrigger
27
29
  };
28
30
  //# sourceMappingURL=tooltip.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.es.js","sources":["../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n Root,\r\n Provider,\r\n Trigger,\r\n Portal,\r\n Content,\r\n TooltipContentProps as ContentProps,\r\n Arrow,\r\n TooltipProps,\r\n TooltipProviderProps,\r\n TooltipTriggerProps,\r\n} from \"@radix-ui/react-tooltip\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst TooltipProvider = Provider;\r\n\r\nconst Tooltip = Root;\r\n\r\nconst TooltipTrigger = Trigger;\r\n\r\nconst TooltipContent = React.forwardRef<React.ElementRef<typeof Content>, ContentProps>(({ className, sideOffset = 4, children, ...props }, ref) => (\r\n <Portal>\r\n <Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"mtx-z-50 mtx-rounded-sm mtx-bg-primary-900 mtx-px-3 mtx-py-1.5 mtx-text-xs mtx-text-primary-foreground mtx-animate-in mtx-fade-in-0 mtx-zoom-in-95 data-[state=closed]:mtx-animate-out data-[state=closed]:mtx-fade-out-0 data-[state=closed]:mtx-zoom-out-95 data-[side=bottom]:mtx-slide-in-from-top-2 data-[side=left]:mtx-slide-in-from-right-2 data-[side=right]:mtx-slide-in-from-left-2 data-[side=top]:mtx-slide-in-from-bottom-2\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <Arrow data-role=\"arrow\" className=\"mtx-w-2 mtx-h-1.5\" />\r\n </Content>\r\n </Portal>\r\n));\r\nTooltipContent.displayName = Content.displayName;\r\ntype TooltipContentProps = ContentProps & { ref: React.Ref<React.ElementRef<typeof Content>> };\r\n\r\nexport {\r\n Tooltip,\r\n TooltipTrigger,\r\n TooltipContent,\r\n TooltipProvider,\r\n type TooltipProps,\r\n type TooltipContentProps,\r\n type TooltipTriggerProps,\r\n type TooltipProviderProps,\r\n};\r\n"],"names":["TooltipProvider","Provider","Tooltip","Root","TooltipTrigger","Trigger","TooltipContent","React","className","sideOffset","children","props","ref","Portal","jsxs","Content","cn","jsx","Arrow"],"mappings":";;;;AAkBA,MAAMA,IAAkBC,GAElBC,IAAUC,GAEVC,IAAiBC,GAEjBC,IAAiBC,EAAM,WAA2D,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,UAAAC,GAAU,GAAGC,EAAA,GAASC,wBACzIC,GAAA,EACC,UAAA,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAH;AAAA,IACA,YAAAH;AAAA,IACA,WAAWO;AAAA,MACT;AAAA,MACAR;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,IAEH,UAAA;AAAA,MAAAD;AAAA,MACD,gBAAAO,EAACC,GAAA,EAAM,aAAU,SAAQ,WAAU,oBAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AACzD,GACF,CACD;AACDZ,EAAe,cAAcS,EAAQ;"}
1
+ {"version":3,"file":"tooltip.es.js","sources":["../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n Root,\r\n Provider,\r\n Trigger,\r\n Portal,\r\n Content,\r\n TooltipContentProps as ContentProps,\r\n Arrow,\r\n TooltipProps,\r\n TooltipProviderProps,\r\n TooltipTriggerProps,\r\n} from \"@radix-ui/react-tooltip\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst TooltipProvider = Provider;\r\n\r\nconst Tooltip = Root;\r\n\r\nconst TooltipTrigger = Trigger;\r\nTooltipTrigger.displayName = \"TooltipTrigger\";\r\n\r\nconst TooltipContent = React.forwardRef<React.ElementRef<typeof Content>, ContentProps>(({ className, sideOffset = 4, children, ...props }, ref) => (\r\n <Portal>\r\n <Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"mtx-z-50 mtx-rounded-sm mtx-bg-primary-900 mtx-px-3 mtx-py-1.5 mtx-text-xs mtx-text-primary-foreground mtx-animate-in mtx-fade-in-0 mtx-zoom-in-95 data-[state=closed]:mtx-animate-out data-[state=closed]:mtx-fade-out-0 data-[state=closed]:mtx-zoom-out-95 data-[side=bottom]:mtx-slide-in-from-top-2 data-[side=left]:mtx-slide-in-from-right-2 data-[side=right]:mtx-slide-in-from-left-2 data-[side=top]:mtx-slide-in-from-bottom-2\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <Arrow data-role=\"arrow\" className=\"mtx-w-2 mtx-h-1.5\" />\r\n </Content>\r\n </Portal>\r\n));\r\nTooltipContent.displayName = \"TooltipContent\";\r\ntype TooltipContentProps = ContentProps & { ref: React.Ref<React.ElementRef<typeof Content>> };\r\n\r\nexport {\r\n Tooltip,\r\n TooltipTrigger,\r\n TooltipContent,\r\n TooltipProvider,\r\n type TooltipProps,\r\n type TooltipContentProps,\r\n type TooltipTriggerProps,\r\n type TooltipProviderProps,\r\n};\r\n"],"names":["TooltipProvider","Provider","Tooltip","Root","TooltipTrigger","Trigger","TooltipContent","React","className","sideOffset","children","props","ref","Portal","jsxs","Content","cn","jsx","Arrow"],"mappings":";;;;AAkBA,MAAMA,IAAkBC,GAElBC,IAAUC,GAEVC,IAAiBC;AACvBD,EAAe,cAAc;AAE7B,MAAME,IAAiBC,EAAM,WAA2D,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,UAAAC,GAAU,GAAGC,EAAA,GAASC,wBACzIC,GAAA,EACC,UAAA,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAH;AAAA,IACA,YAAAH;AAAA,IACA,WAAWO;AAAA,MACT;AAAA,MACAR;AAAA,IAAA;AAAA,IAED,GAAGG;AAAA,IAEH,UAAA;AAAA,MAAAD;AAAA,MACD,gBAAAO,EAACC,GAAA,EAAM,aAAU,SAAQ,WAAU,oBAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AACzD,GACF,CACD;AACDZ,EAAe,cAAc;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@trsys-tech/matrix-library",
3
3
  "description": "MatrixUI Library",
4
4
  "private": false,
5
- "version": "1.1.1",
5
+ "version": "1.1.5",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.es.js",
@@ -24,6 +24,7 @@
24
24
  "scripts": {
25
25
  "dev": "vite",
26
26
  "build": "tsc -p tsconfig.build.json && vite build",
27
+ "test": "npm run build && node --test tests/*.test.mjs",
27
28
  "build:styles": "npx tailwindcss -i ./src/index.css -o ./dist/style.css --watch",
28
29
  "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
29
30
  "sb": "storybook dev -p 6006",
@@ -129,5 +130,10 @@
129
130
  "extends": [
130
131
  "plugin:storybook/recommended"
131
132
  ]
133
+ },
134
+ "allowScripts": {
135
+ "esbuild@0.28.1": true,
136
+ "esbuild@0.25.12": true,
137
+ "fsevents@2.3.3": true
132
138
  }
133
139
  }