@utopia-studio-design/design-system-cli 0.4.1 → 0.6.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.
- package/README.md +23 -0
- package/bin/utopia-ds-mcp.mjs +9 -2
- package/bin/utopia-ds.mjs +106 -8
- package/data/blocks/activity-feed/ActivityFeedBlock.tsx +255 -0
- package/data/blocks/activity-feed/README.md +16 -0
- package/data/blocks/activity-feed/activity-feed-contract.ts +96 -0
- package/data/blocks/activity-feed/activity-feed-fixture.ts +22 -0
- package/data/blocks/activity-feed/activity-feed.css +154 -0
- package/data/blocks/agent-status/AgentStatusBlock.tsx +313 -0
- package/data/blocks/agent-status/README.md +15 -0
- package/data/blocks/agent-status/agent-status-contract.ts +133 -0
- package/data/blocks/agent-status/agent-status-fixture.ts +79 -0
- package/data/blocks/agent-status/agent-status.css +216 -0
- package/data/blocks/analytics-dashboard/AnalyticsDashboardBlocks.tsx +107 -0
- package/data/blocks/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
- package/data/blocks/analytics-dashboard/README.md +17 -0
- package/data/blocks/analytics-dashboard/analytics-dashboard.css +92 -0
- package/data/blocks/calendar-application/CalendarApplicationBlocks.tsx +519 -0
- package/data/blocks/calendar-application/README.md +20 -0
- package/data/blocks/calendar-application/calendar-application.css +216 -0
- package/data/blocks/calendar-application/calendar-localization.ts +90 -0
- package/data/blocks/calendar-application/calendar-panel-contract.ts +72 -0
- package/data/blocks/dashboard-composer/CeramicPuckAdapter.tsx +380 -0
- package/data/blocks/dashboard-composer/DashboardComposerBlocks.tsx +337 -0
- package/data/blocks/dashboard-composer/README.md +16 -0
- package/data/blocks/dashboard-composer/RegistryDataBlocks.tsx +238 -0
- package/data/blocks/dashboard-composer/dashboard-composer.css +328 -0
- package/data/blocks/database-workspace/DatabaseWorkspaceBlocks.tsx +240 -0
- package/data/blocks/database-workspace/README.md +9 -0
- package/data/blocks/database-workspace/database-workspace.css +107 -0
- package/data/blocks/interaction-workbench/InteractionWorkbench.tsx +271 -0
- package/data/blocks/interaction-workbench/README.md +9 -0
- package/data/blocks/interaction-workbench/interaction-workbench.css +226 -0
- package/data/docs/calendar.md +164 -0
- package/data/docs/charts.md +95 -0
- package/data/docs/composition-registry.md +174 -0
- package/data/docs/dashboard-composer.md +94 -0
- package/data/docs/database.md +68 -0
- package/data/docs/examples/dashboard-layout.v1.json +65 -0
- package/data/docs/foundations.md +1 -1
- package/data/docs/interaction-foundation.md +109 -0
- package/data/docs/quick-start-ai.md +23 -1
- package/data/manifests/blocks.json +392 -0
- package/data/manifests/catalog.json +7 -4
- package/data/manifests/components.json +179 -0
- package/data/manifests/composition-registry.json +427 -0
- package/data/manifests/motion-profiles.json +1 -1
- package/data/manifests/patterns.json +113 -1
- package/data/manifests/templates.json +346 -0
- package/data/manifests/theme-renacore.json +142 -0
- package/data/manifests/theme-vyapti.json +125 -0
- package/data/manifests/themes.json +400 -28
- package/data/templates/analytics-dashboard/AnalyticsDashboardBlocks.tsx +107 -0
- package/data/templates/analytics-dashboard/AnalyticsMetricBlocks.tsx +87 -0
- package/data/templates/analytics-dashboard/README.md +6 -0
- package/data/templates/analytics-dashboard/analytics-dashboard.css +92 -0
- package/data/templates/analytics-dashboard/index.html +13 -0
- package/data/templates/analytics-dashboard/main.tsx +196 -0
- package/data/templates/analytics-dashboard/styles.css +120 -0
- package/data/templates/analytics-dashboard/template.manifest.json +17 -0
- package/data/templates/calendar-application/CalendarApplicationBlocks.tsx +519 -0
- package/data/templates/calendar-application/README.md +10 -0
- package/data/templates/calendar-application/calendar-application.css +216 -0
- package/data/templates/calendar-application/calendar-localization.ts +90 -0
- package/data/templates/calendar-application/index.html +14 -0
- package/data/templates/calendar-application/main.tsx +409 -0
- package/data/templates/calendar-application/styles.css +248 -0
- package/data/templates/calendar-application/template.manifest.json +27 -0
- package/data/templates/composition-registry-lab/README.md +9 -0
- package/data/templates/composition-registry-lab/index.html +14 -0
- package/data/templates/composition-registry-lab/main.tsx +217 -0
- package/data/templates/composition-registry-lab/sample-layout.json +63 -0
- package/data/templates/composition-registry-lab/styles.css +343 -0
- package/data/templates/composition-registry-lab/template.manifest.json +34 -0
- package/data/templates/dashboard-composer/ActivityFeedBlock.tsx +255 -0
- package/data/templates/dashboard-composer/AgentStatusBlock.tsx +313 -0
- package/data/templates/dashboard-composer/AnalyticsDashboardBlocks.tsx +107 -0
- package/data/templates/dashboard-composer/AnalyticsMetricBlocks.tsx +87 -0
- package/data/templates/dashboard-composer/CalendarApplicationBlocks.tsx +519 -0
- package/data/templates/dashboard-composer/CeramicPuckAdapter.tsx +380 -0
- package/data/templates/dashboard-composer/DashboardComposerBlocks.tsx +337 -0
- package/data/templates/dashboard-composer/DatabaseWorkspaceBlocks.tsx +240 -0
- package/data/templates/dashboard-composer/README.md +53 -0
- package/data/templates/dashboard-composer/RegistryDataBlocks.tsx +238 -0
- package/data/templates/dashboard-composer/activity-feed-contract.ts +96 -0
- package/data/templates/dashboard-composer/activity-feed-fixture.ts +22 -0
- package/data/templates/dashboard-composer/activity-feed.css +154 -0
- package/data/templates/dashboard-composer/agent-status-contract.ts +133 -0
- package/data/templates/dashboard-composer/agent-status-fixture.ts +79 -0
- package/data/templates/dashboard-composer/agent-status-lab/index.html +19 -0
- package/data/templates/dashboard-composer/agent-status-lab/main.tsx +151 -0
- package/data/templates/dashboard-composer/agent-status-lab/styles.css +139 -0
- package/data/templates/dashboard-composer/agent-status.css +216 -0
- package/data/templates/dashboard-composer/analytics-dashboard.css +92 -0
- package/data/templates/dashboard-composer/calendar-application.css +216 -0
- package/data/templates/dashboard-composer/calendar-localization.ts +90 -0
- package/data/templates/dashboard-composer/calendar-panel-contract.ts +72 -0
- package/data/templates/dashboard-composer/dashboard-composer.css +328 -0
- package/data/templates/dashboard-composer/database-workspace.css +107 -0
- package/data/templates/dashboard-composer/index.html +14 -0
- package/data/templates/dashboard-composer/main.tsx +550 -0
- package/data/templates/dashboard-composer/sample-layout.json +147 -0
- package/data/templates/dashboard-composer/styles.css +198 -0
- package/data/templates/dashboard-composer/template.manifest.json +34 -0
- package/data/templates/dashboard-composer/visual-editor/PuckEditorSurface.tsx +132 -0
- package/data/templates/dashboard-composer/visual-editor/VisualEditorApp.tsx +343 -0
- package/data/templates/dashboard-composer/visual-editor/index.html +17 -0
- package/data/templates/dashboard-composer/visual-editor/main.tsx +95 -0
- package/data/templates/dashboard-composer/visual-editor/styles.css +310 -0
- package/data/templates/database-workspace/DatabaseWorkspaceBlocks.tsx +240 -0
- package/data/templates/database-workspace/README.md +5 -0
- package/data/templates/database-workspace/database-workspace.css +107 -0
- package/data/templates/database-workspace/index.html +14 -0
- package/data/templates/database-workspace/main.tsx +247 -0
- package/data/templates/database-workspace/styles.css +121 -0
- package/data/templates/database-workspace/template.manifest.json +19 -0
- package/data/templates/interaction-lab/InteractionWorkbench.tsx +271 -0
- package/data/templates/interaction-lab/README.md +7 -0
- package/data/templates/interaction-lab/index.html +14 -0
- package/data/templates/interaction-lab/interaction-workbench.css +226 -0
- package/data/templates/interaction-lab/main.tsx +104 -0
- package/data/templates/interaction-lab/styles.css +224 -0
- package/data/templates/interaction-lab/template.manifest.json +36 -0
- package/lib/api.mjs +72 -5
- package/lib/composition-runtime.mjs +382 -0
- package/package.json +4 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
.ceramic-calendar-sidebar,
|
|
2
|
+
.ceramic-calendar-sidebar fieldset,
|
|
3
|
+
.ceramic-event-editor form {
|
|
4
|
+
display: grid;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.ceramic-calendar-sidebar {
|
|
8
|
+
align-content: start;
|
|
9
|
+
gap: var(--space-5);
|
|
10
|
+
padding: var(--space-4);
|
|
11
|
+
border-inline-end: var(--border-width-hairline) solid var(--border);
|
|
12
|
+
background: var(--surface);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.ceramic-calendar-sidebar-heading {
|
|
16
|
+
display: grid;
|
|
17
|
+
gap: var(--space-1);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.ceramic-calendar-sidebar-heading > span {
|
|
21
|
+
color: var(--muted-foreground);
|
|
22
|
+
font-size: var(--font-size-eyebrow);
|
|
23
|
+
font-weight: var(--font-weight-semibold);
|
|
24
|
+
letter-spacing: var(--tracking-eyebrow);
|
|
25
|
+
text-transform: uppercase;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ceramic-calendar-sidebar-heading > strong {
|
|
29
|
+
font-size: var(--font-size-body);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ceramic-calendar-mini {
|
|
33
|
+
inline-size: 100%;
|
|
34
|
+
padding: 0;
|
|
35
|
+
border: 0;
|
|
36
|
+
background: transparent;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.ceramic-calendar-mini .uds-calendar-month {
|
|
40
|
+
inline-size: 100%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.ceramic-calendar-mini .uds-calendar-title {
|
|
44
|
+
font-size: var(--font-size-small);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.ceramic-calendar-mini .uds-calendar-grid {
|
|
48
|
+
inline-size: 100%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ceramic-calendar-mini .uds-calendar-day-button {
|
|
52
|
+
inline-size: 100%;
|
|
53
|
+
min-inline-size: 0;
|
|
54
|
+
block-size: 1.875rem;
|
|
55
|
+
min-block-size: 1.875rem;
|
|
56
|
+
padding: 0;
|
|
57
|
+
font-size: var(--font-size-eyebrow);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ceramic-calendar-sidebar fieldset {
|
|
61
|
+
gap: var(--space-2);
|
|
62
|
+
margin: 0;
|
|
63
|
+
padding: var(--space-4) 0 0;
|
|
64
|
+
border: 0;
|
|
65
|
+
border-block-start: var(--border-width-hairline) solid var(--border);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ceramic-calendar-sidebar legend {
|
|
69
|
+
margin-block-end: var(--space-3);
|
|
70
|
+
font-size: var(--font-size-small);
|
|
71
|
+
font-weight: var(--font-weight-semibold);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.ceramic-calendar-sidebar fieldset label,
|
|
75
|
+
.ceramic-event-checkbox {
|
|
76
|
+
display: grid;
|
|
77
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: var(--space-2);
|
|
80
|
+
min-block-size: var(--button-height-sm);
|
|
81
|
+
color: var(--muted-foreground);
|
|
82
|
+
font-size: var(--font-size-small);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.ceramic-calendar-sidebar fieldset label > span {
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
gap: var(--space-2);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ceramic-calendar-sidebar fieldset i {
|
|
92
|
+
inline-size: 0.5rem;
|
|
93
|
+
block-size: 0.5rem;
|
|
94
|
+
border-radius: var(--radius-round);
|
|
95
|
+
background: var(--interaction-selection-border);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.ceramic-calendar-sidebar fieldset i[data-resource='customer'] {
|
|
99
|
+
background: var(--warning);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.ceramic-calendar-sidebar fieldset i[data-resource='focus'] {
|
|
103
|
+
background: var(--success);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.ceramic-timezone-selector {
|
|
107
|
+
display: grid;
|
|
108
|
+
gap: var(--space-2);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.ceramic-agenda-panel {
|
|
112
|
+
min-inline-size: 0;
|
|
113
|
+
padding: var(--space-4);
|
|
114
|
+
overflow: auto;
|
|
115
|
+
border-inline-start: var(--border-width-hairline) solid var(--border);
|
|
116
|
+
background: var(--surface);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.ceramic-agenda-panel .uds-scheduler-agenda li {
|
|
120
|
+
grid-template-columns: minmax(0, 1fr);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.ceramic-agenda-panel .uds-scheduler-agenda li > span {
|
|
124
|
+
display: none;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.ceramic-agenda-panel .uds-scheduler-event {
|
|
128
|
+
inline-size: 100%;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.ceramic-event-editor-backdrop {
|
|
132
|
+
position: fixed;
|
|
133
|
+
z-index: var(--z-overlay);
|
|
134
|
+
inset: 0;
|
|
135
|
+
background: var(--overlay);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.ceramic-event-editor {
|
|
139
|
+
position: fixed;
|
|
140
|
+
z-index: var(--z-modal);
|
|
141
|
+
inset-block: 0;
|
|
142
|
+
inset-inline-end: 0;
|
|
143
|
+
inline-size: min(100%, 30rem);
|
|
144
|
+
overflow: auto;
|
|
145
|
+
padding: var(--space-6);
|
|
146
|
+
border-inline-start: var(--border-width-strong) solid var(--border);
|
|
147
|
+
background: var(--popover-surface);
|
|
148
|
+
color: var(--foreground);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.ceramic-event-editor > header,
|
|
152
|
+
.ceramic-event-editor-actions,
|
|
153
|
+
.ceramic-event-editor-actions > div {
|
|
154
|
+
display: flex;
|
|
155
|
+
flex-wrap: wrap;
|
|
156
|
+
align-items: start;
|
|
157
|
+
gap: var(--space-2);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.ceramic-event-editor > header,
|
|
161
|
+
.ceramic-event-editor-actions {
|
|
162
|
+
justify-content: space-between;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.ceramic-event-editor > header > div {
|
|
166
|
+
display: grid;
|
|
167
|
+
gap: var(--space-1);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.ceramic-event-editor > header span {
|
|
171
|
+
color: var(--muted-foreground);
|
|
172
|
+
font-size: var(--font-size-eyebrow);
|
|
173
|
+
font-weight: var(--font-weight-semibold);
|
|
174
|
+
letter-spacing: var(--tracking-eyebrow);
|
|
175
|
+
text-transform: uppercase;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.ceramic-event-editor h2 {
|
|
179
|
+
margin: 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.ceramic-event-editor form {
|
|
183
|
+
gap: var(--space-4);
|
|
184
|
+
margin-block-start: var(--space-6);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.ceramic-event-editor-actions {
|
|
188
|
+
margin-block-start: var(--space-2);
|
|
189
|
+
padding-block-start: var(--space-4);
|
|
190
|
+
border-block-start: var(--border-width-hairline) solid var(--border);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.ceramic-event-editor-alert {
|
|
194
|
+
padding: var(--space-3);
|
|
195
|
+
border: var(--border-width-hairline) solid var(--destructive-border);
|
|
196
|
+
border-radius: var(--radius-md);
|
|
197
|
+
background: var(--destructive-surface);
|
|
198
|
+
color: var(--destructive-text);
|
|
199
|
+
font-size: var(--font-size-small);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.ceramic-event-editor-alert:focus {
|
|
203
|
+
outline: var(--focus-ring-width) solid var(--focus-ring);
|
|
204
|
+
outline-offset: var(--focus-ring-offset);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@media (max-width: 44rem) {
|
|
208
|
+
.ceramic-event-editor {
|
|
209
|
+
inline-size: 100%;
|
|
210
|
+
padding: var(--space-4);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.ceramic-event-editor-actions > div {
|
|
214
|
+
flex: 1 1 auto;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { SchedulerLabelOverrides } from '@utopia-studio-design/design-system/Calendar'
|
|
2
|
+
|
|
3
|
+
export const calendarLocaleOptions = ['en-US', 'ar-SA', 'ar-EG', 'ar-AE'] as const
|
|
4
|
+
export type CalendarLocale = typeof calendarLocaleOptions[number]
|
|
5
|
+
|
|
6
|
+
export function isArabicCalendarLocale(locale: string) {
|
|
7
|
+
return locale.toLowerCase().startsWith('ar')
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const arabicSchedulerLabels: SchedulerLabelOverrides = {
|
|
11
|
+
navigationLabel: 'التنقل بين تواريخ التقويم',
|
|
12
|
+
changeDateLabel: 'تغيير تاريخ التقويم',
|
|
13
|
+
previous: 'السابق',
|
|
14
|
+
today: 'اليوم',
|
|
15
|
+
next: 'التالي',
|
|
16
|
+
viewsLabel: 'طرق عرض التقويم',
|
|
17
|
+
view: { month: 'الشهر', week: 'الأسبوع', day: 'اليوم', agenda: 'جدول الأعمال' },
|
|
18
|
+
compactView: { month: 'الشهر', week: 'الأسبوع', day: 'اليوم', agenda: 'الأجندة' },
|
|
19
|
+
newEvent: 'حدث جديد',
|
|
20
|
+
allDay: 'طوال اليوم',
|
|
21
|
+
allDayRegion: 'أحداث طوال اليوم',
|
|
22
|
+
dayView: 'عرض تقويم اليوم',
|
|
23
|
+
weekView: 'عرض تقويم الأسبوع',
|
|
24
|
+
monthView: 'عرض تقويم الشهر',
|
|
25
|
+
monthGrid: 'شبكة تقويم الشهر',
|
|
26
|
+
agenda: 'جدول الأحداث',
|
|
27
|
+
accessibleAgenda: 'جدول الأحداث المتاح',
|
|
28
|
+
noEventsInRange: 'لا توجد أحداث في هذه الفترة.',
|
|
29
|
+
calendars: (count) => `${new Intl.NumberFormat('ar').format(count)} تقاويم`,
|
|
30
|
+
more: (count) => `${new Intl.NumberFormat('ar').format(count)} أخرى`,
|
|
31
|
+
compactMore: (count) => `+${new Intl.NumberFormat('ar').format(count)}`,
|
|
32
|
+
selectDate: (dateLabel) => `اختيار ${dateLabel}`,
|
|
33
|
+
selectedEvent: 'الحدث المحدد',
|
|
34
|
+
selectedActions: 'إجراءات الحدث المحدد',
|
|
35
|
+
moveResizeActions: 'نقل الحدث المحدد وتغيير مدته',
|
|
36
|
+
moreActions: 'مزيد من إجراءات الحدث',
|
|
37
|
+
moveEarlier: 'نقل ١٥ دقيقة إلى وقت أبكر',
|
|
38
|
+
moveLater: 'نقل ١٥ دقيقة إلى وقت لاحق',
|
|
39
|
+
extend: 'تمديد ١٥ دقيقة',
|
|
40
|
+
duplicate: 'تكرار',
|
|
41
|
+
delete: 'حذف',
|
|
42
|
+
undo: 'التراجع عن آخر تغيير',
|
|
43
|
+
saving: 'جارٍ حفظ تغيير التقويم…',
|
|
44
|
+
saveError: 'فشل تغيير التقويم وتمت استعادته.',
|
|
45
|
+
conflict: 'يتعارض هذا التغيير مع حدث آخر أو فترة غير متاحة.',
|
|
46
|
+
loading: 'جارٍ تحميل أحداث التقويم…',
|
|
47
|
+
emptyTitle: 'لا توجد أحداث مجدولة',
|
|
48
|
+
emptyDescription: 'أنشئ حدثًا أو غيّر نطاق التاريخ.',
|
|
49
|
+
errorTitle: 'التقويم غير متاح',
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function getCalendarSchedulerLabels(locale: string) {
|
|
53
|
+
return isArabicCalendarLocale(locale) ? arabicSchedulerLabels : undefined
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function getCalendarSidebarLabels(locale: string) {
|
|
57
|
+
return isArabicCalendarLocale(locale) ? {
|
|
58
|
+
ariaLabel: 'الشريط الجانبي للتقويم',
|
|
59
|
+
jumpToDate: 'الانتقال إلى تاريخ',
|
|
60
|
+
schedule: 'الجدول',
|
|
61
|
+
calendars: 'تقاويمي',
|
|
62
|
+
} : undefined
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function getCalendarEditorLabels(locale: string) {
|
|
66
|
+
return isArabicCalendarLocale(locale) ? {
|
|
67
|
+
ariaLabel: 'محرر الحدث',
|
|
68
|
+
eyebrow: 'حدث التقويم',
|
|
69
|
+
newEvent: 'حدث جديد',
|
|
70
|
+
close: 'إغلاق محرر الحدث',
|
|
71
|
+
title: 'العنوان',
|
|
72
|
+
starts: 'يبدأ',
|
|
73
|
+
ends: 'ينتهي',
|
|
74
|
+
allDay: 'حدث طوال اليوم',
|
|
75
|
+
applyTo: 'تطبيق التغيير على',
|
|
76
|
+
occurrence: 'هذا التكرار',
|
|
77
|
+
series: 'السلسلة بأكملها',
|
|
78
|
+
save: 'حفظ الحدث',
|
|
79
|
+
saving: 'جارٍ حفظ الحدث…',
|
|
80
|
+
cancel: 'إلغاء',
|
|
81
|
+
delete: 'حذف الحدث',
|
|
82
|
+
validationSummary: 'تحقق من الحقول المميزة.',
|
|
83
|
+
titleRequired: 'أدخل عنوان الحدث.',
|
|
84
|
+
startRequired: 'أدخل تاريخ ووقت البدء.',
|
|
85
|
+
endRequired: 'أدخل تاريخ ووقت الانتهاء.',
|
|
86
|
+
invalidDateTime: 'أدخل تاريخًا ووقتًا صالحين.',
|
|
87
|
+
endAfterStart: 'يجب أن يكون الانتهاء بعد البدء.',
|
|
88
|
+
saveError: 'تعذر حفظ الحدث. لا تزال تغييراتك موجودة.',
|
|
89
|
+
} : undefined
|
|
90
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" dir="ltr" data-theme="utopia-default" data-color-mode="light">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="description" content="Ceramic application-grade calendar and scheduler template." />
|
|
7
|
+
<title>Calendar Application — Ceramic Design System</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<a class="skip-link" href="#main-content">Skip to calendar application</a>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="./main.tsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|