rotion 3.4.2 → 3.5.0

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 (56) hide show
  1. package/README.ja.md +23 -1
  2. package/README.md +23 -1
  3. package/dist/ui/components/Calendar/Calendar.d.ts +5 -0
  4. package/dist/ui/components/Calendar/Calendar.types.d.ts +19 -0
  5. package/dist/ui/components/Calendar/CalendarCell/CalendarCell.d.ts +4 -0
  6. package/dist/ui/components/Calendar/CalendarCell/CalendarCell.types.d.ts +7 -0
  7. package/dist/ui/components/Calendar/CalendarCell/index.d.ts +2 -0
  8. package/dist/ui/components/Calendar/CalendarEvent/CalendarEvent.d.ts +4 -0
  9. package/dist/ui/components/Calendar/CalendarEvent/CalendarEvent.types.d.ts +10 -0
  10. package/dist/ui/components/Calendar/CalendarEvent/index.d.ts +2 -0
  11. package/dist/ui/components/Calendar/CalendarHeader/CalendarHeader.d.ts +4 -0
  12. package/dist/ui/components/Calendar/CalendarHeader/CalendarHeader.types.d.ts +8 -0
  13. package/dist/ui/components/Calendar/CalendarHeader/index.d.ts +2 -0
  14. package/dist/ui/components/Calendar/CalendarWeek/CalendarWeek.d.ts +4 -0
  15. package/dist/ui/components/Calendar/CalendarWeek/CalendarWeek.types.d.ts +20 -0
  16. package/dist/ui/components/Calendar/CalendarWeek/index.d.ts +2 -0
  17. package/dist/ui/components/Calendar/index.d.ts +2 -0
  18. package/dist/ui/components/Calendar/lib.d.ts +1 -0
  19. package/dist/ui/components/index.d.ts +5 -0
  20. package/dist/ui/esm/components/Calendar/Calendar.js +185 -0
  21. package/dist/ui/esm/components/Calendar/Calendar.js.map +1 -0
  22. package/dist/ui/esm/components/Calendar/Calendar.types.js +3 -0
  23. package/dist/ui/esm/components/Calendar/Calendar.types.js.map +1 -0
  24. package/dist/ui/esm/components/Calendar/CalendarCell/CalendarCell.js +18 -0
  25. package/dist/ui/esm/components/Calendar/CalendarCell/CalendarCell.js.map +1 -0
  26. package/dist/ui/esm/components/Calendar/CalendarCell/CalendarCell.types.js +3 -0
  27. package/dist/ui/esm/components/Calendar/CalendarCell/CalendarCell.types.js.map +1 -0
  28. package/dist/ui/esm/components/Calendar/CalendarCell/index.js +4 -0
  29. package/dist/ui/esm/components/Calendar/CalendarCell/index.js.map +1 -0
  30. package/dist/ui/esm/components/Calendar/CalendarEvent/CalendarEvent.js +103 -0
  31. package/dist/ui/esm/components/Calendar/CalendarEvent/CalendarEvent.js.map +1 -0
  32. package/dist/ui/esm/components/Calendar/CalendarEvent/CalendarEvent.types.js +3 -0
  33. package/dist/ui/esm/components/Calendar/CalendarEvent/CalendarEvent.types.js.map +1 -0
  34. package/dist/ui/esm/components/Calendar/CalendarEvent/index.js +4 -0
  35. package/dist/ui/esm/components/Calendar/CalendarEvent/index.js.map +1 -0
  36. package/dist/ui/esm/components/Calendar/CalendarHeader/CalendarHeader.js +34 -0
  37. package/dist/ui/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -0
  38. package/dist/ui/esm/components/Calendar/CalendarHeader/CalendarHeader.types.js +3 -0
  39. package/dist/ui/esm/components/Calendar/CalendarHeader/CalendarHeader.types.js.map +1 -0
  40. package/dist/ui/esm/components/Calendar/CalendarHeader/index.js +4 -0
  41. package/dist/ui/esm/components/Calendar/CalendarHeader/index.js.map +1 -0
  42. package/dist/ui/esm/components/Calendar/CalendarWeek/CalendarWeek.js +38 -0
  43. package/dist/ui/esm/components/Calendar/CalendarWeek/CalendarWeek.js.map +1 -0
  44. package/dist/ui/esm/components/Calendar/CalendarWeek/CalendarWeek.types.js +3 -0
  45. package/dist/ui/esm/components/Calendar/CalendarWeek/CalendarWeek.types.js.map +1 -0
  46. package/dist/ui/esm/components/Calendar/CalendarWeek/index.js +4 -0
  47. package/dist/ui/esm/components/Calendar/CalendarWeek/index.js.map +1 -0
  48. package/dist/ui/esm/components/Calendar/index.js +4 -0
  49. package/dist/ui/esm/components/Calendar/index.js.map +1 -0
  50. package/dist/ui/esm/components/Calendar/lib.js +5 -0
  51. package/dist/ui/esm/components/Calendar/lib.js.map +1 -0
  52. package/dist/ui/esm/components/index.js +5 -0
  53. package/dist/ui/esm/components/index.js.map +1 -1
  54. package/dist/ui/index-without-dark.css +1 -1
  55. package/dist/ui/index.css +1 -1
  56. package/package.json +3 -3
