@torpor/ui 0.3.7 → 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 +43 -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 +6 -6
- 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 +25 -4
- 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 +70 -0
- 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/{Chart → Charts}/GridLines.torp +7 -4
- package/dist/Charts/LineChart.torp +73 -0
- package/dist/{Chart → Charts}/PieChart.torp +14 -20
- package/dist/{Chart → Charts}/ScatterChart.torp +45 -38
- package/dist/{Chart → Charts}/SparkLine.torp +16 -19
- package/dist/{Chart → Charts}/XAxis.torp +18 -12
- package/dist/{Chart → Charts}/YAxis.torp +15 -9
- package/dist/Charts/index.d.ts +469 -0
- package/dist/Charts/index.js +17 -0
- 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 +39 -52
- 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 +5 -18
- 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 +33 -30
- package/dist/Dialog/DialogBody.torp +5 -9
- package/dist/Dialog/DialogButton.torp +14 -11
- package/dist/Dialog/DialogFooter.torp +3 -7
- package/dist/Dialog/DialogHeader.torp +6 -10
- package/dist/Dialog/DialogTypes.ts +2 -2
- package/dist/Dialog/index.d.ts +28 -26
- 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/DisclosureTypes.ts +1 -1
- package/dist/Disclosure/index.d.ts +14 -16
- package/dist/Disclosure/index.js +5 -18
- package/dist/Drawer/Drawer.torp +21 -51
- 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 +4 -1
- 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 +28 -20
- 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 +39 -0
- 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 +198 -77
- package/dist/Form/index.js +16 -46
- package/dist/ListBox/ListBox.torp +374 -0
- package/dist/ListBox/ListBoxItem.torp +131 -0
- package/dist/ListBox/ListBoxSeparator.torp +29 -0
- package/dist/ListBox/ListBoxTypes.ts +41 -0
- package/dist/ListBox/LoadedListBoxItems.torp +41 -0
- package/dist/ListBox/index.d.ts +136 -0
- package/dist/ListBox/index.js +4 -0
- 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 +90 -70
- 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 +12 -21
- 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 +34 -55
- package/dist/MenuBar/MenuBarItemContent.torp +15 -101
- package/dist/MenuBar/MenuBarItemTrigger.torp +20 -55
- package/dist/MenuBar/MenuBarTypes.ts +13 -12
- package/dist/MenuBar/index.d.ts +17 -19
- package/dist/MenuBar/index.js +5 -18
- package/dist/Modal/Modal.torp +28 -48
- 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 +6 -17
- 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 -104
- package/dist/NavMenu/NavMenuButton.torp +10 -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 +16 -61
- package/dist/NavMenu/NavMenuPopoutContent.torp +14 -73
- package/dist/NavMenu/NavMenuPopoutTrigger.torp +47 -0
- package/dist/NavMenu/NavMenuSeparator.torp +3 -6
- package/dist/NavMenu/NavMenuTypes.ts +6 -15
- package/dist/NavMenu/index.d.ts +55 -55
- 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 +152 -0
- package/dist/Pagination/PaginationItem.torp +137 -0
- package/dist/Pagination/PaginationTypes.ts +22 -0
- package/dist/Pagination/buildPages.ts +61 -0
- package/dist/Pagination/index.d.ts +63 -0
- package/dist/Pagination/index.js +3 -0
- package/dist/Popover/Popover.torp +39 -52
- 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 +5 -18
- 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 +190 -0
- package/dist/SelectBox/SelectBoxContent.torp +107 -0
- package/dist/SelectBox/SelectBoxTrigger.torp +141 -0
- package/dist/SelectBox/SelectBoxTypes.ts +33 -0
- package/dist/SelectBox/index.d.ts +112 -0
- package/dist/SelectBox/index.js +5 -0
- 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 +3 -3
- 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 +117 -0
- package/dist/ToolBar/ToolBarButton.torp +56 -0
- package/dist/ToolBar/ToolBarElement.torp +51 -0
- package/dist/ToolBar/ToolBarPopout.torp +45 -0
- package/dist/ToolBar/ToolBarPopoutContent.torp +34 -0
- package/dist/ToolBar/ToolBarPopoutTrigger.torp +47 -0
- package/dist/ToolBar/ToolBarSeparator.torp +21 -0
- package/dist/ToolBar/ToolBarTypes.ts +28 -0
- package/dist/ToolBar/index.d.ts +210 -0
- package/dist/ToolBar/index.js +8 -0
- 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 +82 -0
- 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/chartUtils.ts +1 -1
- 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 +116 -25
- 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/Chart/BarChart.torp +0 -159
- package/dist/Chart/LineChart.torp +0 -196
- package/dist/Chart/index.d.ts +0 -220
- package/dist/Chart/index.js +0 -34
- package/dist/Chart/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/Menu/index.js.map +0 -1
- package/dist/MenuBar/index.js.map +0 -1
- package/dist/NavMenu/NavMenuPopoutButton.torp +0 -129
- package/dist/NavMenu/index.js.map +0 -1
- package/dist/TabGroup/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
- /package/dist/{Chart → Charts}/DataSeries.ts +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import {
|
|
2
|
+
import { type NavMenuGroupContext, NavMenuGroupContextName } from "./NavMenuTypes";
|
|
3
3
|
|
|
4
4
|
interface NavMenuGroupProps {
|
|
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 group to screen readers */
|
|
12
|
-
ariaLabel?: string
|
|
12
|
+
ariaLabel?: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -17,7 +17,7 @@ interface NavMenuGroupProps {
|
|
|
17
17
|
*/
|
|
18
18
|
export default function NavMenuGroup($props: NavMenuGroupProps | undefined) {
|
|
19
19
|
let $state = $watch({
|
|
20
|
-
headerId: ""
|
|
20
|
+
headerId: "",
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
// Set the context to pass down to items
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
2
|
import getId from "../utils/getId";
|
|
3
|
-
import {
|
|
3
|
+
import { type NavMenuGroupContext, NavMenuGroupContextName } from "./NavMenuTypes";
|
|
4
4
|
|
|
5
5
|
interface NavMenuGroupHeaderProps {
|
|
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
|
|
12
|
-
/** The type of HTML header to use */
|
|
13
|
-
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6",
|
|
11
|
+
style?: StyleValue;
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
/**
|
|
@@ -29,13 +27,12 @@ export default function NavMenuGroupHeader($props: NavMenuGroupHeaderProps | und
|
|
|
29
27
|
$state.headerId = $props?.id ?? defaultId;
|
|
30
28
|
|
|
31
29
|
@render {
|
|
32
|
-
|
|
33
|
-
<h4
|
|
30
|
+
<div
|
|
34
31
|
id={$props?.id ?? defaultId}
|
|
35
32
|
class={["torp-nav-menu-group-header", $props?.class]}
|
|
36
33
|
{$props?.style}
|
|
37
34
|
>
|
|
38
35
|
<slot />
|
|
39
|
-
</
|
|
36
|
+
</div>
|
|
40
37
|
}
|
|
41
38
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import {
|
|
2
|
+
import { type NavMenuContext, NavMenuContextName } from "./NavMenuTypes";
|
|
3
3
|
|
|
4
4
|
interface NavMenuLinkProps {
|
|
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 URL for the menu link */
|
|
12
|
-
href: string
|
|
12
|
+
href: string;
|
|
13
13
|
/** Whether the menu link should open in a new tab/window */
|
|
14
|
-
newWindow?: boolean
|
|
14
|
+
newWindow?: boolean;
|
|
15
15
|
/** Whether this link is disabled */
|
|
16
|
-
disabled?: boolean
|
|
16
|
+
disabled?: boolean;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -31,7 +31,7 @@ export default function NavMenuLink($props: NavMenuLinkProps | undefined) {
|
|
|
31
31
|
const { registerItem, handleItemKey, handleItemFocus } = menuContext;
|
|
32
32
|
|
|
33
33
|
// Register this item with the parent NavMenu and store the index
|
|
34
|
-
const { index } = registerItem(setFocused);
|
|
34
|
+
const { index } = registerItem({ setFocused, disabled: $props?.disabled });
|
|
35
35
|
|
|
36
36
|
function setFocused() {
|
|
37
37
|
link.focus();
|
|
@@ -47,10 +47,7 @@ export default function NavMenuLink($props: NavMenuLinkProps | undefined) {
|
|
|
47
47
|
target={$props?.newWindow ? "_blank" : undefined}
|
|
48
48
|
role="menuitem"
|
|
49
49
|
aria-disabled={$props?.disabled ? "true" : undefined}
|
|
50
|
-
data-disabled={$props?.disabled ? "true" : undefined}
|
|
51
|
-
onkeydown
|
|
52
50
|
onkeydown={handleItemKey}
|
|
53
|
-
onclick
|
|
54
51
|
onfocus={() => handleItemFocus(index)}
|
|
55
52
|
&ref={link}
|
|
56
53
|
>
|
|
@@ -1,89 +1,44 @@
|
|
|
1
|
-
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import
|
|
1
|
+
import type { Bindable, ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
+
import SubmenuPopout from "../utils/SubmenuPopout.torp";
|
|
3
3
|
|
|
4
4
|
interface NavMenuPopoutProps {
|
|
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
|
/** Whether the popout is visible */
|
|
12
|
-
visible
|
|
13
|
-
/** Raised when the popout is opened or closed */
|
|
14
|
-
ontoggle?: (open: boolean) => void,
|
|
12
|
+
visible: Bindable<boolean | undefined>;
|
|
15
13
|
/** Raised when the popout has opened */
|
|
16
|
-
onopen?: () => void
|
|
14
|
+
onopen?: () => void;
|
|
17
15
|
/** Raised when the popout has closed */
|
|
18
|
-
onclose?: (result: any) => void
|
|
16
|
+
onclose?: (result: any) => void;
|
|
19
17
|
}
|
|
20
18
|
|
|
21
19
|
/**
|
|
22
|
-
* A popout that is attached to a menu button and can be used to show a submenu.
|
|
20
|
+
* A popout that is attached to a nav menu button and can be used to show a submenu.
|
|
23
21
|
*
|
|
24
22
|
* The structure of a NavMenuPopout is:
|
|
25
23
|
*
|
|
26
24
|
* ```
|
|
27
25
|
* <NavMenuPopout>
|
|
28
|
-
* <
|
|
26
|
+
* <NavMenuPopoutTrigger />
|
|
29
27
|
* <NavMenuPopoutContent />
|
|
30
28
|
* </NavMenuPopout>
|
|
31
29
|
* ```
|
|
32
30
|
*/
|
|
33
31
|
export default function NavMenuPopout($props: NavMenuPopoutProps | undefined) {
|
|
34
|
-
let $state = $watch({
|
|
35
|
-
visible: false
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
// Sync props and state
|
|
39
|
-
$run(() => {
|
|
40
|
-
$state.visible = $props?.visible ?? false;
|
|
41
|
-
});
|
|
42
|
-
$run(() => {
|
|
43
|
-
if ($props !== undefined) {
|
|
44
|
-
$props.visible = $state.visible;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
let result: any;
|
|
49
|
-
|
|
50
|
-
// Set the context to pass down to items
|
|
51
|
-
let context: NavMenuPopoutContext = {
|
|
52
|
-
state: $state,
|
|
53
|
-
};
|
|
54
|
-
$context[NavMenuPopoutContextName] = context;
|
|
55
|
-
|
|
56
|
-
// Dispatch the toggle event when the popout is opened or closed
|
|
57
|
-
let firstToggle = true;
|
|
58
|
-
$run(() => {
|
|
59
|
-
const ontoggle = $props?.ontoggle;
|
|
60
|
-
const onopen = $props?.onopen;
|
|
61
|
-
const onclose = $props?.onclose;
|
|
62
|
-
const visible = $state.visible;
|
|
63
|
-
if (firstToggle) {
|
|
64
|
-
firstToggle = false;
|
|
65
|
-
} else {
|
|
66
|
-
if (ontoggle) ontoggle(visible);
|
|
67
|
-
if (visible) {
|
|
68
|
-
if (onopen) onopen()
|
|
69
|
-
} else {
|
|
70
|
-
if (onclose) onclose(result);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
function handleMouseLeave() {
|
|
76
|
-
$state.visible = false;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
32
|
@render {
|
|
80
|
-
<
|
|
81
|
-
{$props?.id}
|
|
33
|
+
<SubmenuPopout
|
|
34
|
+
id={$props?.id}
|
|
82
35
|
class={["torp-nav-menu-popout", $props?.class]}
|
|
83
|
-
{$props?.style}
|
|
84
|
-
|
|
36
|
+
style={$props?.style}
|
|
37
|
+
visible={$props?.visible}
|
|
38
|
+
onopen={$props?.onopen}
|
|
39
|
+
onclose={$props?.onclose}
|
|
85
40
|
>
|
|
86
41
|
<slot />
|
|
87
|
-
</
|
|
42
|
+
</SubmenuPopout>
|
|
88
43
|
}
|
|
89
44
|
}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import
|
|
3
|
-
import setPopoverPosition from "../utils/setPopoverPosition";
|
|
4
|
-
import { NavMenuPopoutContextName, type NavMenuPopoutContext } from "./NavMenuTypes";
|
|
2
|
+
import SubmenuPopoutContent from "../utils/SubmenuPopoutContent.torp";
|
|
5
3
|
|
|
6
4
|
interface NavMenuPopoutContentProps {
|
|
7
5
|
/** An ID for the root element */
|
|
8
6
|
id?: string;
|
|
9
7
|
/** Classes for the root element */
|
|
10
|
-
class?: ClassValue
|
|
8
|
+
class?: ClassValue;
|
|
11
9
|
/** Styles for the root element */
|
|
12
|
-
style?: StyleValue
|
|
10
|
+
style?: StyleValue;
|
|
13
11
|
/** Where the popout will be shown, relative to the popout button */
|
|
14
|
-
side?: "top" | "right" | "bottom" | "left"
|
|
12
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
15
13
|
/** How the popout will be aligned, relative to the popout button */
|
|
16
|
-
alignment?: "start" | "center" | "end"
|
|
14
|
+
alignment?: "start" | "center" | "end";
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
/**
|
|
@@ -21,72 +19,15 @@ interface NavMenuPopoutContentProps {
|
|
|
21
19
|
*
|
|
22
20
|
*/
|
|
23
21
|
export default function NavMenuPopoutContent($props: NavMenuPopoutContentProps | undefined) {
|
|
24
|
-
let div: HTMLDivElement;
|
|
25
|
-
let shown = false;
|
|
26
|
-
|
|
27
|
-
// Get stuff out of the NavMenuPopoutContext
|
|
28
|
-
const context = $context[NavMenuPopoutContextName] as NavMenuPopoutContext;
|
|
29
|
-
if (!context) {
|
|
30
|
-
throw new Error("NavMenuPopoutContent must be contained within a NavMenuPopout");
|
|
31
|
-
}
|
|
32
|
-
let $state = context.state;
|
|
33
|
-
|
|
34
|
-
$run(() => {
|
|
35
|
-
if (!$state.visible) {
|
|
36
|
-
hide();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
function show() {
|
|
41
|
-
shown = true;
|
|
42
|
-
|
|
43
|
-
// Set the position and listen for window resize and scroll to reset the position
|
|
44
|
-
setPosition();
|
|
45
|
-
const anchorElement = context.anchorElement!
|
|
46
|
-
const scrollParent = getScrollParent(anchorElement)
|
|
47
|
-
scrollParent.addEventListener("resize", setPosition);
|
|
48
|
-
scrollParent.addEventListener("scroll", setPosition);
|
|
49
|
-
if (context.focusFirstElement) {
|
|
50
|
-
context.focusFirstElement();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function hide() {
|
|
55
|
-
if (!shown) return;
|
|
56
|
-
|
|
57
|
-
// Stop listening for window resize and focus the anchor element per WAI guidelines
|
|
58
|
-
const anchorElement = context.anchorElement!
|
|
59
|
-
const scrollParent = getScrollParent(anchorElement)
|
|
60
|
-
scrollParent.removeEventListener("resize", setPosition);
|
|
61
|
-
scrollParent.removeEventListener("scroll", setPosition);
|
|
62
|
-
if (anchorElement.focus) {
|
|
63
|
-
anchorElement.focus();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function setPosition() {
|
|
68
|
-
if (!context.anchorElement) {
|
|
69
|
-
throw new Error("NavMenuPopoutContent must have an anchor element");
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (div) {
|
|
73
|
-
let side = $props?.side ?? "bottom";
|
|
74
|
-
let alignment = $props?.alignment ?? "start";
|
|
75
|
-
setPopoverPosition(context.anchorElement, div, side, alignment);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
22
|
@render {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
</div>
|
|
90
|
-
}
|
|
23
|
+
<SubmenuPopoutContent
|
|
24
|
+
id={$props?.id}
|
|
25
|
+
class={["torp-nav-menu-popout-content", $props?.class]}
|
|
26
|
+
style={$props?.style}
|
|
27
|
+
side={$props?.side}
|
|
28
|
+
alignment={$props?.alignment}
|
|
29
|
+
>
|
|
30
|
+
<slot />
|
|
31
|
+
</SubmenuPopoutContent>
|
|
91
32
|
}
|
|
92
33
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
+
import SubmenuPopoutTrigger from "../utils/SubmenuPopoutTrigger.torp";
|
|
3
|
+
import { type NavMenuContext, NavMenuContextName } from "./NavMenuTypes";
|
|
4
|
+
|
|
5
|
+
interface NavMenuPopoutTriggerProps {
|
|
6
|
+
/** An ID for the root element */
|
|
7
|
+
id?: string;
|
|
8
|
+
/** Classes for the root element */
|
|
9
|
+
class?: ClassValue;
|
|
10
|
+
/** Styles for the root element */
|
|
11
|
+
style?: StyleValue;
|
|
12
|
+
/** The delay before showing the popout, in milliseconds */
|
|
13
|
+
hoverDelay?: number;
|
|
14
|
+
/** Whether this button is disabled */
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A button that is placed in a NavMenu and signals a response by a user.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
export default function NavMenuPopoutTrigger($props: NavMenuPopoutTriggerProps | undefined) {
|
|
23
|
+
// Get stuff out of the NavMenuContext
|
|
24
|
+
const menuContext = $context[NavMenuContextName] as NavMenuContext;
|
|
25
|
+
if (!menuContext) {
|
|
26
|
+
throw new Error("NavMenuPopoutTrigger must be contained within a NavMenu");
|
|
27
|
+
}
|
|
28
|
+
const { registerItem, handleItemKey, handleItemFocus } = menuContext;
|
|
29
|
+
|
|
30
|
+
@render {
|
|
31
|
+
<SubmenuPopoutTrigger
|
|
32
|
+
id={$props?.id}
|
|
33
|
+
class={["torp-nav-menu-popout-button", $props?.class]}
|
|
34
|
+
style={$props?.style}
|
|
35
|
+
hoverDelay={$props?.hoverDelay}
|
|
36
|
+
disabled={$props?.disabled}
|
|
37
|
+
role="menuitem"
|
|
38
|
+
tabindex="-1"
|
|
39
|
+
openKey="ArrowRight"
|
|
40
|
+
registerItem={registerItem}
|
|
41
|
+
handleItemKey={handleItemKey}
|
|
42
|
+
handleItemFocus={handleItemFocus}
|
|
43
|
+
>
|
|
44
|
+
<slot />
|
|
45
|
+
</SubmenuPopoutTrigger>
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -4,9 +4,9 @@ interface NavMenuSeparatorProps {
|
|
|
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,10 +14,7 @@ interface NavMenuSeparatorProps {
|
|
|
14
14
|
*/
|
|
15
15
|
export default function NavMenuSeparator($props: NavMenuSeparatorProps | undefined) {
|
|
16
16
|
@render {
|
|
17
|
-
<div
|
|
18
|
-
{$props?.id}
|
|
19
|
-
class={`torp-nav-menu-separator ${$props?.class ?? ""}`.trim()} role="separator"
|
|
20
|
-
>
|
|
17
|
+
<div {$props?.id} class={["torp-nav-menu-separator", $props?.class]} role="separator">
|
|
21
18
|
<slot />
|
|
22
19
|
</div>
|
|
23
20
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export const
|
|
1
|
+
import type { SubmenuItemState } from "../utils/PopoutTypes";
|
|
2
|
+
|
|
3
|
+
export const NavMenuContextName: unique symbol = Symbol.for("torp.NavMenu");
|
|
4
|
+
export const NavMenuGroupContextName: unique symbol = Symbol.for("torp.NavMenuGroup");
|
|
4
5
|
|
|
5
6
|
export interface NavMenuContext {
|
|
6
7
|
/** Called from a NavMenuLink or NavMenuButton when its button is focused */
|
|
@@ -10,15 +11,7 @@ export interface NavMenuContext {
|
|
|
10
11
|
handleItemKey: (e: KeyboardEvent) => void;
|
|
11
12
|
|
|
12
13
|
/** Called from each NavMenuLink or NavMenuButton to register itself with this NavMenu */
|
|
13
|
-
registerItem: (
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface NavMenuPopoutContext {
|
|
17
|
-
state: {
|
|
18
|
-
visible: boolean;
|
|
19
|
-
};
|
|
20
|
-
anchorElement?: HTMLElement;
|
|
21
|
-
focusFirstElement?: () => void;
|
|
14
|
+
registerItem: (item: ItemState) => { index: number };
|
|
22
15
|
}
|
|
23
16
|
|
|
24
17
|
export interface NavMenuGroupContext {
|
|
@@ -27,6 +20,4 @@ export interface NavMenuGroupContext {
|
|
|
27
20
|
};
|
|
28
21
|
}
|
|
29
22
|
|
|
30
|
-
export
|
|
31
|
-
setFocused: () => void;
|
|
32
|
-
}
|
|
23
|
+
export type ItemState = SubmenuItemState;
|
package/dist/NavMenu/index.d.ts
CHANGED
|
@@ -5,13 +5,13 @@ interface NavMenuProps {
|
|
|
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 menu to screen readers */
|
|
12
|
-
ariaLabel?: string | undefined
|
|
12
|
+
ariaLabel?: string | undefined;
|
|
13
13
|
/** The orientation of the menu, which affects keyboard navigation */
|
|
14
|
-
orientation?: "horizontal" | "vertical"
|
|
14
|
+
orientation?: "horizontal" | "vertical";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -44,11 +44,15 @@ interface NavMenuButtonProps {
|
|
|
44
44
|
/** An ID for the root element */
|
|
45
45
|
id?: string;
|
|
46
46
|
/** Classes for the root element */
|
|
47
|
-
class?: ClassValue
|
|
47
|
+
class?: ClassValue;
|
|
48
48
|
/** Styles for the root element */
|
|
49
|
-
style?: StyleValue
|
|
49
|
+
style?: StyleValue;
|
|
50
50
|
/** Whether this button is disabled */
|
|
51
|
-
disabled?: boolean
|
|
51
|
+
disabled?: boolean;
|
|
52
|
+
/** Raised when the button is clicked */
|
|
53
|
+
onclick?: (e: MouseEvent) => void;
|
|
54
|
+
/** Raised when a key is pressed down */
|
|
55
|
+
onkeydown?: (e: KeyboardEvent) => void;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**
|
|
@@ -69,13 +73,13 @@ interface NavMenuElementProps {
|
|
|
69
73
|
/** An ID for the root element */
|
|
70
74
|
id?: string;
|
|
71
75
|
/** Classes for the root element */
|
|
72
|
-
class?: ClassValue
|
|
76
|
+
class?: ClassValue;
|
|
73
77
|
/** Styles for the root element */
|
|
74
|
-
style?: StyleValue
|
|
78
|
+
style?: StyleValue;
|
|
75
79
|
/** Whether this button is disabled */
|
|
76
|
-
disabled?: boolean
|
|
80
|
+
disabled?: boolean;
|
|
77
81
|
/** An element that can be focused via keyboard navigation */
|
|
78
|
-
element?: HTMLElement
|
|
82
|
+
element?: HTMLElement;
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/**
|
|
@@ -96,11 +100,11 @@ interface NavMenuGroupProps {
|
|
|
96
100
|
/** An ID for the root element */
|
|
97
101
|
id?: string;
|
|
98
102
|
/** Classes for the root element */
|
|
99
|
-
class?: ClassValue
|
|
103
|
+
class?: ClassValue;
|
|
100
104
|
/** Styles for the root element */
|
|
101
|
-
style?: StyleValue
|
|
105
|
+
style?: StyleValue;
|
|
102
106
|
/** An ARIA label for describing the group to screen readers */
|
|
103
|
-
ariaLabel?: string
|
|
107
|
+
ariaLabel?: string;
|
|
104
108
|
}
|
|
105
109
|
|
|
106
110
|
/**
|
|
@@ -120,11 +124,9 @@ interface NavMenuGroupHeaderProps {
|
|
|
120
124
|
/** An ID for the root element */
|
|
121
125
|
id?: string;
|
|
122
126
|
/** Classes for the root element */
|
|
123
|
-
class?: ClassValue
|
|
127
|
+
class?: ClassValue;
|
|
124
128
|
/** Styles for the root element */
|
|
125
|
-
style?: StyleValue
|
|
126
|
-
/** The type of HTML header to use */
|
|
127
|
-
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6",
|
|
129
|
+
style?: StyleValue;
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
/**
|
|
@@ -144,15 +146,15 @@ interface NavMenuLinkProps {
|
|
|
144
146
|
/** An ID for the root element */
|
|
145
147
|
id?: string;
|
|
146
148
|
/** Classes for the root element */
|
|
147
|
-
class?: ClassValue
|
|
149
|
+
class?: ClassValue;
|
|
148
150
|
/** Styles for the root element */
|
|
149
|
-
style?: StyleValue
|
|
151
|
+
style?: StyleValue;
|
|
150
152
|
/** The URL for the menu link */
|
|
151
|
-
href: string
|
|
153
|
+
href: string;
|
|
152
154
|
/** Whether the menu link should open in a new tab/window */
|
|
153
|
-
newWindow?: boolean
|
|
155
|
+
newWindow?: boolean;
|
|
154
156
|
/** Whether this link is disabled */
|
|
155
|
-
disabled?: boolean
|
|
157
|
+
disabled?: boolean;
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
/**
|
|
@@ -173,27 +175,25 @@ interface NavMenuPopoutProps {
|
|
|
173
175
|
/** An ID for the root element */
|
|
174
176
|
id?: string;
|
|
175
177
|
/** Classes for the root element */
|
|
176
|
-
class?: ClassValue
|
|
178
|
+
class?: ClassValue;
|
|
177
179
|
/** Styles for the root element */
|
|
178
|
-
style?: StyleValue
|
|
180
|
+
style?: StyleValue;
|
|
179
181
|
/** Whether the popout is visible */
|
|
180
|
-
visible
|
|
181
|
-
/** Raised when the popout is opened or closed */
|
|
182
|
-
ontoggle?: (open: boolean) => void,
|
|
182
|
+
visible: Bindable<boolean | undefined>;
|
|
183
183
|
/** Raised when the popout has opened */
|
|
184
|
-
onopen?: () => void
|
|
184
|
+
onopen?: () => void;
|
|
185
185
|
/** Raised when the popout has closed */
|
|
186
|
-
onclose?: (result: any) => void
|
|
186
|
+
onclose?: (result: any) => void;
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
/**
|
|
190
|
-
* A popout that is attached to a menu button and can be used to show a submenu.
|
|
190
|
+
* A popout that is attached to a nav menu button and can be used to show a submenu.
|
|
191
191
|
*
|
|
192
192
|
* The structure of a NavMenuPopout is:
|
|
193
193
|
*
|
|
194
194
|
* ```
|
|
195
195
|
* <NavMenuPopout>
|
|
196
|
-
* <
|
|
196
|
+
* <NavMenuPopoutTrigger />
|
|
197
197
|
* <NavMenuPopoutContent />
|
|
198
198
|
* </NavMenuPopout>
|
|
199
199
|
* ```
|
|
@@ -208,54 +208,54 @@ declare function NavMenuPopout(
|
|
|
208
208
|
|
|
209
209
|
|
|
210
210
|
|
|
211
|
-
interface
|
|
211
|
+
interface NavMenuPopoutContentProps {
|
|
212
212
|
/** An ID for the root element */
|
|
213
213
|
id?: string;
|
|
214
214
|
/** Classes for the root element */
|
|
215
|
-
class?: ClassValue
|
|
215
|
+
class?: ClassValue;
|
|
216
216
|
/** Styles for the root element */
|
|
217
|
-
style?: StyleValue
|
|
218
|
-
/**
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
|
|
217
|
+
style?: StyleValue;
|
|
218
|
+
/** Where the popout will be shown, relative to the popout button */
|
|
219
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
220
|
+
/** How the popout will be aligned, relative to the popout button */
|
|
221
|
+
alignment?: "start" | "center" | "end";
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
/**
|
|
225
|
-
*
|
|
225
|
+
* The content that is displayed for a NavMenuPopout when it is open.
|
|
226
226
|
*
|
|
227
227
|
*/
|
|
228
|
-
declare function
|
|
228
|
+
declare function NavMenuPopoutContent(
|
|
229
229
|
$parent: ParentNode,
|
|
230
230
|
$anchor: Node | null,
|
|
231
|
-
$props:
|
|
231
|
+
$props: NavMenuPopoutContentProps | undefined,
|
|
232
232
|
$context?: Record<PropertyKey, any>,
|
|
233
233
|
$slots?: Record<string, SlotRender>,
|
|
234
234
|
): void;
|
|
235
235
|
|
|
236
236
|
|
|
237
237
|
|
|
238
|
-
interface
|
|
238
|
+
interface NavMenuPopoutTriggerProps {
|
|
239
239
|
/** An ID for the root element */
|
|
240
240
|
id?: string;
|
|
241
241
|
/** Classes for the root element */
|
|
242
|
-
class?: ClassValue
|
|
242
|
+
class?: ClassValue;
|
|
243
243
|
/** Styles for the root element */
|
|
244
|
-
style?: StyleValue
|
|
245
|
-
/**
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
|
|
244
|
+
style?: StyleValue;
|
|
245
|
+
/** The delay before showing the popout, in milliseconds */
|
|
246
|
+
hoverDelay?: number;
|
|
247
|
+
/** Whether this button is disabled */
|
|
248
|
+
disabled?: boolean;
|
|
249
249
|
}
|
|
250
250
|
|
|
251
251
|
/**
|
|
252
|
-
*
|
|
252
|
+
* A button that is placed in a NavMenu and signals a response by a user.
|
|
253
253
|
*
|
|
254
254
|
*/
|
|
255
|
-
declare function
|
|
255
|
+
declare function NavMenuPopoutTrigger(
|
|
256
256
|
$parent: ParentNode,
|
|
257
257
|
$anchor: Node | null,
|
|
258
|
-
$props:
|
|
258
|
+
$props: NavMenuPopoutTriggerProps | undefined,
|
|
259
259
|
$context?: Record<PropertyKey, any>,
|
|
260
260
|
$slots?: Record<string, SlotRender>,
|
|
261
261
|
): void;
|
|
@@ -266,9 +266,9 @@ interface NavMenuSeparatorProps {
|
|
|
266
266
|
/** An ID for the root element */
|
|
267
267
|
id?: string;
|
|
268
268
|
/** Classes for the root element */
|
|
269
|
-
class?: ClassValue
|
|
269
|
+
class?: ClassValue;
|
|
270
270
|
/** Styles for the root element */
|
|
271
|
-
style?: StyleValue
|
|
271
|
+
style?: StyleValue;
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
/**
|
|
@@ -282,4 +282,4 @@ declare function NavMenuSeparator(
|
|
|
282
282
|
$slots?: Record<string, SlotRender>,
|
|
283
283
|
): void;
|
|
284
284
|
|
|
285
|
-
export { NavMenu, NavMenuButton, NavMenuElement, NavMenuGroup, NavMenuGroupHeader, NavMenuLink, NavMenuPopout,
|
|
285
|
+
export { NavMenu, NavMenuButton, NavMenuElement, NavMenuGroup, NavMenuGroupHeader, NavMenuLink, NavMenuPopout, NavMenuPopoutContent, NavMenuPopoutTrigger, NavMenuSeparator };
|