@torpor/ui 0.4.0 → 1.0.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 +83 -7
- package/dist/Accordion/Accordion.torp +42 -165
- package/dist/Accordion/AccordionContent.torp +6 -6
- package/dist/Accordion/AccordionHeader.torp +7 -11
- package/dist/Accordion/AccordionItem.torp +24 -24
- package/dist/Accordion/AccordionTrigger.torp +17 -8
- package/dist/Accordion/AccordionTypes.ts +1 -1
- package/dist/Accordion/index.d.ts +23 -25
- package/dist/Accordion/index.js +6 -22
- package/dist/Breadcrumb/Breadcrumb.torp +12 -10
- package/dist/Breadcrumb/BreadcrumbItem.torp +6 -6
- package/dist/Breadcrumb/BreadcrumbList.torp +21 -0
- package/dist/Breadcrumb/BreadcrumbSeparator.torp +4 -4
- package/dist/Breadcrumb/index.d.ts +39 -15
- package/dist/Breadcrumb/index.js +5 -14
- package/dist/Calendar/Calendar.torp +163 -156
- package/dist/Calendar/CalendarDay.torp +91 -45
- package/dist/Calendar/CalendarDayHeader.torp +36 -0
- package/dist/Calendar/CalendarGrid.torp +104 -0
- package/dist/Calendar/CalendarGridHeader.torp +43 -0
- package/dist/Calendar/CalendarHeader.torp +48 -0
- package/dist/Calendar/CalendarHeaderTrigger.torp +54 -0
- package/dist/Calendar/CalendarTypes.ts +24 -3
- package/dist/Calendar/buildDays.ts +54 -0
- package/dist/Calendar/index.d.ts +191 -5
- package/dist/Calendar/index.js +8 -10
- package/dist/Carousel/Carousel.torp +180 -0
- package/dist/Carousel/CarouselIndicators.torp +65 -0
- package/dist/Carousel/CarouselNext.torp +43 -0
- package/dist/Carousel/CarouselPrevious.torp +44 -0
- package/dist/Carousel/CarouselSlide.torp +57 -0
- package/dist/Carousel/CarouselTypes.ts +28 -0
- package/dist/Carousel/index.d.ts +147 -0
- package/dist/Carousel/index.js +6 -0
- package/dist/Charts/BarChart.torp +55 -144
- package/dist/Charts/Chart.torp +120 -0
- package/dist/Charts/ChartBars.torp +78 -0
- package/dist/Charts/ChartColumns.torp +66 -0
- package/dist/Charts/ChartGrid.torp +54 -0
- package/dist/Charts/ChartLines.torp +60 -0
- package/dist/Charts/ChartTypes.ts +25 -0
- package/dist/Charts/ChartXAxis.torp +83 -0
- package/dist/Charts/ChartYAxis.torp +105 -0
- package/dist/Charts/ColumnChart.torp +70 -0
- package/dist/Charts/GridLines.torp +4 -4
- package/dist/Charts/LineChart.torp +55 -178
- package/dist/Charts/PieChart.torp +14 -20
- package/dist/Charts/ScatterChart.torp +45 -38
- package/dist/Charts/SparkLine.torp +16 -19
- package/dist/Charts/XAxis.torp +11 -11
- package/dist/Charts/YAxis.torp +8 -8
- package/dist/Charts/index.d.ts +328 -79
- package/dist/Charts/index.js +17 -34
- package/dist/ColorPicker/ColorPalette.torp +154 -0
- package/dist/ColorPicker/ColorPicker.torp +157 -0
- package/dist/ColorPicker/index.d.ts +85 -0
- package/dist/ColorPicker/index.js +3 -0
- package/dist/ComboBox/ComboBox.torp +205 -0
- package/dist/ComboBox/ComboBoxContent.torp +112 -0
- package/dist/ComboBox/ComboBoxInput.torp +145 -0
- package/dist/ComboBox/ComboBoxTrigger.torp +49 -0
- package/dist/ComboBox/ComboBoxTypes.ts +39 -0
- package/dist/ComboBox/index.d.ts +152 -0
- package/dist/ComboBox/index.js +6 -0
- package/dist/CommandPalette/CommandPalette.torp +220 -0
- package/dist/CommandPalette/CommandTypes.ts +14 -0
- package/dist/CommandPalette/index.d.ts +45 -0
- package/dist/CommandPalette/index.js +2 -0
- package/dist/Contextual/Contextual.torp +32 -50
- package/dist/Contextual/ContextualContent.torp +29 -73
- package/dist/Contextual/ContextualHover.torp +112 -0
- package/dist/Contextual/ContextualTrigger.torp +31 -42
- package/dist/Contextual/ContextualTypes.ts +4 -17
- package/dist/Contextual/index.d.ts +44 -27
- package/dist/Contextual/index.js +5 -14
- package/dist/DataGrid/DataGrid.torp +496 -0
- package/dist/DataGrid/DataGridTypes.ts +25 -0
- package/dist/DataGrid/index.d.ts +90 -0
- package/dist/DataGrid/index.js +3 -0
- package/dist/DataGrid/sortRows.ts +32 -0
- package/dist/DatePicker/DatePicker.torp +222 -0
- package/dist/DatePicker/DatePickerHeader.torp +20 -0
- package/dist/DatePicker/index.d.ts +55 -0
- package/dist/DatePicker/index.js +2 -0
- package/dist/DateRangePicker/DateRangePicker.torp +311 -0
- package/dist/DateRangePicker/DateRangePickerDay.torp +137 -0
- package/dist/DateRangePicker/DateRangePickerTypes.ts +21 -0
- package/dist/DateRangePicker/index.d.ts +76 -0
- package/dist/DateRangePicker/index.js +3 -0
- package/dist/Dialog/Dialog.torp +24 -17
- package/dist/Dialog/DialogBody.torp +5 -9
- package/dist/Dialog/DialogButton.torp +12 -12
- package/dist/Dialog/DialogFooter.torp +3 -7
- package/dist/Dialog/DialogHeader.torp +6 -10
- package/dist/Dialog/index.d.ts +27 -27
- package/dist/Dialog/index.js +6 -22
- package/dist/Disclosure/Disclosure.torp +18 -18
- package/dist/Disclosure/DisclosureContent.torp +5 -6
- package/dist/Disclosure/DisclosureHeader.torp +7 -11
- package/dist/Disclosure/DisclosureTrigger.torp +4 -5
- package/dist/Disclosure/index.d.ts +14 -16
- package/dist/Disclosure/index.js +5 -18
- package/dist/Drawer/Drawer.torp +19 -49
- package/dist/Drawer/DrawerContent.torp +67 -13
- package/dist/Drawer/DrawerOverlay.torp +4 -4
- package/dist/Drawer/DrawerTrigger.torp +16 -4
- package/dist/Drawer/DrawerTypes.ts +3 -0
- package/dist/Drawer/index.d.ts +16 -20
- package/dist/Drawer/index.js +5 -18
- package/dist/FocusGroup/FocusGroup.torp +70 -0
- package/dist/FocusGroup/FocusGroupButton.torp +59 -0
- package/dist/FocusGroup/FocusGroupTypes.ts +14 -0
- package/dist/FocusGroup/index.d.ts +44 -0
- package/dist/FocusGroup/index.js +3 -0
- package/dist/Form/CheckBox.torp +27 -18
- package/dist/Form/Field.torp +17 -17
- package/dist/Form/File.torp +31 -22
- package/dist/Form/FileDrop.torp +187 -0
- package/dist/Form/Form.torp +24 -22
- package/dist/Form/FormTypes.ts +2 -0
- package/dist/Form/FormValues.torp +37 -0
- package/dist/Form/Hidden.torp +4 -12
- package/dist/Form/Input.torp +38 -32
- package/dist/Form/Label.torp +3 -3
- package/dist/Form/Message.torp +13 -5
- package/dist/Form/MessageSummary.torp +5 -4
- package/dist/Form/Option.torp +11 -7
- package/dist/Form/Select.torp +32 -28
- package/dist/Form/TextArea.torp +35 -31
- package/dist/Form/Toggle.torp +109 -0
- package/dist/Form/index.d.ts +178 -79
- package/dist/Form/index.js +16 -50
- package/dist/ListBox/ListBox.torp +253 -150
- package/dist/ListBox/ListBoxItem.torp +54 -30
- package/dist/ListBox/ListBoxSeparator.torp +5 -2
- package/dist/ListBox/ListBoxTypes.ts +23 -5
- package/dist/ListBox/LoadedListBoxItems.torp +41 -0
- package/dist/ListBox/index.d.ts +56 -17
- package/dist/ListBox/index.js +4 -14
- package/dist/MaskedInput/MaskedInput.torp +143 -0
- package/dist/MaskedInput/index.d.ts +52 -0
- package/dist/MaskedInput/index.js +2 -0
- package/dist/Menu/Menu.torp +86 -71
- package/dist/Menu/MenuButton.torp +17 -10
- package/dist/Menu/MenuCheck.torp +22 -18
- package/dist/Menu/MenuGroup.torp +4 -4
- package/dist/Menu/MenuIndicator.torp +5 -13
- package/dist/Menu/MenuPopout.torp +20 -50
- package/dist/Menu/MenuPopoutContent.torp +15 -66
- package/dist/Menu/MenuPopoutTrigger.torp +19 -100
- package/dist/Menu/MenuRadio.torp +25 -26
- package/dist/Menu/MenuRadioGroup.torp +25 -68
- package/dist/Menu/MenuSeparator.torp +3 -2
- package/dist/Menu/MenuTypes.ts +9 -19
- package/dist/Menu/index.d.ts +45 -51
- package/dist/Menu/index.js +12 -46
- package/dist/MenuBar/MenuBar.torp +31 -83
- package/dist/MenuBar/MenuBarItem.torp +33 -51
- package/dist/MenuBar/MenuBarItemContent.torp +15 -101
- package/dist/MenuBar/MenuBarItemTrigger.torp +20 -55
- package/dist/MenuBar/MenuBarTypes.ts +11 -10
- package/dist/MenuBar/index.d.ts +17 -19
- package/dist/MenuBar/index.js +5 -18
- package/dist/Modal/Modal.torp +22 -47
- package/dist/Modal/ModalContent.torp +21 -44
- package/dist/Modal/ModalOverlay.torp +4 -4
- package/dist/Modal/ModalTrigger.torp +16 -32
- package/dist/Modal/ModalTypes.ts +5 -16
- package/dist/Modal/index.d.ts +17 -29
- package/dist/Modal/index.js +29 -28
- package/dist/Modal/index.js.map +1 -1
- package/dist/Modal/showPrompt.ts +2 -2
- package/dist/NavMenu/NavMenu.torp +22 -111
- package/dist/NavMenu/NavMenuButton.torp +7 -8
- package/dist/NavMenu/NavMenuElement.torp +6 -7
- package/dist/NavMenu/NavMenuGroup.torp +5 -5
- package/dist/NavMenu/NavMenuGroupHeader.torp +5 -8
- package/dist/NavMenu/NavMenuLink.torp +7 -10
- package/dist/NavMenu/NavMenuPopout.torp +15 -60
- package/dist/NavMenu/NavMenuPopoutContent.torp +14 -73
- package/dist/NavMenu/NavMenuPopoutTrigger.torp +17 -99
- package/dist/NavMenu/NavMenuSeparator.torp +3 -7
- package/dist/NavMenu/NavMenuTypes.ts +4 -14
- package/dist/NavMenu/index.d.ts +40 -44
- package/dist/NavMenu/index.js +11 -42
- package/dist/Notification/Notification.torp +12 -24
- package/dist/Notification/NotificationClose.torp +6 -3
- package/dist/Notification/NotificationContainer.torp +3 -7
- package/dist/Notification/NotificationContent.torp +3 -7
- package/dist/Notification/NotificationTypes.ts +1 -1
- package/dist/Notification/index.d.ts +15 -12
- package/dist/Notification/index.js +22 -32
- package/dist/Notification/index.js.map +1 -1
- package/dist/NumberInput/NumberInput.torp +255 -0
- package/dist/NumberInput/index.d.ts +44 -0
- package/dist/NumberInput/index.js +2 -0
- package/dist/Pagination/Pagination.torp +41 -34
- package/dist/Pagination/PaginationItem.torp +50 -13
- package/dist/Pagination/PaginationTypes.ts +3 -6
- package/dist/Pagination/buildPages.ts +9 -5
- package/dist/Pagination/index.d.ts +19 -9
- package/dist/Pagination/index.js +3 -40
- package/dist/Popover/Popover.torp +32 -50
- package/dist/Popover/PopoverContent.torp +27 -76
- package/dist/Popover/PopoverHover.torp +90 -0
- package/dist/Popover/PopoverTrigger.torp +17 -40
- package/dist/Popover/PopoverTypes.ts +4 -17
- package/dist/Popover/index.d.ts +40 -25
- package/dist/Popover/index.js +18 -18
- package/dist/Popover/index.js.map +1 -1
- package/dist/Progress/Progress.torp +88 -0
- package/dist/Progress/index.d.ts +37 -0
- package/dist/Progress/index.js +2 -0
- package/dist/Rating/Rating.torp +225 -0
- package/dist/Rating/index.d.ts +44 -0
- package/dist/Rating/index.js +2 -0
- package/dist/SegmentedControl/SegmentedControl.torp +233 -0
- package/dist/SegmentedControl/SegmentedControlTypes.ts +26 -0
- package/dist/SegmentedControl/SegmentedItem.torp +78 -0
- package/dist/SegmentedControl/index.d.ts +74 -0
- package/dist/SegmentedControl/index.js +3 -0
- package/dist/SelectBox/SelectBox.torp +107 -53
- package/dist/SelectBox/SelectBoxContent.torp +45 -19
- package/dist/SelectBox/SelectBoxTrigger.torp +108 -8
- package/dist/SelectBox/SelectBoxTypes.ts +26 -11
- package/dist/SelectBox/index.d.ts +39 -54
- package/dist/SelectBox/index.js +5 -18
- package/dist/Slider/Slider.torp +248 -0
- package/dist/Slider/index.d.ts +45 -0
- package/dist/Slider/index.js +2 -0
- package/dist/Splitter/Splitter.torp +156 -0
- package/dist/Splitter/SplitterHandle.torp +161 -0
- package/dist/Splitter/SplitterPane.torp +63 -0
- package/dist/Splitter/SplitterTypes.ts +31 -0
- package/dist/Splitter/index.d.ts +103 -0
- package/dist/Splitter/index.js +4 -0
- package/dist/Stepper/Stepper.torp +146 -0
- package/dist/Stepper/StepperMarker.torp +24 -0
- package/dist/Stepper/StepperNext.torp +44 -0
- package/dist/Stepper/StepperPrevious.torp +44 -0
- package/dist/Stepper/StepperStep.torp +90 -0
- package/dist/Stepper/StepperTypes.ts +30 -0
- package/dist/Stepper/index.d.ts +149 -0
- package/dist/Stepper/index.js +6 -0
- package/dist/TabGroup/TabContent.torp +6 -6
- package/dist/TabGroup/TabGroup.torp +97 -113
- package/dist/TabGroup/TabGroupTypes.ts +1 -1
- package/dist/TabGroup/TabHeader.torp +23 -19
- package/dist/TabGroup/TabList.torp +8 -21
- package/dist/TabGroup/TabTrigger.torp +6 -7
- package/dist/TabGroup/index.d.ts +26 -26
- package/dist/TabGroup/index.js +6 -22
- package/dist/TagInput/TagInput.torp +378 -0
- package/dist/TagInput/index.d.ts +48 -0
- package/dist/TagInput/index.js +2 -0
- package/dist/TimePicker/TimePicker.torp +462 -0
- package/dist/TimePicker/index.d.ts +53 -0
- package/dist/TimePicker/index.js +2 -0
- package/dist/ToolBar/ToolBar.torp +29 -110
- package/dist/ToolBar/ToolBarButton.torp +7 -8
- package/dist/ToolBar/ToolBarElement.torp +7 -11
- package/dist/ToolBar/ToolBarPopout.torp +16 -68
- package/dist/ToolBar/ToolBarPopoutContent.torp +15 -73
- package/dist/ToolBar/ToolBarPopoutTrigger.torp +19 -110
- package/dist/ToolBar/ToolBarSeparator.torp +3 -7
- package/dist/ToolBar/ToolBarTypes.ts +7 -14
- package/dist/ToolBar/index.d.ts +30 -32
- package/dist/ToolBar/index.js +8 -30
- package/dist/Tree/Tree.torp +395 -0
- package/dist/Tree/TreeItem.torp +176 -0
- package/dist/Tree/TreeItemChildren.torp +60 -0
- package/dist/Tree/TreeItemContent.torp +46 -0
- package/dist/Tree/TreeItemLabel.torp +94 -0
- package/dist/Tree/TreeItemTrigger.torp +78 -0
- package/dist/Tree/TreeLoadedChildren.torp +122 -0
- package/dist/Tree/TreeTypes.ts +63 -0
- package/dist/Tree/index.d.ts +262 -0
- package/dist/Tree/index.js +7 -0
- package/dist/icons/ChevronDoubleLeft.torp +19 -0
- package/dist/icons/ChevronDoubleRight.torp +19 -0
- package/dist/icons/index.d.ts +61 -1
- package/dist/icons/index.js +17 -58
- package/dist/loader-DEeG5vFY.js +44 -0
- package/dist/loader-DEeG5vFY.js.map +1 -0
- package/dist/motion/index.d.ts +12 -8
- package/dist/motion/index.d.ts.map +1 -0
- package/dist/motion/index.js +72 -88
- package/dist/motion/index.js.map +1 -1
- package/dist/mount/draggable.ts +63 -0
- package/dist/mount/dropTarget.ts +108 -0
- package/dist/mount/hoverTrigger.ts +1 -1
- package/dist/utils/$handle.ts +23 -0
- package/dist/utils/LoadedItems.torp +47 -0
- package/dist/utils/PopoutClickTrigger.torp +99 -0
- package/dist/utils/PopoutTypes.ts +59 -12
- package/dist/utils/SubmenuPopout.torp +89 -0
- package/dist/utils/SubmenuPopoutContent.torp +87 -0
- package/dist/utils/SubmenuPopoutTrigger.torp +160 -0
- package/dist/utils/chartColors.ts +13 -13
- package/dist/utils/chartLayout.ts +143 -0
- package/dist/utils/colorUtils.ts +103 -0
- package/dist/utils/createItemGroup.ts +152 -0
- package/dist/utils/dateUtils.ts +8 -7
- package/dist/utils/documentEvents.ts +4 -4
- package/dist/utils/dragState.ts +86 -0
- package/dist/utils/focusGroup.ts +204 -0
- package/dist/utils/focusItem.ts +44 -0
- package/dist/utils/formField.ts +70 -0
- package/dist/utils/hoverOpen.ts +50 -0
- package/dist/utils/hoverReveal.ts +194 -0
- package/dist/utils/loader.ts +113 -0
- package/dist/utils/maskUtils.ts +98 -0
- package/dist/utils/popoutContent.ts +137 -0
- package/dist/utils/reorderList.ts +52 -0
- package/package.json +97 -22
- package/dist/Accordion/index.js.map +0 -1
- package/dist/Breadcrumb/index.js.map +0 -1
- package/dist/Calendar/index.js.map +0 -1
- package/dist/Charts/index.js.map +0 -1
- package/dist/Contextual/index.js.map +0 -1
- package/dist/Dialog/index.js.map +0 -1
- package/dist/Disclosure/index.js.map +0 -1
- package/dist/Drawer/index.js.map +0 -1
- package/dist/Form/index.js.map +0 -1
- package/dist/ListBox/index.js.map +0 -1
- package/dist/Menu/index.js.map +0 -1
- package/dist/MenuBar/index.js.map +0 -1
- package/dist/NavMenu/index.js.map +0 -1
- package/dist/Pagination/index.js.map +0 -1
- package/dist/SelectBox/SelectBoxInput.torp +0 -95
- package/dist/SelectBox/index.js.map +0 -1
- package/dist/TabGroup/index.js.map +0 -1
- package/dist/ToolBar/index.js.map +0 -1
- package/dist/icons/index.js.map +0 -1
- package/dist/index.d.ts +0 -19
- package/dist/metafile-esm.json +0 -1
- package/dist/motion/fade.ts +0 -16
- package/dist/motion/grow.ts +0 -23
- package/dist/motion/measure.ts +0 -28
- package/dist/motion/slide.ts +0 -45
- package/dist/mount/index.d.ts +0 -2
- package/dist/utils/index.d.ts +0 -2
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { type ClassValue, type StyleValue } from "@torpor/view";
|
|
2
|
+
import { areDatesEqual } from "../utils/dateUtils";
|
|
3
|
+
import { type CalendarContext, CalendarContextName } from "../Calendar/CalendarTypes";
|
|
4
|
+
import {
|
|
5
|
+
type DateRangePickerContext,
|
|
6
|
+
DateRangePickerContextName,
|
|
7
|
+
} from "./DateRangePickerTypes";
|
|
8
|
+
|
|
9
|
+
// TODO: Internationalization?? On the server and/or the client...
|
|
10
|
+
const formatDate = (date: Date): string => {
|
|
11
|
+
return new Intl.DateTimeFormat("en-US", {
|
|
12
|
+
year: "numeric",
|
|
13
|
+
month: "long",
|
|
14
|
+
day: "numeric",
|
|
15
|
+
}).format(date);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
interface DateRangePickerDayProps {
|
|
19
|
+
/** An ID for the root element */
|
|
20
|
+
id?: string;
|
|
21
|
+
/** Classes for the root element */
|
|
22
|
+
class?: ClassValue;
|
|
23
|
+
/** Styles for the root element */
|
|
24
|
+
style?: StyleValue;
|
|
25
|
+
/** The date to display */
|
|
26
|
+
date: Date;
|
|
27
|
+
/** Whether the date is muted (i.e. not in the currently displayed month) */
|
|
28
|
+
muted?: boolean;
|
|
29
|
+
/** Whether the date is the active (keyboard cursor) date */
|
|
30
|
+
active?: boolean;
|
|
31
|
+
/** An ARIA label for describing the day to screen readers */
|
|
32
|
+
ariaLabel?: string | undefined;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A day in a DateRangePicker's calendar, which highlights the start and end
|
|
37
|
+
* of the range being selected, the dates in between, and a preview of the
|
|
38
|
+
* range while the user hovers.
|
|
39
|
+
*/
|
|
40
|
+
export default function DateRangePickerDay($props: DateRangePickerDayProps | undefined) {
|
|
41
|
+
// Ensure the value is a reactive date -- assigning a plain date to
|
|
42
|
+
// watched props/state wraps it automatically
|
|
43
|
+
$props!.date = new Date($unwrap($props?.date ?? new Date()));
|
|
44
|
+
let reactiveDate = $props!.date;
|
|
45
|
+
|
|
46
|
+
// Get stuff out of the Calendar context
|
|
47
|
+
const calendarContext = $context[CalendarContextName] as CalendarContext;
|
|
48
|
+
if (!calendarContext) {
|
|
49
|
+
throw new Error("DateRangePickerDay must be contained within a Calendar");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Get stuff out of the DateRangePicker context
|
|
53
|
+
const rangeContext = $context[DateRangePickerContextName] as DateRangePickerContext;
|
|
54
|
+
if (!rangeContext) {
|
|
55
|
+
throw new Error("DateRangePickerDay must be contained within a DateRangePicker");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Register this day with the parent Calendar, which will handle setting
|
|
59
|
+
// the active (keyboard cursor) date
|
|
60
|
+
calendarContext.registerDay(reactiveDate, setActive);
|
|
61
|
+
|
|
62
|
+
// This function is called by the parent Calendar to set this item's active value
|
|
63
|
+
function setActive(value: boolean) {
|
|
64
|
+
$props!.active = value;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function isToday() {
|
|
68
|
+
const today = new Date();
|
|
69
|
+
return areDatesEqual($props!.date, today);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function isStart(): boolean {
|
|
73
|
+
const start = rangeContext.getStart();
|
|
74
|
+
return !!start && areDatesEqual($props!.date, start);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function isEnd(): boolean {
|
|
78
|
+
const end = rangeContext.getEnd();
|
|
79
|
+
return !!end && areDatesEqual($props!.date, end);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// The end of the preview range is the hovered date while a range is being
|
|
83
|
+
// selected, or the real end once it's complete
|
|
84
|
+
function getRangeEnd(): Date | undefined {
|
|
85
|
+
return rangeContext.getEnd() ?? rangeContext.getPreview();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function isInRange(): boolean {
|
|
89
|
+
const start = rangeContext.getStart();
|
|
90
|
+
const end = getRangeEnd();
|
|
91
|
+
if (!start || !end) return false;
|
|
92
|
+
if (areDatesEqual($props!.date, start) || areDatesEqual($props!.date, end)) return false;
|
|
93
|
+
return $props!.date > start && $props!.date < end;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function handleClick() {
|
|
97
|
+
calendarContext.handleDay(reactiveDate);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function handleEnter() {
|
|
101
|
+
rangeContext.setPreview(new Date($props!.date));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@render {
|
|
105
|
+
<button
|
|
106
|
+
{$props?.id}
|
|
107
|
+
class={buildClass()}
|
|
108
|
+
{$props?.style}
|
|
109
|
+
type="button"
|
|
110
|
+
tabindex="-1"
|
|
111
|
+
onclick={handleClick}
|
|
112
|
+
onmouseenter={handleEnter}
|
|
113
|
+
aria-label={$props?.ariaLabel ?? formatDate($props!.date)}
|
|
114
|
+
aria-current={isToday() ? "date" : undefined}
|
|
115
|
+
aria-disabled={$props?.muted ? "true" : undefined}
|
|
116
|
+
data-range={isStart() ? "start" : isEnd() ? "end" : isInRange() ? "inside" : undefined}
|
|
117
|
+
>
|
|
118
|
+
<slot>
|
|
119
|
+
{$props!.date.getDate()}
|
|
120
|
+
</slot>
|
|
121
|
+
</button>
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function buildClass() {
|
|
125
|
+
return [
|
|
126
|
+
"torp-date-range-day",
|
|
127
|
+
$props?.class,
|
|
128
|
+
{
|
|
129
|
+
muted: $props?.muted,
|
|
130
|
+
today: isToday(),
|
|
131
|
+
active: $props?.active,
|
|
132
|
+
selected: isStart() || isEnd(),
|
|
133
|
+
"in-range": isInRange(),
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const DateRangePickerContextName: unique symbol = Symbol.for("torp.DateRangePicker");
|
|
2
|
+
|
|
3
|
+
export interface DateRange {
|
|
4
|
+
/** The first date in the range */
|
|
5
|
+
start: Date;
|
|
6
|
+
/** The last date in the range */
|
|
7
|
+
end: Date;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface DateRangePickerContext {
|
|
11
|
+
/** The first date in the range being selected, as a plain (unwrapped) date */
|
|
12
|
+
getStart: () => Date | undefined;
|
|
13
|
+
/** The last date in the range, once the range is complete, as a plain date */
|
|
14
|
+
getEnd: () => Date | undefined;
|
|
15
|
+
/** The hovered date extending the preview range, as a plain date */
|
|
16
|
+
getPreview: () => Date | undefined;
|
|
17
|
+
/** Whether the user has picked a start date but not an end date yet */
|
|
18
|
+
isSelecting: () => boolean;
|
|
19
|
+
/** Sets the hovered date that extends the range preview */
|
|
20
|
+
setPreview: (date: Date | undefined) => void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type SlotRender } from "@torpor/view";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
interface DateRangePickerProps {
|
|
5
|
+
/** An ID for the root element */
|
|
6
|
+
id?: string;
|
|
7
|
+
/** Classes for the root element */
|
|
8
|
+
class?: ClassValue;
|
|
9
|
+
/** Styles for the root element */
|
|
10
|
+
style?: StyleValue;
|
|
11
|
+
/** The name of the date range picker's form data fields; "-start" and "-end" are appended */
|
|
12
|
+
name?: string;
|
|
13
|
+
/** The selected date range */
|
|
14
|
+
value?: Bindable<DateRange | undefined>;
|
|
15
|
+
/** Text to display when the value is empty */
|
|
16
|
+
placeholder?: string;
|
|
17
|
+
/** The format for the displayed dates (e.g. "d MMM yyyy") */
|
|
18
|
+
dateFormat?: string;
|
|
19
|
+
/** If set to true, the user cannot interact with this date range picker */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** An accessible name for the trigger button */
|
|
22
|
+
ariaLabel?: string;
|
|
23
|
+
/** Raised when a complete range has been selected */
|
|
24
|
+
onchange?: (value: DateRange) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* An input for selecting a range of dates from a calendar popout. The first
|
|
29
|
+
* click sets the start of the range and the second sets its end; clicking a
|
|
30
|
+
* date before the start begins a new range there, and a third click starts
|
|
31
|
+
* over.
|
|
32
|
+
*
|
|
33
|
+
* The structure of a DateRangePicker is a trigger button that displays the
|
|
34
|
+
* selected range, with a selectable Calendar in a popout.
|
|
35
|
+
*/
|
|
36
|
+
declare function DateRangePicker(
|
|
37
|
+
$parent: ParentNode,
|
|
38
|
+
$anchor: Node | null,
|
|
39
|
+
$props: DateRangePickerProps | undefined,
|
|
40
|
+
$context?: Record<PropertyKey, any>,
|
|
41
|
+
$slots?: Record<string, SlotRender>,
|
|
42
|
+
): void;
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
interface DateRangePickerDayProps {
|
|
47
|
+
/** An ID for the root element */
|
|
48
|
+
id?: string;
|
|
49
|
+
/** Classes for the root element */
|
|
50
|
+
class?: ClassValue;
|
|
51
|
+
/** Styles for the root element */
|
|
52
|
+
style?: StyleValue;
|
|
53
|
+
/** The date to display */
|
|
54
|
+
date: Date;
|
|
55
|
+
/** Whether the date is muted (i.e. not in the currently displayed month) */
|
|
56
|
+
muted?: boolean;
|
|
57
|
+
/** Whether the date is the active (keyboard cursor) date */
|
|
58
|
+
active?: boolean;
|
|
59
|
+
/** An ARIA label for describing the day to screen readers */
|
|
60
|
+
ariaLabel?: string | undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A day in a DateRangePicker's calendar, which highlights the start and end
|
|
65
|
+
* of the range being selected, the dates in between, and a preview of the
|
|
66
|
+
* range while the user hovers.
|
|
67
|
+
*/
|
|
68
|
+
declare function DateRangePickerDay(
|
|
69
|
+
$parent: ParentNode,
|
|
70
|
+
$anchor: Node | null,
|
|
71
|
+
$props: DateRangePickerDayProps | undefined,
|
|
72
|
+
$context?: Record<PropertyKey, any>,
|
|
73
|
+
$slots?: Record<string, SlotRender>,
|
|
74
|
+
): void;
|
|
75
|
+
|
|
76
|
+
export { DateRangePicker, DateRangePickerDay };
|
package/dist/Dialog/Dialog.torp
CHANGED
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
+
import { type TrapFocusOptions, trapFocus } from "../mount/trapFocus";
|
|
3
|
+
import {
|
|
4
|
+
type HandleButtonPress,
|
|
5
|
+
type PopoutContext,
|
|
6
|
+
PopoutContextName,
|
|
7
|
+
} from "../utils/PopoutTypes";
|
|
2
8
|
import getId from "../utils/getId";
|
|
3
|
-
import {
|
|
4
|
-
import { PopoutContextName, type PopoutContext, type HandleButtonPress } from "../utils/PopoutTypes";
|
|
5
|
-
import { DialogContextName, type DialogContext, type DialogState } from "./DialogTypes";
|
|
9
|
+
import { type DialogContext, DialogContextName, type DialogState } from "./DialogTypes";
|
|
6
10
|
|
|
7
11
|
interface DialogProps {
|
|
8
12
|
/** An ID for the root element */
|
|
9
13
|
id?: string;
|
|
10
14
|
/** Classes for the root element */
|
|
11
|
-
class?: ClassValue
|
|
15
|
+
class?: ClassValue;
|
|
12
16
|
/** Styles for the root element */
|
|
13
|
-
style?: StyleValue
|
|
17
|
+
style?: StyleValue;
|
|
14
18
|
/** An ARIA label for describing the popover to screen readers */
|
|
15
|
-
ariaLabel?: string
|
|
19
|
+
ariaLabel?: string;
|
|
16
20
|
/** Whether the dialog should alert the user via the screen reader */
|
|
17
|
-
alert?: boolean
|
|
21
|
+
alert?: boolean;
|
|
18
22
|
}
|
|
19
23
|
|
|
20
24
|
/**
|
|
21
25
|
* A dialog that can be used to show a message to the user, or get information from the user.
|
|
22
|
-
*
|
|
26
|
+
*
|
|
23
27
|
* Dialogs are typically shown within a Modal or Popover.
|
|
24
|
-
*
|
|
28
|
+
*
|
|
25
29
|
* See [the WAI ARIA guidelines for Dialogs](https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/).
|
|
26
|
-
*
|
|
30
|
+
*
|
|
27
31
|
* The structure of a Dialog is:
|
|
28
|
-
*
|
|
32
|
+
*
|
|
29
33
|
* ```
|
|
30
34
|
* <Dialog>
|
|
31
35
|
* <ModalOverlay /> (optional -- will set `modal` to true)
|
|
@@ -36,7 +40,7 @@ interface DialogProps {
|
|
|
36
40
|
* </DialogFooter>
|
|
37
41
|
* </Dialog>
|
|
38
42
|
* ```
|
|
39
|
-
*
|
|
43
|
+
*
|
|
40
44
|
*/
|
|
41
45
|
export default function Dialog($props: DialogProps | undefined) {
|
|
42
46
|
let defaultId = getId();
|
|
@@ -44,7 +48,7 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
44
48
|
//let div: HTMLDivElement;
|
|
45
49
|
|
|
46
50
|
let trapFocusOptions: TrapFocusOptions = {
|
|
47
|
-
focusableElements: []
|
|
51
|
+
focusableElements: [],
|
|
48
52
|
};
|
|
49
53
|
|
|
50
54
|
// Maybe get stuff out of a popout context
|
|
@@ -59,6 +63,11 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
59
63
|
// Set the focusFirstElement method in the PopoutContext so that it can be
|
|
60
64
|
// called after everything has been shown
|
|
61
65
|
popoutContext.focusFirstElement = focusFirstElement;
|
|
66
|
+
|
|
67
|
+
// Set the content ID and role so that triggers can use them with
|
|
68
|
+
// aria-controls / aria-haspopup
|
|
69
|
+
popoutContext.state.contentId = $props?.id ?? defaultId;
|
|
70
|
+
popoutContext.state.contentRole = "dialog";
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
// Set the IDs for using in the Dialog's ARIA attributes
|
|
@@ -72,7 +81,7 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
72
81
|
let context: DialogContext = {
|
|
73
82
|
handleButton,
|
|
74
83
|
state: $state,
|
|
75
|
-
anchorElement: popoutContext ? popoutContext.anchorElement : undefined
|
|
84
|
+
anchorElement: popoutContext ? popoutContext.anchorElement : undefined,
|
|
76
85
|
};
|
|
77
86
|
$context[DialogContextName] = context;
|
|
78
87
|
|
|
@@ -82,7 +91,7 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
93
|
|
|
85
|
-
function handleClickOutside(e: MouseEvent) {
|
|
94
|
+
function handleClickOutside(e: MouseEvent | KeyboardEvent) {
|
|
86
95
|
// Don't allow the user to click outside -- they must press a button or
|
|
87
96
|
// the Esc key
|
|
88
97
|
e.preventDefault();
|
|
@@ -93,7 +102,6 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
93
102
|
|
|
94
103
|
function handleKey(e: KeyboardEvent) {
|
|
95
104
|
switch (e.key) {
|
|
96
|
-
case "Esc":
|
|
97
105
|
case "Escape": {
|
|
98
106
|
if (context.cancelButton) {
|
|
99
107
|
context.cancelButton.click();
|
|
@@ -124,7 +132,6 @@ export default function Dialog($props: DialogProps | undefined) {
|
|
|
124
132
|
aria-describedby={$state.bodyId ? $state.bodyId : undefined}
|
|
125
133
|
onkeydown={handleKey}
|
|
126
134
|
onmount={(el) => trapFocus(el, trapFocusOptions)}
|
|
127
|
-
@//&ref={div}
|
|
128
135
|
>
|
|
129
136
|
<slot />
|
|
130
137
|
</div>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
2
|
import getId from "../utils/getId";
|
|
3
|
-
import {
|
|
3
|
+
import { type DialogContext, DialogContextName } from "./DialogTypes";
|
|
4
4
|
|
|
5
5
|
interface DialogBodyProps {
|
|
6
6
|
/** An ID for the root element */
|
|
7
7
|
id?: string;
|
|
8
8
|
/** Classes for the root element */
|
|
9
|
-
class?: ClassValue
|
|
9
|
+
class?: ClassValue;
|
|
10
10
|
/** Styles for the root element */
|
|
11
|
-
style?: StyleValue
|
|
11
|
+
style?: StyleValue;
|
|
12
12
|
/** Whether the body content will be announced by screen readers when the Dialog is opened */
|
|
13
|
-
ariaAnnounce?: boolean
|
|
13
|
+
ariaAnnounce?: boolean;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -33,11 +33,7 @@ export default function DialogBody($props: DialogBodyProps | undefined) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
@render {
|
|
36
|
-
<div
|
|
37
|
-
id={$props?.id ?? defaultId}
|
|
38
|
-
class={["torp-dialog-body", $props?.class]}
|
|
39
|
-
{$props?.style}
|
|
40
|
-
>
|
|
36
|
+
<div id={$props?.id ?? defaultId} class={["torp-dialog-body", $props?.class]} {$props?.style}>
|
|
41
37
|
<slot />
|
|
42
38
|
</div>
|
|
43
39
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import {
|
|
2
|
+
import { type DialogContext, DialogContextName } from "./DialogTypes";
|
|
3
3
|
|
|
4
4
|
interface DialogButtonProps {
|
|
5
5
|
/** An ID for the root element */
|
|
6
6
|
id?: string;
|
|
7
7
|
/** Classes for the root element */
|
|
8
|
-
class?: ClassValue
|
|
8
|
+
class?: ClassValue;
|
|
9
9
|
/** Styles for the root element */
|
|
10
|
-
style?: StyleValue
|
|
10
|
+
style?: StyleValue;
|
|
11
11
|
/** The value that should be returned when this button is pressed and the Dialog was invoked by calling showContextual, showPrompt or showPopover */
|
|
12
|
-
value?: any
|
|
12
|
+
value?: any;
|
|
13
13
|
/** "confirm" if the button should respond to the Enter key or "cancel" if the button should respond to the Escape key */
|
|
14
|
-
type?: "confirm" | "cancel"
|
|
14
|
+
type?: "confirm" | "cancel";
|
|
15
15
|
/** Whether this button is disabled */
|
|
16
|
-
disabled?: boolean
|
|
16
|
+
disabled?: boolean;
|
|
17
17
|
/** Raised when the button is clicked */
|
|
18
|
-
onclick?: (e: MouseEvent) => void
|
|
18
|
+
onclick?: (e: MouseEvent) => void;
|
|
19
19
|
/** Raised when a key is pressed down */
|
|
20
|
-
onkeydown?: (e: KeyboardEvent) => void
|
|
20
|
+
onkeydown?: (e: KeyboardEvent) => void;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* A button that is placed in a DialogFooter and signals a response by a user.
|
|
25
|
-
*
|
|
25
|
+
*
|
|
26
26
|
*/
|
|
27
27
|
export default function DialogButton($props: DialogButtonProps | undefined) {
|
|
28
28
|
let button: HTMLButtonElement;
|
|
@@ -34,7 +34,7 @@ export default function DialogButton($props: DialogButtonProps | undefined) {
|
|
|
34
34
|
}
|
|
35
35
|
const handleButton = context.handleButton;
|
|
36
36
|
|
|
37
|
-
$
|
|
37
|
+
$onmount(() => {
|
|
38
38
|
// Store the confirm or cancel button in the DialogContext
|
|
39
39
|
if ($props?.type === "confirm") {
|
|
40
40
|
context.confirmButton = button;
|
|
@@ -45,7 +45,7 @@ export default function DialogButton($props: DialogButtonProps | undefined) {
|
|
|
45
45
|
|
|
46
46
|
function handleClick(e: MouseEvent) {
|
|
47
47
|
if ($props?.onclick) {
|
|
48
|
-
$props?.onclick(e)
|
|
48
|
+
$props?.onclick(e);
|
|
49
49
|
}
|
|
50
50
|
if (handleButton) {
|
|
51
51
|
handleButton($props?.type, $props?.value);
|
|
@@ -58,7 +58,7 @@ export default function DialogButton($props: DialogButtonProps | undefined) {
|
|
|
58
58
|
{$props?.id}
|
|
59
59
|
class={["torp-dialog-button", $props?.class]}
|
|
60
60
|
{$props?.style}
|
|
61
|
-
|
|
61
|
+
{$props?.disabled}
|
|
62
62
|
onclick={handleClick}
|
|
63
63
|
{$props?.onkeydown}
|
|
64
64
|
&ref={button}
|
|
@@ -4,9 +4,9 @@ interface DialogFooterProps {
|
|
|
4
4
|
/** An ID for the root element */
|
|
5
5
|
id?: string;
|
|
6
6
|
/** Classes for the root element */
|
|
7
|
-
class?: ClassValue
|
|
7
|
+
class?: ClassValue;
|
|
8
8
|
/** Styles for the root element */
|
|
9
|
-
style?: StyleValue
|
|
9
|
+
style?: StyleValue;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -14,11 +14,7 @@ interface DialogFooterProps {
|
|
|
14
14
|
*/
|
|
15
15
|
export default function DialogFooter($props: DialogFooterProps | undefined) {
|
|
16
16
|
@render {
|
|
17
|
-
<div
|
|
18
|
-
{$props?.id}
|
|
19
|
-
class={["torp-dialog-footer", $props?.class]}
|
|
20
|
-
{$props?.style}
|
|
21
|
-
>
|
|
17
|
+
<div {$props?.id} class={["torp-dialog-footer", $props?.class]} {$props?.style}>
|
|
22
18
|
<slot />
|
|
23
19
|
</div>
|
|
24
20
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
2
|
import getId from "../utils/getId";
|
|
3
|
-
import {
|
|
3
|
+
import { type DialogContext, DialogContextName } from "./DialogTypes";
|
|
4
4
|
|
|
5
5
|
interface DialogHeaderProps {
|
|
6
6
|
/** An ID for the root element */
|
|
7
7
|
id?: string;
|
|
8
8
|
/** Classes for the root element */
|
|
9
|
-
class?: ClassValue
|
|
9
|
+
class?: ClassValue;
|
|
10
10
|
/** Styles for the root element */
|
|
11
|
-
style?: StyleValue
|
|
11
|
+
style?: StyleValue;
|
|
12
12
|
/** Whether the header will be announced by screen readers when the Dialog is opened */
|
|
13
|
-
ariaAnnounce?: boolean
|
|
13
|
+
ariaAnnounce?: boolean;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* The header for a Dialog. Content in the header will be announced by screen
|
|
18
18
|
* readers when the Dialog is opened, unless ariaAnnounce is false.
|
|
19
|
-
*
|
|
19
|
+
*
|
|
20
20
|
*/
|
|
21
21
|
export default function DialogHeader($props: DialogHeaderProps | undefined) {
|
|
22
22
|
let defaultId = getId();
|
|
@@ -34,11 +34,7 @@ export default function DialogHeader($props: DialogHeaderProps | undefined) {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
@render {
|
|
37
|
-
<div
|
|
38
|
-
id={$props?.id ?? defaultId}
|
|
39
|
-
class={["torp-dialog-footer", $props?.class]}
|
|
40
|
-
{$props?.style}
|
|
41
|
-
>
|
|
37
|
+
<div id={$props?.id ?? defaultId} class={["torp-dialog-footer", $props?.class]} {$props?.style}>
|
|
42
38
|
<slot />
|
|
43
39
|
</div>
|
|
44
40
|
}
|
package/dist/Dialog/index.d.ts
CHANGED
|
@@ -5,24 +5,24 @@ interface DialogProps {
|
|
|
5
5
|
/** An ID for the root element */
|
|
6
6
|
id?: string;
|
|
7
7
|
/** Classes for the root element */
|
|
8
|
-
class?: ClassValue
|
|
8
|
+
class?: ClassValue;
|
|
9
9
|
/** Styles for the root element */
|
|
10
|
-
style?: StyleValue
|
|
10
|
+
style?: StyleValue;
|
|
11
11
|
/** An ARIA label for describing the popover to screen readers */
|
|
12
|
-
ariaLabel?: string
|
|
12
|
+
ariaLabel?: string;
|
|
13
13
|
/** Whether the dialog should alert the user via the screen reader */
|
|
14
|
-
alert?: boolean
|
|
14
|
+
alert?: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* A dialog that can be used to show a message to the user, or get information from the user.
|
|
19
|
-
*
|
|
19
|
+
*
|
|
20
20
|
* Dialogs are typically shown within a Modal or Popover.
|
|
21
|
-
*
|
|
21
|
+
*
|
|
22
22
|
* See [the WAI ARIA guidelines for Dialogs](https://www.w3.org/WAI/ARIA/apg/patterns/dialogmodal/).
|
|
23
|
-
*
|
|
23
|
+
*
|
|
24
24
|
* The structure of a Dialog is:
|
|
25
|
-
*
|
|
25
|
+
*
|
|
26
26
|
* ```
|
|
27
27
|
* <Dialog>
|
|
28
28
|
* <ModalOverlay /> (optional -- will set `modal` to true)
|
|
@@ -33,7 +33,7 @@ interface DialogProps {
|
|
|
33
33
|
* </DialogFooter>
|
|
34
34
|
* </Dialog>
|
|
35
35
|
* ```
|
|
36
|
-
*
|
|
36
|
+
*
|
|
37
37
|
*/
|
|
38
38
|
declare function Dialog(
|
|
39
39
|
$parent: ParentNode,
|
|
@@ -49,11 +49,11 @@ interface DialogBodyProps {
|
|
|
49
49
|
/** An ID for the root element */
|
|
50
50
|
id?: string;
|
|
51
51
|
/** Classes for the root element */
|
|
52
|
-
class?: ClassValue
|
|
52
|
+
class?: ClassValue;
|
|
53
53
|
/** Styles for the root element */
|
|
54
|
-
style?: StyleValue
|
|
54
|
+
style?: StyleValue;
|
|
55
55
|
/** Whether the body content will be announced by screen readers when the Dialog is opened */
|
|
56
|
-
ariaAnnounce?: boolean
|
|
56
|
+
ariaAnnounce?: boolean;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/**
|
|
@@ -74,24 +74,24 @@ interface DialogButtonProps {
|
|
|
74
74
|
/** An ID for the root element */
|
|
75
75
|
id?: string;
|
|
76
76
|
/** Classes for the root element */
|
|
77
|
-
class?: ClassValue
|
|
77
|
+
class?: ClassValue;
|
|
78
78
|
/** Styles for the root element */
|
|
79
|
-
style?: StyleValue
|
|
79
|
+
style?: StyleValue;
|
|
80
80
|
/** The value that should be returned when this button is pressed and the Dialog was invoked by calling showContextual, showPrompt or showPopover */
|
|
81
|
-
value?: any
|
|
81
|
+
value?: any;
|
|
82
82
|
/** "confirm" if the button should respond to the Enter key or "cancel" if the button should respond to the Escape key */
|
|
83
|
-
type?: "confirm" | "cancel"
|
|
83
|
+
type?: "confirm" | "cancel";
|
|
84
84
|
/** Whether this button is disabled */
|
|
85
|
-
disabled?: boolean
|
|
85
|
+
disabled?: boolean;
|
|
86
86
|
/** Raised when the button is clicked */
|
|
87
|
-
onclick?: (e: MouseEvent) => void
|
|
87
|
+
onclick?: (e: MouseEvent) => void;
|
|
88
88
|
/** Raised when a key is pressed down */
|
|
89
|
-
onkeydown?: (e: KeyboardEvent) => void
|
|
89
|
+
onkeydown?: (e: KeyboardEvent) => void;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* A button that is placed in a DialogFooter and signals a response by a user.
|
|
94
|
-
*
|
|
94
|
+
*
|
|
95
95
|
*/
|
|
96
96
|
declare function DialogButton(
|
|
97
97
|
$parent: ParentNode,
|
|
@@ -107,9 +107,9 @@ interface DialogFooterProps {
|
|
|
107
107
|
/** An ID for the root element */
|
|
108
108
|
id?: string;
|
|
109
109
|
/** Classes for the root element */
|
|
110
|
-
class?: ClassValue
|
|
110
|
+
class?: ClassValue;
|
|
111
111
|
/** Styles for the root element */
|
|
112
|
-
style?: StyleValue
|
|
112
|
+
style?: StyleValue;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
/**
|
|
@@ -129,17 +129,17 @@ interface DialogHeaderProps {
|
|
|
129
129
|
/** An ID for the root element */
|
|
130
130
|
id?: string;
|
|
131
131
|
/** Classes for the root element */
|
|
132
|
-
class?: ClassValue
|
|
132
|
+
class?: ClassValue;
|
|
133
133
|
/** Styles for the root element */
|
|
134
|
-
style?: StyleValue
|
|
134
|
+
style?: StyleValue;
|
|
135
135
|
/** Whether the header will be announced by screen readers when the Dialog is opened */
|
|
136
|
-
ariaAnnounce?: boolean
|
|
136
|
+
ariaAnnounce?: boolean;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
/**
|
|
140
140
|
* The header for a Dialog. Content in the header will be announced by screen
|
|
141
141
|
* readers when the Dialog is opened, unless ariaAnnounce is false.
|
|
142
|
-
*
|
|
142
|
+
*
|
|
143
143
|
*/
|
|
144
144
|
declare function DialogHeader(
|
|
145
145
|
$parent: ParentNode,
|
|
@@ -149,4 +149,4 @@ declare function DialogHeader(
|
|
|
149
149
|
$slots?: Record<string, SlotRender>,
|
|
150
150
|
): void;
|
|
151
151
|
|
|
152
|
-
export { Dialog, DialogBody, DialogButton, DialogFooter, DialogHeader };
|
|
152
|
+
export { Dialog, DialogBody, DialogButton, DialogFooter, DialogHeader };
|
package/dist/Dialog/index.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
// src/Dialog/DialogButton.torp
|
|
8
|
-
import DialogButton_default from "./DialogButton.torp";
|
|
9
|
-
|
|
10
|
-
// src/Dialog/DialogFooter.torp
|
|
11
|
-
import DialogFooter_default from "./DialogFooter.torp";
|
|
12
|
-
|
|
13
|
-
// src/Dialog/DialogHeader.torp
|
|
14
|
-
import DialogHeader_default from "./DialogHeader.torp";
|
|
15
|
-
export {
|
|
16
|
-
Dialog_default as Dialog,
|
|
17
|
-
DialogBody_default as DialogBody,
|
|
18
|
-
DialogButton_default as DialogButton,
|
|
19
|
-
DialogFooter_default as DialogFooter,
|
|
20
|
-
DialogHeader_default as DialogHeader
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import Dialog from "./Dialog.torp";
|
|
2
|
+
import DialogBody from "./DialogBody.torp";
|
|
3
|
+
import DialogButton from "./DialogButton.torp";
|
|
4
|
+
import DialogFooter from "./DialogFooter.torp";
|
|
5
|
+
import DialogHeader from "./DialogHeader.torp";
|
|
6
|
+
export { Dialog, DialogBody, DialogButton, DialogFooter, DialogHeader };
|