@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.
Files changed (342) hide show
  1. package/README.md +83 -7
  2. package/dist/Accordion/Accordion.torp +42 -165
  3. package/dist/Accordion/AccordionContent.torp +6 -6
  4. package/dist/Accordion/AccordionHeader.torp +7 -11
  5. package/dist/Accordion/AccordionItem.torp +24 -24
  6. package/dist/Accordion/AccordionTrigger.torp +17 -8
  7. package/dist/Accordion/AccordionTypes.ts +1 -1
  8. package/dist/Accordion/index.d.ts +23 -25
  9. package/dist/Accordion/index.js +6 -22
  10. package/dist/Breadcrumb/Breadcrumb.torp +12 -10
  11. package/dist/Breadcrumb/BreadcrumbItem.torp +6 -6
  12. package/dist/Breadcrumb/BreadcrumbList.torp +21 -0
  13. package/dist/Breadcrumb/BreadcrumbSeparator.torp +4 -4
  14. package/dist/Breadcrumb/index.d.ts +39 -15
  15. package/dist/Breadcrumb/index.js +5 -14
  16. package/dist/Calendar/Calendar.torp +163 -156
  17. package/dist/Calendar/CalendarDay.torp +91 -45
  18. package/dist/Calendar/CalendarDayHeader.torp +36 -0
  19. package/dist/Calendar/CalendarGrid.torp +104 -0
  20. package/dist/Calendar/CalendarGridHeader.torp +43 -0
  21. package/dist/Calendar/CalendarHeader.torp +48 -0
  22. package/dist/Calendar/CalendarHeaderTrigger.torp +54 -0
  23. package/dist/Calendar/CalendarTypes.ts +24 -3
  24. package/dist/Calendar/buildDays.ts +54 -0
  25. package/dist/Calendar/index.d.ts +191 -5
  26. package/dist/Calendar/index.js +8 -10
  27. package/dist/Carousel/Carousel.torp +180 -0
  28. package/dist/Carousel/CarouselIndicators.torp +65 -0
  29. package/dist/Carousel/CarouselNext.torp +43 -0
  30. package/dist/Carousel/CarouselPrevious.torp +44 -0
  31. package/dist/Carousel/CarouselSlide.torp +57 -0
  32. package/dist/Carousel/CarouselTypes.ts +28 -0
  33. package/dist/Carousel/index.d.ts +147 -0
  34. package/dist/Carousel/index.js +6 -0
  35. package/dist/Charts/BarChart.torp +55 -144
  36. package/dist/Charts/Chart.torp +120 -0
  37. package/dist/Charts/ChartBars.torp +78 -0
  38. package/dist/Charts/ChartColumns.torp +66 -0
  39. package/dist/Charts/ChartGrid.torp +54 -0
  40. package/dist/Charts/ChartLines.torp +60 -0
  41. package/dist/Charts/ChartTypes.ts +25 -0
  42. package/dist/Charts/ChartXAxis.torp +83 -0
  43. package/dist/Charts/ChartYAxis.torp +105 -0
  44. package/dist/Charts/ColumnChart.torp +70 -0
  45. package/dist/Charts/GridLines.torp +4 -4
  46. package/dist/Charts/LineChart.torp +55 -178
  47. package/dist/Charts/PieChart.torp +14 -20
  48. package/dist/Charts/ScatterChart.torp +45 -38
  49. package/dist/Charts/SparkLine.torp +16 -19
  50. package/dist/Charts/XAxis.torp +11 -11
  51. package/dist/Charts/YAxis.torp +8 -8
  52. package/dist/Charts/index.d.ts +328 -79
  53. package/dist/Charts/index.js +17 -34
  54. package/dist/ColorPicker/ColorPalette.torp +154 -0
  55. package/dist/ColorPicker/ColorPicker.torp +157 -0
  56. package/dist/ColorPicker/index.d.ts +85 -0
  57. package/dist/ColorPicker/index.js +3 -0
  58. package/dist/ComboBox/ComboBox.torp +205 -0
  59. package/dist/ComboBox/ComboBoxContent.torp +112 -0
  60. package/dist/ComboBox/ComboBoxInput.torp +145 -0
  61. package/dist/ComboBox/ComboBoxTrigger.torp +49 -0
  62. package/dist/ComboBox/ComboBoxTypes.ts +39 -0
  63. package/dist/ComboBox/index.d.ts +152 -0
  64. package/dist/ComboBox/index.js +6 -0
  65. package/dist/CommandPalette/CommandPalette.torp +220 -0
  66. package/dist/CommandPalette/CommandTypes.ts +14 -0
  67. package/dist/CommandPalette/index.d.ts +45 -0
  68. package/dist/CommandPalette/index.js +2 -0
  69. package/dist/Contextual/Contextual.torp +32 -50
  70. package/dist/Contextual/ContextualContent.torp +29 -73
  71. package/dist/Contextual/ContextualHover.torp +112 -0
  72. package/dist/Contextual/ContextualTrigger.torp +31 -42
  73. package/dist/Contextual/ContextualTypes.ts +4 -17
  74. package/dist/Contextual/index.d.ts +44 -27
  75. package/dist/Contextual/index.js +5 -14
  76. package/dist/DataGrid/DataGrid.torp +496 -0
  77. package/dist/DataGrid/DataGridTypes.ts +25 -0
  78. package/dist/DataGrid/index.d.ts +90 -0
  79. package/dist/DataGrid/index.js +3 -0
  80. package/dist/DataGrid/sortRows.ts +32 -0
  81. package/dist/DatePicker/DatePicker.torp +222 -0
  82. package/dist/DatePicker/DatePickerHeader.torp +20 -0
  83. package/dist/DatePicker/index.d.ts +55 -0
  84. package/dist/DatePicker/index.js +2 -0
  85. package/dist/DateRangePicker/DateRangePicker.torp +311 -0
  86. package/dist/DateRangePicker/DateRangePickerDay.torp +137 -0
  87. package/dist/DateRangePicker/DateRangePickerTypes.ts +21 -0
  88. package/dist/DateRangePicker/index.d.ts +76 -0
  89. package/dist/DateRangePicker/index.js +3 -0
  90. package/dist/Dialog/Dialog.torp +24 -17
  91. package/dist/Dialog/DialogBody.torp +5 -9
  92. package/dist/Dialog/DialogButton.torp +12 -12
  93. package/dist/Dialog/DialogFooter.torp +3 -7
  94. package/dist/Dialog/DialogHeader.torp +6 -10
  95. package/dist/Dialog/index.d.ts +27 -27
  96. package/dist/Dialog/index.js +6 -22
  97. package/dist/Disclosure/Disclosure.torp +18 -18
  98. package/dist/Disclosure/DisclosureContent.torp +5 -6
  99. package/dist/Disclosure/DisclosureHeader.torp +7 -11
  100. package/dist/Disclosure/DisclosureTrigger.torp +4 -5
  101. package/dist/Disclosure/index.d.ts +14 -16
  102. package/dist/Disclosure/index.js +5 -18
  103. package/dist/Drawer/Drawer.torp +19 -49
  104. package/dist/Drawer/DrawerContent.torp +67 -13
  105. package/dist/Drawer/DrawerOverlay.torp +4 -4
  106. package/dist/Drawer/DrawerTrigger.torp +16 -4
  107. package/dist/Drawer/DrawerTypes.ts +3 -0
  108. package/dist/Drawer/index.d.ts +16 -20
  109. package/dist/Drawer/index.js +5 -18
  110. package/dist/FocusGroup/FocusGroup.torp +70 -0
  111. package/dist/FocusGroup/FocusGroupButton.torp +59 -0
  112. package/dist/FocusGroup/FocusGroupTypes.ts +14 -0
  113. package/dist/FocusGroup/index.d.ts +44 -0
  114. package/dist/FocusGroup/index.js +3 -0
  115. package/dist/Form/CheckBox.torp +27 -18
  116. package/dist/Form/Field.torp +17 -17
  117. package/dist/Form/File.torp +31 -22
  118. package/dist/Form/FileDrop.torp +187 -0
  119. package/dist/Form/Form.torp +24 -22
  120. package/dist/Form/FormTypes.ts +2 -0
  121. package/dist/Form/FormValues.torp +37 -0
  122. package/dist/Form/Hidden.torp +4 -12
  123. package/dist/Form/Input.torp +38 -32
  124. package/dist/Form/Label.torp +3 -3
  125. package/dist/Form/Message.torp +13 -5
  126. package/dist/Form/MessageSummary.torp +5 -4
  127. package/dist/Form/Option.torp +11 -7
  128. package/dist/Form/Select.torp +32 -28
  129. package/dist/Form/TextArea.torp +35 -31
  130. package/dist/Form/Toggle.torp +109 -0
  131. package/dist/Form/index.d.ts +178 -79
  132. package/dist/Form/index.js +16 -50
  133. package/dist/ListBox/ListBox.torp +253 -150
  134. package/dist/ListBox/ListBoxItem.torp +54 -30
  135. package/dist/ListBox/ListBoxSeparator.torp +5 -2
  136. package/dist/ListBox/ListBoxTypes.ts +23 -5
  137. package/dist/ListBox/LoadedListBoxItems.torp +41 -0
  138. package/dist/ListBox/index.d.ts +56 -17
  139. package/dist/ListBox/index.js +4 -14
  140. package/dist/MaskedInput/MaskedInput.torp +143 -0
  141. package/dist/MaskedInput/index.d.ts +52 -0
  142. package/dist/MaskedInput/index.js +2 -0
  143. package/dist/Menu/Menu.torp +86 -71
  144. package/dist/Menu/MenuButton.torp +17 -10
  145. package/dist/Menu/MenuCheck.torp +22 -18
  146. package/dist/Menu/MenuGroup.torp +4 -4
  147. package/dist/Menu/MenuIndicator.torp +5 -13
  148. package/dist/Menu/MenuPopout.torp +20 -50
  149. package/dist/Menu/MenuPopoutContent.torp +15 -66
  150. package/dist/Menu/MenuPopoutTrigger.torp +19 -100
  151. package/dist/Menu/MenuRadio.torp +25 -26
  152. package/dist/Menu/MenuRadioGroup.torp +25 -68
  153. package/dist/Menu/MenuSeparator.torp +3 -2
  154. package/dist/Menu/MenuTypes.ts +9 -19
  155. package/dist/Menu/index.d.ts +45 -51
  156. package/dist/Menu/index.js +12 -46
  157. package/dist/MenuBar/MenuBar.torp +31 -83
  158. package/dist/MenuBar/MenuBarItem.torp +33 -51
  159. package/dist/MenuBar/MenuBarItemContent.torp +15 -101
  160. package/dist/MenuBar/MenuBarItemTrigger.torp +20 -55
  161. package/dist/MenuBar/MenuBarTypes.ts +11 -10
  162. package/dist/MenuBar/index.d.ts +17 -19
  163. package/dist/MenuBar/index.js +5 -18
  164. package/dist/Modal/Modal.torp +22 -47
  165. package/dist/Modal/ModalContent.torp +21 -44
  166. package/dist/Modal/ModalOverlay.torp +4 -4
  167. package/dist/Modal/ModalTrigger.torp +16 -32
  168. package/dist/Modal/ModalTypes.ts +5 -16
  169. package/dist/Modal/index.d.ts +17 -29
  170. package/dist/Modal/index.js +29 -28
  171. package/dist/Modal/index.js.map +1 -1
  172. package/dist/Modal/showPrompt.ts +2 -2
  173. package/dist/NavMenu/NavMenu.torp +22 -111
  174. package/dist/NavMenu/NavMenuButton.torp +7 -8
  175. package/dist/NavMenu/NavMenuElement.torp +6 -7
  176. package/dist/NavMenu/NavMenuGroup.torp +5 -5
  177. package/dist/NavMenu/NavMenuGroupHeader.torp +5 -8
  178. package/dist/NavMenu/NavMenuLink.torp +7 -10
  179. package/dist/NavMenu/NavMenuPopout.torp +15 -60
  180. package/dist/NavMenu/NavMenuPopoutContent.torp +14 -73
  181. package/dist/NavMenu/NavMenuPopoutTrigger.torp +17 -99
  182. package/dist/NavMenu/NavMenuSeparator.torp +3 -7
  183. package/dist/NavMenu/NavMenuTypes.ts +4 -14
  184. package/dist/NavMenu/index.d.ts +40 -44
  185. package/dist/NavMenu/index.js +11 -42
  186. package/dist/Notification/Notification.torp +12 -24
  187. package/dist/Notification/NotificationClose.torp +6 -3
  188. package/dist/Notification/NotificationContainer.torp +3 -7
  189. package/dist/Notification/NotificationContent.torp +3 -7
  190. package/dist/Notification/NotificationTypes.ts +1 -1
  191. package/dist/Notification/index.d.ts +15 -12
  192. package/dist/Notification/index.js +22 -32
  193. package/dist/Notification/index.js.map +1 -1
  194. package/dist/NumberInput/NumberInput.torp +255 -0
  195. package/dist/NumberInput/index.d.ts +44 -0
  196. package/dist/NumberInput/index.js +2 -0
  197. package/dist/Pagination/Pagination.torp +41 -34
  198. package/dist/Pagination/PaginationItem.torp +50 -13
  199. package/dist/Pagination/PaginationTypes.ts +3 -6
  200. package/dist/Pagination/buildPages.ts +9 -5
  201. package/dist/Pagination/index.d.ts +19 -9
  202. package/dist/Pagination/index.js +3 -40
  203. package/dist/Popover/Popover.torp +32 -50
  204. package/dist/Popover/PopoverContent.torp +27 -76
  205. package/dist/Popover/PopoverHover.torp +90 -0
  206. package/dist/Popover/PopoverTrigger.torp +17 -40
  207. package/dist/Popover/PopoverTypes.ts +4 -17
  208. package/dist/Popover/index.d.ts +40 -25
  209. package/dist/Popover/index.js +18 -18
  210. package/dist/Popover/index.js.map +1 -1
  211. package/dist/Progress/Progress.torp +88 -0
  212. package/dist/Progress/index.d.ts +37 -0
  213. package/dist/Progress/index.js +2 -0
  214. package/dist/Rating/Rating.torp +225 -0
  215. package/dist/Rating/index.d.ts +44 -0
  216. package/dist/Rating/index.js +2 -0
  217. package/dist/SegmentedControl/SegmentedControl.torp +233 -0
  218. package/dist/SegmentedControl/SegmentedControlTypes.ts +26 -0
  219. package/dist/SegmentedControl/SegmentedItem.torp +78 -0
  220. package/dist/SegmentedControl/index.d.ts +74 -0
  221. package/dist/SegmentedControl/index.js +3 -0
  222. package/dist/SelectBox/SelectBox.torp +107 -53
  223. package/dist/SelectBox/SelectBoxContent.torp +45 -19
  224. package/dist/SelectBox/SelectBoxTrigger.torp +108 -8
  225. package/dist/SelectBox/SelectBoxTypes.ts +26 -11
  226. package/dist/SelectBox/index.d.ts +39 -54
  227. package/dist/SelectBox/index.js +5 -18
  228. package/dist/Slider/Slider.torp +248 -0
  229. package/dist/Slider/index.d.ts +45 -0
  230. package/dist/Slider/index.js +2 -0
  231. package/dist/Splitter/Splitter.torp +156 -0
  232. package/dist/Splitter/SplitterHandle.torp +161 -0
  233. package/dist/Splitter/SplitterPane.torp +63 -0
  234. package/dist/Splitter/SplitterTypes.ts +31 -0
  235. package/dist/Splitter/index.d.ts +103 -0
  236. package/dist/Splitter/index.js +4 -0
  237. package/dist/Stepper/Stepper.torp +146 -0
  238. package/dist/Stepper/StepperMarker.torp +24 -0
  239. package/dist/Stepper/StepperNext.torp +44 -0
  240. package/dist/Stepper/StepperPrevious.torp +44 -0
  241. package/dist/Stepper/StepperStep.torp +90 -0
  242. package/dist/Stepper/StepperTypes.ts +30 -0
  243. package/dist/Stepper/index.d.ts +149 -0
  244. package/dist/Stepper/index.js +6 -0
  245. package/dist/TabGroup/TabContent.torp +6 -6
  246. package/dist/TabGroup/TabGroup.torp +97 -113
  247. package/dist/TabGroup/TabGroupTypes.ts +1 -1
  248. package/dist/TabGroup/TabHeader.torp +23 -19
  249. package/dist/TabGroup/TabList.torp +8 -21
  250. package/dist/TabGroup/TabTrigger.torp +6 -7
  251. package/dist/TabGroup/index.d.ts +26 -26
  252. package/dist/TabGroup/index.js +6 -22
  253. package/dist/TagInput/TagInput.torp +378 -0
  254. package/dist/TagInput/index.d.ts +48 -0
  255. package/dist/TagInput/index.js +2 -0
  256. package/dist/TimePicker/TimePicker.torp +462 -0
  257. package/dist/TimePicker/index.d.ts +53 -0
  258. package/dist/TimePicker/index.js +2 -0
  259. package/dist/ToolBar/ToolBar.torp +29 -110
  260. package/dist/ToolBar/ToolBarButton.torp +7 -8
  261. package/dist/ToolBar/ToolBarElement.torp +7 -11
  262. package/dist/ToolBar/ToolBarPopout.torp +16 -68
  263. package/dist/ToolBar/ToolBarPopoutContent.torp +15 -73
  264. package/dist/ToolBar/ToolBarPopoutTrigger.torp +19 -110
  265. package/dist/ToolBar/ToolBarSeparator.torp +3 -7
  266. package/dist/ToolBar/ToolBarTypes.ts +7 -14
  267. package/dist/ToolBar/index.d.ts +30 -32
  268. package/dist/ToolBar/index.js +8 -30
  269. package/dist/Tree/Tree.torp +395 -0
  270. package/dist/Tree/TreeItem.torp +176 -0
  271. package/dist/Tree/TreeItemChildren.torp +60 -0
  272. package/dist/Tree/TreeItemContent.torp +46 -0
  273. package/dist/Tree/TreeItemLabel.torp +94 -0
  274. package/dist/Tree/TreeItemTrigger.torp +78 -0
  275. package/dist/Tree/TreeLoadedChildren.torp +122 -0
  276. package/dist/Tree/TreeTypes.ts +63 -0
  277. package/dist/Tree/index.d.ts +262 -0
  278. package/dist/Tree/index.js +7 -0
  279. package/dist/icons/ChevronDoubleLeft.torp +19 -0
  280. package/dist/icons/ChevronDoubleRight.torp +19 -0
  281. package/dist/icons/index.d.ts +61 -1
  282. package/dist/icons/index.js +17 -58
  283. package/dist/loader-DEeG5vFY.js +44 -0
  284. package/dist/loader-DEeG5vFY.js.map +1 -0
  285. package/dist/motion/index.d.ts +12 -8
  286. package/dist/motion/index.d.ts.map +1 -0
  287. package/dist/motion/index.js +72 -88
  288. package/dist/motion/index.js.map +1 -1
  289. package/dist/mount/draggable.ts +63 -0
  290. package/dist/mount/dropTarget.ts +108 -0
  291. package/dist/mount/hoverTrigger.ts +1 -1
  292. package/dist/utils/$handle.ts +23 -0
  293. package/dist/utils/LoadedItems.torp +47 -0
  294. package/dist/utils/PopoutClickTrigger.torp +99 -0
  295. package/dist/utils/PopoutTypes.ts +59 -12
  296. package/dist/utils/SubmenuPopout.torp +89 -0
  297. package/dist/utils/SubmenuPopoutContent.torp +87 -0
  298. package/dist/utils/SubmenuPopoutTrigger.torp +160 -0
  299. package/dist/utils/chartColors.ts +13 -13
  300. package/dist/utils/chartLayout.ts +143 -0
  301. package/dist/utils/colorUtils.ts +103 -0
  302. package/dist/utils/createItemGroup.ts +152 -0
  303. package/dist/utils/dateUtils.ts +8 -7
  304. package/dist/utils/documentEvents.ts +4 -4
  305. package/dist/utils/dragState.ts +86 -0
  306. package/dist/utils/focusGroup.ts +204 -0
  307. package/dist/utils/focusItem.ts +44 -0
  308. package/dist/utils/formField.ts +70 -0
  309. package/dist/utils/hoverOpen.ts +50 -0
  310. package/dist/utils/hoverReveal.ts +194 -0
  311. package/dist/utils/loader.ts +113 -0
  312. package/dist/utils/maskUtils.ts +98 -0
  313. package/dist/utils/popoutContent.ts +137 -0
  314. package/dist/utils/reorderList.ts +52 -0
  315. package/package.json +97 -22
  316. package/dist/Accordion/index.js.map +0 -1
  317. package/dist/Breadcrumb/index.js.map +0 -1
  318. package/dist/Calendar/index.js.map +0 -1
  319. package/dist/Charts/index.js.map +0 -1
  320. package/dist/Contextual/index.js.map +0 -1
  321. package/dist/Dialog/index.js.map +0 -1
  322. package/dist/Disclosure/index.js.map +0 -1
  323. package/dist/Drawer/index.js.map +0 -1
  324. package/dist/Form/index.js.map +0 -1
  325. package/dist/ListBox/index.js.map +0 -1
  326. package/dist/Menu/index.js.map +0 -1
  327. package/dist/MenuBar/index.js.map +0 -1
  328. package/dist/NavMenu/index.js.map +0 -1
  329. package/dist/Pagination/index.js.map +0 -1
  330. package/dist/SelectBox/SelectBoxInput.torp +0 -95
  331. package/dist/SelectBox/index.js.map +0 -1
  332. package/dist/TabGroup/index.js.map +0 -1
  333. package/dist/ToolBar/index.js.map +0 -1
  334. package/dist/icons/index.js.map +0 -1
  335. package/dist/index.d.ts +0 -19
  336. package/dist/metafile-esm.json +0 -1
  337. package/dist/motion/fade.ts +0 -16
  338. package/dist/motion/grow.ts +0 -23
  339. package/dist/motion/measure.ts +0 -28
  340. package/dist/motion/slide.ts +0 -45
  341. package/dist/mount/index.d.ts +0 -2
  342. package/dist/utils/index.d.ts +0 -2
@@ -1,26 +1,31 @@
1
1
  import type { ClassValue, StyleValue } from "@torpor/view";
2
- import { TabGroupContextName, TabItemContextName, type TabGroupContext, type TabItemContext } from "./TabGroupTypes";
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: context.orientation,
44
- activation: context.activation
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
- @// TODO: $props?.as
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
- </h4>
73
+ </div>
70
74
  }
71
75
 
72
76
  @style {
@@ -1,22 +1,22 @@
1
1
  import type { ClassValue, StyleValue } from "@torpor/view";
2
- import { TabGroupContextName, type TabGroupContext } from "./TabGroupTypes";
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 { TabItemContextName, type TabItemContext } from "./TabGroupTypes";
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.toString()}
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}
@@ -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 };
@@ -1,22 +1,6 @@
1
- // src/TabGroup/TabContent.torp
2
- import TabContent_default from "./TabContent.torp";
3
-
4
- // src/TabGroup/TabGroup.torp
5
- import TabGroup_default from "./TabGroup.torp";
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 };