@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
@@ -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,15 +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
52
  /** Raised when the button is clicked */
53
- onclick?: (e: MouseEvent) => void,
53
+ onclick?: (e: MouseEvent) => void;
54
54
  /** Raised when a key is pressed down */
55
- onkeydown?: (e: KeyboardEvent) => void,
55
+ onkeydown?: (e: KeyboardEvent) => void;
56
56
  }
57
57
 
58
58
  /**
@@ -73,13 +73,13 @@ interface NavMenuElementProps {
73
73
  /** An ID for the root element */
74
74
  id?: string;
75
75
  /** Classes for the root element */
76
- class?: ClassValue,
76
+ class?: ClassValue;
77
77
  /** Styles for the root element */
78
- style?: StyleValue,
78
+ style?: StyleValue;
79
79
  /** Whether this button is disabled */
80
- disabled?: boolean,
80
+ disabled?: boolean;
81
81
  /** An element that can be focused via keyboard navigation */
82
- element?: HTMLElement,
82
+ element?: HTMLElement;
83
83
  }
84
84
 
85
85
  /**
@@ -100,11 +100,11 @@ interface NavMenuGroupProps {
100
100
  /** An ID for the root element */
101
101
  id?: string;
102
102
  /** Classes for the root element */
103
- class?: ClassValue,
103
+ class?: ClassValue;
104
104
  /** Styles for the root element */
105
- style?: StyleValue,
105
+ style?: StyleValue;
106
106
  /** An ARIA label for describing the group to screen readers */
107
- ariaLabel?: string,
107
+ ariaLabel?: string;
108
108
  }
109
109
 
110
110
  /**
@@ -124,11 +124,9 @@ interface NavMenuGroupHeaderProps {
124
124
  /** An ID for the root element */
125
125
  id?: string;
126
126
  /** Classes for the root element */
127
- class?: ClassValue,
127
+ class?: ClassValue;
128
128
  /** Styles for the root element */
129
- style?: StyleValue,
130
- /** The type of HTML header to use */
131
- as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6",
129
+ style?: StyleValue;
132
130
  }
133
131
 
134
132
  /**
@@ -148,15 +146,15 @@ interface NavMenuLinkProps {
148
146
  /** An ID for the root element */
149
147
  id?: string;
150
148
  /** Classes for the root element */
151
- class?: ClassValue,
149
+ class?: ClassValue;
152
150
  /** Styles for the root element */
153
- style?: StyleValue,
151
+ style?: StyleValue;
154
152
  /** The URL for the menu link */
155
- href: string,
153
+ href: string;
156
154
  /** Whether the menu link should open in a new tab/window */
157
- newWindow?: boolean,
155
+ newWindow?: boolean;
158
156
  /** Whether this link is disabled */
159
- disabled?: boolean,
157
+ disabled?: boolean;
160
158
  }
161
159
 
162
160
  /**
@@ -177,21 +175,19 @@ interface NavMenuPopoutProps {
177
175
  /** An ID for the root element */
178
176
  id?: string;
179
177
  /** Classes for the root element */
180
- class?: ClassValue,
178
+ class?: ClassValue;
181
179
  /** Styles for the root element */
182
- style?: StyleValue,
180
+ style?: StyleValue;
183
181
  /** Whether the popout is visible */
184
- visible?: boolean,
185
- /** Raised when the popout is opened or closed */
186
- ontoggle?: (open: boolean) => void,
182
+ visible: Bindable<boolean | undefined>;
187
183
  /** Raised when the popout has opened */
188
- onopen?: () => void,
184
+ onopen?: () => void;
189
185
  /** Raised when the popout has closed */
190
- onclose?: (result: any) => void,
186
+ onclose?: (result: any) => void;
191
187
  }
192
188
 
193
189
  /**
194
- * 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.
195
191
  *
196
192
  * The structure of a NavMenuPopout is:
197
193
  *
@@ -216,13 +212,13 @@ interface NavMenuPopoutContentProps {
216
212
  /** An ID for the root element */
217
213
  id?: string;
218
214
  /** Classes for the root element */
219
- class?: ClassValue,
215
+ class?: ClassValue;
220
216
  /** Styles for the root element */
221
- style?: StyleValue,
217
+ style?: StyleValue;
222
218
  /** Where the popout will be shown, relative to the popout button */
223
- side?: "top" | "right" | "bottom" | "left",
219
+ side?: "top" | "right" | "bottom" | "left";
224
220
  /** How the popout will be aligned, relative to the popout button */
225
- alignment?: "start" | "center" | "end",
221
+ alignment?: "start" | "center" | "end";
226
222
  }
