@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,23 +1,25 @@
|
|
|
1
|
-
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import
|
|
1
|
+
import type { Bindable, ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
+
import $handle from "../utils/$handle";
|
|
3
|
+
import { createItemGroup } from "../utils/createItemGroup";
|
|
4
|
+
import { type ItemState, type TabGroupContext, TabGroupContextName } from "./TabGroupTypes";
|
|
3
5
|
|
|
4
6
|
interface TabGroupProps {
|
|
5
7
|
/** An ID for the root element */
|
|
6
8
|
id?: string;
|
|
7
9
|
/** Classes for the root element */
|
|
8
|
-
class?: ClassValue
|
|
10
|
+
class?: ClassValue;
|
|
9
11
|
/** Styles for the root element */
|
|
10
|
-
style?: StyleValue
|
|
12
|
+
style?: StyleValue;
|
|
11
13
|
/** The orientation of the tab buttons, which affects keyboard navigation */
|
|
12
|
-
orientation?: "horizontal" | "vertical"
|
|
14
|
+
orientation?: "horizontal" | "vertical";
|
|
13
15
|
/** How tabs are activated; if automatic they are shown on focus, if manual they must be clicked */
|
|
14
|
-
activation?: "automatic" | "manual"
|
|
16
|
+
activation?: "automatic" | "manual";
|
|
15
17
|
/** The value of the active TabContent */
|
|
16
|
-
value?: string
|
|
18
|
+
value?: Bindable<string | undefined>;
|
|
17
19
|
/** If set to true, the user cannot interact with any items in the TabGroup */
|
|
18
|
-
disabled?: boolean
|
|
20
|
+
disabled?: boolean;
|
|
19
21
|
/** Raised when the active item has changed */
|
|
20
|
-
onchange?: (value: string | string[]) => void
|
|
22
|
+
onchange?: (value: string | string[]) => void;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
/**
|
|
@@ -40,24 +42,19 @@ interface TabGroupProps {
|
|
|
40
42
|
* ```
|
|
41
43
|
*/
|
|
42
44
|
export default function TabGroup($props: TabGroupProps | undefined) {
|
|
43
|
-
let orientation = $props?.orientation ?? "horizontal";
|
|
44
|
-
let activation = $props?.activation ?? "automatic";
|
|
45
|
-
|
|
46
45
|
let $state = $watch({
|
|
47
|
-
value: ""
|
|
46
|
+
value: "",
|
|
48
47
|
});
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
$run(() => {
|
|
52
|
-
$state.value = $props?.value ?? "";
|
|
53
|
-
});
|
|
54
|
-
$run(() => {
|
|
55
|
-
if ($props !== undefined) {
|
|
56
|
-
$props.value = $state.value;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
49
|
+
$bind($state, $props, "value");
|
|
59
50
|
|
|
60
|
-
|
|
51
|
+
const group = createItemGroup<ItemState>({
|
|
52
|
+
state: $state,
|
|
53
|
+
type: "single",
|
|
54
|
+
selectedProperty: "active",
|
|
55
|
+
allowDeselect: false,
|
|
56
|
+
disabled: () => $props?.disabled,
|
|
57
|
+
});
|
|
61
58
|
|
|
62
59
|
// This is used to assign automatic indexes to items where needed
|
|
63
60
|
let nextHeaderIndex = 0;
|
|
@@ -67,55 +64,43 @@ export default function TabGroup($props: TabGroupProps | undefined) {
|
|
|
67
64
|
let context: TabGroupContext = {
|
|
68
65
|
registerHeader,
|
|
69
66
|
registerItem,
|
|
70
|
-
removeItem,
|
|
71
|
-
triggerItem,
|
|
67
|
+
removeItem: group.removeItem,
|
|
68
|
+
triggerItem: group.toggleItem,
|
|
72
69
|
handleHeaderKey,
|
|
73
|
-
orientation
|
|
74
|
-
|
|
70
|
+
get orientation() {
|
|
71
|
+
return $props?.orientation ?? "horizontal";
|
|
72
|
+
},
|
|
73
|
+
get activation() {
|
|
74
|
+
return $props?.activation ?? "automatic";
|
|
75
|
+
},
|
|
75
76
|
};
|
|
76
77
|
$context[TabGroupContextName] = context;
|
|
77
78
|
|
|
78
|
-
$run(() => {
|
|
79
|
-
// Ensure the value passed in was a string (in case e.g. the user has set values to ints)
|
|
80
|
-
$state.value = $state.value.toString();
|
|
81
|
-
for (let item of itemStates) {
|
|
82
|
-
item.active = item.value === $state.value;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
$run(() => {
|
|
87
|
-
itemStates.forEach((s) => s.parentDisabled = $props?.disabled === true);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
79
|
// Dispatch the change event when the value changes
|
|
91
|
-
|
|
92
|
-
$run(() => {
|
|
93
|
-
const ev = $props?.onchange;
|
|
80
|
+
$handle((first) => {
|
|
94
81
|
const value = $props?.value;
|
|
95
|
-
if (
|
|
96
|
-
firstChange = false;
|
|
97
|
-
} else if (ev) {
|
|
98
|
-
ev(value!);
|
|
99
|
-
}
|
|
82
|
+
if (!first) $props?.onchange?.(value!);
|
|
100
83
|
});
|
|
101
84
|
|
|
102
85
|
// On mount, if no value was set, show the first tab content
|
|
103
|
-
$
|
|
104
|
-
if ($state.value === "" && itemStates.length) {
|
|
105
|
-
$state.value = itemStates[0].value;
|
|
86
|
+
$onmount(() => {
|
|
87
|
+
if ($state.value === "" && group.itemStates.length) {
|
|
88
|
+
$state.value = group.itemStates[0].value;
|
|
106
89
|
}
|
|
107
90
|
});
|
|
108
91
|
|
|
109
|
-
function registerHeader(
|
|
92
|
+
function registerHeader(
|
|
93
|
+
index: number | undefined,
|
|
94
|
+
value: string | undefined,
|
|
95
|
+
disabled: boolean | undefined,
|
|
96
|
+
): ItemState {
|
|
110
97
|
// If an index wasn't set for the header, set it automatically
|
|
111
|
-
if (
|
|
98
|
+
if (index === undefined) {
|
|
112
99
|
index = nextHeaderIndex++;
|
|
113
100
|
}
|
|
114
101
|
|
|
115
102
|
// Get or add the ItemState at this index
|
|
116
|
-
const itemState = getItemState(index, value);
|
|
117
|
-
|
|
118
|
-
itemState.setFocused = setFocused;
|
|
103
|
+
const itemState = getItemState(index, value, disabled);
|
|
119
104
|
|
|
120
105
|
return itemState;
|
|
121
106
|
}
|
|
@@ -132,10 +117,11 @@ export default function TabGroup($props: TabGroupProps | undefined) {
|
|
|
132
117
|
return itemState;
|
|
133
118
|
}
|
|
134
119
|
|
|
135
|
-
function getItemState(index: number, value: string | undefined): ItemState {
|
|
136
|
-
// If we already have an item
|
|
137
|
-
|
|
138
|
-
|
|
120
|
+
function getItemState(index: number, value: string | undefined, disabled?: boolean): ItemState {
|
|
121
|
+
// If we already have an item with this index, just return it
|
|
122
|
+
const existing = group.itemStates.find((item) => item.index === index);
|
|
123
|
+
if (existing) {
|
|
124
|
+
return existing;
|
|
139
125
|
}
|
|
140
126
|
|
|
141
127
|
// If a value wasn't set for the item, set it to the index
|
|
@@ -143,94 +129,92 @@ export default function TabGroup($props: TabGroupProps | undefined) {
|
|
|
143
129
|
value = index.toString();
|
|
144
130
|
}
|
|
145
131
|
|
|
146
|
-
// Add the item's state to the array
|
|
132
|
+
// Add the item's state to the array; the group assigns the active and
|
|
133
|
+
// parentDisabled states and places it at its index
|
|
147
134
|
const newItemState: ItemState = $watch({
|
|
148
135
|
index,
|
|
149
136
|
value,
|
|
150
|
-
|
|
151
|
-
// active: value === $props?.value || ($props?.value === "" && index === 0),
|
|
152
|
-
active: value === $state.value,
|
|
137
|
+
active: false,
|
|
153
138
|
headerId: "",
|
|
154
139
|
contentId: "",
|
|
155
|
-
disabled: false,
|
|
156
|
-
parentDisabled: false,
|
|
157
|
-
get dataState() {
|
|
158
|
-
return this.active ? "active" : "inactive";
|
|
159
|
-
},
|
|
140
|
+
disabled: $props?.disabled ?? disabled ?? false,
|
|
141
|
+
parentDisabled: $props?.disabled ?? false,
|
|
160
142
|
setFocused: () => {},
|
|
161
|
-
orientation,
|
|
162
|
-
activation
|
|
163
143
|
});
|
|
164
|
-
|
|
144
|
+
group.registerItem(newItemState);
|
|
165
145
|
|
|
166
146
|
return newItemState;
|
|
167
147
|
}
|
|
168
148
|
|
|
169
|
-
// TODO: I think this should be done by value
|
|
170
|
-
function removeItem(itemIndex: number) {
|
|
171
|
-
// Remove the item and re-index
|
|
172
|
-
let index = itemStates.findIndex((item) => item.index === itemIndex);
|
|
173
|
-
if (index !== -1) {
|
|
174
|
-
itemStates.splice(itemIndex, 1);
|
|
175
|
-
}
|
|
176
|
-
itemStates.forEach((item, i) => (item.index = i));
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function triggerItem(toggleValue: string) {
|
|
180
|
-
for (let item of itemStates) {
|
|
181
|
-
// The item is active if it has the supplied value
|
|
182
|
-
if (item.value === toggleValue) {
|
|
183
|
-
$state.value = item.value;
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
149
|
function handleHeaderKey(headerIndex: number, e: KeyboardEvent) {
|
|
150
|
+
const itemStates = group.itemStates;
|
|
151
|
+
const orientation = $props?.orientation ?? "horizontal";
|
|
190
152
|
switch (e.key) {
|
|
191
|
-
case "Left":
|
|
192
153
|
case "ArrowLeft": {
|
|
193
|
-
if (orientation === "horizontal"
|
|
194
|
-
|
|
195
|
-
|
|
154
|
+
if (orientation === "horizontal") {
|
|
155
|
+
for (let i = headerIndex - 1; i >= 0; i--) {
|
|
156
|
+
if (!itemStates[i].disabled) {
|
|
157
|
+
e.preventDefault();
|
|
158
|
+
itemStates[i].setFocused();
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
196
162
|
}
|
|
197
163
|
break;
|
|
198
164
|
}
|
|
199
|
-
case "Up":
|
|
200
165
|
case "ArrowUp": {
|
|
201
|
-
if (orientation === "vertical"
|
|
202
|
-
|
|
203
|
-
|
|
166
|
+
if (orientation === "vertical") {
|
|
167
|
+
for (let i = headerIndex - 1; i >= 0; i--) {
|
|
168
|
+
if (!itemStates[i].disabled) {
|
|
169
|
+
e.preventDefault();
|
|
170
|
+
itemStates[i].setFocused();
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
204
174
|
}
|
|
205
175
|
break;
|
|
206
176
|
}
|
|
207
|
-
case "Right":
|
|
208
177
|
case "ArrowRight": {
|
|
209
|
-
if (orientation === "horizontal"
|
|
210
|
-
|
|
211
|
-
|
|
178
|
+
if (orientation === "horizontal") {
|
|
179
|
+
for (let i = headerIndex + 1; i < itemStates.length; i++) {
|
|
180
|
+
if (!itemStates[i].disabled) {
|
|
181
|
+
e.preventDefault();
|
|
182
|
+
itemStates[i].setFocused();
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
212
186
|
}
|
|
213
187
|
break;
|
|
214
188
|
}
|
|
215
|
-
case "Down":
|
|
216
189
|
case "ArrowDown": {
|
|
217
|
-
if (orientation === "vertical"
|
|
218
|
-
|
|
219
|
-
|
|
190
|
+
if (orientation === "vertical") {
|
|
191
|
+
for (let i = headerIndex + 1; i < itemStates.length; i++) {
|
|
192
|
+
if (!itemStates[i].disabled) {
|
|
193
|
+
e.preventDefault();
|
|
194
|
+
itemStates[i].setFocused();
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
220
198
|
}
|
|
221
199
|
break;
|
|
222
200
|
}
|
|
223
201
|
case "Home": {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
202
|
+
for (let i = 0; i < itemStates.length; i++) {
|
|
203
|
+
if (!itemStates[i].disabled) {
|
|
204
|
+
e.preventDefault();
|
|
205
|
+
itemStates[i].setFocused();
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
227
208
|
}
|
|
228
209
|
break;
|
|
229
210
|
}
|
|
230
211
|
case "End": {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
212
|
+
for (let i = itemStates.length - 1; i >= 0; i--) {
|
|
213
|
+
if (!itemStates[i].disabled) {
|
|
214
|
+
e.preventDefault();
|
|
215
|
+
itemStates[i].setFocused();
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
234
218
|
}
|
|
235
219
|
break;
|
|
236
220
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export const TabGroupContextName = "TabGroup";
|
|
2
|
-
export const TabItemContextName = "TabItem";
|
|
1
|
+
export const TabGroupContextName: unique symbol = Symbol.for("torp.TabGroup");
|
|
2
|
+
export const TabItemContextName: unique symbol = Symbol.for("torp.TabItem");
|
|
3
3
|
|
|
4
4
|
export interface TabGroupContext {
|
|
5
5
|
/** Called from a header when it is added */
|
|
6
6
|
registerHeader: (
|
|
7
7
|
index: number | undefined,
|
|
8
8
|
value: string | undefined,
|
|
9
|
-
|
|
9
|
+
disabled: boolean | undefined,
|
|
10
10
|
) => ItemState;
|
|
11
11
|
/** Called from an item when it is added */
|
|
12
12
|
registerItem: (index: number | undefined, value: string | undefined) => ItemState;
|
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
type TabGroupContext,
|
|
4
|
+
TabGroupContextName,
|
|
5
|
+
type TabItemContext,
|
|
6
|
+
TabItemContextName,
|
|
7
|
+
} from "./TabGroupTypes";
|
|
3
8
|
|
|
4
9
|
interface TabHeaderProps {
|
|
5
10
|
/** An ID for the root element */
|
|
6
11
|
id?: string;
|
|
7
12
|
/** Classes for the root element */
|
|
8
|
-
class?: ClassValue
|
|
13
|
+
class?: ClassValue;
|
|
9
14
|
/** Styles for the root element */
|
|
10
|
-
style?: StyleValue
|
|
11
|
-
/** The type of HTML header to use */
|
|
12
|
-
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"
|
|
15
|
+
style?: StyleValue;
|
|
13
16
|
/** The index of this header's item */
|
|
14
|
-
index?: number
|
|
17
|
+
index?: number;
|
|
15
18
|
/** The value for this header's item */
|
|
16
|
-
value?: string
|
|
19
|
+
value?: string;
|
|
20
|
+
/** If set to true, the user cannot interact with this header */
|
|
21
|
+
disabled?: boolean;
|
|
17
22
|
}
|
|
18
23
|
|
|
19
24
|
/**
|
|
20
25
|
* The header for a tab item, which contains the TabTrigger.
|
|
21
26
|
*
|
|
22
27
|
* The structure of a TabHeader is:
|
|
23
|
-
*
|
|
28
|
+
*
|
|
24
29
|
* ```
|
|
25
30
|
* <TabHeader>
|
|
26
31
|
* <TabTrigger />
|
|
@@ -28,20 +33,22 @@ interface TabHeaderProps {
|
|
|
28
33
|
* ```
|
|
29
34
|
*/
|
|
30
35
|
export default function TabHeader($props: TabHeaderProps | undefined) {
|
|
31
|
-
let button: HTMLButtonElement;
|
|
32
|
-
|
|
33
36
|
const context = $context[TabGroupContextName] as TabGroupContext;
|
|
34
37
|
if (!context) {
|
|
35
38
|
throw new Error("TabHeader must be contained within a TabGroup");
|
|
36
39
|
}
|
|
37
|
-
let $state = context.registerHeader($props?.index, $props?.value);
|
|
40
|
+
let $state = context.registerHeader($props?.index, $props?.value, $props?.disabled);
|
|
38
41
|
|
|
39
42
|
const itemContext: TabItemContext = {
|
|
40
43
|
triggerItem: context.triggerItem,
|
|
41
44
|
handleHeaderKey: context.handleHeaderKey,
|
|
42
45
|
state: $state,
|
|
43
|
-
orientation
|
|
44
|
-
|
|
46
|
+
get orientation() {
|
|
47
|
+
return context.orientation;
|
|
48
|
+
},
|
|
49
|
+
get activation() {
|
|
50
|
+
return context.activation;
|
|
51
|
+
},
|
|
45
52
|
};
|
|
46
53
|
$context[TabItemContextName] = itemContext;
|
|
47
54
|
|
|
@@ -49,12 +56,11 @@ export default function TabHeader($props: TabHeaderProps | undefined) {
|
|
|
49
56
|
$run(() => {
|
|
50
57
|
return () => {
|
|
51
58
|
context.removeItem($state.index);
|
|
52
|
-
}
|
|
59
|
+
};
|
|
53
60
|
});
|
|
54
61
|
|
|
55
62
|
@render {
|
|
56
|
-
|
|
57
|
-
<h4
|
|
63
|
+
<div
|
|
58
64
|
{$props?.id}
|
|
59
65
|
class={[
|
|
60
66
|
"torp-tab-header",
|
|
@@ -62,11 +68,9 @@ export default function TabHeader($props: TabHeaderProps | undefined) {
|
|
|
62
68
|
context.orientation
|
|
63
69
|
]}
|
|
64
70
|
data-state={$state.active ? "active" : "inactive"}
|
|
65
|
-
data-disabled={$state.disabled ? "true" : undefined}
|
|
66
|
-
&ref={button}
|
|
67
71
|
>
|
|
68
72
|
<slot />
|
|
69
|
-
</
|
|
73
|
+
</div>
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
@style {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
|
-
import {
|
|
2
|
+
import { type TabGroupContext, TabGroupContextName } from "./TabGroupTypes";
|
|
3
3
|
|
|
4
4
|
interface TabListProps {
|
|
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 tab list to screen readers */
|
|
12
|
-
ariaLabel?: string
|
|
12
|
+
ariaLabel?: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* A component that holds the TabHeaders of a TabGroup.
|
|
17
|
-
*
|
|
17
|
+
*
|
|
18
18
|
* The structure of a TabList is:
|
|
19
|
-
*
|
|
19
|
+
*
|
|
20
20
|
* ```
|
|
21
21
|
* <TabList>
|
|
22
22
|
* <TabHeader>
|
|
@@ -31,17 +31,6 @@ export default function TabList($props: TabListProps | undefined) {
|
|
|
31
31
|
if (!context) {
|
|
32
32
|
throw new Error("TabList must be contained within a TabGroup");
|
|
33
33
|
}
|
|
34
|
-
// TODO: const { orientation } = context;
|
|
35
|
-
const orientation = context.orientation;
|
|
36
|
-
|
|
37
|
-
function handleFocus(e: FocusEvent & { currentTarget: EventTarget & HTMLElement }) {
|
|
38
|
-
// TODO: Should this be the first button?
|
|
39
|
-
const el = e.currentTarget.childNodes[0];
|
|
40
|
-
if (el instanceof HTMLElement) {
|
|
41
|
-
el.focus();
|
|
42
|
-
e.preventDefault();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
34
|
|
|
46
35
|
@render {
|
|
47
36
|
<div
|
|
@@ -50,10 +39,8 @@ export default function TabList($props: TabListProps | undefined) {
|
|
|
50
39
|
{$props?.style}
|
|
51
40
|
role="tablist"
|
|
52
41
|
aria-label={$props?.ariaLabel}
|
|
53
|
-
aria-orientation={orientation}
|
|
54
|
-
data-orientation={orientation}
|
|
55
|
-
tabindex="0"
|
|
56
|
-
onfocus={handleFocus}
|
|
42
|
+
aria-orientation={context.orientation}
|
|
43
|
+
data-orientation={context.orientation}
|
|
57
44
|
>
|
|
58
45
|
<slot />
|
|
59
46
|
</div>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { ClassValue, StyleValue } from "@torpor/view";
|
|
2
2
|
import getId from "../utils/getId";
|
|
3
|
-
import {
|
|
3
|
+
import { type TabItemContext, TabItemContextName } from "./TabGroupTypes";
|
|
4
4
|
|
|
5
5
|
interface TabTriggerProps {
|
|
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
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -58,13 +58,12 @@ export default function TabTrigger($props: TabTriggerProps | undefined) {
|
|
|
58
58
|
class={["torp-tab-trigger", $props?.class]}
|
|
59
59
|
{$props?.style}
|
|
60
60
|
role="tab"
|
|
61
|
-
tabindex="-1"
|
|
61
|
+
tabindex={$state.active ? "0" : "-1"}
|
|
62
62
|
disabled={$state.disabled || $state.parentDisabled}
|
|
63
|
-
aria-selected={$state.active
|
|
64
|
-
aria-disabled={$state.disabled}
|
|
63
|
+
aria-selected={$state.active ? "true" : "false"}
|
|
64
|
+
aria-disabled={$state.disabled || $state.parentDisabled}
|
|
65
65
|
aria-controls={$state.contentId}
|
|
66
66
|
data-state={$state.active ? "active" : "inactive"}
|
|
67
|
-
data-disabled={$state.disabled}
|
|
68
67
|
data-orientation={context.orientation}
|
|
69
68
|
&ref={button}
|
|
70
69
|
onclick={handleClick}
|
package/dist/TabGroup/index.d.ts
CHANGED
|
@@ -5,13 +5,13 @@ interface TabContentProps {
|
|
|
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 index of this item */
|
|
12
|
-
index?: number
|
|
12
|
+
index?: number;
|
|
13
13
|
/** The value for this item */
|
|
14
|
-
value?: string
|
|
14
|
+
value?: string;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -31,19 +31,19 @@ interface TabGroupProps {
|
|
|
31
31
|
/** An ID for the root element */
|
|
32
32
|
id?: string;
|
|
33
33
|
/** Classes for the root element */
|
|
34
|
-
class?: ClassValue
|
|
34
|
+
class?: ClassValue;
|
|
35
35
|
/** Styles for the root element */
|
|
36
|
-
style?: StyleValue
|
|
36
|
+
style?: StyleValue;
|
|
37
37
|
/** The orientation of the tab buttons, which affects keyboard navigation */
|
|
38
|
-
orientation?: "horizontal" | "vertical"
|
|
38
|
+
orientation?: "horizontal" | "vertical";
|
|
39
39
|
/** How tabs are activated; if automatic they are shown on focus, if manual they must be clicked */
|
|
40
|
-
activation?: "automatic" | "manual"
|
|
40
|
+
activation?: "automatic" | "manual";
|
|
41
41
|
/** The value of the active TabContent */
|
|
42
|
-
value?: string
|
|
42
|
+
value?: Bindable<string | undefined>;
|
|
43
43
|
/** If set to true, the user cannot interact with any items in the TabGroup */
|
|
44
|
-
disabled?: boolean
|
|
44
|
+
disabled?: boolean;
|
|
45
45
|
/** Raised when the active item has changed */
|
|
46
|
-
onchange?: (value: string | string[]) => void
|
|
46
|
+
onchange?: (value: string | string[]) => void;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
|
@@ -79,22 +79,22 @@ interface TabHeaderProps {
|
|
|
79
79
|
/** An ID for the root element */
|
|
80
80
|
id?: string;
|
|
81
81
|
/** Classes for the root element */
|
|
82
|
-
class?: ClassValue
|
|
82
|
+
class?: ClassValue;
|
|
83
83
|
/** Styles for the root element */
|
|
84
|
-
style?: StyleValue
|
|
85
|
-
/** The type of HTML header to use */
|
|
86
|
-
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6"
|
|
84
|
+
style?: StyleValue;
|
|
87
85
|
/** The index of this header's item */
|
|
88
|
-
index?: number
|
|
86
|
+
index?: number;
|
|
89
87
|
/** The value for this header's item */
|
|
90
|
-
value?: string
|
|
88
|
+
value?: string;
|
|
89
|
+
/** If set to true, the user cannot interact with this header */
|
|
90
|
+
disabled?: boolean;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* The header for a tab item, which contains the TabTrigger.
|
|
95
95
|
*
|
|
96
96
|
* The structure of a TabHeader is:
|
|
97
|
-
*
|
|
97
|
+
*
|
|
98
98
|
* ```
|
|
99
99
|
* <TabHeader>
|
|
100
100
|
* <TabTrigger />
|
|
@@ -115,18 +115,18 @@ interface TabListProps {
|
|
|
115
115
|
/** An ID for the root element */
|
|
116
116
|
id?: string;
|
|
117
117
|
/** Classes for the root element */
|
|
118
|
-
class?: ClassValue
|
|
118
|
+
class?: ClassValue;
|
|
119
119
|
/** Styles for the root element */
|
|
120
|
-
style?: StyleValue
|
|
120
|
+
style?: StyleValue;
|
|
121
121
|
/** An ARIA label for describing the tab list to screen readers */
|
|
122
|
-
ariaLabel?: string
|
|
122
|
+
ariaLabel?: string;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
126
|
* A component that holds the TabHeaders of a TabGroup.
|
|
127
|
-
*
|
|
127
|
+
*
|
|
128
128
|
* The structure of a TabList is:
|
|
129
|
-
*
|
|
129
|
+
*
|
|
130
130
|
* ```
|
|
131
131
|
* <TabList>
|
|
132
132
|
* <TabHeader>
|
|
@@ -149,9 +149,9 @@ interface TabTriggerProps {
|
|
|
149
149
|
/** An ID for the root element */
|
|
150
150
|
id?: string;
|
|
151
151
|
/** Classes for the root element */
|
|
152
|
-
class?: ClassValue
|
|
152
|
+
class?: ClassValue;
|
|
153
153
|
/** Styles for the root element */
|
|
154
|
-
style?: StyleValue
|
|
154
|
+
style?: StyleValue;
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
/**
|
|
@@ -165,4 +165,4 @@ declare function TabTrigger(
|
|
|
165
165
|
$slots?: Record<string, SlotRender>,
|
|
166
166
|
): void;
|
|
167
167
|
|
|
168
|
-
export { TabContent, TabGroup, TabHeader, TabList, TabTrigger };
|
|
168
|
+
export { TabContent, TabGroup, TabHeader, TabList, TabTrigger };
|
package/dist/TabGroup/index.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
// src/TabGroup/TabHeader.torp
|
|
8
|
-
import TabHeader_default from "./TabHeader.torp";
|
|
9
|
-
|
|
10
|
-
// src/TabGroup/TabList.torp
|
|
11
|
-
import TabList_default from "./TabList.torp";
|
|
12
|
-
|
|
13
|
-
// src/TabGroup/TabTrigger.torp
|
|
14
|
-
import TabTrigger_default from "./TabTrigger.torp";
|
|
15
|
-
export {
|
|
16
|
-
TabContent_default as TabContent,
|
|
17
|
-
TabGroup_default as TabGroup,
|
|
18
|
-
TabHeader_default as TabHeader,
|
|
19
|
-
TabList_default as TabList,
|
|
20
|
-
TabTrigger_default as TabTrigger
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import TabContent from "./TabContent.torp";
|
|
2
|
+
import TabGroup from "./TabGroup.torp";
|
|
3
|
+
import TabHeader from "./TabHeader.torp";
|
|
4
|
+
import TabList from "./TabList.torp";
|
|
5
|
+
import TabTrigger from "./TabTrigger.torp";
|
|
6
|
+
export { TabContent, TabGroup, TabHeader, TabList, TabTrigger };
|