@omnifyjp/ui 1.0.0 → 1.0.2
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/components/calendar-event-chip.js +28 -2
- package/dist/components/calendar-event-chip.js.map +1 -1
- package/dist/components/calendar-event-sheet.js +79 -5
- package/dist/components/calendar-event-sheet.js.map +1 -1
- package/dist/components/calendar-mini.js +91 -4
- package/dist/components/calendar-mini.js.map +1 -1
- package/dist/components/calendar-toolbar.js +50 -3
- package/dist/components/calendar-toolbar.js.map +1 -1
- package/dist/components/chart.js +237 -2
- package/dist/components/chart.js.map +1 -1
- package/dist/components/date-picker.js +88 -5
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/form.js +109 -3
- package/dist/components/form.js.map +1 -1
- package/dist/index.d.ts +1 -12
- package/dist/index.js +0 -7
- package/package.json +10 -10
- package/src/styles/theme.css +1 -1
- package/dist/chunk-36YYHIJU.js +0 -52
- package/dist/chunk-36YYHIJU.js.map +0 -1
- package/dist/chunk-DNCZOUNY.js +0 -239
- package/dist/chunk-DNCZOUNY.js.map +0 -1
- package/dist/chunk-HWTW64R5.js +0 -90
- package/dist/chunk-HWTW64R5.js.map +0 -1
- package/dist/chunk-KTBOZ4NE.js +0 -93
- package/dist/chunk-KTBOZ4NE.js.map +0 -1
- package/dist/chunk-LVZNNIK4.js +0 -111
- package/dist/chunk-LVZNNIK4.js.map +0 -1
- package/dist/chunk-THQUH6WX.js +0 -81
- package/dist/chunk-THQUH6WX.js.map +0 -1
- package/dist/chunk-TTH7TWVX.js +0 -30
- package/dist/chunk-TTH7TWVX.js.map +0 -1
package/dist/chunk-THQUH6WX.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-JLTBUACL.js';
|
|
2
|
-
import { CalendarCategoryBadge } from './chunk-JAJMM32I.js';
|
|
3
|
-
import { Separator } from './chunk-PGWNOZDX.js';
|
|
4
|
-
import { Button } from './chunk-55E7D2HR.js';
|
|
5
|
-
import { format } from 'date-fns';
|
|
6
|
-
import { Clock, MapPin, Users, Trash2 } from 'lucide-react';
|
|
7
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
-
|
|
9
|
-
var defaultLabels = {
|
|
10
|
-
allDay: "All Day",
|
|
11
|
-
attendees: "Attendees",
|
|
12
|
-
delete: "Delete"
|
|
13
|
-
};
|
|
14
|
-
function CalendarEventSheet({
|
|
15
|
-
event,
|
|
16
|
-
open,
|
|
17
|
-
onOpenChange,
|
|
18
|
-
onDelete,
|
|
19
|
-
categoryLabel,
|
|
20
|
-
categoryStyles,
|
|
21
|
-
labels: labelsProp
|
|
22
|
-
}) {
|
|
23
|
-
const labels = { ...defaultLabels, ...labelsProp };
|
|
24
|
-
if (!event) return null;
|
|
25
|
-
const timeDisplay = event.allDay ? labels.allDay : `${format(event.start, "HH:mm")} - ${format(event.end, "HH:mm")}`;
|
|
26
|
-
return /* @__PURE__ */ jsx(Sheet, { open, onOpenChange, children: /* @__PURE__ */ jsxs(SheetContent, { className: "sm:max-w-md", children: [
|
|
27
|
-
/* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: event.title }) }),
|
|
28
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-4 space-y-4", children: [
|
|
29
|
-
/* @__PURE__ */ jsx(
|
|
30
|
-
CalendarCategoryBadge,
|
|
31
|
-
{
|
|
32
|
-
category: event.category,
|
|
33
|
-
label: categoryLabel,
|
|
34
|
-
styles: categoryStyles
|
|
35
|
-
}
|
|
36
|
-
),
|
|
37
|
-
event.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: event.description }),
|
|
38
|
-
/* @__PURE__ */ jsx(Separator, {}),
|
|
39
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
40
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 text-sm", children: [
|
|
41
|
-
/* @__PURE__ */ jsx(Clock, { className: "w-4 h-4 text-muted-foreground flex-shrink-0" }),
|
|
42
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
43
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium", children: format(event.start, "EEEE, MMMM d, yyyy") }),
|
|
44
|
-
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: timeDisplay })
|
|
45
|
-
] })
|
|
46
|
-
] }),
|
|
47
|
-
event.location && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 text-sm", children: [
|
|
48
|
-
/* @__PURE__ */ jsx(MapPin, { className: "w-4 h-4 text-muted-foreground flex-shrink-0" }),
|
|
49
|
-
/* @__PURE__ */ jsx("span", { children: event.location })
|
|
50
|
-
] }),
|
|
51
|
-
event.attendees && event.attendees.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 text-sm", children: [
|
|
52
|
-
/* @__PURE__ */ jsx(Users, { className: "w-4 h-4 text-muted-foreground flex-shrink-0 mt-0.5" }),
|
|
53
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
54
|
-
/* @__PURE__ */ jsx("p", { className: "font-medium mb-1", children: labels.attendees }),
|
|
55
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-1", children: event.attendees.map((email) => /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: email }, email)) })
|
|
56
|
-
] })
|
|
57
|
-
] })
|
|
58
|
-
] }),
|
|
59
|
-
/* @__PURE__ */ jsx(Separator, {}),
|
|
60
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxs(
|
|
61
|
-
Button,
|
|
62
|
-
{
|
|
63
|
-
variant: "destructive",
|
|
64
|
-
size: "sm",
|
|
65
|
-
onClick: () => {
|
|
66
|
-
onDelete?.(event.id);
|
|
67
|
-
onOpenChange(false);
|
|
68
|
-
},
|
|
69
|
-
children: [
|
|
70
|
-
/* @__PURE__ */ jsx(Trash2, { className: "w-4 h-4" }),
|
|
71
|
-
labels.delete
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
) })
|
|
75
|
-
] })
|
|
76
|
-
] }) });
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export { CalendarEventSheet };
|
|
80
|
-
//# sourceMappingURL=chunk-THQUH6WX.js.map
|
|
81
|
-
//# sourceMappingURL=chunk-THQUH6WX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/calendar-event-sheet.tsx"],"names":[],"mappings":"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","file":"chunk-THQUH6WX.js","sourcesContent":["import { format } from 'date-fns';\nimport { Clock, MapPin, Users, Trash2 } from 'lucide-react';\nimport { Sheet, SheetContent, SheetHeader, SheetTitle } from './sheet';\nimport { Button } from './button';\nimport { Separator } from './separator';\nimport { CalendarCategoryBadge } from './calendar-category-badge';\n\n/** Extended event data shape for the detail sheet, including description, location, and attendees. */\nexport interface CalendarEventSheetEvent {\n /** Unique event identifier. */\n id: string;\n /** Display title of the event. */\n title: string;\n /** Optional long description or notes for the event. */\n description?: string;\n /** Event start date/time. */\n start: Date;\n /** Event end date/time. */\n end: Date;\n /** Whether this is an all-day event. */\n allDay?: boolean;\n /** CSS color string for the event. */\n color: string;\n /** Category key (e.g. \"meeting\", \"deadline\") used by CalendarCategoryBadge. */\n category: string;\n /** Optional location string. */\n location?: string;\n /** Optional list of attendee email addresses. */\n attendees?: string[];\n}\n\n/** Localizable labels for the event detail sheet. All have English defaults. */\nexport interface CalendarEventSheetLabels {\n /** Text displayed for all-day events instead of a time range. */\n allDay?: string;\n /** Heading text for the attendees section. */\n attendees?: string;\n /** Label for the delete button. */\n delete?: string;\n}\n\nconst defaultLabels: Required<CalendarEventSheetLabels> = {\n allDay: 'All Day',\n attendees: 'Attendees',\n delete: 'Delete',\n};\n\nexport interface CalendarEventSheetProps {\n /** The event to display, or `null` to render nothing. */\n event: CalendarEventSheetEvent | null;\n /** Whether the sheet is open. */\n open: boolean;\n /** Callback to toggle the sheet open state. */\n onOpenChange: (open: boolean) => void;\n /** Optional callback when the delete button is clicked. Receives the event id. */\n onDelete?: (id: string) => void;\n /** Override display label for the category badge. */\n categoryLabel?: string;\n /** Custom className styles per category key for the CalendarCategoryBadge. */\n categoryStyles?: Record<string, string>;\n /** Localizable UI labels with English defaults. */\n labels?: CalendarEventSheetLabels;\n}\n\n/**\n * Side sheet that displays full event details including title, category badge,\n * description, date/time, location, attendees, and a delete action.\n * Built on top of the Sheet component.\n *\n * @example\n * ```tsx\n * <CalendarEventSheet\n * event={selectedEvent}\n * open={sheetOpen}\n * onOpenChange={setSheetOpen}\n * onDelete={(id) => removeEvent(id)}\n * />\n * ```\n */\nexport function CalendarEventSheet({\n event,\n open,\n onOpenChange,\n onDelete,\n categoryLabel,\n categoryStyles,\n labels: labelsProp,\n}: CalendarEventSheetProps) {\n const labels = { ...defaultLabels, ...labelsProp };\n\n if (!event) return null;\n\n const timeDisplay = event.allDay\n ? labels.allDay\n : `${format(event.start, 'HH:mm')} - ${format(event.end, 'HH:mm')}`;\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-md\">\n <SheetHeader>\n <SheetTitle>{event.title}</SheetTitle>\n </SheetHeader>\n <div className=\"mt-4 space-y-4\">\n <CalendarCategoryBadge\n category={event.category}\n label={categoryLabel}\n styles={categoryStyles}\n />\n\n {event.description && (\n <p className=\"text-sm text-muted-foreground\">{event.description}</p>\n )}\n\n <Separator />\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-3 text-sm\">\n <Clock className=\"w-4 h-4 text-muted-foreground flex-shrink-0\" />\n <div>\n <p className=\"font-medium\">{format(event.start, 'EEEE, MMMM d, yyyy')}</p>\n <p className=\"text-muted-foreground\">{timeDisplay}</p>\n </div>\n </div>\n\n {event.location && (\n <div className=\"flex items-center gap-3 text-sm\">\n <MapPin className=\"w-4 h-4 text-muted-foreground flex-shrink-0\" />\n <span>{event.location}</span>\n </div>\n )}\n\n {event.attendees && event.attendees.length > 0 && (\n <div className=\"flex items-start gap-3 text-sm\">\n <Users className=\"w-4 h-4 text-muted-foreground flex-shrink-0 mt-0.5\" />\n <div>\n <p className=\"font-medium mb-1\">{labels.attendees}</p>\n <div className=\"space-y-1\">\n {event.attendees.map(email => (\n <p key={email} className=\"text-muted-foreground\">{email}</p>\n ))}\n </div>\n </div>\n </div>\n )}\n </div>\n\n <Separator />\n\n <div className=\"flex justify-end\">\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => {\n onDelete?.(event.id);\n onOpenChange(false);\n }}\n >\n <Trash2 className=\"w-4 h-4\" />\n {labels.delete}\n </Button>\n </div>\n </div>\n </SheetContent>\n </Sheet>\n );\n}\n"]}
|
package/dist/chunk-TTH7TWVX.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-DGPY4WP3.js';
|
|
2
|
-
import { format } from 'date-fns';
|
|
3
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
function CalendarEventChip({ event, compact = false, onClick }) {
|
|
6
|
-
return /* @__PURE__ */ jsxs(
|
|
7
|
-
"button",
|
|
8
|
-
{
|
|
9
|
-
type: "button",
|
|
10
|
-
onClick: () => onClick?.(event),
|
|
11
|
-
className: cn(
|
|
12
|
-
"w-full text-left rounded px-1.5 py-0.5 text-xs font-medium truncate transition-opacity hover:opacity-80 cursor-pointer",
|
|
13
|
-
compact ? "leading-tight" : "leading-normal"
|
|
14
|
-
),
|
|
15
|
-
style: {
|
|
16
|
-
backgroundColor: `${event.color}20`,
|
|
17
|
-
color: event.color,
|
|
18
|
-
borderLeft: `2px solid ${event.color}`
|
|
19
|
-
},
|
|
20
|
-
children: [
|
|
21
|
-
!event.allDay && !compact && /* @__PURE__ */ jsx("span", { className: "opacity-75 mr-1", children: format(event.start, "HH:mm") }),
|
|
22
|
-
event.title
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { CalendarEventChip };
|
|
29
|
-
//# sourceMappingURL=chunk-TTH7TWVX.js.map
|
|
30
|
-
//# sourceMappingURL=chunk-TTH7TWVX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/calendar-event-chip.tsx"],"names":[],"mappings":";;;;AAyCO,SAAS,kBAAkB,EAAE,KAAA,EAAO,OAAA,GAAU,KAAA,EAAO,SAAQ,EAA2B;AAC7F,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,MAAM,OAAA,GAAU,KAAK,CAAA;AAAA,MAC9B,SAAA,EAAW,EAAA;AAAA,QACT,wHAAA;AAAA,QACA,UAAU,eAAA,GAAkB;AAAA,OAC9B;AAAA,MACA,KAAA,EAAO;AAAA,QACL,eAAA,EAAiB,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA,EAAA,CAAA;AAAA,QAC/B,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,UAAA,EAAY,CAAA,UAAA,EAAa,KAAA,CAAM,KAAK,CAAA;AAAA,OACtC;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,KAAA,CAAM,MAAA,IAAU,CAAC,OAAA,oBACjB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,MAAA,CAAO,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA,EAAE,CAAA;AAAA,QAEjE,KAAA,CAAM;AAAA;AAAA;AAAA,GACT;AAEJ","file":"chunk-TTH7TWVX.js","sourcesContent":["import { format } from 'date-fns';\nimport { cn } from '../lib/utils';\n\n/** Event data shape required by CalendarEventChip. */\nexport interface CalendarEventChipEvent {\n /** Unique event identifier. */\n id: string;\n /** Display title of the event. */\n title: string;\n /** Event start date/time. */\n start: Date;\n /** Event end date/time. */\n end: Date;\n /** Whether this is an all-day event. When true, time is not displayed. */\n allDay?: boolean;\n /** CSS color string used for the chip background, text, and left border. */\n color: string;\n}\n\nexport interface CalendarEventChipProps {\n /** The event to display. */\n event: CalendarEventChipEvent;\n /** Use compact layout with tighter line-height. Defaults to `false`. */\n compact?: boolean;\n /** Callback when the chip is clicked. */\n onClick?: (event: CalendarEventChipEvent) => void;\n}\n\n/**\n * Small colored chip representing a calendar event. Shows the event title\n * with a colored left border and tinted background. Optionally displays\n * the start time for non-all-day events.\n *\n * @example\n * ```tsx\n * <CalendarEventChip\n * event={{ id: \"1\", title: \"Standup\", start: new Date(), end: new Date(), color: \"#3b82f6\" }}\n * onClick={(e) => openDetail(e.id)}\n * />\n * ```\n */\nexport function CalendarEventChip({ event, compact = false, onClick }: CalendarEventChipProps) {\n return (\n <button\n type=\"button\"\n onClick={() => onClick?.(event)}\n className={cn(\n 'w-full text-left rounded px-1.5 py-0.5 text-xs font-medium truncate transition-opacity hover:opacity-80 cursor-pointer',\n compact ? 'leading-tight' : 'leading-normal'\n )}\n style={{\n backgroundColor: `${event.color}20`,\n color: event.color,\n borderLeft: `2px solid ${event.color}`,\n }}\n >\n {!event.allDay && !compact && (\n <span className=\"opacity-75 mr-1\">{format(event.start, 'HH:mm')}</span>\n )}\n {event.title}\n </button>\n );\n}\n"]}
|