package/README.ja.md CHANGED
@@ -134,7 +134,7 @@ export default function MyPage({ blocks }) {
134
134
  Notionデータベースをさまざまな形式で表示:
135
135
 
136
136
  ```tsx
137
- import { Gallery, Table, List } from 'rotion/ui'
137
+ import { Gallery, Table, List, Calendar } from 'rotion/ui'
138
138
  import { FetchDatabase } from 'rotion'
139
139
 
140
140
  const db = await FetchDatabase({ database_id: 'YOUR_DATABASE_ID' })
@@ -147,6 +147,27 @@ const db = await FetchDatabase({ database_id: 'YOUR_DATABASE_ID' })
147
147
 
148
148
  // リストビュー
149
149
  <List db={db} keys={['Name', 'Tags']} />
150
+
151
+ // カレンダービュー
152
+ <Calendar db={db} date="Date" keys={['Name', 'Tags']} />
153
+ ```
154
+
155
+ ##### Calendar オプション
156
+
157
+ カレンダービューは月単位のグリッドを描画します。`start` と `end` を持つ複数日のイベントは、対象のセルにまたがる1本の帯としてレンダリングされ、週境界では帯が分割されて続きが描かれます。
158
+
159
+ ```tsx
160
+ <Calendar
161
+ db={db}
162
+ date="Date" // 必須: 使用するdateプロパティ名
163
+ keys={['Name', 'Tags']} // イベント帯の中に表示するプロパティ
164
+ options={{
165
+ initialDate: '2026-04-01', // YYYY-MM-DD または YYYY-MM (既定: 今日)
166
+ weekStart: 'monday', // 'sunday' | 'monday' (既定: 'sunday')
167
+ locale: 'ja-JP', // navigator.language を上書き
168
+ href: { Name: '/blog/[id]' }, // 他のビューと同じ href/link/query API
169
+ }}
170
+ />
150
171
  ```
151
172
 
152
173
  主なエクスポート
@@ -165,6 +186,7 @@ const db = await FetchDatabase({ database_id: 'YOUR_DATABASE_ID' })
165
186
  - `Gallery` - ギャラリービュー
166
187
  - `Table` - テーブルビュー
167
188
  - `List` - リストビュー
189
+ - `Calendar` - 月単位のカレンダービュー(指定したdateプロパティに従って予定を配置)
168
190
 
169
191
  **ページとブロック:**
170
192
  - `Page` - Notionページ全体を表示
package/README.md CHANGED
@@ -133,7 +133,7 @@ export default function MyPage({ blocks }) {
133
133
  Display Notion databases in different formats:
134
134
 
135
135
  ```tsx
136
- import { Gallery, Table, List } from 'rotion/ui'
136
+ import { Gallery, Table, List, Calendar } from 'rotion/ui'
137
137
  import { FetchDatabase } from 'rotion'
138
138
 
139
139
  const db = await FetchDatabase({ database_id: 'YOUR_DATABASE_ID' })
@@ -146,6 +146,27 @@ const db = await FetchDatabase({ database_id: 'YOUR_DATABASE_ID' })
146
146
 
147
147
  // List view
148
148
  <List db={db} keys={['Name', 'Tags']} />
149
+
150
+ // Calendar view
151
+ <Calendar db={db} date="Date" keys={['Name', 'Tags']} />
152
+ ```
153
+
154
+ ##### Calendar options
155
+
156
+ Calendar view renders a monthly grid. Multi-day events (date properties with both `start` and `end`) are drawn as a single bar that spans the matching cells, with continuation across week boundaries.
157
+
158
+ ```tsx
159
+ <Calendar
160
+ db={db}
161
+ date="Date" // required: name of the date property
162
+ keys={['Name', 'Tags']} // properties to render inside each event bar
163
+ options={{
164
+ initialDate: '2026-04-01', // YYYY-MM-DD or YYYY-MM (default: today)
165
+ weekStart: 'monday', // 'sunday' | 'monday' (default: 'sunday')
166
+ locale: 'ja-JP', // overrides navigator.language for labels
167
+ href: { Name: '/blog/[id]' }, // same href/link/query API as other views
168
+ }}
169
+ />
149
170
  ```
150
171
 
151
172
  Main Exports
@@ -164,6 +185,7 @@ Main Exports
164
185
  - `Gallery` – Gallery view for databases
165
186
  - `Table` – Table view for databases
166
187
  - `List` – List view for databases
188
+ - `Calendar` – Monthly calendar view for databases (events placed on a date property)
167
189
 
168
190
  **Page & Blocks:**
169
191
  - `Page` – Renders a complete Notion page
@@ -0,0 +1,5 @@
1
+ import type { CalendarProps } from './Calendar.types';
2
+
3
+
4
+ declare const Calendar: ({ keys, date, db, options }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default Calendar;
@@ -0,0 +1,19 @@
1
+ import type { ParsedUrlQueryInput } from 'node:querystring';
2
+ import type { QueryDatabaseResponseEx } from '../../../exporter/index.js';
3
+ import type { Link } from '../types.js';
4
+ export interface CalendarProps {
5
+ keys: string[];
6
+ date: string;
7
+ db: QueryDatabaseResponseEx;
8
+ options?: CalendarOptions;
9
+ }
10
+ export interface CalendarOptions {
11
+ href?: {
12
+ [key: string]: string;
13
+ };
14
+ link?: Link;
15
+ query?: ParsedUrlQueryInput;
16
+ initialDate?: string;
17
+ weekStart?: 'sunday' | 'monday';
18
+ locale?: string;
19
+ }
@@ -0,0 +1,4 @@
1
+ import type { CalendarCellProps } from './CalendarCell.types';
2
+
3
+ declare const CalendarCell: ({ year, month, day, inMonth, isToday }: CalendarCellProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default CalendarCell;
@@ -0,0 +1,7 @@
1
+ export interface CalendarCellProps {
2
+ year: number;
3
+ month: number;
4
+ day: number;
5
+ inMonth: boolean;
6
+ isToday: boolean;
7
+ }
@@ -0,0 +1,2 @@
1
+ import CalendarCell from './CalendarCell.js';
2
+ export { CalendarCell };
@@ -0,0 +1,4 @@
1
+ import type { CalendarEventProps } from './CalendarEvent.types';
2
+
3
+ declare const CalendarEvent: ({ page, keys, date, options, continuationLeft, continuationRight }: CalendarEventProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default CalendarEvent;
@@ -0,0 +1,10 @@
1
+ import type { PageObjectResponseEx } from '../../../../exporter/index.js';
2
+ import type { CalendarOptions } from '../Calendar.types.js';
3
+ export interface CalendarEventProps {
4
+ page: PageObjectResponseEx;
5
+ keys: string[];
6
+ date: string;
7
+ options?: CalendarOptions;
8
+ continuationLeft?: boolean;
9
+ continuationRight?: boolean;
10
+ }
@@ -0,0 +1,2 @@
1
+ import CalendarEvent from './CalendarEvent.js';
2
+ export { CalendarEvent };
@@ -0,0 +1,4 @@
1
+ import type { CalendarHeaderProps } from './CalendarHeader.types';
2
+
3
+ declare const CalendarHeader: ({ year, month, locale, onPrev, onNext, onToday }: CalendarHeaderProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default CalendarHeader;
@@ -0,0 +1,8 @@
1
+ export interface CalendarHeaderProps {
2
+ year: number;
3
+ month: number;
4
+ locale?: string;
5
+ onPrev: () => void;
6
+ onNext: () => void;
7
+ onToday: () => void;
8
+ }
@@ -0,0 +1,2 @@
1
+ import CalendarHeader from './CalendarHeader.js';
2
+ export { CalendarHeader };
@@ -0,0 +1,4 @@
1
+ import type { CalendarWeekProps } from './CalendarWeek.types';
2
+
3
+ declare const CalendarWeek: ({ weekStart, monthInView, todayKey, placed, slotCount, keys, date, options }: CalendarWeekProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default CalendarWeek;
@@ -0,0 +1,20 @@
1
+ import type { PageObjectResponseEx } from '../../../../exporter/index.js';
2
+ import type { CalendarOptions } from '../Calendar.types.js';
3
+ export interface PlacedEvent {
4
+ page: PageObjectResponseEx;
5
+ startCol: number;
6
+ span: number;
7
+ slot: number;
8
+ isStart: boolean;
9
+ isEnd: boolean;
10
+ }
11
+ export interface CalendarWeekProps {
12
+ weekStart: Date;
13
+ monthInView: number;
14
+ todayKey: string;
15
+ placed: PlacedEvent[];
16
+ slotCount: number;
17
+ keys: string[];
18
+ date: string;
19
+ options?: CalendarOptions;
20
+ }
@@ -0,0 +1,2 @@
1
+ import CalendarWeek from './CalendarWeek.js';
2
+ export { CalendarWeek };
@@ -0,0 +1,2 @@
1
+ import Calendar from './Calendar.js';
2
+ export { Calendar };
@@ -0,0 +1 @@
1
+ export declare function dateKey(d: Date): string;
@@ -1,3 +1,8 @@
1
+ export * from './Calendar/index.js';
2
+ export * from './Calendar/CalendarCell/index.js';
3
+ export * from './Calendar/CalendarEvent/index.js';
4
+ export * from './Calendar/CalendarHeader/index.js';
5
+ export * from './Calendar/CalendarWeek/index.js';
1
6
  export * from './Checkbox/index.js';
2
7
  export * from './Gallery/GalleryCard/index.js';
3
8
  export * from './Gallery/GalleryCheckboxField/index.js';
@@ -0,0 +1,185 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo, useState } from 'react';
4
+ import CalendarHeader from './CalendarHeader/CalendarHeader.js';
5
+ import CalendarWeek from './CalendarWeek/CalendarWeek.js';
6
+ import { dateKey } from './lib.js';
7
+
8
+
9
+ const WEEKDAYS_SUN = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
10
+ const WEEKDAYS_MON = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
11
+ const WEEKDAYS_SUN_JA = ['日', '月', '火', '水', '木', '金', '土'];
12
+ const WEEKDAYS_MON_JA = ['月', '火', '水', '木', '金', '土', '日'];
13
+ function detectLang(locale) {
14
+ return locale || (typeof navigator !== 'undefined' ? navigator.language : undefined);
15
+ }
16
+ function getWeekdayLabels(weekStart, locale) {
17
+ const lang = detectLang(locale);
18
+ try {
19
+ const formatter = new Intl.DateTimeFormat(lang, { weekday: 'short' });
20
+ const baseSunday = new Date(Date.UTC(2024, 0, 7));
21
+ const labels = Array.from({ length: 7 }, (_, i) => {
22
+ const d = new Date(baseSunday);
23
+ d.setUTCDate(baseSunday.getUTCDate() + i);
24
+ return formatter.format(d);
25
+ });
26
+ if (weekStart === 'monday') {
27
+ return [...labels.slice(1), labels[0]];
28
+ }
29
+ return labels;
30
+ }
31
+ catch (_a) {
32
+ const isJa = lang === null || lang === void 0 ? void 0 : lang.includes('ja');
33
+ if (weekStart === 'monday')
34
+ return isJa ? WEEKDAYS_MON_JA : WEEKDAYS_MON;
35
+ return isJa ? WEEKDAYS_SUN_JA : WEEKDAYS_SUN;
36
+ }
37
+ }
38
+ function parseInitialDate(initialDate) {
39
+ if (!initialDate)
40
+ return new Date();
41
+ const m = /^(\d{4})-(\d{2})(?:-(\d{2}))?/.exec(initialDate);
42
+ if (!m)
43
+ return new Date();
44
+ const year = Number.parseInt(m[1], 10);
45
+ const month = Number.parseInt(m[2], 10) - 1;
46
+ const day = m[3] ? Number.parseInt(m[3], 10) : 1;
47
+ return new Date(year, month, day);
48
+ }
49
+ function buildCalendarDays(year, month, weekStart) {
50
+ const firstOfMonth = new Date(year, month, 1);
51
+ const startOffset = weekStart === 'monday' ? (firstOfMonth.getDay() + 6) % 7 : firstOfMonth.getDay();
52
+ const start = new Date(year, month, 1 - startOffset);
53
+ const days = [];
54
+ for (let i = 0; i < 42; i++) {
55
+ days.push(new Date(start.getFullYear(), start.getMonth(), start.getDate() + i));
56
+ }
57
+ // Trim to 5 weeks if the 6th week is entirely in the next month
58
+ const sixthWeekStart = days[35];
59
+ if (sixthWeekStart && sixthWeekStart.getMonth() !== month) {
60
+ return days.slice(0, 35);
61
+ }
62
+ return days;
63
+ }
64
+ function dayDiff(a, b) {
65
+ const ms = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime() - new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();
66
+ return Math.round(ms / 86400000);
67
+ }
68
+ function getEventDateRange(page, dateKeyName) {
69
+ const property = page.properties[dateKeyName];
70
+ if (!property || property.type !== 'date' || !property.date) {
71
+ return null;
72
+ }
73
+ const startStr = property.date.start;
74
+ const endStr = property.date.end || property.date.start;
75
+ const start = parseDateOnly(startStr);
76
+ const end = parseDateOnly(endStr);
77
+ if (!(start && end))
78
+ return null;
79
+ return { start, end };
80
+ }
81
+ function parseDateOnly(s) {
82
+ // Accept either YYYY-MM-DD or full ISO; treat as local date (date-only).
83
+ const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(s);
84
+ if (!m)
85
+ return null;
86
+ return new Date(Number.parseInt(m[1], 10), Number.parseInt(m[2], 10) - 1, Number.parseInt(m[3], 10));
87
+ }
88
+ function parseAllEvents(pages, dateKeyName) {
89
+ const list = [];
90
+ for (const page of pages) {
91
+ const range = getEventDateRange(page, dateKeyName);
92
+ if (!range)
93
+ continue;
94
+ list.push({ page, range });
95
+ }
96
+ list.sort((a, b) => {
97
+ const sd = a.range.start.getTime() - b.range.start.getTime();
98
+ if (sd !== 0)
99
+ return sd;
100
+ return b.range.end.getTime() - a.range.end.getTime();
101
+ });
102
+ return list;
103
+ }
104
+ function placeWeekEvents(weekStart, events) {
105
+ const weekEnd = new Date(weekStart.getFullYear(), weekStart.getMonth(), weekStart.getDate() + 6);
106
+ const occupancy = [];
107
+ const placed = [];
108
+ for (const { page, range } of events) {
109
+ if (range.end < weekStart || range.start > weekEnd)
110
+ continue;
111
+ const startCol = Math.max(0, dayDiff(range.start, weekStart));
112
+ const endCol = Math.min(6, dayDiff(range.end, weekStart));
113
+ const span = endCol - startCol + 1;
114
+ if (span <= 0)
115
+ continue;
116
+ let slot = 0;
117
+ while (true) {
118
+ if (!occupancy[slot])
119
+ occupancy[slot] = [false, false, false, false, false, false, false];
120
+ let free = true;
121
+ for (let c = startCol; c <= endCol; c++) {
122
+ if (occupancy[slot][c]) {
123
+ free = false;
124
+ break;
125
+ }
126
+ }
127
+ if (free) {
128
+ for (let c = startCol; c <= endCol; c++) {
129
+ occupancy[slot][c] = true;
130
+ }
131
+ placed.push({
132
+ page,
133
+ startCol,
134
+ span,
135
+ slot,
136
+ isStart: dayDiff(range.start, weekStart) >= 0,
137
+ isEnd: dayDiff(range.end, weekStart) <= 6,
138
+ });
139
+ break;
140
+ }
141
+ slot++;
142
+ }
143
+ }
144
+ return { placed, slotCount: occupancy.length };
145
+ }
146
+ const Calendar = ({ keys, date, db, options }) => {
147
+ const weekStart = (options === null || options === void 0 ? void 0 : options.weekStart) || 'sunday';
148
+ const initial = parseInitialDate(options === null || options === void 0 ? void 0 : options.initialDate);
149
+ const [cursor, setCursor] = useState({
150
+ year: initial.getFullYear(),
151
+ month: initial.getMonth(),
152
+ });
153
+ const today = new Date();
154
+ const days = useMemo(() => buildCalendarDays(cursor.year, cursor.month, weekStart), [cursor.year, cursor.month, weekStart]);
155
+ const parsedEvents = useMemo(() => parseAllEvents(db.results, date), [db.results, date]);
156
+ const weeks = useMemo(() => {
157
+ const result = [];
158
+ for (let i = 0; i < days.length; i += 7) {
159
+ const ws = days[i];
160
+ result.push({ weekStart: ws, placement: placeWeekEvents(ws, parsedEvents) });
161
+ }
162
+ return result;
163
+ }, [days, parsedEvents]);
164
+ const weekdayLabels = getWeekdayLabels(weekStart, options === null || options === void 0 ? void 0 : options.locale);
165
+ const goPrev = () => {
166
+ setCursor((c) => {
167
+ const next = new Date(c.year, c.month - 1, 1);
168
+ return { year: next.getFullYear(), month: next.getMonth() };
169
+ });
170
+ };
171
+ const goNext = () => {
172
+ setCursor((c) => {
173
+ const next = new Date(c.year, c.month + 1, 1);
174
+ return { year: next.getFullYear(), month: next.getMonth() };
175
+ });
176
+ };
177
+ const goToday = () => {
178
+ const now = new Date();
179
+ setCursor({ year: now.getFullYear(), month: now.getMonth() });
180
+ };
181
+ const todayKey = dateKey(today);
182
+ return (_jsxs("div", { className: "rotion-calendar", children: [_jsx(CalendarHeader, { year: cursor.year, month: cursor.month, locale: options === null || options === void 0 ? void 0 : options.locale, onPrev: goPrev, onNext: goNext, onToday: goToday }), _jsxs("div", { className: "rotion-calendar-grid", children: [_jsx("div", { className: "rotion-calendar-weekdays", children: weekdayLabels.map((label) => (_jsx("div", { className: "rotion-calendar-weekday", children: label }, label))) }), _jsx("div", { className: "rotion-calendar-days", children: weeks.map((w) => (_jsx(CalendarWeek, { weekStart: w.weekStart, monthInView: cursor.month, todayKey: todayKey, placed: w.placement.placed, slotCount: w.placement.slotCount, keys: keys, date: date, options: options }, dateKey(w.weekStart)))) })] })] }));
183
+ };
184
+ export default Calendar;
185
+ //# sourceMappingURL=Calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../../../../src/ui/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGzC,OAAO,cAAc,MAAM,oCAAoC,CAAA;AAC/D,OAAO,YAAY,MAAM,gCAAgC,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,eAAe,CAAA;AACtB,OAAO,gBAAgB,CAAA;AAEvB,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AACtE,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AACtE,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC3D,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAI3D,SAAS,UAAU,CAAC,MAAe;IACjC,OAAO,MAAM,IAAI,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AACtF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA8B,EAAE,MAAe;IACvE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QACrE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;YAC9B,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;YACzC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAA;QACxE,OAAO,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAoB;IAC5C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,IAAI,EAAE,CAAA;IACnC,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,IAAI,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAE,SAA8B;IACpF,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,WAAW,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACpG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAA;IACpD,MAAM,IAAI,GAAW,EAAE,CAAA;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,gEAAgE;IAChE,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/B,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,OAAO,CAAC,CAAO,EAAE,CAAO;IAC/B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1I,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B,EAAE,WAAmB;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAC7C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAA;IACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAA;IACvD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAChC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,yEAAyE;IACzE,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AACtG,CAAC;AAED,SAAS,cAAc,CAAC,KAA6B,EAAE,WAAmB;IACxE,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC5D,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACvB,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IACtD,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,SAAe,EAAE,MAAqB;IAC7D,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IAChG,MAAM,SAAS,GAAgB,EAAE,CAAA;IACjC,MAAM,MAAM,GAAkB,EAAE,CAAA;IAEhC,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,GAAG,OAAO;YAAE,SAAQ;QAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;QACzD,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAA;QAClC,IAAI,IAAI,IAAI,CAAC;YAAE,SAAQ;QAEvB,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YACzF,IAAI,IAAI,GAAG,IAAI,CAAA;YACf,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,IAAI,GAAG,KAAK,CAAA;oBACZ,MAAK;gBACP,CAAC;YACH,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;gBAC3B,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,IAAI;oBACJ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;oBAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC;iBAC1C,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;YACD,IAAI,EAAE,CAAA;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAA;AAChD,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAiB,EAAE,EAAE;IAC9D,MAAM,SAAS,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,QAAQ,CAAA;IAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAC,CAAA;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAkC;QACpE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;KAC1B,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IAE3H,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,OAAiC,EAAE,IAAI,CAAC,EAChE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CACnB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,MAAM,GAAmF,EAAE,CAAA;QACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;IAExB,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAA;IAElE,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE/B,OAAO,CACL,eAAK,SAAS,EAAC,iBAAiB,aAC9B,KAAC,cAAc,IACb,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GAChB,EACF,eAAK,SAAS,EAAC,sBAAsB,aACnC,cAAK,SAAS,EAAC,0BAA0B,YACtC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,cAAiB,SAAS,EAAC,yBAAyB,YACjD,KAAK,IADE,KAAK,CAET,CACP,CAAC,GACE,EACN,cAAK,SAAS,EAAC,sBAAsB,YAClC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,KAAC,YAAY,IAEX,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAC1B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,EAChC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,IARX,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CASzB,CACH,CAAC,GACE,IACF,IACF,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export {};
3
+ //# sourceMappingURL=Calendar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.types.js","sourceRoot":"","sources":["../../../../../../src/ui/components/Calendar/Calendar.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+
4
+ const CalendarCell = ({ year, month, day, inMonth, isToday }) => {
5
+ const dow = new Date(year, month, day).getDay();
6
+ const isWeekend = dow === 0 || dow === 6;
7
+ const className = [
8
+ 'rotion-calendar-cell',
9
+ inMonth ? 'rotion-calendar-cell-in' : 'rotion-calendar-cell-out',
10
+ isToday ? 'rotion-calendar-cell-today' : '',
11
+ isWeekend ? 'rotion-calendar-cell-weekend' : '',
12
+ ]
13
+ .filter(Boolean)
14
+ .join(' ');
15
+ return (_jsx("div", { className: className, "data-date": `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`, children: _jsx("div", { className: "rotion-calendar-cell-day", children: day }) }));
16
+ };
17
+ export default CalendarCell;
18
+ //# sourceMappingURL=CalendarCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarCell.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarCell/CalendarCell.tsx"],"names":[],"mappings":";AACA,OAAO,oBAAoB,CAAA;AAE3B,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAqB,EAAE,EAAE;IACjF,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;IAC/C,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;IAExC,MAAM,SAAS,GAAG;QAChB,sBAAsB;QACtB,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B;QAChE,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE;QAC3C,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE;KAChD;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,eAAa,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,YACnH,cAAK,SAAS,EAAC,0BAA0B,YAAE,GAAG,GAAO,GACjD,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export {};
3
+ //# sourceMappingURL=CalendarCell.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarCell.types.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarCell/CalendarCell.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ import CalendarCell from './CalendarCell.js';
3
+ export { CalendarCell };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarCell/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,103 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { getLinkPathAndLinkKey, getSlug, richTextKey } from '../../lib.js';
4
+ import { RichText } from '../../RichText/index.js';
5
+
6
+ function findTitlePropertyName(page) {
7
+ for (const key in page.properties) {
8
+ const p = page.properties[key];
9
+ if (p.type === 'title') {
10
+ return key;
11
+ }
12
+ }
13
+ }
14
+ function renderIcon(page) {
15
+ if (!page.icon)
16
+ return null;
17
+ if (page.icon.type === 'emoji') {
18
+ return _jsx("span", { className: "rotion-calendar-event-emoji", children: page.icon.emoji });
19
+ }
20
+ if (page.icon.type === 'external' || page.icon.type === 'file') {
21
+ return _jsx("img", { className: "rotion-calendar-event-icon-img", src: page.icon.src, alt: "" });
22
+ }
23
+ return null;
24
+ }
25
+ function renderTitle(page, key) {
26
+ const property = page.properties[key];
27
+ if (!property || property.type !== 'title') {
28
+ return null;
29
+ }
30
+ const text = property.title;
31
+ return (_jsx("span", { className: "rotion-calendar-event-title", children: text.map((t, i) => (_jsx(RichText, { textObject: t }, richTextKey(t.plain_text, i)))) }));
32
+ }
33
+ function renderProperty(page, key) {
34
+ const property = page.properties[key];
35
+ if (!property) {
36
+ return null;
37
+ }
38
+ switch (property.type) {
39
+ case 'select': {
40
+ const select = property.select;
41
+ if (!select)
42
+ return null;
43
+ return (_jsx("span", { className: `rotion-calendar-event-tag rotion-tag-${select.color}`, children: select.name }));
44
+ }
45
+ case 'multi_select': {
46
+ const items = property.multi_select;
47
+ if (!(items === null || items === void 0 ? void 0 : items.length))
48
+ return null;
49
+ return (_jsx("span", { className: "rotion-calendar-event-tags", children: items.map((s) => (_jsx("span", { className: `rotion-calendar-event-tag rotion-tag-${s.color}`, children: s.name }, s.id))) }));
50
+ }
51
+ case 'rich_text': {
52
+ const text = property.rich_text;
53
+ if (!(text === null || text === void 0 ? void 0 : text.length))
54
+ return null;
55
+ return (_jsx("span", { className: "rotion-calendar-event-text", children: text.map((t, i) => (_jsx(RichText, { textObject: t }, richTextKey(t.plain_text, i)))) }));
56
+ }
57
+ default:
58
+ return null;
59
+ }
60
+ }
61
+ const CalendarEvent = ({ page, keys, date, options, continuationLeft, continuationRight }) => {
62
+ const titleKey = findTitlePropertyName(page);
63
+ const { href, link, query } = options || {};
64
+ let pathname;
65
+ if (titleKey && (href === null || href === void 0 ? void 0 : href[titleKey])) {
66
+ const [path, slugKey] = getLinkPathAndLinkKey(href[titleKey]);
67
+ pathname = slugKey === '' ? path : `${path}${getSlug(slugKey, page)}`;
68
+ }
69
+ const className = [
70
+ 'rotion-calendar-event',
71
+ pathname ? 'rotion-calendar-event-link' : '',
72
+ continuationLeft ? 'rotion-calendar-event-cont-left' : '',
73
+ continuationRight ? 'rotion-calendar-event-cont-right' : '',
74
+ ]
75
+ .filter(Boolean)
76
+ .join(' ');
77
+ const renderedKeys = keys.includes(titleKey || '') || !titleKey ? keys : [titleKey, ...keys];
78
+ const body = (_jsxs(_Fragment, { children: [page.icon && _jsx("span", { className: "rotion-calendar-event-icon", children: renderIcon(page) }), _jsx("span", { className: "rotion-calendar-event-body", children: renderedKeys.map((name) => {
79
+ if (name === date)
80
+ return null;
81
+ if (name === titleKey) {
82
+ return _jsx("span", { children: renderTitle(page, name) }, name);
83
+ }
84
+ const rendered = renderProperty(page, name);
85
+ if (!rendered)
86
+ return null;
87
+ return _jsx("span", { children: rendered }, name);
88
+ }) })] }));
89
+ if (pathname && link && query) {
90
+ const L = link;
91
+ return (_jsx(L, { className: className, href: { pathname, query }, children: body }));
92
+ }
93
+ if (pathname && link) {
94
+ const L = link;
95
+ return (_jsx(L, { className: className, href: pathname, children: body }));
96
+ }
97
+ if (pathname) {
98
+ return (_jsx("a", { className: className, href: pathname, children: body }));
99
+ }
100
+ return _jsx("div", { className: className, children: body });
101
+ };
102
+ export default CalendarEvent;
103
+ //# sourceMappingURL=CalendarEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarEvent.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarEvent/CalendarEvent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export {};
3
+ //# sourceMappingURL=CalendarEvent.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarEvent.types.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarEvent/CalendarEvent.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ import CalendarEvent from './CalendarEvent.js';
3
+ export { CalendarEvent };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/Calendar/CalendarEvent/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,CAAA"}