@memobit/libs 1.0.62 → 1.0.64
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/index.css +1 -1
- package/dist/index.d.ts +424 -12
- package/dist/index.esm.js +6537 -5437
- package/dist/version.json +4 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { ReactElement } from 'react';
|
|
|
13
13
|
import { ReactNode } from 'react';
|
|
14
14
|
import { ReactPortal } from 'react';
|
|
15
15
|
import { RefAttributes } from 'react';
|
|
16
|
+
import { TouchEvent as TouchEvent_2 } from 'react';
|
|
16
17
|
|
|
17
18
|
export declare const Accordion: default_2.FC<AccordionProps>;
|
|
18
19
|
|
|
@@ -73,6 +74,32 @@ export declare interface AnalogClockProps {
|
|
|
73
74
|
className?: string;
|
|
74
75
|
}
|
|
75
76
|
|
|
77
|
+
export declare const AngleSlider: FC<AngleSliderProps>;
|
|
78
|
+
|
|
79
|
+
export declare interface AngleSliderProps {
|
|
80
|
+
disabled?: boolean;
|
|
81
|
+
/** Text under the dial. Replaced by the degree readout when `showValue` is on. */
|
|
82
|
+
label?: string;
|
|
83
|
+
/** Highest angle the dial accepts, in degrees. Defaults to a full turn. */
|
|
84
|
+
max?: number;
|
|
85
|
+
/** Lowest angle the dial accepts, in degrees. */
|
|
86
|
+
min?: number;
|
|
87
|
+
onChange: (value: number) => void;
|
|
88
|
+
/** Diameter in pixels. */
|
|
89
|
+
size?: number;
|
|
90
|
+
/** Rounding applied to every change, in degrees. */
|
|
91
|
+
step?: number;
|
|
92
|
+
/** Draws a tick every N degrees. `0` turns the ticks off. */
|
|
93
|
+
tickStep?: number;
|
|
94
|
+
/** Degrees moved per arrow key press. Defaults to `step`. */
|
|
95
|
+
keyboardStep?: number;
|
|
96
|
+
showValue?: boolean;
|
|
97
|
+
value: number;
|
|
98
|
+
variant?: AngleSliderVariant;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export declare type AngleSliderVariant = 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
102
|
+
|
|
76
103
|
export declare const APP_DATE_FORMAT = "DD MMM YYYY";
|
|
77
104
|
|
|
78
105
|
export declare const APP_DATE_TIME_FORMAT = "DD MMM YYYY HH:mm";
|
|
@@ -187,6 +214,35 @@ export declare interface BannerProps {
|
|
|
187
214
|
|
|
188
215
|
export declare type BannerVariant = 'default' | 'success' | 'info' | 'warning' | 'danger';
|
|
189
216
|
|
|
217
|
+
export declare const Blockquote: FC<BlockquoteProps>;
|
|
218
|
+
|
|
219
|
+
export declare type BlockquoteAppearance = 'bar' | 'card' | 'plain' | 'pull';
|
|
220
|
+
|
|
221
|
+
export declare interface BlockquoteProps {
|
|
222
|
+
/** Centres a `pull` quote; the other appearances read better left-aligned. */
|
|
223
|
+
align?: 'left' | 'center';
|
|
224
|
+
/** How the quote is framed: a left rule, a filled card, bare text, or a large pull quote. */
|
|
225
|
+
appearance?: BlockquoteAppearance;
|
|
226
|
+
/** Who said it. */
|
|
227
|
+
author?: string;
|
|
228
|
+
children: ReactNode;
|
|
229
|
+
className?: string;
|
|
230
|
+
/** Turns the source into a link. */
|
|
231
|
+
href?: string;
|
|
232
|
+
/** Small icon before the quote — handy for flagging a note or a warning. */
|
|
233
|
+
icon?: IconName;
|
|
234
|
+
/** Draws a large decorative quote glyph behind the text. */
|
|
235
|
+
showQuoteMark?: boolean;
|
|
236
|
+
size?: BlockquoteSize;
|
|
237
|
+
/** Where it came from: a book, an article, a ticket. Shown after the author. */
|
|
238
|
+
source?: string;
|
|
239
|
+
variant?: BlockquoteVariant;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export declare type BlockquoteSize = 'sm' | 'md' | 'lg';
|
|
243
|
+
|
|
244
|
+
export declare type BlockquoteVariant = 'default' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
245
|
+
|
|
190
246
|
export declare const BMI: default_2.FC<BMIProps>;
|
|
191
247
|
|
|
192
248
|
declare interface BMIProps {
|
|
@@ -304,6 +360,12 @@ export declare const calculateTimelineMarkers: <T extends TimelineMarkersItem>(i
|
|
|
304
360
|
|
|
305
361
|
export declare const Calendar: default_2.FC<CalendarProps>;
|
|
306
362
|
|
|
363
|
+
/** Half-open [start, end): with start 9 and end 18, 17:00 is active and 18:00 is not. */
|
|
364
|
+
export declare interface CalendarActiveHours {
|
|
365
|
+
start: number;
|
|
366
|
+
end: number;
|
|
367
|
+
}
|
|
368
|
+
|
|
307
369
|
export declare interface CalendarDateRange {
|
|
308
370
|
start: Date;
|
|
309
371
|
end: Date;
|
|
@@ -325,6 +387,13 @@ export declare interface CalendarEvent<T = unknown> {
|
|
|
325
387
|
/** Renders in the all-day row of the week view and without a time in the month view. */
|
|
326
388
|
allDay?: boolean;
|
|
327
389
|
title: string;
|
|
390
|
+
/**
|
|
391
|
+
* Rendered before the time and title on the default chip — an icon or a badge that
|
|
392
|
+
* identifies the event at a glance. Prefer this over baking a glyph into `title`,
|
|
393
|
+
* which pushes it through the same truncation as the text and cannot be coloured
|
|
394
|
+
* separately. Ignored when `renderEvent` replaces the chip's contents entirely.
|
|
395
|
+
*/
|
|
396
|
+
leading?: ReactNode;
|
|
328
397
|
variant?: CalendarEventVariant;
|
|
329
398
|
/** Overrides the variant's colour. Any CSS colour — pass a theme token where possible. */
|
|
330
399
|
color?: string;
|
|
@@ -439,6 +508,8 @@ export declare type ChipSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
|
439
508
|
|
|
440
509
|
export declare type ChipVariant = 'plain' | 'default' | 'success' | 'info' | 'warning' | 'danger';
|
|
441
510
|
|
|
511
|
+
export declare const Col: FC<ColProps>;
|
|
512
|
+
|
|
442
513
|
export declare const CollapsibleSection: default_2.FC<CollapsibleSectionProps>;
|
|
443
514
|
|
|
444
515
|
declare interface CollapsibleSectionProps {
|
|
@@ -468,6 +539,20 @@ export declare interface ColorPickerProps {
|
|
|
468
539
|
onChange?: (hex: string) => void;
|
|
469
540
|
}
|
|
470
541
|
|
|
542
|
+
export declare interface ColProps {
|
|
543
|
+
children: ReactNode;
|
|
544
|
+
className?: string;
|
|
545
|
+
/** Column count this cell occupies on desktop. */
|
|
546
|
+
span?: ColSpan;
|
|
547
|
+
/** Column count on mobile (<= 768px). Defaults to filling the row. */
|
|
548
|
+
spanMobile?: ColSpan;
|
|
549
|
+
/** Column count on tablet (769px - 1024px). Defaults to `span`, clamped by the parent. */
|
|
550
|
+
spanTablet?: ColSpan;
|
|
551
|
+
style?: CSSProperties;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
export declare type ColSpan = GridColumns;
|
|
555
|
+
|
|
471
556
|
export declare interface CommandItem {
|
|
472
557
|
id: string;
|
|
473
558
|
label: string;
|
|
@@ -1088,14 +1173,17 @@ export declare interface DateRangePreset {
|
|
|
1088
1173
|
}
|
|
1089
1174
|
|
|
1090
1175
|
/**
|
|
1091
|
-
*
|
|
1092
|
-
*
|
|
1093
|
-
*
|
|
1176
|
+
* One day laid out against the clock, in a modal.
|
|
1177
|
+
*
|
|
1178
|
+
* A month cell can only carry a chip or three before the rest hide behind "+N more", and
|
|
1179
|
+
* those chips are too small to aim at on a phone. This is the way into a busy day: events
|
|
1180
|
+
* sit at the hour they actually happen, overlapping ones split into lanes, and the empty
|
|
1181
|
+
* stretches are themselves the target for adding something at that time.
|
|
1094
1182
|
*/
|
|
1095
|
-
export declare function DayAgenda<T>({ addLabel, className, date, defaultDurationMinutes, emptyLabel, events, isOpen, onAdd, onClose, onEventClick, renderEvent, }: DayAgendaProps<T>): JSX.Element;
|
|
1183
|
+
export declare function DayAgenda<T>({ activeHours, addLabel, className, date, dayEndHour, dayStartHour, defaultDurationMinutes, emptyLabel, events, hourHeight, isOpen, onAdd, onClose, onDateChange, onEventClick, renderEvent, }: DayAgendaProps<T>): JSX.Element;
|
|
1096
1184
|
|
|
1097
1185
|
export declare interface DayAgendaProps<T = unknown> {
|
|
1098
|
-
/** The day to
|
|
1186
|
+
/** The day to lay out. Only the date part is read. */
|
|
1099
1187
|
date: Date;
|
|
1100
1188
|
/**
|
|
1101
1189
|
* The same array the calendar is given — the day's events are picked out here, so the
|
|
@@ -1104,14 +1192,35 @@ export declare interface DayAgendaProps<T = unknown> {
|
|
|
1104
1192
|
events: CalendarEvent<T>[];
|
|
1105
1193
|
isOpen: boolean;
|
|
1106
1194
|
onClose: () => void;
|
|
1195
|
+
/**
|
|
1196
|
+
* Enables swiping the grid left or right to step a day. Without it the modal shows
|
|
1197
|
+
* only the day it was opened on — which is fine for a one-off, but on a phone the
|
|
1198
|
+
* neighbouring day is usually the next thing wanted.
|
|
1199
|
+
*/
|
|
1200
|
+
onDateChange?: (date: Date) => void;
|
|
1107
1201
|
onEventClick?: (event: CalendarEvent<T>) => void;
|
|
1108
|
-
/**
|
|
1202
|
+
/**
|
|
1203
|
+
* Fires with the hour slot that was clicked, so something added from an empty stretch
|
|
1204
|
+
* starts at the time pointed at rather than at midnight. Also backs the footer button,
|
|
1205
|
+
* which passes the day itself for an entry with no particular time.
|
|
1206
|
+
*/
|
|
1109
1207
|
onAdd?: (date: Date) => void;
|
|
1110
1208
|
addLabel?: string;
|
|
1111
|
-
/** Replaces
|
|
1209
|
+
/** Replaces a chip's contents. */
|
|
1112
1210
|
renderEvent?: (event: CalendarEvent<T>) => ReactNode;
|
|
1113
1211
|
emptyLabel?: string;
|
|
1114
|
-
/**
|
|
1212
|
+
/** First and last hour rendered. */
|
|
1213
|
+
dayStartHour?: number;
|
|
1214
|
+
dayEndHour?: number;
|
|
1215
|
+
/**
|
|
1216
|
+
* The hours that matter — working hours, opening hours. Everything outside the band
|
|
1217
|
+
* recedes, so the part of the day worth reading is found without counting rows. It
|
|
1218
|
+
* trims nothing, unlike `dayStartHour`/`dayEndHour`.
|
|
1219
|
+
*/
|
|
1220
|
+
activeHours?: CalendarActiveHours;
|
|
1221
|
+
/** Height of one hour row, in pixels. */
|
|
1222
|
+
hourHeight?: number;
|
|
1223
|
+
/** Assumed length of a timed event with no `end`. */
|
|
1115
1224
|
defaultDurationMinutes?: number;
|
|
1116
1225
|
className?: string;
|
|
1117
1226
|
}
|
|
@@ -1298,7 +1407,7 @@ declare interface ErrorBoundaryState {
|
|
|
1298
1407
|
error: Error | null;
|
|
1299
1408
|
}
|
|
1300
1409
|
|
|
1301
|
-
export declare function EventCalendar<T>({ className, date, dayAgenda, dayEndHour, dayStartHour, defaultDurationMinutes, emptyLabel, events, firstDayOfWeek, headerExtra, hourHeight, maxEventsPerDay, onDateChange, onDayClick, onEventClick, onEventDrop, onViewChange, renderEvent, showHeader, showWeekNumbers, view, }: EventCalendarProps<T>): JSX.Element;
|
|
1410
|
+
export declare function EventCalendar<T>({ activeHours, className, date, dayAgenda, dayEndHour, dayStartHour, defaultDurationMinutes, emptyLabel, events, firstDayOfWeek, headerExtra, hourHeight, maxEventsPerDay, onDateChange, onDayClick, onEventClick, onEventDrop, onViewChange, renderEvent, showHeader, showWeekNumbers, swipeNavigation, view, }: EventCalendarProps<T>): JSX.Element;
|
|
1302
1411
|
|
|
1303
1412
|
export declare interface EventCalendarProps<T = unknown> {
|
|
1304
1413
|
events: CalendarEvent<T>[];
|
|
@@ -1309,8 +1418,14 @@ export declare interface EventCalendarProps<T = unknown> {
|
|
|
1309
1418
|
date?: Date;
|
|
1310
1419
|
onDateChange?: (date: Date) => void;
|
|
1311
1420
|
firstDayOfWeek?: 0 | 1;
|
|
1312
|
-
/** Adds
|
|
1421
|
+
/** Adds a leading ISO week-number column to the month grid. The week view names its own period, so it needs none. */
|
|
1313
1422
|
showWeekNumbers?: boolean;
|
|
1423
|
+
/**
|
|
1424
|
+
* Swiping the grid left or right pages to the next or previous period — the month in
|
|
1425
|
+
* month view, the week in week view. Touch only, so it costs a desktop nothing. Set
|
|
1426
|
+
* false where a horizontal drag already means something else.
|
|
1427
|
+
*/
|
|
1428
|
+
swipeNavigation?: boolean;
|
|
1314
1429
|
onEventClick?: (event: CalendarEvent<T>) => void;
|
|
1315
1430
|
/** Fires on the empty part of a day cell (month) or an hour slot (week). */
|
|
1316
1431
|
onDayClick?: (date: Date) => void;
|
|
@@ -1335,6 +1450,13 @@ export declare interface EventCalendarProps<T = unknown> {
|
|
|
1335
1450
|
/** First and last hour rendered by the week view. */
|
|
1336
1451
|
dayStartHour?: number;
|
|
1337
1452
|
dayEndHour?: number;
|
|
1453
|
+
/**
|
|
1454
|
+
* The hours that matter — working hours, opening hours. Everything outside the band
|
|
1455
|
+
* recedes, so the part of the day worth reading is found without counting rows. Unlike
|
|
1456
|
+
* `dayStartHour`/`dayEndHour` this trims nothing: a 21:00 event still shows, just
|
|
1457
|
+
* against a quieter background. Omit to treat every hour alike.
|
|
1458
|
+
*/
|
|
1459
|
+
activeHours?: CalendarActiveHours;
|
|
1338
1460
|
/** Height of one hour row in the week view, in pixels. */
|
|
1339
1461
|
hourHeight?: number;
|
|
1340
1462
|
/** Assumed length of a timed event with no `end`. */
|
|
@@ -1382,6 +1504,46 @@ declare interface FloatButtonProps {
|
|
|
1382
1504
|
actions: FloatButtonAction[];
|
|
1383
1505
|
}
|
|
1384
1506
|
|
|
1507
|
+
export declare const FloatingWindow: FC<FloatingWindowProps>;
|
|
1508
|
+
|
|
1509
|
+
export declare interface FloatingWindowPosition {
|
|
1510
|
+
x: number;
|
|
1511
|
+
y: number;
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
export declare interface FloatingWindowProps {
|
|
1515
|
+
children: ReactNode;
|
|
1516
|
+
className?: string;
|
|
1517
|
+
/** Escape closes the window. Off by default — a floating window is not modal. */
|
|
1518
|
+
closeOnEscape?: boolean;
|
|
1519
|
+
/** Opening position in viewport pixels. Centred on the viewport when omitted. */
|
|
1520
|
+
defaultPosition?: FloatingWindowPosition;
|
|
1521
|
+
defaultSize?: FloatingWindowSize;
|
|
1522
|
+
/** Pinned strip along the bottom of the window. */
|
|
1523
|
+
footer?: ReactNode;
|
|
1524
|
+
isOpen: boolean;
|
|
1525
|
+
/** Shows the collapse control. */
|
|
1526
|
+
minimizable?: boolean;
|
|
1527
|
+
minHeight?: number;
|
|
1528
|
+
minWidth?: number;
|
|
1529
|
+
onClose: () => void;
|
|
1530
|
+
/** Reports every settled move and resize, for callers that persist the geometry. */
|
|
1531
|
+
onGeometryChange?: (geometry: FloatingWindowPosition & FloatingWindowSize) => void;
|
|
1532
|
+
/** Shows the maximize control and the edge handles. */
|
|
1533
|
+
resizable?: boolean;
|
|
1534
|
+
title?: string;
|
|
1535
|
+
titleIcon?: IconName;
|
|
1536
|
+
usePortal?: boolean;
|
|
1537
|
+
zIndex?: number;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
export declare type FloatingWindowResizeDirection = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw';
|
|
1541
|
+
|
|
1542
|
+
export declare interface FloatingWindowSize {
|
|
1543
|
+
height: number;
|
|
1544
|
+
width: number;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1385
1547
|
export declare const foldDiacritics: (input: string) => string;
|
|
1386
1548
|
|
|
1387
1549
|
export declare interface FolderBrowserEntry {
|
|
@@ -1488,6 +1650,41 @@ export declare const getThemeConfig: (themeValue: string) => ThemeConfig | undef
|
|
|
1488
1650
|
|
|
1489
1651
|
export declare const getTodayDateString: () => string;
|
|
1490
1652
|
|
|
1653
|
+
export declare const Grid: FC<GridProps>;
|
|
1654
|
+
|
|
1655
|
+
export declare type GridAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
|
|
1656
|
+
|
|
1657
|
+
export declare type GridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
1658
|
+
|
|
1659
|
+
export declare type GridGap = '0' | '2' | '4' | '6' | '8' | '12' | '16' | '20' | '24' | '32' | '40' | '48';
|
|
1660
|
+
|
|
1661
|
+
export declare type GridJustify = 'start' | 'center' | 'end' | 'space-between' | 'space-around';
|
|
1662
|
+
|
|
1663
|
+
export declare interface GridProps {
|
|
1664
|
+
/** Vertical alignment of the items inside each row. */
|
|
1665
|
+
align?: GridAlign;
|
|
1666
|
+
children: ReactNode;
|
|
1667
|
+
className?: string;
|
|
1668
|
+
/** Columns from the desktop breakpoint up (> 1024px). */
|
|
1669
|
+
cols?: GridColumns;
|
|
1670
|
+
/** Columns on mobile (<= 768px). Defaults to 1 so content stacks. */
|
|
1671
|
+
colsMobile?: GridColumns;
|
|
1672
|
+
/** Columns on tablet (769px - 1024px). Defaults to `cols` capped at 2. */
|
|
1673
|
+
colsTablet?: GridColumns;
|
|
1674
|
+
/** Spacing token used between columns, and between rows unless `rowGap` overrides it. */
|
|
1675
|
+
gap?: GridGap;
|
|
1676
|
+
/** Horizontal distribution of a partially filled row. */
|
|
1677
|
+
justify?: GridJustify;
|
|
1678
|
+
/**
|
|
1679
|
+
* Switches to a fluid track: every child takes at least this many pixels and rows wrap on
|
|
1680
|
+
* their own. `cols` and the responsive overrides are ignored while this is set.
|
|
1681
|
+
*/
|
|
1682
|
+
minColWidth?: number;
|
|
1683
|
+
/** Row spacing token, when rows should breathe differently from columns. */
|
|
1684
|
+
rowGap?: GridGap;
|
|
1685
|
+
style?: CSSProperties;
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1491
1688
|
export declare function highlightText(text: string, searchTerm: string): ReactNode;
|
|
1492
1689
|
|
|
1493
1690
|
/**
|
|
@@ -1507,6 +1704,31 @@ export declare const Icon: default_2.FC<IconProps>;
|
|
|
1507
1704
|
|
|
1508
1705
|
export declare type IconName = 'active' | 'afternoon' | 'ajax' | 'alarm' | 'analysis' | 'angular' | 'announcement' | 'anomaly' | 'ant' | 'antenna' | 'api' | 'appliances' | 'archive' | 'arrow-bidirectional-horizontal' | 'arrow-bidirectional-vertical' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'atom' | 'avocado' | 'badge' | 'ball' | 'balloon' | 'banana' | 'bank' | 'bat' | 'bath' | 'battery-charging' | 'battery-empty' | 'battery-full' | 'battery-half' | 'beans' | 'bear' | 'bed' | 'bee' | 'beer' | 'bell' | 'benefit' | 'birthday-cake' | 'blood' | 'blueberries' | 'bones' | 'book' | 'bow' | 'brain' | 'bread' | 'breakfast' | 'briefcase' | 'brightness' | 'broken-heart' | 'broom' | 'bug' | 'building' | 'bullet' | 'bunny' | 'burst' | 'bus' | 'butterfly' | 'button-device' | 'cake' | 'calculator' | 'calendar' | 'calendar-day' | 'calendar-month' | 'calendar-week' | 'calendar-year' | 'calibrate' | 'camera' | 'candy' | 'car' | 'carbs' | 'caret-down' | 'caret-left' | 'caret-right' | 'caret-up' | 'carrot' | 'cat' | 'categories' | 'caterpillar' | 'cd-dvd' | 'certificate' | 'chart' | 'checkmark' | 'cheese' | 'cherries' | 'chestnut' | 'chicken' | 'chocolate' | 'christmas-tree' | 'cigarette' | 'clear' | 'clipboard' | 'cloud' | 'coffee' | 'comment' | 'compass' | 'confetti' | 'connected' | 'context' | 'cook' | 'cookies' | 'cooling' | 'corn' | 'correlation' | 'cow' | 'cpu' | 'credit-card' | 'crystal-globe' | 'cube' | 'cucumber' | 'dashboard' | 'death' | 'defect' | 'delete' | 'dental' | 'deselect-all' | 'dessert' | 'detach' | 'devices' | 'digestive' | 'dinner' | 'dinosaur' | 'dishwasher' | 'dns' | 'doctor' | 'document' | 'documents' | 'dog' | 'dolphin' | 'door' | 'dot' | 'download' | 'dragon' | 'drying-machine' | 'duck' | 'duplicates' | 'ears' | 'earth' | 'edit' | 'egg' | 'eggplant' | 'elephant' | 'empty' | 'endocrine' | 'enlarge' | 'equalizer' | 'evening' | 'expense' | 'export' | 'external-link' | 'fan' | 'favorite' | 'fibers' | 'file' | 'filetype-avi' | 'filetype-bat' | 'filetype-c' | 'filetype-css' | 'filetype-csv' | 'filetype-doc' | 'filetype-docx' | 'filetype-gif' | 'filetype-html' | 'filetype-ico' | 'filetype-ini' | 'filetype-javascript' | 'filetype-jpeg' | 'filetype-jpg' | 'filetype-json' | 'filetype-less' | 'filetype-mp3' | 'filetype-mp4' | 'filetype-mpg' | 'filetype-pdf' | 'filetype-php' | 'filetype-png' | 'filetype-ppt' | 'filetype-psd' | 'filetype-rar' | 'filetype-sass' | 'filetype-sql' | 'filetype-tiff' | 'filetype-txt' | 'filetype-typescript' | 'filetype-wav' | 'filetype-xls' | 'filetype-xlsx' | 'filetype-xml' | 'filetype-zip' | 'filters' | 'fire' | 'firewall' | 'fireworks' | 'fish' | 'fishing-rod' | 'fog' | 'folder' | 'folder-open' | 'fondue' | 'food' | 'french-fries' | 'fridge' | 'fruits' | 'gallery' | 'gas-detector' | 'gateway' | 'gauge-high' | 'gauge-low' | 'gauge-medium' | 'gift-box' | 'girl' | 'github' | 'glass' | 'gloves' | 'glycemic-index' | 'goat' | 'graduation' | 'grid' | 'group' | 'gun' | 'hammer' | 'handshake' | 'hd' | 'headphones' | 'heart' | 'heating' | 'help' | 'hiking' | 'history' | 'home' | 'hospital' | 'humidity' | 'ice-cream' | 'identity' | 'image' | 'import' | 'inactive' | 'incognito' | 'information' | 'ingredients' | 'ink-cartridge' | 'ir-emitter' | 'joystick' | 'jupiter' | 'key' | 'knife' | 'laboratory' | 'language' | 'lantern' | 'layers' | 'leaf' | 'lemon' | 'light-bulb' | 'light-switch' | 'lightning' | 'link' | 'linkedin' | 'lipids' | 'list' | 'liver' | 'location' | 'lock' | 'lock-open' | 'logout' | 'lollipop' | 'lunch' | 'lungs' | 'magnet' | 'mail' | 'manage' | 'map' | 'mapping' | 'mars' | 'meat' | 'melon' | 'memory' | 'mental' | 'menu-hamburger' | 'mercury' | 'microphone' | 'microscope' | 'microwave' | 'milk' | 'minimum' | 'minus' | 'money' | 'monitor' | 'monkey' | 'moon' | 'morning' | 'motion' | 'mouse' | 'movie' | 'mushroom' | 'musical-note' | 'mute' | 'nas' | 'neptune' | 'nervous' | 'network' | 'next' | 'night' | 'ninja' | 'noon' | 'nose' | 'not-found' | 'notes' | 'notice' | 'offline' | 'olives' | 'online' | 'optimization' | 'other' | 'outdoor' | 'ownership' | 'pause' | 'pawn' | 'peanut' | 'pear' | 'penguin' | 'pepper' | 'pharmacy' | 'phone' | 'pig' | 'pill' | 'pin' | 'pizza' | 'plane' | 'play' | 'plug' | 'plus' | 'pluto' | 'polenta' | 'police' | 'police-man' | 'popcorn' | 'portions' | 'potato' | 'power' | 'predictions' | 'prescription' | 'previous' | 'printer' | 'proteins' | 'pudding' | 'pumpkin' | 'purifier' | 'puzzle' | 'radio' | 'rain' | 'rainbow' | 'raspberry' | 'reading' | 'referral' | 'reload' | 'repeat' | 'report' | 'reproductive' | 'return' | 'rice' | 'robot' | 'rocket' | 'romania-flag' | 'rooms' | 'router' | 'ruler' | 'running' | 'salad' | 'salt' | 'santa' | 'satellite' | 'saturn' | 'save' | 'scales' | 'scan' | 'school' | 'scissors' | 'score' | 'scss' | 'sd' | 'search' | 'security' | 'seeds' | 'sequence' | 'settings' | 'shield' | 'ship' | 'shopping-cart' | 'shrink' | 'shuffle' | 'signal-full' | 'signal-low' | 'signal-medium' | 'skin' | 'skull' | 'smartphone' | 'smb' | 'smoke-detector' | 'snake' | 'snow' | 'snowman' | 'soft-drink' | 'soup' | 'sources' | 'sparkle' | 'speaker' | 'speedometer' | 'square' | 'ssl' | 'staple' | 'star' | 'status' | 'stethoscope' | 'stop' | 'stop-sign' | 'storm' | 'strawberry' | 'streaming' | 'strength' | 'sugar' | 'sun' | 'surgery' | 'synchronize' | 'table' | 'target' | 'taxi' | 'technical' | 'teeth' | 'telescope' | 'theater' | 'theme-picker' | 'thermometer' | 'threshold' | 'time' | 'toggle-off' | 'toggle-on' | 'tomato' | 'toolbox' | 'train' | 'transactions' | 'transport-box' | 'tree' | 'trend-down' | 'trend-up' | 'trip' | 'trophy' | 'tune' | 'turkey' | 'turtle' | 'tv' | 'unarchive' | 'unassociated' | 'ungroup' | 'unmute' | 'upload' | 'upnp' | 'uranus' | 'user' | 'users' | 'vacuum' | 'vegetables' | 'venus' | 'vertical-dots' | 'video' | 'view' | 'virus' | 'wait' | 'wan' | 'warning' | 'washing-machine' | 'water-leak' | 'web' | 'website-crawl' | 'wifi' | 'wind' | 'workout' | 'wrench' | 'yoga' | 'youtube';
|
|
1509
1706
|
|
|
1707
|
+
/**
|
|
1708
|
+
* Search and pick one of the library's icons.
|
|
1709
|
+
*
|
|
1710
|
+
* The counterpart to `EmojiPicker`, and usually the better of the two for labelling a
|
|
1711
|
+
* user's own records: an icon inherits `currentColor`, so it can carry the colour the
|
|
1712
|
+
* record already has, and it is drawn at the same weight as the rest of the interface
|
|
1713
|
+
* instead of arriving as a platform-coloured bitmap that renders differently on every
|
|
1714
|
+
* device. Emoji still win on sheer vocabulary, so offering both is reasonable.
|
|
1715
|
+
*/
|
|
1716
|
+
export declare const IconPicker: FC<IconPickerProps>;
|
|
1717
|
+
|
|
1718
|
+
export declare interface IconPickerProps {
|
|
1719
|
+
value?: IconName;
|
|
1720
|
+
onChange?: (icon: IconName) => void;
|
|
1721
|
+
/**
|
|
1722
|
+
* Tints the swatches, so a picker attached to a colour choice previews the icon as it
|
|
1723
|
+
* will actually appear. Icons draw in `currentColor`; omit for the inherited colour.
|
|
1724
|
+
*/
|
|
1725
|
+
color?: string;
|
|
1726
|
+
/** Restricts the choice. Useful where only a themed subset makes sense. */
|
|
1727
|
+
icons?: IconName[];
|
|
1728
|
+
placeholder?: string;
|
|
1729
|
+
emptyLabel?: string;
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1510
1732
|
declare interface IconProps {
|
|
1511
1733
|
className?: string;
|
|
1512
1734
|
name: IconName;
|
|
@@ -1742,6 +1964,32 @@ declare interface InputPhoneProps {
|
|
|
1742
1964
|
value?: string;
|
|
1743
1965
|
}
|
|
1744
1966
|
|
|
1967
|
+
export declare const InputPIN: FC<InputPINProps>;
|
|
1968
|
+
|
|
1969
|
+
export declare interface InputPINProps {
|
|
1970
|
+
autoFocus?: boolean;
|
|
1971
|
+
disabled?: boolean;
|
|
1972
|
+
error?: string;
|
|
1973
|
+
id?: string;
|
|
1974
|
+
label?: string;
|
|
1975
|
+
/** Number of cells. */
|
|
1976
|
+
length?: number;
|
|
1977
|
+
/** Renders a gap after this many cells, the way grouped codes are printed. */
|
|
1978
|
+
groupSize?: number;
|
|
1979
|
+
/** Fired on every edit with the code so far, shorter than `length` while incomplete. */
|
|
1980
|
+
onChange: (value: string) => void;
|
|
1981
|
+
/** Fired once the last cell is filled, with the finished code. */
|
|
1982
|
+
onComplete?: (value: string) => void;
|
|
1983
|
+
/** Masks the characters, for a PIN rather than a one-time code. */
|
|
1984
|
+
secret?: boolean;
|
|
1985
|
+
success?: string;
|
|
1986
|
+
/** `numeric` accepts digits only and asks phones for the number pad. */
|
|
1987
|
+
type?: InputPINType;
|
|
1988
|
+
value: string;
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
export declare type InputPINType = 'numeric' | 'alphanumeric';
|
|
1992
|
+
|
|
1745
1993
|
export declare const InputSearch: ForwardRefExoticComponent<InputSearchProps & RefAttributes<HTMLInputElement>>;
|
|
1746
1994
|
|
|
1747
1995
|
export declare interface InputSearchProps {
|
|
@@ -2323,12 +2571,49 @@ export declare interface RadioProps {
|
|
|
2323
2571
|
className?: string;
|
|
2324
2572
|
}
|
|
2325
2573
|
|
|
2574
|
+
export declare const RangeSlider: FC<RangeSliderProps>;
|
|
2575
|
+
|
|
2576
|
+
export declare interface RangeSliderProps {
|
|
2577
|
+
disabled?: boolean;
|
|
2578
|
+
/** Renders each readout and tick label — money, units, dates, whatever the range means. */
|
|
2579
|
+
formatValue?: (value: number) => string;
|
|
2580
|
+
label?: string;
|
|
2581
|
+
max?: number;
|
|
2582
|
+
min?: number;
|
|
2583
|
+
/** Smallest gap the two thumbs may be pushed to. Defaults to one `step`. */
|
|
2584
|
+
minDistance?: number;
|
|
2585
|
+
onChange: (value: RangeSliderValue) => void;
|
|
2586
|
+
/** Fired once when a drag or key press settles — the place to kick off a query. */
|
|
2587
|
+
onChangeEnd?: (value: RangeSliderValue) => void;
|
|
2588
|
+
showValues?: boolean;
|
|
2589
|
+
step?: number;
|
|
2590
|
+
/** Renders a thinner track and smaller thumbs. */
|
|
2591
|
+
thin?: boolean;
|
|
2592
|
+
/** Draws a labelled tick every N units. `0` turns the ticks off. */
|
|
2593
|
+
tickStep?: number;
|
|
2594
|
+
value: RangeSliderValue;
|
|
2595
|
+
variant?: RangeSliderVariant;
|
|
2596
|
+
}
|
|
2597
|
+
|
|
2598
|
+
export declare type RangeSliderValue = [number, number];
|
|
2599
|
+
|
|
2600
|
+
export declare type RangeSliderVariant = 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
2601
|
+
|
|
2326
2602
|
export declare const Rating: FC<RatingProps>;
|
|
2327
2603
|
|
|
2328
|
-
declare type
|
|
2604
|
+
export declare type RatingFilled = 'full' | 'half' | 'empty';
|
|
2605
|
+
|
|
2606
|
+
export declare type RatingIconType = 'star' | 'bullet' | 'bar' | 'emoji';
|
|
2329
2607
|
|
|
2330
2608
|
declare interface RatingProps {
|
|
2331
2609
|
align?: 'left' | 'right' | 'space-between';
|
|
2610
|
+
/**
|
|
2611
|
+
* Emoji only: tint the chosen face by where it sits on the scale — red at the sad end,
|
|
2612
|
+
* amber in the middle, green at the happy end — instead of using `variant` throughout.
|
|
2613
|
+
*/
|
|
2614
|
+
emojiColorByMood?: boolean;
|
|
2615
|
+
/** Emoji only: pixel size of each face. Faces need more room than a star to stay readable. */
|
|
2616
|
+
emojiSize?: number;
|
|
2332
2617
|
icon?: RatingIconType;
|
|
2333
2618
|
maxRate?: number;
|
|
2334
2619
|
onHover?: (value: number) => void;
|
|
@@ -2341,7 +2626,7 @@ declare interface RatingProps {
|
|
|
2341
2626
|
variant?: RatingVariant;
|
|
2342
2627
|
}
|
|
2343
2628
|
|
|
2344
|
-
declare type RatingVariant = 'success' | 'info' | 'warning' | 'danger';
|
|
2629
|
+
export declare type RatingVariant = 'success' | 'info' | 'warning' | 'danger';
|
|
2345
2630
|
|
|
2346
2631
|
export declare const RichTextEditor: ({ advanced, error, format, id, label, onBlur, onChange, placeholder, required, value, }: RichTextEditorProps) => JSX.Element;
|
|
2347
2632
|
|
|
@@ -2358,6 +2643,33 @@ declare interface RichTextEditorProps {
|
|
|
2358
2643
|
value?: string;
|
|
2359
2644
|
}
|
|
2360
2645
|
|
|
2646
|
+
export declare const RollingNumber: FC<RollingNumberProps>;
|
|
2647
|
+
|
|
2648
|
+
export declare type RollingNumberDirection = 'up' | 'down' | 'none';
|
|
2649
|
+
|
|
2650
|
+
export declare interface RollingNumberProps {
|
|
2651
|
+
className?: string;
|
|
2652
|
+
/** Tint the readout green when the value rose and red when it fell, overriding `variant`. */
|
|
2653
|
+
colorByDirection?: boolean;
|
|
2654
|
+
decimals?: number;
|
|
2655
|
+
decimalSeparator?: string;
|
|
2656
|
+
/** Roll duration in milliseconds. */
|
|
2657
|
+
duration?: number;
|
|
2658
|
+
/** Thousands separator. Pass an empty string to switch grouping off. */
|
|
2659
|
+
groupSeparator?: string;
|
|
2660
|
+
prefix?: string;
|
|
2661
|
+
size?: RollingNumberSize;
|
|
2662
|
+
/** Delay added per digit so the columns land one after another, in milliseconds. */
|
|
2663
|
+
stagger?: number;
|
|
2664
|
+
suffix?: string;
|
|
2665
|
+
value: number;
|
|
2666
|
+
variant?: RollingNumberVariant;
|
|
2667
|
+
}
|
|
2668
|
+
|
|
2669
|
+
export declare type RollingNumberSize = 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl';
|
|
2670
|
+
|
|
2671
|
+
export declare type RollingNumberVariant = 'default' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
2672
|
+
|
|
2361
2673
|
export declare interface ScrollInfo {
|
|
2362
2674
|
scrollTop: number;
|
|
2363
2675
|
scrollHeight: number;
|
|
@@ -2533,6 +2845,37 @@ declare interface SplitPanelProps {
|
|
|
2533
2845
|
className?: string;
|
|
2534
2846
|
}
|
|
2535
2847
|
|
|
2848
|
+
export declare const Splitter: FC<SplitterProps>;
|
|
2849
|
+
|
|
2850
|
+
export declare type SplitterOrientation = 'horizontal' | 'vertical';
|
|
2851
|
+
|
|
2852
|
+
export declare interface SplitterPane {
|
|
2853
|
+
content: ReactNode;
|
|
2854
|
+
/** Stable identity for the pane — also used as the React key. */
|
|
2855
|
+
id: string;
|
|
2856
|
+
/** Smallest share this pane may be dragged to, in percent. Defaults to 10. */
|
|
2857
|
+
minSize?: number;
|
|
2858
|
+
/** Starting share of the container, in percent. Omitted panes split what is left evenly. */
|
|
2859
|
+
size?: number;
|
|
2860
|
+
}
|
|
2861
|
+
|
|
2862
|
+
export declare interface SplitterProps {
|
|
2863
|
+
className?: string;
|
|
2864
|
+
/** Dragging a pane below half its minimum snaps it shut instead of stopping at the minimum. */
|
|
2865
|
+
collapsible?: boolean;
|
|
2866
|
+
/** Thickness of the drag handles in pixels. */
|
|
2867
|
+
gutterSize?: number;
|
|
2868
|
+
/** Percent moved per arrow key press on a focused gutter. */
|
|
2869
|
+
keyboardStep?: number;
|
|
2870
|
+
/** Fired with the full list of pane sizes (percent) whenever a drag or key press settles. */
|
|
2871
|
+
onResize?: (sizes: number[]) => void;
|
|
2872
|
+
/** `horizontal` lays the panes out side by side; `vertical` stacks them. */
|
|
2873
|
+
orientation?: SplitterOrientation;
|
|
2874
|
+
panes: SplitterPane[];
|
|
2875
|
+
/** Double-clicking a gutter restores the sizes the Splitter started with. */
|
|
2876
|
+
resetOnDoubleClick?: boolean;
|
|
2877
|
+
}
|
|
2878
|
+
|
|
2536
2879
|
export declare const StackedBar: ({ animated, height, normalize, orientation, segments, separators, showLabels, showPercentage, thin, width, }: StackedBarProps) => JSX.Element;
|
|
2537
2880
|
|
|
2538
2881
|
export declare type StackedBarOrientation = 'horizontal' | 'vertical';
|
|
@@ -2634,6 +2977,12 @@ declare interface SuggestionsListProps {
|
|
|
2634
2977
|
onRowClick?: (item: SuggestionsListElement) => void;
|
|
2635
2978
|
}
|
|
2636
2979
|
|
|
2980
|
+
export declare interface SwipeHandlers {
|
|
2981
|
+
onTouchStart: (event: TouchEvent_2) => void;
|
|
2982
|
+
onTouchEnd: (event: TouchEvent_2) => void;
|
|
2983
|
+
onTouchCancel: () => void;
|
|
2984
|
+
}
|
|
2985
|
+
|
|
2637
2986
|
export declare type Theme = 'amber-meridian' | 'archive-indigo' | 'arctic-blue' | 'asphalt-code' | 'atelier-media' | 'audit-ember' | 'azure-night' | 'blossom-meadow' | 'blueprint-clay' | 'blush-market' | 'brass-chronicle' | 'carbon-velocity' | 'chalk-circuit' | 'chrono-atlas' | 'clinical-aqua' | 'cobalt-pulse' | 'citrus-vital' | 'command-slate' | 'crawler-dusk' | 'crimson-dusk' | 'cyber-forest' | 'dashdarkx' | 'ember-night' | 'emerald-ledger' | 'frost-petal' | 'garden-harvest' | 'gilded-bear' | 'graphite-shell' | 'horizon-amber' | 'horizon-drift' | 'ivory-serif' | 'lavender-mist' | 'light-blue' | 'lumen' | 'luna' | 'mesh-circuit' | 'midnight-atlas' | 'midnight-amber' | 'midnight-folio' | 'mint-meadow' | 'mintone' | 'neon-tokyo' | 'noir-marquee' | 'ocean-breeze' | 'ocean-depths' | 'orbital-night' | 'sandstone' | 'sandy-parchment' | 'screening-room' | 'signal-burst' | 'signal-clarity' | 'slate-focus' | 'slate-bazaar' | 'spectrum-vault' | 'tailwind-vue-dark' | 'terminal-phosphor' | 'terracotta-kitchen' | 'twilight-pulse' | 'vault-guard' | 'velvet-reel' | 'velvet-tome' | 'verdant-pulse' | 'vital-aurora' | 'vital-signal';
|
|
2638
2987
|
|
|
2639
2988
|
export declare const THEME_CONFIGS: ThemeConfig[];
|
|
@@ -2983,6 +3332,35 @@ export declare interface TourHudProps {
|
|
|
2983
3332
|
className?: string;
|
|
2984
3333
|
}
|
|
2985
3334
|
|
|
3335
|
+
export declare const Transition: FC<TransitionProps>;
|
|
3336
|
+
|
|
3337
|
+
export declare interface TransitionProps {
|
|
3338
|
+
/** Play the enter animation on the very first render too. */
|
|
3339
|
+
appear?: boolean;
|
|
3340
|
+
/** Element rendered around the children. */
|
|
3341
|
+
as?: TransitionTag;
|
|
3342
|
+
children: ReactNode;
|
|
3343
|
+
className?: string;
|
|
3344
|
+
/** Delay before the enter animation starts, in milliseconds. */
|
|
3345
|
+
delay?: number;
|
|
3346
|
+
/** Animation length in milliseconds. Also how long the exit is held before unmounting. */
|
|
3347
|
+
duration?: number;
|
|
3348
|
+
easing?: string;
|
|
3349
|
+
/** Keep the element mounted but hidden instead of removing it once the exit finishes. */
|
|
3350
|
+
keepMounted?: boolean;
|
|
3351
|
+
onEntered?: () => void;
|
|
3352
|
+
onExited?: () => void;
|
|
3353
|
+
/** `true` plays the enter animation; `false` plays the exit animation, then unmounts. */
|
|
3354
|
+
show: boolean;
|
|
3355
|
+
type?: TransitionType;
|
|
3356
|
+
}
|
|
3357
|
+
|
|
3358
|
+
export declare type TransitionStatus = 'unmounted' | 'entering' | 'entered' | 'exiting';
|
|
3359
|
+
|
|
3360
|
+
export declare type TransitionTag = 'div' | 'span' | 'section' | 'li';
|
|
3361
|
+
|
|
3362
|
+
export declare type TransitionType = 'fade' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'scale' | 'collapse';
|
|
3363
|
+
|
|
2986
3364
|
export declare const Tree: default_2.FC<TreeProps>;
|
|
2987
3365
|
|
|
2988
3366
|
export declare interface TreeNode {
|
|
@@ -3071,6 +3449,40 @@ export declare interface User {
|
|
|
3071
3449
|
|
|
3072
3450
|
export declare const useSidebar: () => SidebarContextValue;
|
|
3073
3451
|
|
|
3452
|
+
/**
|
|
3453
|
+
* Turns a touch drag into a direction.
|
|
3454
|
+
*
|
|
3455
|
+
* Touch only, deliberately: a mouse drag on the same element usually already means
|
|
3456
|
+
* something (selecting text, dragging an item), and a phone is where a swipe is the
|
|
3457
|
+
* natural gesture. Nothing is ever `preventDefault`ed, so the element keeps scrolling
|
|
3458
|
+
* normally and a swipe that fails the threshold costs the user nothing.
|
|
3459
|
+
*
|
|
3460
|
+
* Spread the returned handlers onto the element that should respond:
|
|
3461
|
+
*
|
|
3462
|
+
* const swipe = useSwipe({ onSwipeLeft: next, onSwipeRight: previous });
|
|
3463
|
+
* return <div {...swipe}>…</div>;
|
|
3464
|
+
*/
|
|
3465
|
+
export declare const useSwipe: ({ enabled, maxDurationMs, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, restraint, threshold, }: UseSwipeOptions) => SwipeHandlers;
|
|
3466
|
+
|
|
3467
|
+
export declare interface UseSwipeOptions {
|
|
3468
|
+
onSwipeLeft?: () => void;
|
|
3469
|
+
onSwipeRight?: () => void;
|
|
3470
|
+
onSwipeUp?: () => void;
|
|
3471
|
+
onSwipeDown?: () => void;
|
|
3472
|
+
/** Distance along the swipe axis, in px, before it counts as one. */
|
|
3473
|
+
threshold?: number;
|
|
3474
|
+
/**
|
|
3475
|
+
* Allowed drift across the swipe axis, in px. This is what keeps a vertical scroll
|
|
3476
|
+
* inside a calendar grid from registering as a horizontal page turn, so it matters
|
|
3477
|
+
* most when the swiped element scrolls the other way.
|
|
3478
|
+
*/
|
|
3479
|
+
restraint?: number;
|
|
3480
|
+
/** A drag slower than this is someone reading, not swiping. */
|
|
3481
|
+
maxDurationMs?: number;
|
|
3482
|
+
/** Set false to detach without changing where the hook is called. */
|
|
3483
|
+
enabled?: boolean;
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3074
3486
|
export declare const useTheme: () => ThemeContextType;
|
|
3075
3487
|
|
|
3076
3488
|
export declare const useToast: () => ToastContextValue;
|