@trsys-tech/matrix-library 1.1.1 → 1.1.3

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 +40 -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 +182 -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
package/dist/switch.es.js CHANGED
@@ -1,6 +1,6 @@
1
- import { jsx as a } from "react/jsx-runtime";
1
+ import { jsx as t } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
- import * as t from "@radix-ui/react-switch";
3
+ import * as a from "@radix-ui/react-switch";
4
4
  import { cn as m } from "./utils.es.js";
5
5
  import { tv as x } from "tailwind-variants";
6
6
  const o = x({
@@ -15,15 +15,15 @@ const o = x({
15
15
  defaultVariants: {
16
16
  size: "md"
17
17
  }
18
- }), c = i.forwardRef(({ className: s, size: e, ...r }, n) => /* @__PURE__ */ a(t.Root, { className: m(o({ size: e, className: s })), ...r, ref: n, children: /* @__PURE__ */ a(
19
- t.Thumb,
18
+ }), c = i.forwardRef(({ className: s, size: e, ...r }, n) => /* @__PURE__ */ t(a.Root, { className: m(o({ size: e, className: s })), ...r, ref: n, children: /* @__PURE__ */ t(
19
+ a.Thumb,
20
20
  {
21
21
  className: m(
22
22
  "mtx-pointer-events-none mtx-block mtx-rounded-full mtx-bg-background mtx-shadow-lg mtx-ring-0 mtx-transition-transform data-[state=unchecked]:mtx-translate-x-0"
23
23
  )
24
24
  }
25
25
  ) }));
26
- c.displayName = t.Root.displayName;
26
+ c.displayName = "Switch";
27
27
  export {
28
28
  c as Switch
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"switch.es.js","sources":["../src/components/switch/Switch.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nconst switchVariants = tv({\r\n base: \"mtx-peer mtx-inline-flex mtx-h-4 mtx-w-7 mtx-shrink-0 mtx-cursor-pointer mtx-items-center mtx-rounded-full mtx-border-2 mtx-border-transparent mtx-shadow-sm mtx-transition-colors focus-visible:mtx-outline-none focus-visible:mtx-ring-2 focus-visible:mtx-ring-ring focus-visible:mtx-ring-offset-2 focus-visible:mtx-ring-offset-background disabled:mtx-cursor-not-allowed disabled:mtx-opacity-50 data-[state=checked]:mtx-bg-primary data-[state=unchecked]:mtx-bg-input\",\r\n variants: {\r\n size: {\r\n sm: \"mtx-h-4 mtx-w-7 [&>span]:mtx-h-3 [&>span]:mtx-w-3 [&>span]:data-[state=checked]:mtx-translate-x-3\",\r\n md: \"mtx-h-5 mtx-w-9 [&>span]:mtx-h-4 [&>span]:mtx-w-4 [&>span]:data-[state=checked]:mtx-translate-x-4\",\r\n lg: \"mtx-h-6 mtx-w-11 [&>span]:mtx-h-5 [&>span]:mtx-w-5 [&>span]:data-[state=checked]:mtx-translate-x-5\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface SwitchProps extends SwitchPrimitives.SwitchProps, VariantProps<typeof switchVariants> {}\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(({ className, size, ...props }, ref) => (\r\n <SwitchPrimitives.Root className={cn(switchVariants({ size, className }))} {...props} ref={ref}>\r\n <SwitchPrimitives.Thumb\r\n className={cn(\r\n \"mtx-pointer-events-none mtx-block mtx-rounded-full mtx-bg-background mtx-shadow-lg mtx-ring-0 mtx-transition-transform data-[state=unchecked]:mtx-translate-x-0\",\r\n )}\r\n />\r\n </SwitchPrimitives.Root>\r\n));\r\nSwitch.displayName = SwitchPrimitives.Root.displayName;\r\n\r\nexport { Switch, type SwitchProps };\r\n"],"names":["switchVariants","tv","Switch","React","className","size","props","ref","jsx","SwitchPrimitives","cn"],"mappings":";;;;;AAQA,MAAMA,IAAiBC,EAAG;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAIKC,IAASC,EAAM,WAAwE,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAC3H,gBAAAC,EAACC,EAAiB,MAAjB,EAAsB,WAAWC,EAAGV,EAAe,EAAE,MAAAK,GAAM,WAAAD,GAAW,CAAC,GAAI,GAAGE,GAAO,KAAAC,GACpF,UAAA,gBAAAC;AAAA,EAACC,EAAiB;AAAA,EAAjB;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,IAAA;AAAA,EACF;AACF,GACF,CACD;AACDR,EAAO,cAAcO,EAAiB,KAAK;"}
1
+ {"version":3,"file":"switch.es.js","sources":["../src/components/switch/Switch.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nconst switchVariants = tv({\r\n base: \"mtx-peer mtx-inline-flex mtx-h-4 mtx-w-7 mtx-shrink-0 mtx-cursor-pointer mtx-items-center mtx-rounded-full mtx-border-2 mtx-border-transparent mtx-shadow-sm mtx-transition-colors focus-visible:mtx-outline-none focus-visible:mtx-ring-2 focus-visible:mtx-ring-ring focus-visible:mtx-ring-offset-2 focus-visible:mtx-ring-offset-background disabled:mtx-cursor-not-allowed disabled:mtx-opacity-50 data-[state=checked]:mtx-bg-primary data-[state=unchecked]:mtx-bg-input\",\r\n variants: {\r\n size: {\r\n sm: \"mtx-h-4 mtx-w-7 [&>span]:mtx-h-3 [&>span]:mtx-w-3 [&>span]:data-[state=checked]:mtx-translate-x-3\",\r\n md: \"mtx-h-5 mtx-w-9 [&>span]:mtx-h-4 [&>span]:mtx-w-4 [&>span]:data-[state=checked]:mtx-translate-x-4\",\r\n lg: \"mtx-h-6 mtx-w-11 [&>span]:mtx-h-5 [&>span]:mtx-w-5 [&>span]:data-[state=checked]:mtx-translate-x-5\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface SwitchProps extends SwitchPrimitives.SwitchProps, VariantProps<typeof switchVariants> {}\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(({ className, size, ...props }, ref) => (\r\n <SwitchPrimitives.Root className={cn(switchVariants({ size, className }))} {...props} ref={ref}>\r\n <SwitchPrimitives.Thumb\r\n className={cn(\r\n \"mtx-pointer-events-none mtx-block mtx-rounded-full mtx-bg-background mtx-shadow-lg mtx-ring-0 mtx-transition-transform data-[state=unchecked]:mtx-translate-x-0\",\r\n )}\r\n />\r\n </SwitchPrimitives.Root>\r\n));\r\nSwitch.displayName = \"Switch\";\r\n\r\nexport { Switch, type SwitchProps };\r\n"],"names":["switchVariants","tv","Switch","React","className","size","props","ref","jsx","SwitchPrimitives","cn"],"mappings":";;;;;AAQA,MAAMA,IAAiBC,EAAG;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAIKC,IAASC,EAAM,WAAwE,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MAC3H,gBAAAC,EAACC,EAAiB,MAAjB,EAAsB,WAAWC,EAAGV,EAAe,EAAE,MAAAK,GAAM,WAAAD,GAAW,CAAC,GAAI,GAAGE,GAAO,KAAAC,GACpF,UAAA,gBAAAC;AAAA,EAACC,EAAiB;AAAA,EAAjB;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,IAAA;AAAA,EACF;AACF,GACF,CACD;AACDR,EAAO,cAAc;"}
package/dist/tabs.es.js CHANGED
@@ -1,41 +1,40 @@
1
- import { jsx as m } from "react/jsx-runtime";
1
+ import { jsx as a } from "react/jsx-runtime";
2
2
  import * as o from "react";
3
- import { Root as n, Content as s, List as x, Trigger as i } from "@radix-ui/react-tabs";
3
+ import { Root as f, Content as x, List as s, Trigger as i } from "@radix-ui/react-tabs";
4
4
  import { cn as r } from "./utils.es.js";
5
- const y = n, d = o.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ m(
6
- x,
5
+ const u = f, d = o.forwardRef(({ className: t, ...e }, m) => /* @__PURE__ */ a(
6
+ s,
7
7
  {
8
- ref: a,
8
+ ref: m,
9
9
  className: r(
10
- "mtx-inline-flex mtx-h-12 mtx-w-full mtx-overflow-auto mtx-thin-scrollbar mtx-items-center mtx-justify-start mtx-bg-background mtx-p-0 mtx-text-muted-foreground md:mtx-[box-shadow:inset_0_-oklch(var(--gray-300))]",
10
+ "mtx-inline-flex mtx-h-8 mtx-w-full mtx-overflow-auto mtx-thin-scrollbar mtx-items-center mtx-justify-start mtx-bg-background mtx-p-0 mtx-text-muted-foreground md:mtx-[box-shadow:inset_0_-oklch(var(--gray-300))]",
11
11
  t
12
12
  ),
13
13
  ...e
14
14
  }
15
15
  ));
16
- d.displayName = x.displayName;
16
+ d.displayName = s.displayName;
17
+ const b = o.forwardRef(({ className: t, hasAlert: e, ...m }, n) => /* @__PURE__ */ a(
18
+ i,
19
+ {
20
+ ref: n,
21
+ className: r(
22
+ "mtx-inline-flex mtx-items-center mtx-justify-center mtx-whitespace-nowrap mtx-h-full mtx-px-3 mtx-py-1 mtx-text-sm mtx-font-medium disabled:mtx-pointer-events-none disabled:mtx-opacity-50 data-[state=active]:mtx-text-foreground data-[state=active]:mtx-font-bold data-[state=active]:mtx-border-b-2 data-[state=active]:mtx-border-primary",
23
+ t,
24
+ e && "mtx-relative before:mtx-content-[''] before:mtx-block before:mtx-absolute before:mtx-top-0 before:mtx-right-0 before:mtx-z-10 before:mtx-bg-danger before:mtx-w-2 before:mtx-h-2 before:mtx-rounded"
25
+ ),
26
+ ...m
27
+ }
28
+ ));
29
+ b.displayName = i.displayName;
17
30
  const l = o.forwardRef(
18
- ({ className: t, ...e }, a) => /* @__PURE__ */ m(
19
- i,
20
- {
21
- ref: a,
22
- className: r(
23
- "mtx-inline-flex mtx-items-center mtx-justify-center mtx-whitespace-nowrap mtx-h-full mtx-px-3 mtx-py-1 mtx-text-sm mtx-font-medium disabled:mtx-pointer-events-none disabled:mtx-opacity-50 data-[state=active]:mtx-text-foreground data-[state=active]:mtx-font-bold data-[state=active]:mtx-border-b-2 data-[state=active]:mtx-border-primary",
24
- t
25
- ),
26
- ...e
27
- }
28
- )
29
- );
30
- l.displayName = i.displayName;
31
- const c = o.forwardRef(
32
- ({ className: t, ...e }, a) => /* @__PURE__ */ m(s, { ref: a, className: r("mtx-mt-2", t), ...e })
31
+ ({ className: t, ...e }, m) => /* @__PURE__ */ a(x, { ref: m, className: r("mtx-mt-2", t), ...e })
33
32
  );
34
- c.displayName = s.displayName;
33
+ l.displayName = x.displayName;
35
34
  export {
36
- y as Tabs,
37
- c as TabsContent,
35
+ u as Tabs,
36
+ l as TabsContent,
38
37
  d as TabsList,
39
- l as TabsTrigger
38
+ b as TabsTrigger
40
39
  };
41
40
  //# sourceMappingURL=tabs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.es.js","sources":["../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Content, List, Root, TabsContentProps, TabsListProps, TabsProps, TabsTriggerProps, Trigger } from \"@radix-ui/react-tabs\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Tabs = Root;\r\n\r\nconst TabsList = React.forwardRef<React.ElementRef<typeof List>, React.ComponentPropsWithoutRef<typeof List>>(({ className, ...props }, ref) => (\r\n <List\r\n ref={ref}\r\n className={cn(\r\n \"mtx-inline-flex mtx-h-12 mtx-w-full mtx-overflow-auto mtx-thin-scrollbar mtx-items-center mtx-justify-start mtx-bg-background mtx-p-0 mtx-text-muted-foreground md:mtx-[box-shadow:inset_0_-oklch(var(--gray-300))]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsList.displayName = List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<React.ElementRef<typeof Trigger>, React.ComponentPropsWithoutRef<typeof Trigger>>(\r\n ({ className, ...props }, ref) => (\r\n <Trigger\r\n ref={ref}\r\n className={cn(\r\n \"mtx-inline-flex mtx-items-center mtx-justify-center mtx-whitespace-nowrap mtx-h-full mtx-px-3 mtx-py-1 mtx-text-sm mtx-font-medium disabled:mtx-pointer-events-none disabled:mtx-opacity-50 data-[state=active]:mtx-text-foreground data-[state=active]:mtx-font-bold data-[state=active]:mtx-border-b-2 data-[state=active]:mtx-border-primary\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n ),\r\n);\r\nTabsTrigger.displayName = Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<React.ElementRef<typeof Content>, React.ComponentPropsWithoutRef<typeof Content>>(\r\n ({ className, ...props }, ref) => <Content ref={ref} className={cn(\"mtx-mt-2\", className)} {...props} />,\r\n);\r\nTabsContent.displayName = Content.displayName;\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent, type TabsProps, type TabsListProps, type TabsTriggerProps, type TabsContentProps };\r\n"],"names":["Tabs","Root","TabsList","React","className","props","ref","jsx","List","cn","TabsTrigger","Trigger","TabsContent","Content"],"mappings":";;;;AAMA,MAAMA,IAAOC,GAEPC,IAAWC,EAAM,WAAuF,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACtI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcM,EAAK;AAE5B,MAAME,IAAcP,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAK,EAAY,cAAcC,EAAQ;AAElC,MAAMC,IAAcT,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAACM,GAAA,EAAQ,KAAAP,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,EAAA,CAAO;AACxG;AACAO,EAAY,cAAcC,EAAQ;"}
1
+ {"version":3,"file":"tabs.es.js","sources":["../src/components/tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n Content,\r\n List,\r\n Root,\r\n TabsContentProps,\r\n TabsListProps,\r\n TabsProps,\r\n TabsTriggerProps as RadixTabsTriggerProps,\r\n Trigger,\r\n} from \"@radix-ui/react-tabs\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Tabs = Root;\r\n\r\nconst TabsList = React.forwardRef<React.ElementRef<typeof List>, React.ComponentPropsWithoutRef<typeof List>>(({ className, ...props }, ref) => (\r\n <List\r\n ref={ref}\r\n className={cn(\r\n \"mtx-inline-flex mtx-h-8 mtx-w-full mtx-overflow-auto mtx-thin-scrollbar mtx-items-center mtx-justify-start mtx-bg-background mtx-p-0 mtx-text-muted-foreground md:mtx-[box-shadow:inset_0_-oklch(var(--gray-300))]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsList.displayName = List.displayName;\r\n\r\ntype TabsTriggerProps = RadixTabsTriggerProps & {\r\n hasAlert?: boolean;\r\n};\r\n\r\nconst TabsTrigger = React.forwardRef<React.ElementRef<typeof Trigger>, TabsTriggerProps>(({ className, hasAlert, ...props }, ref) => (\r\n <Trigger\r\n ref={ref}\r\n className={cn(\r\n \"mtx-inline-flex mtx-items-center mtx-justify-center mtx-whitespace-nowrap mtx-h-full mtx-px-3 mtx-py-1 mtx-text-sm mtx-font-medium disabled:mtx-pointer-events-none disabled:mtx-opacity-50 data-[state=active]:mtx-text-foreground data-[state=active]:mtx-font-bold data-[state=active]:mtx-border-b-2 data-[state=active]:mtx-border-primary\",\r\n className,\r\n hasAlert &&\r\n \"mtx-relative before:mtx-content-[''] before:mtx-block before:mtx-absolute before:mtx-top-0 before:mtx-right-0 before:mtx-z-10 before:mtx-bg-danger before:mtx-w-2 before:mtx-h-2 before:mtx-rounded\",\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsTrigger.displayName = Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<React.ElementRef<typeof Content>, React.ComponentPropsWithoutRef<typeof Content>>(\r\n ({ className, ...props }, ref) => <Content ref={ref} className={cn(\"mtx-mt-2\", className)} {...props} />,\r\n);\r\nTabsContent.displayName = Content.displayName;\r\n\r\nexport {\r\n Tabs,\r\n TabsList,\r\n TabsTrigger,\r\n TabsContent,\r\n type TabsProps,\r\n type TabsListProps,\r\n type RadixTabsTriggerProps as TabsTriggerProps,\r\n type TabsContentProps,\r\n};\r\n"],"names":["Tabs","Root","TabsList","React","className","props","ref","jsx","List","cn","TabsTrigger","hasAlert","Trigger","TabsContent","Content"],"mappings":";;;;AAeA,MAAMA,IAAOC,GAEPC,IAAWC,EAAM,WAAuF,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACtI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAS,cAAcM,EAAK;AAM5B,MAAME,IAAcP,EAAM,WAA+D,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,KAASC,MAC3H,gBAAAC;AAAA,EAACK;AAAA,EAAA;AAAA,IACC,KAAAN;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,MACAO,KACE;AAAA,IAAA;AAAA,IAEH,GAAGN;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcE,EAAQ;AAElC,MAAMC,IAAcV,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAACO,GAAA,EAAQ,KAAAR,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,EAAA,CAAO;AACxG;AACAQ,EAAY,cAAcC,EAAQ;"}
@@ -23,38 +23,38 @@ const j = F({
23
23
  className: s,
24
24
  slotProps: e,
25
25
  suffix: t,
26
- endAdornment: d,
26
+ endAdornment: l,
27
27
  startAdornment: m,
28
- size: l,
29
- value: f,
30
- onChange: p,
28
+ size: d,
29
+ value: p,
30
+ onChange: f,
31
31
  defaultValue: u,
32
- type: r,
33
- disabled: x,
32
+ type: x,
33
+ disabled: r,
34
34
  onWheel: i,
35
- id: b,
36
- "aria-describedby": c,
35
+ id: c,
36
+ "aria-describedby": b,
37
37
  "aria-invalid": h,
38
38
  ...g
39
39
  }, y) => {
40
40
  const w = (a) => {
41
- r === "number" && a.target.blur(), i && i(a);
41
+ x === "number" && a.target.blur(), i && i(a);
42
42
  };
43
- return /* @__PURE__ */ v("div", { ...g, className: o(j({ size: l, className: s })), "aria-disabled": x, children: [
43
+ return /* @__PURE__ */ v("div", { ...g, className: o(j({ size: d, className: s })), "aria-disabled": r, children: [
44
44
  m,
45
45
  /* @__PURE__ */ n(
46
46
  "input",
47
47
  {
48
- type: r,
48
+ type: x,
49
49
  onWheel: w,
50
50
  ref: y,
51
- id: b,
52
- "aria-describedby": c,
51
+ id: c,
52
+ "aria-describedby": b,
53
53
  "aria-invalid": h,
54
- onChange: p,
55
- value: f,
54
+ onChange: f,
55
+ value: p,
56
56
  defaultValue: u,
57
- disabled: x,
57
+ disabled: r,
58
58
  ...e?.inputProps ?? {},
59
59
  className: o(
60
60
  "focus:mtx-outline-none mtx-w-full mtx-h-full mtx-py-1 mtx-rounded-sm file:mtx-border-0 mtx-bg-transparent file:mtx-text-sm file:mtx-font-medium file:mtx-text-foreground placeholder:mtx-text-text-300",
@@ -63,8 +63,8 @@ const j = F({
63
63
  )
64
64
  }
65
65
  ),
66
- typeof t == "string" || typeof t == "number" ? /* @__PURE__ */ n("span", { className: "mtx-inline-flex mtx-items-center mtx-px-2 mtx-text-xs mtx-font-medium mtx-text-primary mtx-bg-primary-50 mtx-m-0.5 mtx-rounded-sm", children: t }) : t,
67
- d
66
+ typeof t == "string" || typeof t == "number" ? /* @__PURE__ */ n("span", { className: "mtx-inline-flex mtx-items-center mtx-px-2 mtx-text-xs mtx-font-medium mtx-text-primary mtx-bg-primary-50 mtx-m-0.5 mtx-rounded-sm mtx-h-[calc(100%-4px)]", children: t }) : t,
67
+ l
68
68
  ] });
69
69
  }
70
70
  );
@@ -1 +1 @@
1
- {"version":3,"file":"textfield.es.js","sources":["../src/components/text-field/TextField.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst textFieldVariants = tv({\r\n base: [\r\n \"mtx-flex mtx-items-center mtx-w-full mtx-rounded-sm mtx-border mtx-border-input mtx-text-text mtx-bg-transparent mtx-p-0 mtx-text-xs [&_input]:mtx-text-xs mtx-font-medium mtx-transition-colors file:mtx-border-0 file:mtx-bg-transparent file:mtx-text-sm file:mtx-font-medium file:mtx-text-foreground\",\r\n \"placeholder:mtx-text-text-300 hover:mtx-border-primary-400 focus-within:mtx-border-primary-400 focus-within:mtx-outline-none focus-within:mtx-ring focus-within:mtx-ring-primary-100\",\r\n \"aria-disabled:mtx-text-text-300 aria-disabled:mtx-bg-gray-100 aria-disabled:mtx-border-gray-100\",\r\n ],\r\n variants: {\r\n size: {\r\n sm: \"mtx-h-7\",\r\n md: \"mtx-h-8\",\r\n lg: \"mtx-h-11\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface TextFieldProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof textFieldVariants> {\r\n type?: React.HTMLInputTypeAttribute;\r\n disabled?: boolean;\r\n suffix?: React.ReactNode;\r\n endAdornment?: React.ReactNode;\r\n startAdornment?: React.ReactNode;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n value?: string | number;\r\n defaultValue?: string | number;\r\n slotProps?: {\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n };\r\n}\r\n\r\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\r\n (\r\n {\r\n className,\r\n slotProps,\r\n suffix,\r\n endAdornment,\r\n startAdornment,\r\n size,\r\n value,\r\n onChange,\r\n defaultValue,\r\n type,\r\n disabled,\r\n onWheel,\r\n id,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n ...props\r\n },\r\n ref,\r\n ) => {\r\n const handleWheel = (event: React.WheelEvent<HTMLInputElement>) => {\r\n if (type === \"number\") {\r\n // Prevents the number input from changing value when scrolling\r\n (event.target as HTMLInputElement).blur();\r\n }\r\n if (onWheel) {\r\n onWheel(event);\r\n }\r\n };\r\n\r\n return (\r\n <div {...props} className={cn(textFieldVariants({ size, className }))} aria-disabled={disabled}>\r\n {startAdornment}\r\n <input\r\n type={type}\r\n onWheel={handleWheel}\r\n ref={ref}\r\n id={id}\r\n aria-describedby={ariaDescribedby}\r\n aria-invalid={ariaInvalid}\r\n onChange={onChange}\r\n value={value}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n {...(slotProps?.inputProps ?? {})}\r\n className={cn(\r\n \"focus:mtx-outline-none mtx-w-full mtx-h-full mtx-py-1 mtx-rounded-sm file:mtx-border-0 mtx-bg-transparent file:mtx-text-sm file:mtx-font-medium file:mtx-text-foreground placeholder:mtx-text-text-300\",\r\n !startAdornment ? \"mtx-px-3\" : \"mtx-ps-1 mtx-pe-3\",\r\n slotProps?.inputProps?.className,\r\n )}\r\n />\r\n {typeof suffix === \"string\" || typeof suffix === \"number\" ? (\r\n <span className=\"mtx-inline-flex mtx-items-center mtx-px-2 mtx-text-xs mtx-font-medium mtx-text-primary mtx-bg-primary-50 mtx-m-0.5 mtx-rounded-sm\">\r\n {suffix}\r\n </span>\r\n ) : (\r\n suffix\r\n )}\r\n {endAdornment}\r\n </div>\r\n );\r\n },\r\n);\r\nTextField.displayName = \"TextField\";\r\n\r\nexport { TextField, type TextFieldProps };\r\n"],"names":["textFieldVariants","tv","TextField","React","className","slotProps","suffix","endAdornment","startAdornment","size","value","onChange","defaultValue","type","disabled","onWheel","id","ariaDescribedby","ariaInvalid","props","ref","handleWheel","event","jsxs","cn","jsx"],"mappings":";;;;AAOA,MAAMA,IAAoBC,EAAG;AAAA,EAC3B,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAgBKC,IAAYC,EAAM;AAAA,EACtB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,IAAAC;AAAA,IACA,oBAAoBC;AAAA,IACpB,gBAAgBC;AAAA,IAChB,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAc,CAACC,MAA8C;AACjE,MAAIT,MAAS,YAEVS,EAAM,OAA4B,KAAA,GAEjCP,KACFA,EAAQO,CAAK;AAAA,IAEjB;AAEA,WACE,gBAAAC,EAAC,OAAA,EAAK,GAAGJ,GAAO,WAAWK,EAAGxB,EAAkB,EAAE,MAAAS,GAAM,WAAAL,EAAA,CAAW,CAAC,GAAG,iBAAeU,GACnF,UAAA;AAAA,MAAAN;AAAA,MACD,gBAAAiB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAAZ;AAAA,UACA,SAASQ;AAAA,UACT,KAAAD;AAAA,UACA,IAAAJ;AAAA,UACA,oBAAkBC;AAAA,UAClB,gBAAcC;AAAA,UACd,UAAAP;AAAA,UACA,OAAAD;AAAA,UACA,cAAAE;AAAA,UACA,UAAAE;AAAA,UACC,GAAIT,GAAW,cAAc,CAAA;AAAA,UAC9B,WAAWmB;AAAA,YACT;AAAA,YACChB,IAA8B,sBAAb;AAAA,YAClBH,GAAW,YAAY;AAAA,UAAA;AAAA,QACzB;AAAA,MAAA;AAAA,MAED,OAAOC,KAAW,YAAY,OAAOA,KAAW,WAC/C,gBAAAmB,EAAC,QAAA,EAAK,WAAU,qIACb,UAAAnB,EAAA,CACH,IAEAA;AAAA,MAEDC;AAAA,IAAA,GACH;AAAA,EAEJ;AACF;AACAL,EAAU,cAAc;"}
1
+ {"version":3,"file":"textfield.es.js","sources":["../src/components/text-field/TextField.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst textFieldVariants = tv({\r\n base: [\r\n \"mtx-flex mtx-items-center mtx-w-full mtx-rounded-sm mtx-border mtx-border-input mtx-text-text mtx-bg-transparent mtx-p-0 mtx-text-xs [&_input]:mtx-text-xs mtx-font-medium mtx-transition-colors file:mtx-border-0 file:mtx-bg-transparent file:mtx-text-sm file:mtx-font-medium file:mtx-text-foreground\",\r\n \"placeholder:mtx-text-text-300 hover:mtx-border-primary-400 focus-within:mtx-border-primary-400 focus-within:mtx-outline-none focus-within:mtx-ring focus-within:mtx-ring-primary-100\",\r\n \"aria-disabled:mtx-text-text-300 aria-disabled:mtx-bg-gray-100 aria-disabled:mtx-border-gray-100\",\r\n ],\r\n variants: {\r\n size: {\r\n sm: \"mtx-h-7\",\r\n md: \"mtx-h-8\",\r\n lg: \"mtx-h-11\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface TextFieldProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof textFieldVariants> {\r\n type?: React.HTMLInputTypeAttribute;\r\n disabled?: boolean;\r\n suffix?: React.ReactNode;\r\n endAdornment?: React.ReactNode;\r\n startAdornment?: React.ReactNode;\r\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\r\n value?: string | number;\r\n defaultValue?: string | number;\r\n slotProps?: {\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n };\r\n}\r\n\r\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\r\n (\r\n {\r\n className,\r\n slotProps,\r\n suffix,\r\n endAdornment,\r\n startAdornment,\r\n size,\r\n value,\r\n onChange,\r\n defaultValue,\r\n type,\r\n disabled,\r\n onWheel,\r\n id,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n ...props\r\n },\r\n ref,\r\n ) => {\r\n const handleWheel = (event: React.WheelEvent<HTMLInputElement>) => {\r\n if (type === \"number\") {\r\n // Prevents the number input from changing value when scrolling\r\n (event.target as HTMLInputElement).blur();\r\n }\r\n if (onWheel) {\r\n onWheel(event);\r\n }\r\n };\r\n\r\n return (\r\n <div {...props} className={cn(textFieldVariants({ size, className }))} aria-disabled={disabled}>\r\n {startAdornment}\r\n <input\r\n type={type}\r\n onWheel={handleWheel}\r\n ref={ref}\r\n id={id}\r\n aria-describedby={ariaDescribedby}\r\n aria-invalid={ariaInvalid}\r\n onChange={onChange}\r\n value={value}\r\n defaultValue={defaultValue}\r\n disabled={disabled}\r\n {...(slotProps?.inputProps ?? {})}\r\n className={cn(\r\n \"focus:mtx-outline-none mtx-w-full mtx-h-full mtx-py-1 mtx-rounded-sm file:mtx-border-0 mtx-bg-transparent file:mtx-text-sm file:mtx-font-medium file:mtx-text-foreground placeholder:mtx-text-text-300\",\r\n !startAdornment ? \"mtx-px-3\" : \"mtx-ps-1 mtx-pe-3\",\r\n slotProps?.inputProps?.className,\r\n )}\r\n />\r\n {typeof suffix === \"string\" || typeof suffix === \"number\" ? (\r\n <span className=\"mtx-inline-flex mtx-items-center mtx-px-2 mtx-text-xs mtx-font-medium mtx-text-primary mtx-bg-primary-50 mtx-m-0.5 mtx-rounded-sm mtx-h-[calc(100%-4px)]\">\r\n {suffix}\r\n </span>\r\n ) : (\r\n suffix\r\n )}\r\n {endAdornment}\r\n </div>\r\n );\r\n },\r\n);\r\nTextField.displayName = \"TextField\";\r\n\r\nexport { TextField, type TextFieldProps };\r\n"],"names":["textFieldVariants","tv","TextField","React","className","slotProps","suffix","endAdornment","startAdornment","size","value","onChange","defaultValue","type","disabled","onWheel","id","ariaDescribedby","ariaInvalid","props","ref","handleWheel","event","jsxs","cn","jsx"],"mappings":";;;;AAOA,MAAMA,IAAoBC,EAAG;AAAA,EAC3B,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAgBKC,IAAYC,EAAM;AAAA,EACtB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,IAAAC;AAAA,IACA,oBAAoBC;AAAA,IACpB,gBAAgBC;AAAA,IAChB,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAc,CAACC,MAA8C;AACjE,MAAIT,MAAS,YAEVS,EAAM,OAA4B,KAAA,GAEjCP,KACFA,EAAQO,CAAK;AAAA,IAEjB;AAEA,WACE,gBAAAC,EAAC,OAAA,EAAK,GAAGJ,GAAO,WAAWK,EAAGxB,EAAkB,EAAE,MAAAS,GAAM,WAAAL,EAAA,CAAW,CAAC,GAAG,iBAAeU,GACnF,UAAA;AAAA,MAAAN;AAAA,MACD,gBAAAiB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAAZ;AAAA,UACA,SAASQ;AAAA,UACT,KAAAD;AAAA,UACA,IAAAJ;AAAA,UACA,oBAAkBC;AAAA,UAClB,gBAAcC;AAAA,UACd,UAAAP;AAAA,UACA,OAAAD;AAAA,UACA,cAAAE;AAAA,UACA,UAAAE;AAAA,UACC,GAAIT,GAAW,cAAc,CAAA;AAAA,UAC9B,WAAWmB;AAAA,YACT;AAAA,YACChB,IAA8B,sBAAb;AAAA,YAClBH,GAAW,YAAY;AAAA,UAAA;AAAA,QACzB;AAAA,MAAA;AAAA,MAED,OAAOC,KAAW,YAAY,OAAOA,KAAW,WAC/C,gBAAAmB,EAAC,QAAA,EAAK,WAAU,4JACb,UAAAnB,EAAA,CACH,IAEAA;AAAA,MAEDC;AAAA,IAAA,GACH;AAAA,EAEJ;AACF;AACAL,EAAU,cAAc;"}
@@ -0,0 +1,182 @@
1
+ import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
+ import f from "react";
3
+ import { cn as n } from "./utils.es.js";
4
+ function b({ item: l, color: x }) {
5
+ const r = l.status ?? "pending";
6
+ return /* @__PURE__ */ o("span", { className: "mtx-block mtx-size-5", "data-status": r, style: { color: x }, children: [
7
+ /* @__PURE__ */ o(
8
+ "svg",
9
+ {
10
+ viewBox: "0 0 24 24",
11
+ "aria-hidden": "true",
12
+ focusable: "false",
13
+ className: "mtx-block mtx-size-full mtx-fill-none mtx-stroke-current mtx-stroke-[1.25] mtx-stroke-linecap-round mtx-stroke-linejoin-round",
14
+ children: [
15
+ /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "10.5", className: "mtx-fill-background" }),
16
+ r === "completed" && /* @__PURE__ */ e("path", { d: "m7 12 3 3 7-7" }),
17
+ r === "error" && /* @__PURE__ */ e("path", { d: "m8 8 8 8m0-8-8 8" }),
18
+ r === "active" && /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "6", fill: "currentColor", stroke: "none" })
19
+ ]
20
+ }
21
+ ),
22
+ /* @__PURE__ */ e("span", { className: "mtx-sr-only", children: l.statusLabel ?? r })
23
+ ] });
24
+ }
25
+ const $ = f.forwardRef(
26
+ ({ items: l, branches: x = [], title: r, activeColor: h, completedColor: w, errorColor: c, inactiveColor: N, minItemWidth: u = 112, className: k, style: y, ...R }, z) => {
27
+ const p = f.useId(), d = x.flatMap((t) => {
28
+ const s = l.findIndex((m) => m.id === t.from);
29
+ return s >= 0 && s < l.length - 1 ? [{ branch: t, index: s }] : [];
30
+ }), v = d.length * 2 + 1, i = v + 1, g = (t) => t.color ?? `var(--timeline-${t.status ?? "pending"})`, T = {
31
+ "--timeline-active": h ?? "oklch(var(--mtx-primary))",
32
+ "--timeline-completed": w ?? "oklch(var(--mtx-success))",
33
+ "--timeline-error": c ?? "oklch(var(--mtx-danger))",
34
+ "--timeline-pending": N ?? "oklch(var(--mtx-gray-400))",
35
+ ...y
36
+ };
37
+ return /* @__PURE__ */ o("div", { ...R, ref: z, className: n("mtx-text-foreground mtx-text-xs", k), style: T, children: [
38
+ r != null && /* @__PURE__ */ e("div", { id: p, className: "mtx-mb-4 mtx-text-sm mtx-font-bold", children: r }),
39
+ /* @__PURE__ */ e(
40
+ "div",
41
+ {
42
+ className: "mtx-overflow-x-auto mtx-p-0.5 focus-visible:mtx-outline-2 focus-visible:mtx-outline-offset-2 focus-visible:mtx-outline-[var(--timeline-active)]",
43
+ role: "region",
44
+ "aria-label": "Timeline",
45
+ tabIndex: 0,
46
+ children: /* @__PURE__ */ o(
47
+ "ol",
48
+ {
49
+ className: "mtx-m-0 mtx-grid mtx-list-none mtx-isolate mtx-p-0",
50
+ "aria-labelledby": r != null ? p : void 0,
51
+ "aria-label": r == null ? "Timeline steps" : void 0,
52
+ style: {
53
+ gridTemplateColumns: `repeat(${Math.max(1, l.length)}, minmax(0, 1fr))`,
54
+ gridTemplateRows: `${"auto 24px ".repeat(d.length)}auto 24px auto auto`,
55
+ minWidth: l.length * (Number.isFinite(u) ? Math.max(48, u) : 112)
56
+ },
57
+ children: [
58
+ l.map((t, s) => {
59
+ const m = l[s - 1], a = t.connectorColor === !1 ? void 0 : t.connectorColor ?? (m?.status === "completed" && t.status !== "pending" && t.status !== void 0 ? g(m) : void 0);
60
+ return /* @__PURE__ */ o(
61
+ "li",
62
+ {
63
+ className: "mtx-relative mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-rows-[subgrid] ",
64
+ style: { gridColumn: s + 1 },
65
+ "aria-current": t.status === "active" ? "step" : void 0,
66
+ children: [
67
+ /* @__PURE__ */ o(
68
+ "div",
69
+ {
70
+ className: "mtx-min-h-8 mtx-break-words mtx-self-end mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-leading-3 mtx-text-muted-foreground empty:mtx-p-0",
71
+ style: { gridRow: v },
72
+ children: [
73
+ t.superTitle != null && /* @__PURE__ */ e("div", { children: t.superTitle }),
74
+ t.superSubtitle != null && /* @__PURE__ */ e("div", { className: "mtx-font-semibold", children: t.superSubtitle })
75
+ ]
76
+ }
77
+ ),
78
+ s > 0 && /* @__PURE__ */ e(
79
+ "span",
80
+ {
81
+ "aria-hidden": "true",
82
+ className: "mtx-absolute mtx-top-2.5 mtx-left-[calc(-100%+12px)] mtx-z-10 mtx-h-0.5 mtx-w-full mtx-bg-[var(--timeline-pending)]",
83
+ style: { gridRow: i, backgroundColor: a }
84
+ }
85
+ ),
86
+ /* @__PURE__ */ e("div", { className: "mtx-z-20 mtx-size-5", style: { gridRow: i }, children: /* @__PURE__ */ e(b, { item: t, color: g(t) }) }),
87
+ /* @__PURE__ */ o("div", { className: "mtx-break-words mtx-pt-2.5 mtx-pr-3 mtx-leading-[1.4]", style: { gridRow: i + 1 }, children: [
88
+ /* @__PURE__ */ e("div", { className: n("mtx-font-medium", (t.status ?? "pending") === "pending" && "mtx-text-text-400"), children: t.label }),
89
+ t.subData != null && /* @__PURE__ */ e("div", { className: "mtx-mt-0.5 mtx-text-ss", children: t.subData })
90
+ ] }),
91
+ /* @__PURE__ */ e(
92
+ "div",
93
+ {
94
+ className: "mtx-break-words mtx-pr-3 mtx-pt-5 mtx-text-ss mtx-font-medium mtx-text-muted-foreground empty:mtx-p-0",
95
+ style: { gridRow: i + 2 },
96
+ children: t.footer
97
+ }
98
+ )
99
+ ]
100
+ },
101
+ t.id
102
+ );
103
+ }),
104
+ d.map(({ branch: t, index: s }, m) => {
105
+ const a = t.active ? t.activeColor ?? t.color ?? c ?? "var(--timeline-error)" : "var(--timeline-pending)";
106
+ return /* @__PURE__ */ o(
107
+ "li",
108
+ {
109
+ className: n(
110
+ "mtx-pointer-events-none mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-cols-[subgrid] mtx-grid-rows-[subgrid]",
111
+ t.active && "mtx-z-10"
112
+ ),
113
+ "data-active": t.active || void 0,
114
+ style: { gridColumn: `${s + 1} / -1` },
115
+ "aria-current": t.status === "active" ? "step" : void 0,
116
+ children: [
117
+ /* @__PURE__ */ o("span", { className: "mtx-sr-only", children: [
118
+ "Branch from ",
119
+ l[s].label,
120
+ ": "
121
+ ] }),
122
+ /* @__PURE__ */ o(
123
+ "div",
124
+ {
125
+ className: "mtx-pointer-events-auto mtx-col-[-2_/_-1] mtx-self-end mtx-break-words mtx-pb-2",
126
+ style: { gridRow: m * 2 + 1, color: t.active ? a : void 0 },
127
+ children: [
128
+ t.superTitle != null && /* @__PURE__ */ e("div", { className: "mtx-break-words mtx-text-ss mtx-text-muted-foreground", children: t.superTitle }),
129
+ t.superSubtitle != null && /* @__PURE__ */ e("div", { className: "mtx-break-words mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-font-semibold mtx-text-muted-foreground", children: t.superSubtitle }),
130
+ /* @__PURE__ */ e("div", { className: n("mtx-font-medium", (t.status ?? "pending") === "pending" && "mtx-text-text-400"), children: t.label }),
131
+ t.subData != null && /* @__PURE__ */ e("div", { className: "mtx-mt-0.5 mtx-text-ss", children: t.subData }),
132
+ t.footer != null && /* @__PURE__ */ e("div", { className: "mtx-break-words mtx-pr-3 mtx-pt-1 mtx-text-ss mtx-font-bold mtx-text-muted-foreground", children: t.footer })
133
+ ]
134
+ }
135
+ ),
136
+ /* @__PURE__ */ e(
137
+ "div",
138
+ {
139
+ className: "mtx-relative mtx-col-[1_/_-1] mtx-mb-[13px] mtx-ml-3 mtx-mt-[11px] mtx-overflow-visible mtx-fill-none mtx-stroke-2 mtx-stroke-current mtx-z-[-1]",
140
+ "aria-hidden": "true",
141
+ style: {
142
+ gridRow: `${m * 2 + 2} / ${i + 1}`,
143
+ width: `calc(100% - 100% / ${l.length - s})`,
144
+ color: a
145
+ },
146
+ children: /* @__PURE__ */ e(
147
+ "svg",
148
+ {
149
+ focusable: "false",
150
+ viewBox: "0 0 100 100",
151
+ preserveAspectRatio: "none",
152
+ className: "mtx-absolute mtx-size-full mtx-overflow-visible",
153
+ children: /* @__PURE__ */ e(
154
+ "path",
155
+ {
156
+ d: `M0 100 H${45 / (l.length - s - 1)} L${80 / (l.length - s - 1)} 0 H100`,
157
+ vectorEffect: "non-scaling-stroke"
158
+ }
159
+ )
160
+ }
161
+ )
162
+ }
163
+ ),
164
+ /* @__PURE__ */ e("div", { className: "mtx-col-[-2_/_-1] mtx-z-[2] mtx-size-5", style: { gridRow: m * 2 + 2 }, children: /* @__PURE__ */ e(b, { item: t, color: a }) })
165
+ ]
166
+ },
167
+ `branch-${t.id}`
168
+ );
169
+ })
170
+ ]
171
+ }
172
+ )
173
+ }
174
+ )
175
+ ] });
176
+ }
177
+ );
178
+ $.displayName = "Timeline";
179
+ export {
180
+ $ as Timeline
181
+ };
182
+ //# sourceMappingURL=timeline.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.es.js","sources":["../src/components/timeline/Timeline.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport type TimelineStatus = \"pending\" | \"active\" | \"completed\" | \"error\";\n\nexport interface TimelineItem {\n id: string;\n label: React.ReactNode;\n superTitle?: React.ReactNode;\n superSubtitle?: React.ReactNode;\n subData?: React.ReactNode;\n /** Arbitrary content shown on the bottom row. */\n footer?: React.ReactNode;\n status?: TimelineStatus;\n /** Override the marker color (any CSS color). */\n color?: string;\n /** Override the incoming connector; false leaves it inactive. */\n connectorColor?: string | false;\n /** Localized status announcement, independent of the visible label. */\n statusLabel?: string;\n}\n\nexport interface TimelineBranch extends TimelineItem {\n /** ID of the main step from which this branch diverges. */\n from: string;\n /** Branch paths are explicitly controlled, independently of main steps. */\n active?: boolean;\n /** Used for the activated branch path and endpoint. */\n activeColor?: string;\n}\n\nexport interface TimelineProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\" | \"title\"> {\n items: readonly TimelineItem[];\n branches?: readonly TimelineBranch[];\n title?: React.ReactNode;\n activeColor?: string;\n completedColor?: string;\n errorColor?: string;\n inactiveColor?: string;\n /** Minimum column width in pixels; narrower containers scroll horizontally. */\n minItemWidth?: number;\n}\n\nfunction Marker({ item, color }: { item: TimelineItem; color?: string }) {\n const status = item.status ?? \"pending\";\n return (\n <span className=\"mtx-block mtx-size-5\" data-status={status} style={{ color }}>\n <svg\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n className=\"mtx-block mtx-size-full mtx-fill-none mtx-stroke-current mtx-stroke-[1.25] mtx-stroke-linecap-round mtx-stroke-linejoin-round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10.5\" className=\"mtx-fill-background\" />\n {status === \"completed\" && <path d=\"m7 12 3 3 7-7\" />}\n {status === \"error\" && <path d=\"m8 8 8 8m0-8-8 8\" />}\n {status === \"active\" && <circle cx=\"12\" cy=\"12\" r=\"6\" fill=\"currentColor\" stroke=\"none\" />}\n </svg>\n <span className=\"mtx-sr-only\">{item.statusLabel ?? status}</span>\n </span>\n );\n}\n\nconst Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n ({ items, branches = [], title, activeColor, completedColor, errorColor, inactiveColor, minItemWidth = 112, className, style, ...props }, ref) => {\n const titleId = React.useId();\n // Invalid origins and branches from the final step have no horizontal span.\n const visibleBranches = branches.flatMap(branch => {\n const index = items.findIndex(item => item.id === branch.from);\n return index >= 0 && index < items.length - 1 ? [{ branch, index }] : [];\n });\n const superRow = visibleBranches.length * 2 + 1;\n const markerRow = superRow + 1;\n const colorFor = (item: TimelineItem) => item.color ?? `var(--timeline-${item.status ?? \"pending\"})`;\n const variables = {\n \"--timeline-active\": activeColor ?? \"oklch(var(--mtx-primary))\",\n \"--timeline-completed\": completedColor ?? \"oklch(var(--mtx-success))\",\n \"--timeline-error\": errorColor ?? \"oklch(var(--mtx-danger))\",\n \"--timeline-pending\": inactiveColor ?? \"oklch(var(--mtx-gray-400))\",\n ...style,\n } as React.CSSProperties;\n\n return (\n <div {...props} ref={ref} className={cn(\"mtx-text-foreground mtx-text-xs\", className)} style={variables}>\n {title != null && (\n <div id={titleId} className=\"mtx-mb-4 mtx-text-sm mtx-font-bold\">\n {title}\n </div>\n )}\n <div\n className=\"mtx-overflow-x-auto mtx-p-0.5 focus-visible:mtx-outline-2 focus-visible:mtx-outline-offset-2 focus-visible:mtx-outline-[var(--timeline-active)]\"\n role=\"region\"\n aria-label=\"Timeline\"\n tabIndex={0}\n >\n <ol\n className=\"mtx-m-0 mtx-grid mtx-list-none mtx-isolate mtx-p-0\"\n aria-labelledby={title != null ? titleId : undefined}\n aria-label={title == null ? \"Timeline steps\" : undefined}\n style={{\n gridTemplateColumns: `repeat(${Math.max(1, items.length)}, minmax(0, 1fr))`,\n gridTemplateRows: `${\"auto 24px \".repeat(visibleBranches.length)}auto 24px auto auto`,\n minWidth: items.length * (Number.isFinite(minItemWidth) ? Math.max(48, minItemWidth) : 112),\n }}\n >\n {items.map((item, index) => {\n const previous = items[index - 1];\n const incoming =\n item.connectorColor === false\n ? undefined\n : (item.connectorColor ??\n (previous?.status === \"completed\" && item.status !== \"pending\" && item.status !== undefined ? colorFor(previous) : undefined));\n return (\n <li\n key={item.id}\n className=\"mtx-relative mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-rows-[subgrid] \"\n style={{ gridColumn: index + 1 }}\n aria-current={item.status === \"active\" ? \"step\" : undefined}\n >\n <div\n className=\"mtx-min-h-8 mtx-break-words mtx-self-end mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-leading-3 mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: superRow }}\n >\n {item.superTitle != null && <div>{item.superTitle}</div>}\n {item.superSubtitle != null && <div className=\"mtx-font-semibold\">{item.superSubtitle}</div>}\n </div>\n {index > 0 && (\n <span\n aria-hidden=\"true\"\n className=\"mtx-absolute mtx-top-2.5 mtx-left-[calc(-100%+12px)] mtx-z-10 mtx-h-0.5 mtx-w-full mtx-bg-[var(--timeline-pending)]\"\n style={{ gridRow: markerRow, backgroundColor: incoming }}\n />\n )}\n <div className=\"mtx-z-20 mtx-size-5\" style={{ gridRow: markerRow }}>\n <Marker item={item} color={colorFor(item)} />\n </div>\n <div className=\"mtx-break-words mtx-pt-2.5 mtx-pr-3 mtx-leading-[1.4]\" style={{ gridRow: markerRow + 1 }}>\n <div className={cn(\"mtx-font-medium\", (item.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{item.label}</div>\n {item.subData != null && <div className=\"mtx-mt-0.5 mtx-text-ss\">{item.subData}</div>}\n </div>\n <div\n className=\"mtx-break-words mtx-pr-3 mtx-pt-5 mtx-text-ss mtx-font-medium mtx-text-muted-foreground empty:mtx-p-0\"\n style={{ gridRow: markerRow + 2 }}\n >\n {item.footer}\n </div>\n </li>\n );\n })}\n {visibleBranches.map(({ branch, index }, lane) => {\n const branchColor = branch.active\n ? (branch.activeColor ?? branch.color ?? errorColor ?? \"var(--timeline-error)\")\n : \"var(--timeline-pending)\";\n return (\n <li\n key={`branch-${branch.id}`}\n className={cn(\n \"mtx-pointer-events-none mtx-grid mtx-min-w-0 mtx-row-span-full mtx-grid-cols-[subgrid] mtx-grid-rows-[subgrid]\",\n branch.active && \"mtx-z-10\",\n )}\n data-active={branch.active || undefined}\n style={{ gridColumn: `${index + 1} / -1` }}\n aria-current={branch.status === \"active\" ? \"step\" : undefined}\n >\n <span className=\"mtx-sr-only\">Branch from {items[index].label}: </span>\n <div\n className=\"mtx-pointer-events-auto mtx-col-[-2_/_-1] mtx-self-end mtx-break-words mtx-pb-2\"\n style={{ gridRow: lane * 2 + 1, color: branch.active ? branchColor : undefined }}\n >\n {branch.superTitle != null && <div className=\"mtx-break-words mtx-text-ss mtx-text-muted-foreground\">{branch.superTitle}</div>}\n {branch.superSubtitle != null && (\n <div className=\"mtx-break-words mtx-pb-2 mtx-pr-3 mtx-text-ss mtx-font-semibold mtx-text-muted-foreground\">\n {branch.superSubtitle}\n </div>\n )}\n <div className={cn(\"mtx-font-medium\", (branch.status ?? \"pending\") === \"pending\" && \"mtx-text-text-400\")}>{branch.label}</div>\n {branch.subData != null && <div className=\"mtx-mt-0.5 mtx-text-ss\">{branch.subData}</div>}\n {branch.footer != null && (\n <div className=\"mtx-break-words mtx-pr-3 mtx-pt-1 mtx-text-ss mtx-font-bold mtx-text-muted-foreground\">{branch.footer}</div>\n )}\n </div>\n <div\n className=\"mtx-relative mtx-col-[1_/_-1] mtx-mb-[13px] mtx-ml-3 mtx-mt-[11px] mtx-overflow-visible mtx-fill-none mtx-stroke-2 mtx-stroke-current mtx-z-[-1]\"\n aria-hidden=\"true\"\n style={{\n gridRow: `${lane * 2 + 2} / ${markerRow + 1}`,\n width: `calc(100% - 100% / ${items.length - index})`,\n color: branchColor,\n }}\n >\n <svg\n focusable=\"false\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"none\"\n className=\"mtx-absolute mtx-size-full mtx-overflow-visible\"\n >\n <path\n d={`M0 100 H${45 / (items.length - index - 1)} L${80 / (items.length - index - 1)} 0 H100`}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n </div>\n <div className=\"mtx-col-[-2_/_-1] mtx-z-[2] mtx-size-5\" style={{ gridRow: lane * 2 + 2 }}>\n <Marker item={branch} color={branchColor} />\n </div>\n </li>\n );\n })}\n </ol>\n </div>\n </div>\n );\n },\n);\nTimeline.displayName = \"Timeline\";\n\nexport { Timeline };\n"],"names":["Marker","item","color","status","jsxs","jsx","Timeline","React","items","branches","title","activeColor","completedColor","errorColor","inactiveColor","minItemWidth","className","style","props","ref","titleId","visibleBranches","branch","index","superRow","markerRow","colorFor","variables","cn","previous","incoming","lane","branchColor"],"mappings":";;;AA6CA,SAASA,EAAO,EAAE,MAAAC,GAAM,OAAAC,KAAiD;AACvE,QAAMC,IAASF,EAAK,UAAU;AAC9B,SACE,gBAAAG,EAAC,UAAK,WAAU,wBAAuB,eAAaD,GAAQ,OAAO,EAAE,OAAAD,EAAA,GACnE,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,eAAY;AAAA,QACZ,WAAU;AAAA,QACV,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAC,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,QAAO,WAAU,sBAAA,CAAsB;AAAA,UAChEF,MAAW,eAAe,gBAAAE,EAAC,QAAA,EAAK,GAAE,iBAAgB;AAAA,UAClDF,MAAW,WAAW,gBAAAE,EAAC,QAAA,EAAK,GAAE,oBAAmB;AAAA,UACjDF,MAAW,YAAY,gBAAAE,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,MAAK,gBAAe,QAAO,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,sBAEzF,QAAA,EAAK,WAAU,eAAe,UAAAJ,EAAK,eAAeE,EAAA,CAAO;AAAA,EAAA,GAC5D;AAEJ;AAEA,MAAMG,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,OAAAC,GAAO,UAAAC,IAAW,CAAA,GAAI,OAAAC,GAAO,aAAAC,GAAa,gBAAAC,GAAgB,YAAAC,GAAY,eAAAC,GAAe,cAAAC,IAAe,KAAK,WAAAC,GAAW,OAAAC,GAAO,GAAGC,EAAA,GAASC,MAAQ;AAChJ,UAAMC,IAAUb,EAAM,MAAA,GAEhBc,IAAkBZ,EAAS,QAAQ,CAAAa,MAAU;AACjD,YAAMC,IAAQf,EAAM,UAAU,OAAQP,EAAK,OAAOqB,EAAO,IAAI;AAC7D,aAAOC,KAAS,KAAKA,IAAQf,EAAM,SAAS,IAAI,CAAC,EAAE,QAAAc,GAAQ,OAAAC,EAAA,CAAO,IAAI,CAAA;AAAA,IACxE,CAAC,GACKC,IAAWH,EAAgB,SAAS,IAAI,GACxCI,IAAYD,IAAW,GACvBE,IAAW,CAACzB,MAAuBA,EAAK,SAAS,kBAAkBA,EAAK,UAAU,SAAS,KAC3F0B,IAAY;AAAA,MAChB,qBAAqBhB,KAAe;AAAA,MACpC,wBAAwBC,KAAkB;AAAA,MAC1C,oBAAoBC,KAAc;AAAA,MAClC,sBAAsBC,KAAiB;AAAA,MACvC,GAAGG;AAAA,IAAA;AAGL,WACE,gBAAAb,EAAC,OAAA,EAAK,GAAGc,GAAO,KAAAC,GAAU,WAAWS,EAAG,mCAAmCZ,CAAS,GAAG,OAAOW,GAC3F,UAAA;AAAA,MAAAjB,KAAS,QACR,gBAAAL,EAAC,OAAA,EAAI,IAAIe,GAAS,WAAU,sCACzB,UAAAV,EAAA,CACH;AAAA,MAEF,gBAAAL;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,cAAW;AAAA,UACX,UAAU;AAAA,UAEV,UAAA,gBAAAD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,mBAAiBM,KAAS,OAAOU,IAAU;AAAA,cAC3C,cAAYV,KAAS,OAAO,mBAAmB;AAAA,cAC/C,OAAO;AAAA,gBACL,qBAAqB,UAAU,KAAK,IAAI,GAAGF,EAAM,MAAM,CAAC;AAAA,gBACxD,kBAAkB,GAAG,aAAa,OAAOa,EAAgB,MAAM,CAAC;AAAA,gBAChE,UAAUb,EAAM,UAAU,OAAO,SAASO,CAAY,IAAI,KAAK,IAAI,IAAIA,CAAY,IAAI;AAAA,cAAA;AAAA,cAGxF,UAAA;AAAA,gBAAAP,EAAM,IAAI,CAACP,GAAMsB,MAAU;AAC1B,wBAAMM,IAAWrB,EAAMe,IAAQ,CAAC,GAC1BO,IACJ7B,EAAK,mBAAmB,KACpB,SACCA,EAAK,mBACL4B,GAAU,WAAW,eAAe5B,EAAK,WAAW,aAAaA,EAAK,WAAW,SAAYyB,EAASG,CAAQ,IAAI;AACzH,yBACE,gBAAAzB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,WAAU;AAAA,sBACV,OAAO,EAAE,YAAYmB,IAAQ,EAAA;AAAA,sBAC7B,gBAActB,EAAK,WAAW,WAAW,SAAS;AAAA,sBAElD,UAAA;AAAA,wBAAA,gBAAAG;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OAAO,EAAE,SAASoB,EAAA;AAAA,4BAEjB,UAAA;AAAA,8BAAAvB,EAAK,cAAc,QAAQ,gBAAAI,EAAC,OAAA,EAAK,YAAK,YAAW;AAAA,8BACjDJ,EAAK,iBAAiB,QAAQ,gBAAAI,EAAC,SAAI,WAAU,qBAAqB,YAAK,cAAA,CAAc;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAEvFkB,IAAQ,KACP,gBAAAlB;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,eAAY;AAAA,4BACZ,WAAU;AAAA,4BACV,OAAO,EAAE,SAASoB,GAAW,iBAAiBK,EAAA;AAAA,0BAAS;AAAA,wBAAA;AAAA,0CAG1D,OAAA,EAAI,WAAU,uBAAsB,OAAO,EAAE,SAASL,EAAA,GACrD,UAAA,gBAAApB,EAACL,KAAO,MAAAC,GAAY,OAAOyB,EAASzB,CAAI,GAAG,GAC7C;AAAA,wBACA,gBAAAG,EAAC,SAAI,WAAU,yDAAwD,OAAO,EAAE,SAASqB,IAAY,EAAA,GACnG,UAAA;AAAA,0BAAA,gBAAApB,EAAC,OAAA,EAAI,WAAWuB,EAAG,oBAAoB3B,EAAK,UAAU,eAAe,aAAa,mBAAmB,GAAI,UAAAA,EAAK,OAAM;AAAA,0BACnHA,EAAK,WAAW,QAAQ,gBAAAI,EAAC,SAAI,WAAU,0BAA0B,YAAK,QAAA,CAAQ;AAAA,wBAAA,GACjF;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OAAO,EAAE,SAASoB,IAAY,EAAA;AAAA,4BAE7B,UAAAxB,EAAK;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBACR;AAAA,oBAAA;AAAA,oBA/BKA,EAAK;AAAA,kBAAA;AAAA,gBAkChB,CAAC;AAAA,gBACAoB,EAAgB,IAAI,CAAC,EAAE,QAAAC,GAAQ,OAAAC,EAAA,GAASQ,MAAS;AAChD,wBAAMC,IAAcV,EAAO,SACtBA,EAAO,eAAeA,EAAO,SAAST,KAAc,0BACrD;AACJ,yBACE,gBAAAT;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,WAAWwB;AAAA,wBACT;AAAA,wBACAN,EAAO,UAAU;AAAA,sBAAA;AAAA,sBAEnB,eAAaA,EAAO,UAAU;AAAA,sBAC9B,OAAO,EAAE,YAAY,GAAGC,IAAQ,CAAC,QAAA;AAAA,sBACjC,gBAAcD,EAAO,WAAW,WAAW,SAAS;AAAA,sBAEpD,UAAA;AAAA,wBAAA,gBAAAlB,EAAC,QAAA,EAAK,WAAU,eAAc,UAAA;AAAA,0BAAA;AAAA,0BAAaI,EAAMe,CAAK,EAAE;AAAA,0BAAM;AAAA,wBAAA,GAAE;AAAA,wBAChE,gBAAAnB;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OAAO,EAAE,SAAS2B,IAAO,IAAI,GAAG,OAAOT,EAAO,SAASU,IAAc,OAAA;AAAA,4BAEpE,UAAA;AAAA,8BAAAV,EAAO,cAAc,QAAQ,gBAAAjB,EAAC,SAAI,WAAU,yDAAyD,YAAO,WAAA,CAAW;AAAA,8BACvHiB,EAAO,iBAAiB,QACvB,gBAAAjB,EAAC,SAAI,WAAU,6FACZ,YAAO,cAAA,CACV;AAAA,8BAEF,gBAAAA,EAAC,OAAA,EAAI,WAAWuB,EAAG,oBAAoBN,EAAO,UAAU,eAAe,aAAa,mBAAmB,GAAI,UAAAA,EAAO,OAAM;AAAA,8BACvHA,EAAO,WAAW,QAAQ,gBAAAjB,EAAC,SAAI,WAAU,0BAA0B,YAAO,QAAA,CAAQ;AAAA,8BAClFiB,EAAO,UAAU,QAChB,gBAAAjB,EAAC,SAAI,WAAU,yFAAyF,YAAO,OAAA,CAAO;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAG1H,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,eAAY;AAAA,4BACZ,OAAO;AAAA,8BACL,SAAS,GAAG0B,IAAO,IAAI,CAAC,MAAMN,IAAY,CAAC;AAAA,8BAC3C,OAAO,sBAAsBjB,EAAM,SAASe,CAAK;AAAA,8BACjD,OAAOS;AAAA,4BAAA;AAAA,4BAGT,UAAA,gBAAA3B;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,WAAU;AAAA,gCACV,SAAQ;AAAA,gCACR,qBAAoB;AAAA,gCACpB,WAAU;AAAA,gCAEV,UAAA,gBAAAA;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,GAAG,WAAW,MAAMG,EAAM,SAASe,IAAQ,EAAE,KAAK,MAAMf,EAAM,SAASe,IAAQ,EAAE;AAAA,oCACjF,cAAa;AAAA,kCAAA;AAAA,gCAAA;AAAA,8BACf;AAAA,4BAAA;AAAA,0BACF;AAAA,wBAAA;AAAA,0CAED,OAAA,EAAI,WAAU,0CAAyC,OAAO,EAAE,SAASQ,IAAO,IAAI,EAAA,GACnF,UAAA,gBAAA1B,EAACL,GAAA,EAAO,MAAMsB,GAAQ,OAAOU,GAAa,EAAA,CAC5C;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAjDK,UAAUV,EAAO,EAAE;AAAA,kBAAA;AAAA,gBAoD9B,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;AACAhB,EAAS,cAAc;"}
@@ -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