227
223
 
228
224
  /**
@@ -243,13 +239,13 @@ interface NavMenuPopoutTriggerProps {
243
239
  /** An ID for the root element */
244
240
  id?: string;
245
241
  /** Classes for the root element */
246
- class?: ClassValue,
242
+ class?: ClassValue;
247
243
  /** Styles for the root element */
248
- style?: StyleValue,
244
+ style?: StyleValue;
249
245
  /** The delay before showing the popout, in milliseconds */
250
- hoverDelay?: number,
246
+ hoverDelay?: number;
251
247
  /** Whether this button is disabled */
252
- disabled?: boolean,
248
+ disabled?: boolean;
253
249
  }
254
250
 
255
251
  /**
@@ -270,9 +266,9 @@ interface NavMenuSeparatorProps {
270
266
  /** An ID for the root element */
271
267
  id?: string;
272
268
  /** Classes for the root element */
273
- class?: ClassValue,
269
+ class?: ClassValue;
274
270
  /** Styles for the root element */
275
- style?: StyleValue,
271
+ style?: StyleValue;
276
272
  }
277
273
 
278
274
  /**
@@ -286,4 +282,4 @@ declare function NavMenuSeparator(
286
282
  $slots?: Record<string, SlotRender>,
287
283
  ): void;
288
284
 
289
- export { NavMenu, NavMenuButton, NavMenuElement, NavMenuGroup, NavMenuGroupHeader, NavMenuLink, NavMenuPopout, NavMenuPopoutContent, NavMenuPopoutTrigger, NavMenuSeparator };
285
+ export { NavMenu, NavMenuButton, NavMenuElement, NavMenuGroup, NavMenuGroupHeader, NavMenuLink, NavMenuPopout, NavMenuPopoutContent, NavMenuPopoutTrigger, NavMenuSeparator };
@@ -1,42 +1,11 @@
1
- // src/NavMenu/NavMenu.torp
2
- import NavMenu_default from "./NavMenu.torp";
3
-
4
- // src/NavMenu/NavMenuButton.torp
5
- import NavMenuButton_default from "./NavMenuButton.torp";
6
-
7
- // src/NavMenu/NavMenuElement.torp
8
- import NavMenuElement_default from "./NavMenuElement.torp";
9
-
10
- // src/NavMenu/NavMenuGroup.torp
11
- import NavMenuGroup_default from "./NavMenuGroup.torp";
12
-
13
- // src/NavMenu/NavMenuGroupHeader.torp
14
- import NavMenuGroupHeader_default from "./NavMenuGroupHeader.torp";
15
-
16
- // src/NavMenu/NavMenuLink.torp
17
- import NavMenuLink_default from "./NavMenuLink.torp";
18
-
19
- // src/NavMenu/NavMenuPopout.torp
20
- import NavMenuPopout_default from "./NavMenuPopout.torp";
21
-
22
- // src/NavMenu/NavMenuPopoutContent.torp
23
- import NavMenuPopoutContent_default from "./NavMenuPopoutContent.torp";
24
-
25
- // src/NavMenu/NavMenuPopoutTrigger.torp
26
- import NavMenuPopoutTrigger_default from "./NavMenuPopoutTrigger.torp";
27
-
28
- // src/NavMenu/NavMenuSeparator.torp
29
- import NavMenuSeparator_default from "./NavMenuSeparator.torp";
30
- export {
31
- NavMenu_default as NavMenu,
32
- NavMenuButton_default as NavMenuButton,
33
- NavMenuElement_default as NavMenuElement,
34
- NavMenuGroup_default as NavMenuGroup,
35
- NavMenuGroupHeader_default as NavMenuGroupHeader,
36
- NavMenuLink_default as NavMenuLink,
37
- NavMenuPopout_default as NavMenuPopout,
38
- NavMenuPopoutContent_default as NavMenuPopoutContent,
39
- NavMenuPopoutTrigger_default as NavMenuPopoutTrigger,
40
- NavMenuSeparator_default as NavMenuSeparator
41
- };
42
- //# sourceMappingURL=index.js.map
1
+ import NavMenu from "./NavMenu.torp";
2
+ import NavMenuButton from "./NavMenuButton.torp";
3
+ import NavMenuElement from "./NavMenuElement.torp";
4
+ import NavMenuGroup from "./NavMenuGroup.torp";
5
+ import NavMenuGroupHeader from "./NavMenuGroupHeader.torp";
6
+ import NavMenuLink from "./NavMenuLink.torp";
7
+ import NavMenuPopout from "./NavMenuPopout.torp";
8
+ import NavMenuPopoutContent from "./NavMenuPopoutContent.torp";
9
+ import NavMenuPopoutTrigger from "./NavMenuPopoutTrigger.torp";
10
+ import NavMenuSeparator from "./NavMenuSeparator.torp";
11
+ export { NavMenu, NavMenuButton, NavMenuElement, NavMenuGroup, NavMenuGroupHeader, NavMenuLink, NavMenuPopout, NavMenuPopoutContent, NavMenuPopoutTrigger, NavMenuSeparator };
@@ -1,19 +1,19 @@
1
- import type { ClassValue, StyleValue } from "@torpor/view";
2
- import { NotificationContextName, type NotificationContext } from "./NotificationTypes";
1
+ import type { Bindable, ClassValue, StyleValue } from "@torpor/view";
2
+ import { type NotificationContext, NotificationContextName } from "./NotificationTypes";
3
3
 
4
4
  interface NotificationProps {
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 notification is visible */
12
- visible?: boolean,
12
+ visible: Bindable<boolean | undefined>;
13
13
  /** The duration, in milliseconds, to keep the notification visible */
