@trsys-tech/matrix-library 1.1.1-canary.0 → 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.
- package/dist/accordion.es.js +21 -19
- package/dist/accordion.es.js.map +1 -1
- package/dist/avatar.es.js +19 -19
- package/dist/avatar.es.js.map +1 -1
- package/dist/breadcrumb.es.js +7 -7
- package/dist/breadcrumb.es.js.map +1 -1
- package/dist/calendar.es.js +40 -33
- package/dist/calendar.es.js.map +1 -1
- package/dist/chip.es.js +28 -22
- package/dist/chip.es.js.map +1 -1
- package/dist/command.es.js +35 -32
- package/dist/command.es.js.map +1 -1
- package/dist/components/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/chip/Chip.d.ts.map +1 -1
- package/dist/components/command/Command.d.ts.map +1 -1
- package/dist/components/date-picker/DesktopDatePicker.d.ts +1 -1
- package/dist/components/date-picker/DesktopDatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DesktopTimePicker.d.ts +2 -2
- package/dist/components/date-picker/DesktopTimePicker.d.ts.map +1 -1
- package/dist/components/date-picker/TimePickerContent.d.ts.map +1 -1
- package/dist/components/date-picker/calendar.d.ts.map +1 -1
- package/dist/components/gantt-chart/GanttChart.d.ts +104 -0
- package/dist/components/gantt-chart/GanttChart.d.ts.map +1 -0
- package/dist/components/gantt-chart/GanttToolbar.d.ts +14 -0
- package/dist/components/gantt-chart/GanttToolbar.d.ts.map +1 -0
- package/dist/components/gantt-chart/gantt-chart.types.d.ts +45 -0
- package/dist/components/gantt-chart/gantt-chart.types.d.ts.map +1 -0
- package/dist/components/gantt-chart/gantt-chart.utils.d.ts +34 -0
- package/dist/components/gantt-chart/gantt-chart.utils.d.ts.map +1 -0
- package/dist/components/multi-select/MultiSelect.d.ts +0 -8
- package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
- package/dist/components/rating/Rating.d.ts +1 -0
- package/dist/components/rating/Rating.d.ts.map +1 -1
- package/dist/components/sidebar/Sidebar.d.ts +1 -1
- package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +5 -3
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/timeline/Timeline.d.ts +40 -0
- package/dist/components/timeline/Timeline.d.ts.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/desktopdatepicker.es.js +2 -2
- package/dist/desktopdatepicker.es.js.map +1 -1
- package/dist/desktoptimepicker.es.js.map +1 -1
- package/dist/duration.es.js +1 -1
- package/dist/duration.es.js.map +1 -1
- package/dist/gantt-chart.es.js +93 -0
- package/dist/gantt-chart.es.js.map +1 -0
- package/dist/ganttchart.es.js +337 -0
- package/dist/ganttchart.es.js.map +1 -0
- package/dist/gantttoolbar.es.js +49 -0
- package/dist/gantttoolbar.es.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +191 -187
- package/dist/index.es.js.map +1 -1
- package/dist/lib/hooks/use-mobile.d.ts.map +1 -1
- package/dist/multiselect.es.js +121 -130
- package/dist/multiselect.es.js.map +1 -1
- package/dist/rating.es.js +47 -50
- package/dist/rating.es.js.map +1 -1
- package/dist/sidebar.es.js +46 -48
- package/dist/sidebar.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch.es.js +5 -5
- package/dist/switch.es.js.map +1 -1
- package/dist/tabs.es.js +25 -26
- package/dist/tabs.es.js.map +1 -1
- package/dist/textfield.es.js +18 -18
- package/dist/textfield.es.js.map +1 -1
- package/dist/timeline.es.js +182 -0
- package/dist/timeline.es.js.map +1 -0
- package/dist/timepickercontent.es.js +39 -42
- package/dist/timepickercontent.es.js.map +1 -1
- package/dist/tooltip.es.js +15 -13
- package/dist/tooltip.es.js.map +1 -1
- package/dist/use-mobile.es.js +15 -10
- package/dist/use-mobile.es.js.map +1 -1
- package/package.json +7 -1
package/dist/switch.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import * as i from "react";
|
|
3
|
-
import * as
|
|
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
|
|
19
|
-
|
|
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 =
|
|
26
|
+
c.displayName = "Switch";
|
|
27
27
|
export {
|
|
28
28
|
c as Switch
|
|
29
29
|
};
|
package/dist/switch.es.js.map
CHANGED
|
@@ -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 =
|
|
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
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import * as o from "react";
|
|
3
|
-
import { Root as
|
|
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
|
|
6
|
-
|
|
5
|
+
const u = f, d = o.forwardRef(({ className: t, ...e }, m) => /* @__PURE__ */ a(
|
|
6
|
+
s,
|
|
7
7
|
{
|
|
8
|
-
ref:
|
|
8
|
+
ref: m,
|
|
9
9
|
className: r(
|
|
10
|
-
"mtx-inline-flex mtx-h-
|
|
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 =
|
|
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 },
|
|
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
|
-
|
|
33
|
+
l.displayName = x.displayName;
|
|
35
34
|
export {
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
u as Tabs,
|
|
36
|
+
l as TabsContent,
|
|
38
37
|
d as TabsList,
|
|
39
|
-
|
|
38
|
+
b as TabsTrigger
|
|
40
39
|
};
|
|
41
40
|
//# sourceMappingURL=tabs.es.js.map
|
package/dist/tabs.es.js.map
CHANGED
|
@@ -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 {
|
|
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;"}
|
package/dist/textfield.es.js
CHANGED
|
@@ -23,38 +23,38 @@ const j = F({
|
|
|
23
23
|
className: s,
|
|
24
24
|
slotProps: e,
|
|
25
25
|
suffix: t,
|
|
26
|
-
endAdornment:
|
|
26
|
+
endAdornment: l,
|
|
27
27
|
startAdornment: m,
|
|
28
|
-
size:
|
|
29
|
-
value:
|
|
30
|
-
onChange:
|
|
28
|
+
size: d,
|
|
29
|
+
value: p,
|
|
30
|
+
onChange: f,
|
|
31
31
|
defaultValue: u,
|
|
32
|
-
type:
|
|
33
|
-
disabled:
|
|
32
|
+
type: x,
|
|
33
|
+
disabled: r,
|
|
34
34
|
onWheel: i,
|
|
35
|
-
id:
|
|
36
|
-
"aria-describedby":
|
|
35
|
+
id: c,
|
|
36
|
+
"aria-describedby": b,
|
|
37
37
|
"aria-invalid": h,
|
|
38
38
|
...g
|
|
39
39
|
}, y) => {
|
|
40
40
|
const w = (a) => {
|
|
41
|
-
|
|
41
|
+
x === "number" && a.target.blur(), i && i(a);
|
|
42
42
|
};
|
|
43
|
-
return /* @__PURE__ */ v("div", { ...g, className: o(j({ size:
|
|
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:
|
|
48
|
+
type: x,
|
|
49
49
|
onWheel: w,
|
|
50
50
|
ref: y,
|
|
51
|
-
id:
|
|
52
|
-
"aria-describedby":
|
|
51
|
+
id: c,
|
|
52
|
+
"aria-describedby": b,
|
|
53
53
|
"aria-invalid": h,
|
|
54
|
-
onChange:
|
|
55
|
-
value:
|
|
54
|
+
onChange: f,
|
|
55
|
+
value: p,
|
|
56
56
|
defaultValue: u,
|
|
57
|
-
disabled:
|
|
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
|
-
|
|
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
|
);
|
package/dist/textfield.es.js.map
CHANGED
|
@@ -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,
|
|
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":"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"}
|
|
@@ -1,64 +1,61 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
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
|
|
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
|
-
},
|
|
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
|
|
10
|
-
const n =
|
|
11
|
-
return r ? { hour:
|
|
12
|
-
hour:
|
|
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 ?? (
|
|
14
|
+
ampm: e.ampm ?? (x >= 12 ? "PM" : "AM")
|
|
15
15
|
};
|
|
16
|
-
},
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
top: t * (
|
|
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
|
-
},
|
|
23
|
-
|
|
24
|
-
top: t * (
|
|
22
|
+
}, v = (t) => {
|
|
23
|
+
p?.current?.scrollTo({
|
|
24
|
+
top: t * (s + u),
|
|
25
25
|
behavior: "smooth"
|
|
26
26
|
});
|
|
27
|
-
},
|
|
28
|
-
const
|
|
29
|
-
|
|
27
|
+
}, h = (t) => {
|
|
28
|
+
const o = b(t, n);
|
|
29
|
+
m.current = o, x(o);
|
|
30
30
|
}, N = (t) => {
|
|
31
|
-
|
|
31
|
+
h({ ...m.current, hour: t });
|
|
32
32
|
}, A = (t) => {
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
|
|
33
|
+
h({ ...m.current, minute: t });
|
|
34
|
+
}, M = (t) => {
|
|
35
|
+
h({ ...m.current, ampm: t });
|
|
36
36
|
};
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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:
|
|
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 ===
|
|
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__ */
|
|
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:
|
|
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 ===
|
|
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__ */
|
|
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:
|
|
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 ===
|
|
86
|
+
t === l.ampm && "mtx-bg-secondary"
|
|
90
87
|
),
|
|
91
|
-
onClick: () =>
|
|
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
|
-
|
|
99
|
+
_ as TimePickerContent
|
|
103
100
|
};
|
|
104
101
|
//# sourceMappingURL=timepickercontent.es.js.map
|