@arbidocs/blocks 0.4.71 → 0.4.72
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/agents/index.cjs +223 -224
- package/dist/agents/index.js +7 -8
- package/dist/calendar/CalendarGrid.d.ts +2 -0
- package/dist/calendar/CalendarList.d.ts +2 -0
- package/dist/calendar/CalendarSettingsForm.d.ts +2 -0
- package/dist/calendar/EventDetails.d.ts +2 -0
- package/dist/calendar/EventEditor.d.ts +2 -0
- package/dist/calendar/MiniMonth.d.ts +2 -0
- package/dist/calendar/RecurrenceEditor.d.ts +13 -0
- package/dist/calendar/RoomFinder.d.ts +2 -0
- package/dist/calendar/SchedulingAssistant.d.ts +2 -0
- package/dist/calendar/ScopeDialog.d.ts +2 -0
- package/dist/calendar/TimeZonePicker.d.ts +2 -0
- package/dist/calendar/colors.d.ts +4 -0
- package/dist/calendar/draft.d.ts +43 -0
- package/dist/calendar/format.d.ts +14 -0
- package/dist/calendar/grid-model.d.ts +24 -0
- package/dist/calendar/index.cjs +4122 -0
- package/dist/calendar/index.cjs.map +1 -0
- package/dist/calendar/index.d.ts +30 -0
- package/dist/calendar/index.js +4043 -0
- package/dist/calendar/index.js.map +1 -0
- package/dist/calendar/labels.d.ts +4 -0
- package/dist/calendar/recurrence-labels.d.ts +22 -0
- package/dist/calendar/recurrence.d.ts +66 -0
- package/dist/calendar/reminders.d.ts +26 -0
- package/dist/calendar/scheduling.d.ts +27 -0
- package/dist/calendar/types.d.ts +605 -0
- package/dist/calendar/ui.d.ts +16 -0
- package/dist/calendar/zone.d.ts +56 -0
- package/dist/chat/index.cjs +123 -123
- package/dist/chat/index.js +3 -3
- package/dist/{chunk-XNRGCQPZ.cjs → chunk-3SFFTSOI.cjs} +5 -5
- package/dist/{chunk-XNRGCQPZ.cjs.map → chunk-3SFFTSOI.cjs.map} +1 -1
- package/dist/{chunk-7WM62NMM.cjs → chunk-6OL5S7MJ.cjs} +5 -2
- package/dist/chunk-6OL5S7MJ.cjs.map +1 -0
- package/dist/{chunk-VUEZARW5.cjs → chunk-B3WCKBJ7.cjs} +278 -5
- package/dist/chunk-B3WCKBJ7.cjs.map +1 -0
- package/dist/{chunk-L5UPP2HC.js → chunk-D46ZAPEE.js} +5 -2
- package/dist/chunk-D46ZAPEE.js.map +1 -0
- package/dist/{chunk-7M22KND4.cjs → chunk-DH7C2UJO.cjs} +10 -10
- package/dist/{chunk-7M22KND4.cjs.map → chunk-DH7C2UJO.cjs.map} +1 -1
- package/dist/{chunk-CXWESDIZ.cjs → chunk-F4RUCUXF.cjs} +6 -6
- package/dist/{chunk-CXWESDIZ.cjs.map → chunk-F4RUCUXF.cjs.map} +1 -1
- package/dist/{chunk-DABEWNL2.js → chunk-G5DP27DU.js} +3 -3
- package/dist/{chunk-DABEWNL2.js.map → chunk-G5DP27DU.js.map} +1 -1
- package/dist/{chunk-LTA2IAQB.cjs → chunk-G5QTGKDJ.cjs} +4 -4
- package/dist/{chunk-LTA2IAQB.cjs.map → chunk-G5QTGKDJ.cjs.map} +1 -1
- package/dist/{chunk-VZGBCBYB.js → chunk-GJV2G4FC.js} +276 -7
- package/dist/chunk-GJV2G4FC.js.map +1 -0
- package/dist/{chunk-HLMFU7L2.js → chunk-IMC2Z32C.js} +8 -8
- package/dist/{chunk-HLMFU7L2.js.map → chunk-IMC2Z32C.js.map} +1 -1
- package/dist/{chunk-5DM6VU4L.cjs → chunk-KJ3QEKOJ.cjs} +3 -3
- package/dist/{chunk-5DM6VU4L.cjs.map → chunk-KJ3QEKOJ.cjs.map} +1 -1
- package/dist/{chunk-3TVTG7FK.js → chunk-KOXUBCLL.js} +3 -3
- package/dist/{chunk-3TVTG7FK.js.map → chunk-KOXUBCLL.js.map} +1 -1
- package/dist/{chunk-ILGHS6ZV.js → chunk-SB5ZKOYN.js} +3 -3
- package/dist/{chunk-ILGHS6ZV.js.map → chunk-SB5ZKOYN.js.map} +1 -1
- package/dist/{chunk-CPMNAJLF.js → chunk-TX2ZICS7.js} +24 -4
- package/dist/chunk-TX2ZICS7.js.map +1 -0
- package/dist/{chunk-2ZTONLT5.cjs → chunk-ULWRNGGE.cjs} +25 -4
- package/dist/chunk-ULWRNGGE.cjs.map +1 -0
- package/dist/{chunk-BMWZTNZB.js → chunk-VRPRAU3J.js} +3 -3
- package/dist/{chunk-BMWZTNZB.js.map → chunk-VRPRAU3J.js.map} +1 -1
- package/dist/collaboration/index.cjs +44 -45
- package/dist/collaboration/index.js +2 -3
- package/dist/connect/index.cjs +64 -35
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +1 -1
- package/dist/connect/index.js +36 -9
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedSettings.d.ts +13 -0
- package/dist/document-tools/index.cjs +4 -5
- package/dist/document-tools/index.cjs.map +1 -1
- package/dist/document-tools/index.js +1 -2
- package/dist/document-tools/index.js.map +1 -1
- package/dist/facts/index.cjs +2 -2
- package/dist/facts/index.js +2 -2
- package/dist/files/import/index.d.ts +0 -1
- package/dist/files/index.cjs +24 -88
- package/dist/files/index.cjs.map +1 -1
- package/dist/files/index.js +6 -68
- package/dist/files/index.js.map +1 -1
- package/dist/home/index.cjs +1 -1
- package/dist/home/index.js +1 -1
- package/dist/index.cjs +536 -537
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +13 -14
- package/dist/index.js.map +1 -1
- package/dist/settings/Billing.d.ts +4 -0
- package/dist/settings/IdentityVerification.d.ts +83 -0
- package/dist/settings/PlanBadge.d.ts +2 -2
- package/dist/settings/PlanCard.d.ts +6 -1
- package/dist/settings/ProfileCard.d.ts +5 -1
- package/dist/settings/SubscriptionParts.d.ts +6 -2
- package/dist/settings/index.cjs +128 -95
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +64 -47
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/ActionCluster.d.ts +3 -1
- package/dist/shell/index.cjs +55 -55
- package/dist/shell/index.js +3 -3
- package/dist/studio/index.cjs +6 -6
- package/dist/studio/index.js +5 -5
- package/dist/workspaces/index.cjs +2 -3
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.js +1 -2
- package/dist/workspaces/index.js.map +1 -1
- package/package.json +23 -5
- package/src/calendar/calendar.css +316 -0
- package/dist/chunk-2ZTONLT5.cjs.map +0 -1
- package/dist/chunk-7WM62NMM.cjs.map +0 -1
- package/dist/chunk-CPMNAJLF.js.map +0 -1
- package/dist/chunk-DCDVWPMB.cjs +0 -29
- package/dist/chunk-DCDVWPMB.cjs.map +0 -1
- package/dist/chunk-L5UPP2HC.js.map +0 -1
- package/dist/chunk-TJMKFY5P.js +0 -27
- package/dist/chunk-TJMKFY5P.js.map +0 -1
- package/dist/chunk-VUEZARW5.cjs.map +0 -1
- package/dist/chunk-VZGBCBYB.js.map +0 -1
- package/dist/files/import/CalendarImportRow.d.ts +0 -26
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @arbidocs/blocks/calendar.css — theme for the calendar block (FullCalendar v6 on ARBI tokens).
|
|
3
|
+
* Import once from the app stylesheet: `@import '@arbidocs/blocks/calendar.css';`.
|
|
4
|
+
* FullCalendar v6 injects its own structural CSS at runtime; this file only re-skins it through
|
|
5
|
+
* its `--fc-*` variables and styles the block's own event content. Plain CSS on the HSL triplet
|
|
6
|
+
* tokens, so light and dark themes follow automatically.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.arbi-calendar {
|
|
10
|
+
--fc-border-color: hsl(var(--border));
|
|
11
|
+
--fc-page-bg-color: hsl(var(--background));
|
|
12
|
+
--fc-neutral-bg-color: hsl(var(--muted) / 0.6);
|
|
13
|
+
--fc-neutral-text-color: hsl(var(--muted-foreground));
|
|
14
|
+
--fc-today-bg-color: hsl(var(--primary) / 0.05);
|
|
15
|
+
--fc-now-indicator-color: hsl(var(--destructive));
|
|
16
|
+
--fc-non-business-color: hsl(var(--muted) / 0.55);
|
|
17
|
+
--fc-highlight-color: hsl(var(--primary) / 0.12);
|
|
18
|
+
--fc-list-event-hover-bg-color: hsl(var(--muted));
|
|
19
|
+
--fc-event-selected-overlay-color: hsl(var(--foreground) / 0.12);
|
|
20
|
+
--fc-small-font-size: 0.75rem;
|
|
21
|
+
color: hsl(var(--foreground));
|
|
22
|
+
font-size: 0.8125rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.arbi-calendar .fc {
|
|
26
|
+
height: 100%;
|
|
27
|
+
}
|
|
28
|
+
.arbi-calendar .fc-scrollgrid {
|
|
29
|
+
border-radius: 0.5rem;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
}
|
|
32
|
+
.arbi-calendar .fc a {
|
|
33
|
+
color: inherit;
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
}
|
|
36
|
+
.arbi-calendar .fc .fc-col-header-cell {
|
|
37
|
+
font-weight: 500;
|
|
38
|
+
color: hsl(var(--muted-foreground));
|
|
39
|
+
}
|
|
40
|
+
.arbi-calendar .fc .fc-col-header-cell-cushion {
|
|
41
|
+
padding: 4px 2px;
|
|
42
|
+
}
|
|
43
|
+
.arbi-calendar .fc .fc-timegrid-slot {
|
|
44
|
+
height: 2.5em;
|
|
45
|
+
}
|
|
46
|
+
.arbi-calendar .fc .fc-timegrid-slot-minor {
|
|
47
|
+
border-top-style: dotted;
|
|
48
|
+
}
|
|
49
|
+
.arbi-calendar .fc .fc-timegrid-slot-label,
|
|
50
|
+
.arbi-calendar .fc .fc-timegrid-axis {
|
|
51
|
+
color: hsl(var(--muted-foreground));
|
|
52
|
+
font-size: 0.6875rem;
|
|
53
|
+
}
|
|
54
|
+
.arbi-calendar .fc .fc-timegrid-slot-label-cushion {
|
|
55
|
+
padding: 0 6px;
|
|
56
|
+
}
|
|
57
|
+
.arbi-calendar .fc .fc-daygrid-day-number {
|
|
58
|
+
font-size: 0.75rem;
|
|
59
|
+
padding: 4px 6px;
|
|
60
|
+
}
|
|
61
|
+
.arbi-calendar .fc .fc-day-today .fc-daygrid-day-number {
|
|
62
|
+
background: hsl(var(--primary));
|
|
63
|
+
color: hsl(var(--primary-foreground));
|
|
64
|
+
border-radius: 9999px;
|
|
65
|
+
min-width: 1.5rem;
|
|
66
|
+
text-align: center;
|
|
67
|
+
margin: 2px;
|
|
68
|
+
padding: 2px 6px;
|
|
69
|
+
}
|
|
70
|
+
.arbi-calendar .fc .fc-daygrid-week-number,
|
|
71
|
+
.arbi-calendar .fc .fc-timegrid-axis-cushion {
|
|
72
|
+
color: hsl(var(--muted-foreground));
|
|
73
|
+
background: transparent;
|
|
74
|
+
font-size: 0.6875rem;
|
|
75
|
+
}
|
|
76
|
+
.arbi-calendar .fc .fc-timegrid-now-indicator-line {
|
|
77
|
+
border-width: 2px 0 0;
|
|
78
|
+
}
|
|
79
|
+
.arbi-calendar .fc .fc-list-day-cushion {
|
|
80
|
+
background: hsl(var(--muted) / 0.6);
|
|
81
|
+
}
|
|
82
|
+
.arbi-calendar .fc .fc-multimonth {
|
|
83
|
+
border: 0;
|
|
84
|
+
}
|
|
85
|
+
.arbi-calendar .fc .fc-multimonth-title {
|
|
86
|
+
font-size: 0.9375rem;
|
|
87
|
+
font-weight: 600;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Day header in time grids: weekday over a big day number; today in a primary circle. */
|
|
91
|
+
.arbi-cal-dayhead {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-direction: column;
|
|
94
|
+
align-items: center;
|
|
95
|
+
line-height: 1.1;
|
|
96
|
+
}
|
|
97
|
+
.arbi-cal-dayhead-dow {
|
|
98
|
+
font-size: 0.6875rem;
|
|
99
|
+
text-transform: uppercase;
|
|
100
|
+
letter-spacing: 0.04em;
|
|
101
|
+
}
|
|
102
|
+
.arbi-cal-dayhead-num {
|
|
103
|
+
font-size: 1.25rem;
|
|
104
|
+
font-weight: 500;
|
|
105
|
+
color: hsl(var(--foreground));
|
|
106
|
+
min-width: 2rem;
|
|
107
|
+
height: 2rem;
|
|
108
|
+
display: inline-flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
border-radius: 9999px;
|
|
112
|
+
}
|
|
113
|
+
.arbi-cal-dayhead-today .arbi-cal-dayhead-dow {
|
|
114
|
+
color: hsl(var(--primary));
|
|
115
|
+
}
|
|
116
|
+
.arbi-cal-dayhead-today .arbi-cal-dayhead-num {
|
|
117
|
+
background: hsl(var(--primary));
|
|
118
|
+
color: hsl(var(--primary-foreground));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* Secondary time zone: two label columns in the time axis. */
|
|
122
|
+
.arbi-cal-slot-labels {
|
|
123
|
+
display: flex;
|
|
124
|
+
gap: 0.5rem;
|
|
125
|
+
justify-content: flex-end;
|
|
126
|
+
white-space: nowrap;
|
|
127
|
+
}
|
|
128
|
+
.arbi-cal-slot-secondary {
|
|
129
|
+
color: hsl(var(--muted-foreground) / 0.75);
|
|
130
|
+
min-width: 2.75em;
|
|
131
|
+
text-align: right;
|
|
132
|
+
}
|
|
133
|
+
.arbi-cal-slot-primary {
|
|
134
|
+
min-width: 2.75em;
|
|
135
|
+
text-align: right;
|
|
136
|
+
}
|
|
137
|
+
.arbi-cal-zone-labels {
|
|
138
|
+
font-size: 0.625rem;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* ── events ─────────────────────────────────────────────────────────────────── */
|
|
142
|
+
|
|
143
|
+
.arbi-calendar .fc .arbi-cal-event {
|
|
144
|
+
border-radius: 4px;
|
|
145
|
+
box-shadow: none;
|
|
146
|
+
background: transparent;
|
|
147
|
+
}
|
|
148
|
+
.arbi-calendar .fc-timegrid-event.arbi-cal-event,
|
|
149
|
+
.arbi-calendar .fc-daygrid-block-event.arbi-cal-event {
|
|
150
|
+
border-width: 0;
|
|
151
|
+
}
|
|
152
|
+
.arbi-calendar .fc .arbi-cal-event .fc-event-main {
|
|
153
|
+
padding: 0;
|
|
154
|
+
color: inherit;
|
|
155
|
+
}
|
|
156
|
+
.arbi-calendar .fc-timegrid-event-harness-inset .fc-timegrid-event {
|
|
157
|
+
box-shadow: 0 0 0 1px hsl(var(--background));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.arbi-cal-event-inner {
|
|
161
|
+
height: 100%;
|
|
162
|
+
overflow: hidden;
|
|
163
|
+
padding: 2px 4px;
|
|
164
|
+
border-radius: 4px;
|
|
165
|
+
background: var(--arbi-cal-color);
|
|
166
|
+
color: var(--arbi-cal-fg);
|
|
167
|
+
border-left: 3px solid color-mix(in srgb, var(--arbi-cal-color) 70%, black);
|
|
168
|
+
font-size: 0.75rem;
|
|
169
|
+
line-height: 1.25;
|
|
170
|
+
}
|
|
171
|
+
.arbi-cal-event-line {
|
|
172
|
+
display: flex;
|
|
173
|
+
align-items: center;
|
|
174
|
+
gap: 3px;
|
|
175
|
+
min-width: 0;
|
|
176
|
+
}
|
|
177
|
+
.arbi-cal-title {
|
|
178
|
+
font-weight: 500;
|
|
179
|
+
overflow: hidden;
|
|
180
|
+
text-overflow: ellipsis;
|
|
181
|
+
white-space: nowrap;
|
|
182
|
+
min-width: 0;
|
|
183
|
+
}
|
|
184
|
+
.arbi-cal-time,
|
|
185
|
+
.arbi-cal-location {
|
|
186
|
+
opacity: 0.85;
|
|
187
|
+
font-size: 0.6875rem;
|
|
188
|
+
overflow: hidden;
|
|
189
|
+
text-overflow: ellipsis;
|
|
190
|
+
white-space: nowrap;
|
|
191
|
+
}
|
|
192
|
+
.arbi-cal-location {
|
|
193
|
+
display: inline-flex;
|
|
194
|
+
align-items: center;
|
|
195
|
+
gap: 2px;
|
|
196
|
+
}
|
|
197
|
+
.arbi-cal-icon {
|
|
198
|
+
width: 0.75rem;
|
|
199
|
+
height: 0.75rem;
|
|
200
|
+
flex-shrink: 0;
|
|
201
|
+
opacity: 0.85;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* Month view timed events: dot + time + title, no fill. */
|
|
205
|
+
.arbi-cal-dot-item {
|
|
206
|
+
display: flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
gap: 4px;
|
|
209
|
+
min-width: 0;
|
|
210
|
+
padding: 0 2px;
|
|
211
|
+
font-size: 0.75rem;
|
|
212
|
+
color: hsl(var(--foreground));
|
|
213
|
+
}
|
|
214
|
+
.arbi-cal-dot {
|
|
215
|
+
width: 0.5rem;
|
|
216
|
+
height: 0.5rem;
|
|
217
|
+
border-radius: 9999px;
|
|
218
|
+
background: var(--arbi-cal-color);
|
|
219
|
+
flex-shrink: 0;
|
|
220
|
+
}
|
|
221
|
+
.arbi-cal-dot-item .arbi-cal-time {
|
|
222
|
+
opacity: 0.7;
|
|
223
|
+
flex-shrink: 0;
|
|
224
|
+
overflow: visible;
|
|
225
|
+
text-overflow: clip;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* Agenda list. */
|
|
229
|
+
.arbi-cal-list-item {
|
|
230
|
+
display: flex;
|
|
231
|
+
align-items: center;
|
|
232
|
+
gap: 6px;
|
|
233
|
+
min-width: 0;
|
|
234
|
+
flex-wrap: wrap;
|
|
235
|
+
}
|
|
236
|
+
.arbi-cal-list-item .arbi-cal-location {
|
|
237
|
+
color: hsl(var(--muted-foreground));
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Free: a light tint. */
|
|
241
|
+
.arbi-cal-free .arbi-cal-event-inner {
|
|
242
|
+
background: color-mix(in srgb, var(--arbi-cal-color) 22%, hsl(var(--background)));
|
|
243
|
+
color: hsl(var(--foreground));
|
|
244
|
+
}
|
|
245
|
+
/* Tentative: diagonal stripes. */
|
|
246
|
+
.arbi-cal-tentative .arbi-cal-event-inner {
|
|
247
|
+
background: repeating-linear-gradient(
|
|
248
|
+
135deg,
|
|
249
|
+
color-mix(in srgb, var(--arbi-cal-color) 38%, hsl(var(--background))) 0 6px,
|
|
250
|
+
color-mix(in srgb, var(--arbi-cal-color) 16%, hsl(var(--background))) 6px 12px
|
|
251
|
+
);
|
|
252
|
+
color: hsl(var(--foreground));
|
|
253
|
+
}
|
|
254
|
+
/* Needs a reply: outlined. */
|
|
255
|
+
.arbi-cal-needs-action .arbi-cal-event-inner {
|
|
256
|
+
background: hsl(var(--background));
|
|
257
|
+
color: hsl(var(--foreground));
|
|
258
|
+
border: 1px solid var(--arbi-cal-color);
|
|
259
|
+
border-left-width: 3px;
|
|
260
|
+
}
|
|
261
|
+
/* Declined (only when shown): faded, struck through. */
|
|
262
|
+
.arbi-cal-declined .arbi-cal-event-inner,
|
|
263
|
+
.arbi-cal-declined .arbi-cal-dot-item,
|
|
264
|
+
.arbi-cal-declined .arbi-cal-list-item {
|
|
265
|
+
opacity: 0.5;
|
|
266
|
+
background: color-mix(in srgb, var(--arbi-cal-color) 14%, hsl(var(--background)));
|
|
267
|
+
color: hsl(var(--muted-foreground));
|
|
268
|
+
}
|
|
269
|
+
.arbi-cal-declined .arbi-cal-title,
|
|
270
|
+
.arbi-cal-cancelled .arbi-cal-title {
|
|
271
|
+
text-decoration: line-through;
|
|
272
|
+
}
|
|
273
|
+
.arbi-cal-cancelled .arbi-cal-event-inner {
|
|
274
|
+
opacity: 0.65;
|
|
275
|
+
}
|
|
276
|
+
/* Out of office: hatched with the event colour. */
|
|
277
|
+
.arbi-cal-oof .arbi-cal-event-inner {
|
|
278
|
+
background: repeating-linear-gradient(
|
|
279
|
+
45deg,
|
|
280
|
+
var(--arbi-cal-color) 0 4px,
|
|
281
|
+
color-mix(in srgb, var(--arbi-cal-color) 75%, black) 4px 8px
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
/* Overlays (facts / workflows / tasks): read-only, dashed outline on a muted tint. */
|
|
285
|
+
.arbi-cal-overlay .arbi-cal-event-inner {
|
|
286
|
+
background: color-mix(in srgb, var(--arbi-cal-color) 10%, hsl(var(--muted)));
|
|
287
|
+
color: hsl(var(--foreground));
|
|
288
|
+
border: 1px dashed var(--arbi-cal-color);
|
|
289
|
+
border-left-width: 1px;
|
|
290
|
+
font-style: italic;
|
|
291
|
+
}
|
|
292
|
+
.arbi-calendar .fc .arbi-cal-overlay {
|
|
293
|
+
cursor: pointer;
|
|
294
|
+
}
|
|
295
|
+
/* Restricted (free/busy only). */
|
|
296
|
+
.arbi-cal-restricted .arbi-cal-event-inner {
|
|
297
|
+
background: hsl(var(--muted));
|
|
298
|
+
color: hsl(var(--muted-foreground));
|
|
299
|
+
border-left-color: hsl(var(--muted-foreground) / 0.5);
|
|
300
|
+
}
|
|
301
|
+
.arbi-calendar .fc .fc-event-past .arbi-cal-event-inner {
|
|
302
|
+
filter: saturate(0.75);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Phone layout. */
|
|
306
|
+
.arbi-calendar-narrow .arbi-cal-toolbar {
|
|
307
|
+
gap: 0.25rem;
|
|
308
|
+
}
|
|
309
|
+
.arbi-calendar-narrow .fc .fc-timegrid-slot-label-cushion {
|
|
310
|
+
padding: 0 3px;
|
|
311
|
+
}
|
|
312
|
+
.arbi-calendar-narrow .arbi-cal-dayhead-num {
|
|
313
|
+
font-size: 1rem;
|
|
314
|
+
min-width: 1.75rem;
|
|
315
|
+
height: 1.75rem;
|
|
316
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/settings/ModalScaffold.tsx"],"names":["jsx","DialogHeader","cn","DialogFooter","useRestoreFocus","Dialog","jsxs","DialogContent","DialogTitle","DialogDescription"],"mappings":"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","file":"chunk-2ZTONLT5.cjs","sourcesContent":["import type { ComponentProps, ReactNode, RefObject } from 'react'\nimport {\n cn,\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n type DialogPresentation,\n} from '@arbidocs/react/ui'\nimport { useRestoreFocus } from '../lib/useRestoreFocus'\n\n/** Tailwind classes for a modal section heading (also usable on a `Label`). */\nexport const MODAL_SECTION_TITLE_CLASS =\n 'mb-2 flex items-center gap-1 text-sm font-medium text-muted-foreground'\n\n/** Header of a hand-assembled modal: no tinted band, just space. */\nexport function ModalHeader({ className, ...props }: ComponentProps<typeof DialogHeader>) {\n return (\n <DialogHeader\n data-slot=\"modal-header\"\n className={cn('flex-shrink-0 rounded-t-lg bg-transparent p-6 pb-3 pr-12', className)}\n {...props}\n />\n )\n}\n\n/** A padded group inside a modal body. */\nexport function ModalSection({ className, ...props }: ComponentProps<'div'>) {\n return <div data-slot=\"modal-section\" className={cn('pt-4', className)} {...props} />\n}\n\n/** Muted label above the content of a {@link ModalSection}. */\nexport function ModalSectionTitle({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"modal-section-title\"\n className={cn(MODAL_SECTION_TITLE_CLASS, className)}\n {...props}\n />\n )\n}\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl'\n\nconst SIZE_CLASS: Record<ModalSize, string> = {\n sm: 'sm:max-w-sm',\n md: 'sm:max-w-md',\n lg: 'sm:max-w-2xl',\n xl: 'sm:max-w-4xl',\n}\n\nexport interface ModalScaffoldProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n title: ReactNode\n /** Accessible description; visually hidden unless `showDescription`. */\n description?: ReactNode\n showDescription?: boolean\n /** Icon shown before the title. */\n icon?: ReactNode\n size?: ModalSize\n /** Phone presentation; defaults to a bottom sheet for `lg`/`xl`, a centred box otherwise. */\n presentation?: DialogPresentation\n className?: string\n testId?: string\n /**\n * `alertdialog` for a destructive or blocking confirmation: announced as an alert, dismissed\n * only through its own buttons or Escape (not by clicking outside).\n */\n role?: 'dialog' | 'alertdialog'\n /**\n * Block dismissal by outside click AND Escape; only the dialog's own buttons close it. For a\n * dialog that shows a secret once (a new API key). Default false. An `alertdialog` already\n * ignores outside clicks.\n */\n dismissible?: boolean\n /** Called on a pointer/focus interaction outside; `preventDefault()` keeps the dialog open. */\n onInteractOutside?: (event: Event) => void\n /** Called on Escape; `preventDefault()` keeps the dialog open. */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n /** Element that receives focus when the dialog opens (an alert dialog focuses its safe action). */\n initialFocusRef?: RefObject<HTMLElement | null>\n children?: ReactNode\n}\n\nfunction ModalBody({ className, ...props }: ComponentProps<'div'>) {\n return <div data-slot=\"modal-body\" className={cn('space-y-4', className)} {...props} />\n}\n\n/**\n * Action row. Stacked full-width on phones (primary action on top), right-aligned on wider\n * screens. Sticks to the bottom of the scrolling dialog body so the actions stay reachable.\n */\nfunction ModalFooter({ className, ...props }: ComponentProps<typeof DialogFooter>) {\n return (\n <DialogFooter\n data-slot=\"modal-footer\"\n className={cn(\n 'sticky bottom-0 -mx-6 -mb-6 mt-4 border-t border-border bg-background px-6 py-3',\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Standard dialog: icon + title + description header, then the compound\n * `ModalScaffold.Body` / `ModalScaffold.Footer` slots.\n */\nexport function ModalScaffold({\n open,\n onOpenChange,\n title,\n description,\n showDescription = false,\n icon,\n size = 'md',\n presentation,\n className,\n testId,\n role = 'dialog',\n initialFocusRef,\n dismissible = true,\n onInteractOutside,\n onEscapeKeyDown,\n children,\n}: ModalScaffoldProps) {\n const restoreFocus = useRestoreFocus()\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n role={role}\n presentation={presentation ?? (size === 'lg' || size === 'xl' ? 'sheet' : 'center')}\n className={cn(SIZE_CLASS[size], 'flex flex-col gap-0 overflow-hidden p-0', className)}\n data-testid={testId}\n onInteractOutside={(e) => {\n if (role === 'alertdialog' || !dismissible) e.preventDefault()\n onInteractOutside?.(e)\n }}\n onEscapeKeyDown={(e) => {\n if (!dismissible) e.preventDefault()\n onEscapeKeyDown?.(e)\n }}\n onOpenAutoFocus={(e) => {\n restoreFocus.onOpenAutoFocus(e)\n if (initialFocusRef?.current) {\n e.preventDefault()\n initialFocusRef.current.focus()\n }\n }}\n onCloseAutoFocus={restoreFocus.onCloseAutoFocus}\n >\n <ModalHeader>\n <DialogTitle className=\"flex items-center gap-2\">\n {icon}\n {title}\n </DialogTitle>\n <DialogDescription className={showDescription ? undefined : 'sr-only'}>\n {description ?? title}\n </DialogDescription>\n </ModalHeader>\n <div\n data-slot=\"modal-scroll\"\n className=\"min-h-0 flex-1 space-y-4 overflow-y-auto overscroll-contain px-6 pb-6\"\n >\n {children}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\nModalScaffold.Body = ModalBody\nModalScaffold.Footer = ModalFooter\n"]}
|