14
- duration?: number,
14
+ duration?: number;
15
15
  /** Raised when the notification has closed, either after the duration has elapsed, or when the user has pressed the close button */
16
- onclose?: () => void,
16
+ onclose?: () => void;
17
17
  }
18
18
 
19
19
  /**
@@ -26,25 +26,18 @@ export default function Notification($props: NotificationProps | undefined) {
26
26
  let defaultDuration = 5000;
27
27
 
28
28
  let $state = $watch({
29
- visible: false
29
+ visible: $props?.visible ?? true,
30
30
  });
31
31
 
32
- $run(() => {
33
- $state.visible = $props?.visible ?? true;
34
- });
35
- $run(() => {
36
- if ($props !== undefined) {
37
- $props.visible = $state.visible;
38
- }
39
- });
32
+ $bind($state, $props, "visible");
40
33
 
41
34
  // Set the context to pass down to items
42
35
  let context: NotificationContext = {
43
- closeNotification
36
+ closeNotification,
44
37
  };
45
38
  $context[NotificationContextName] = context;
46
39
 
47
- $mount(() => {
40
+ $onmount(() => {
48
41
  setTimeout(closeNotification, $props?.duration ?? defaultDuration);
49
42
  });
50
43
 
@@ -58,12 +51,7 @@ export default function Notification($props: NotificationProps | undefined) {
58
51
 
59
52
  @render {
60
53
  @if ($state.visible) {
61
- <div
62
- {$props?.id}
63
- class={["torp-notification", $props?.class]}
64
- {$props?.style}
65
- role="alert"
66
- >
54
+ <div {$props?.id} class={["torp-notification", $props?.class]} {$props?.style} role="alert">
67
55
  <slot />
68
56
  </div>
69
57
  }
@@ -1,13 +1,15 @@
1
1
  import type { ClassValue, StyleValue } from "@torpor/view";
2
- import { NotificationContextName, type NotificationContext } from "./NotificationTypes";
2
+ import { type NotificationContext, NotificationContextName } from "./NotificationTypes";
3
3
 
4
4
  interface NotificationCloseProps {
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
+ /** An ARIA label for the close button, for screen readers when the button contains no text */
12
+ ariaLabel?: string;
11
13
  }
12
14
 
13
15
  /**
@@ -31,6 +33,7 @@ export default function NotificationClose($props: NotificationCloseProps | undef
31
33
  class={["torp-notification-close", $props?.class]}
32
34
  {$props?.style}
33
35
  type="button"
36
+ aria-label={$props?.ariaLabel ?? "Dismiss"}
34
37
  onclick={handleClick}
35
38
  >
36
39
  <slot />
@@ -4,9 +4,9 @@ interface NotificationContainerProps {
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
  /**
@@ -15,11 +15,7 @@ interface NotificationContainerProps {
15
15
  */
16
16
  export default function NotificationContainer($props: NotificationContainerProps | undefined) {
17
17
  @render {
18
- <div
19
- {$props?.id}
20
- class={["torp-notification-container", $props?.class]}
21
- {$props?.style}
22
- >
18
+ <div {$props?.id} class={["torp-notification-container", $props?.class]} {$props?.style}>
23
19
  <slot />
24
20
  </div>
25
21
  }
@@ -4,9 +4,9 @@ interface NotificationContentProps {
4
4
  /** An ID for the root element */
5
5
  id?: string;
6
6
  /** Classes for the root element */
7
- class?: ClassValue,
7
+ class?: ClassValue;
8
8
  /** Styles for the root element */
9
- style?: StyleValue,
9
+ style?: StyleValue;
10
10
  }
11
11
 
12
12
  /**
@@ -14,11 +14,7 @@ interface NotificationContentProps {
14
14
  */
15
15
  export default function NotificationContent($props: NotificationContentProps | undefined) {
16
16
  @render {
17
- <div
18
- {$props?.id}
19
- class={["torp-notification-content", $props?.class]}
20
- {$props?.style}
21
- >
17
+ <div {$props?.id} class={["torp-notification-content", $props?.class]} {$props?.style}>
22
18
  <slot />
23
19
  </div>
24
20
  }
@@ -1,4 +1,4 @@
1
- export const NotificationContextName = 'Notification';
1
+ export const NotificationContextName = "Notification";
2
2
 
3
3
  export interface NotificationContext {
4
4
  closeNotification: () => void;
@@ -5,15 +5,15 @@ interface NotificationProps {
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 notification is visible */
12
- visible?: boolean,
12
+ visible: Bindable<boolean | undefined>;
13
13
  /** The duration, in milliseconds, to keep the notification visible */
14
- duration?: number,
14
+ duration?: number;
15
15
  /** Raised when the notification has closed, either after the duration has elapsed, or when the user has pressed the close button */
16
- onclose?: () => void,
16
+ onclose?: () => void;
17
17
  }
18
18
 
19
19
  /**
@@ -36,9 +36,11 @@ interface NotificationCloseProps {
36
36
  /** An ID for the root element */
37
37
  id?: string;
38
38
  /** Classes for the root element */
39
- class?: ClassValue,
39
+ class?: ClassValue;
40
40
  /** Styles for the root element */
41
- style?: StyleValue,
41
+ style?: StyleValue;
42
+ /** An ARIA label for the close button, for screen readers when the button contains no text */
43
+ ariaLabel?: string;
42
44
  }
43
45
 
44
46
  /**
@@ -58,9 +60,9 @@ interface NotificationContainerProps {
58
60
  /** An ID for the root element */
59
61
  id?: string;
60
62
  /** Classes for the root element */
61
- class?: ClassValue,
63
+ class?: ClassValue;
62
64
  /** Styles for the root element */
63
- style?: StyleValue,
65
+ style?: StyleValue;
64
66
  }
65
67
 
66
68
  /**
@@ -81,9 +83,9 @@ interface NotificationContentProps {
81
83
  /** An ID for the root element */
82
84
  id?: string;
83
85
  /** Classes for the root element */
84
- class?: ClassValue,
86
+ class?: ClassValue;
85
87
  /** Styles for the root element */
86
- style?: StyleValue,
88
+ style?: StyleValue;
87
89
  }
88
90
 
89
91
  /**
@@ -97,4 +99,5 @@ declare function NotificationContent(
97
99
  $slots?: Record<string, SlotRender>,
98
100
  ): void;
99
101
 
100
- export { Notification, NotificationClose, NotificationContainer, NotificationContent };
102
+ export { Notification, NotificationClose, NotificationContainer, NotificationContent };
103
+ export { default as showNotification } from "./showNotification";
@@ -1,36 +1,26 @@
1
- // src/Notification/Notification.torp
2
- import Notification_default from "./Notification.torp";
3
-
4
- // src/Notification/NotificationClose.torp
5
- import NotificationClose_default from "./NotificationClose.torp";
6
-
7
- // src/Notification/NotificationContainer.torp
8
- import NotificationContainer_default from "./NotificationContainer.torp";
9
-
10
- // src/Notification/NotificationContent.torp
11
- import NotificationContent_default from "./NotificationContent.torp";
12
-
13
- // src/Notification/showNotification.ts
14
1
  import { mount } from "@torpor/view";
2
+ import Notification from "./Notification.torp";
3
+ import NotificationClose from "./NotificationClose.torp";
4
+ import NotificationContainer from "./NotificationContainer.torp";
5
+ import NotificationContent from "./NotificationContent.torp";
6
+ //#region src/Notification/showNotification.ts
7
+ /**
8
+ * Shows a notification component in code.
9
+ * @param notification The notification component
10
+ * @param props The properties for the notification component
11
+ * @param target The target element to show the notification in
12
+ */
15
13
  function showNotification(notification, props, target) {
16
- if (!target) {
17
- target = document.getElementsByClassName("torp-notification-container")[0];
18
- if (!target) {
19
- throw new Error("No notification container found");
20
- }
21
- }
22
- var fragment = document.createDocumentFragment();
23
- while (target.firstChild) {
24
- fragment.append(target.firstChild);
25
- }
26
- mount(target, notification, props);
27
- target.prepend(fragment);
14
+ if (!target) {
15
+ target = document.getElementsByClassName("torp-notification-container")[0];
16
+ if (!target) throw new Error("No notification container found");
17
+ }
18
+ var fragment = document.createDocumentFragment();
19
+ while (target.firstChild) fragment.append(target.firstChild);
20
+ mount(target, notification, props);
21
+ target.prepend(fragment);
28
22
  }
29
- export {
30
- Notification_default as Notification,
31
- NotificationClose_default as NotificationClose,
32
- NotificationContainer_default as NotificationContainer,
33
- NotificationContent_default as NotificationContent,
34
- showNotification
35
- };
23
+ //#endregion
24
+ export { Notification, NotificationClose, NotificationContainer, NotificationContent, showNotification };
25
+
36
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Notification/showNotification.ts"],"sourcesContent":["import { mount } from \"@torpor/view\";\n\n/**\n * Shows a notification component in code.\n * @param notification The notification component\n * @param props The properties for the notification component\n * @param target The target element to show the notification in\n */\nexport default function showNotification(notification: any, props: any, target?: Element): void {\n\tif (!target) {\n\t\t// Put the notification in the first NotificationContainer, or the\n\t\t// document body if there are no NotificationContainers\n\t\ttarget = document.getElementsByClassName(\"torp-notification-container\")[0];\n\t\tif (!target) {\n\t\t\tthrow new Error(\"No notification container found\");\n\t\t}\n\t}\n\n\t// HACK: Should allow mounting in a non-empty container\n\t// Move existing nodes into a fragment, and add them back after mounting\n\tvar fragment = document.createDocumentFragment();\n\twhile (target.firstChild) {\n\t\tfragment.append(target.firstChild);\n\t}\n\n\t// Create the notification\n\tmount(target, notification, props);\n\n\ttarget.prepend(fragment);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,aAAa;AAQP,SAAR,iBAAkC,cAAmB,OAAY,QAAwB;AAC/F,MAAI,CAAC,QAAQ;AAGZ,aAAS,SAAS,uBAAuB,6BAA6B,EAAE,CAAC;AACzE,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM,iCAAiC;AAAA,IAClD;AAAA,EACD;AAIA,MAAI,WAAW,SAAS,uBAAuB;AAC/C,SAAO,OAAO,YAAY;AACzB,aAAS,OAAO,OAAO,UAAU;AAAA,EAClC;AAGA,QAAM,QAAQ,cAAc,KAAK;AAEjC,SAAO,QAAQ,QAAQ;AACxB;","names":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/Notification/showNotification.ts"],"sourcesContent":["import { mount } from \"@torpor/view\";\n\n/**\n * Shows a notification component in code.\n * @param notification The notification component\n * @param props The properties for the notification component\n * @param target The target element to show the notification in\n */\nexport default function showNotification(notification: any, props: any, target?: Element): void {\n\tif (!target) {\n\t\t// Put the notification in the first NotificationContainer, or the\n\t\t// document body if there are no NotificationContainers\n\t\ttarget = document.getElementsByClassName(\"torp-notification-container\")[0];\n\t\tif (!target) {\n\t\t\tthrow new Error(\"No notification container found\");\n\t\t}\n\t}\n\n\t// HACK: Should allow mounting in a non-empty container\n\t// Move existing nodes into a fragment, and add them back after mounting\n\tvar fragment = document.createDocumentFragment();\n\twhile (target.firstChild) {\n\t\tfragment.append(target.firstChild);\n\t}\n\n\t// Create the notification\n\tmount(target, notification, props);\n\n\ttarget.prepend(fragment);\n}\n"],"mappings":";;;;;;;;;;;;AAQA,SAAwB,iBAAiB,cAAmB,OAAY,QAAwB;CAC/F,IAAI,CAAC,QAAQ;EAGZ,SAAS,SAAS,uBAAuB,6BAA6B,CAAC,CAAC;EACxE,IAAI,CAAC,QACJ,MAAM,IAAI,MAAM,iCAAiC;CAEnD;CAIA,IAAI,WAAW,SAAS,uBAAuB;CAC/C,OAAO,OAAO,YACb,SAAS,OAAO,OAAO,UAAU;CAIlC,MAAM,QAAQ,cAAc,KAAK;CAEjC,OAAO,QAAQ,QAAQ;AACxB"}