@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.
Files changed (346) hide show
  1. package/README.md +83 -7
  2. package/dist/Accordion/Accordion.torp +43 -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 +6 -6
  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 +25 -4
  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 +70 -0
  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/{Chart → Charts}/GridLines.torp +7 -4
  46. package/dist/Charts/LineChart.torp +73 -0
  47. package/dist/{Chart → Charts}/PieChart.torp +14 -20
  48. package/dist/{Chart → Charts}/ScatterChart.torp +45 -38
  49. package/dist/{Chart → Charts}/SparkLine.torp +16 -19
  50. package/dist/{Chart → Charts}/XAxis.torp +18 -12
  51. package/dist/{Chart → Charts}/YAxis.torp +15 -9
  52. package/dist/Charts/index.d.ts +469 -0
  53. package/dist/Charts/index.js +17 -0
  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 +39 -52
  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 +5 -18
  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 +33 -30
  91. package/dist/Dialog/DialogBody.torp +5 -9
  92. package/dist/Dialog/DialogButton.torp +14 -11
  93. package/dist/Dialog/DialogFooter.torp +3 -7
  94. package/dist/Dialog/DialogHeader.torp +6 -10
  95. package/dist/Dialog/DialogTypes.ts +2 -2
  96. package/dist/Dialog/index.d.ts +28 -26
  97. package/dist/Dialog/index.js +6 -22
  98. package/dist/Disclosure/Disclosure.torp +18 -18
  99. package/dist/Disclosure/DisclosureContent.torp +5 -6
  100. package/dist/Disclosure/DisclosureHeader.torp +7 -11
  101. package/dist/Disclosure/DisclosureTrigger.torp +4 -5
  102. package/dist/Disclosure/DisclosureTypes.ts +1 -1
  103. package/dist/Disclosure/index.d.ts +14 -16
  104. package/dist/Disclosure/index.js +5 -18
  105. package/dist/Drawer/Drawer.torp +21 -51
  106. package/dist/Drawer/DrawerContent.torp +67 -13
  107. package/dist/Drawer/DrawerOverlay.torp +4 -4
  108. package/dist/Drawer/DrawerTrigger.torp +16 -4
  109. package/dist/Drawer/DrawerTypes.ts +4 -1
  110. package/dist/Drawer/index.d.ts +16 -20
  111. package/dist/Drawer/index.js +5 -18
  112. package/dist/FocusGroup/FocusGroup.torp +70 -0
  113. package/dist/FocusGroup/FocusGroupButton.torp +59 -0
  114. package/dist/FocusGroup/FocusGroupTypes.ts +14 -0
  115. package/dist/FocusGroup/index.d.ts +44 -0
  116. package/dist/FocusGroup/index.js +3 -0
  117. package/dist/Form/CheckBox.torp +28 -20
  118. package/dist/Form/Field.torp +17 -17
  119. package/dist/Form/File.torp +31 -22
  120. package/dist/Form/FileDrop.torp +187 -0
  121. package/dist/Form/Form.torp +24 -22
  122. package/dist/Form/FormTypes.ts +2 -0
  123. package/dist/Form/FormValues.torp +37 -0
  124. package/dist/Form/Hidden.torp +4 -12
  125. package/dist/Form/Input.torp +38 -32
  126. package/dist/Form/Label.torp +3 -3
  127. package/dist/Form/Message.torp +13 -5
  128. package/dist/Form/MessageSummary.torp +39 -0
  129. package/dist/Form/Option.torp +11 -7
  130. package/dist/Form/Select.torp +32 -28
  131. package/dist/Form/TextArea.torp +35 -31
  132. package/dist/Form/Toggle.torp +109 -0
  133. package/dist/Form/index.d.ts +198 -77
  134. package/dist/Form/index.js +16 -46
  135. package/dist/ListBox/ListBox.torp +374 -0
  136. package/dist/ListBox/ListBoxItem.torp +131 -0
  137. package/dist/ListBox/ListBoxSeparator.torp +29 -0
  138. package/dist/ListBox/ListBoxTypes.ts +41 -0
  139. package/dist/ListBox/LoadedListBoxItems.torp +41 -0
  140. package/dist/ListBox/index.d.ts +136 -0
  141. package/dist/ListBox/index.js +4 -0
  142. package/dist/MaskedInput/MaskedInput.torp +143 -0
  143. package/dist/MaskedInput/index.d.ts +52 -0
  144. package/dist/MaskedInput/index.js +2 -0
  145. package/dist/Menu/Menu.torp +90 -70
  146. package/dist/Menu/MenuButton.torp +17 -10
  147. package/dist/Menu/MenuCheck.torp +22 -18
  148. package/dist/Menu/MenuGroup.torp +4 -4
  149. package/dist/Menu/MenuIndicator.torp +5 -13
  150. package/dist/Menu/MenuPopout.torp +20 -50
  151. package/dist/Menu/MenuPopoutContent.torp +15 -66
  152. package/dist/Menu/MenuPopoutTrigger.torp +19 -100
  153. package/dist/Menu/MenuRadio.torp +25 -26
  154. package/dist/Menu/MenuRadioGroup.torp +25 -68
  155. package/dist/Menu/MenuSeparator.torp +3 -2
  156. package/dist/Menu/MenuTypes.ts +12 -21
  157. package/dist/Menu/index.d.ts +45 -51
  158. package/dist/Menu/index.js +12 -46
  159. package/dist/MenuBar/MenuBar.torp +31 -83
  160. package/dist/MenuBar/MenuBarItem.torp +34 -55
  161. package/dist/MenuBar/MenuBarItemContent.torp +15 -101
  162. package/dist/MenuBar/MenuBarItemTrigger.torp +20 -55
  163. package/dist/MenuBar/MenuBarTypes.ts +13 -12
  164. package/dist/MenuBar/index.d.ts +17 -19
  165. package/dist/MenuBar/index.js +5 -18
  166. package/dist/Modal/Modal.torp +28 -48
  167. package/dist/Modal/ModalContent.torp +21 -44
  168. package/dist/Modal/ModalOverlay.torp +4 -4
  169. package/dist/Modal/ModalTrigger.torp +16 -32
  170. package/dist/Modal/ModalTypes.ts +6 -17
  171. package/dist/Modal/index.d.ts +17 -29
  172. package/dist/Modal/index.js +29 -28
  173. package/dist/Modal/index.js.map +1 -1
  174. package/dist/Modal/showPrompt.ts +2 -2
  175. package/dist/NavMenu/NavMenu.torp +22 -104
  176. package/dist/NavMenu/NavMenuButton.torp +10 -8
  177. package/dist/NavMenu/NavMenuElement.torp +6 -7
  178. package/dist/NavMenu/NavMenuGroup.torp +5 -5
  179. package/dist/NavMenu/NavMenuGroupHeader.torp +5 -8
  180. package/dist/NavMenu/NavMenuLink.torp +7 -10
  181. package/dist/NavMenu/NavMenuPopout.torp +16 -61
  182. package/dist/NavMenu/NavMenuPopoutContent.torp +14 -73
  183. package/dist/NavMenu/NavMenuPopoutTrigger.torp +47 -0
  184. package/dist/NavMenu/NavMenuSeparator.torp +3 -6
  185. package/dist/NavMenu/NavMenuTypes.ts +6 -15
  186. package/dist/NavMenu/index.d.ts +55 -55
  187. package/dist/NavMenu/index.js +11 -42
  188. package/dist/Notification/Notification.torp +12 -24
  189. package/dist/Notification/NotificationClose.torp +6 -3
  190. package/dist/Notification/NotificationContainer.torp +3 -7
  191. package/dist/Notification/NotificationContent.torp +3 -7
  192. package/dist/Notification/NotificationTypes.ts +1 -1
  193. package/dist/Notification/index.d.ts +15 -12
  194. package/dist/Notification/index.js +22 -32
  195. package/dist/Notification/index.js.map +1 -1
  196. package/dist/NumberInput/NumberInput.torp +255 -0
  197. package/dist/NumberInput/index.d.ts +44 -0
  198. package/dist/NumberInput/index.js +2 -0
  199. package/dist/Pagination/Pagination.torp +152 -0
  200. package/dist/Pagination/PaginationItem.torp +137 -0
  201. package/dist/Pagination/PaginationTypes.ts +22 -0
  202. package/dist/Pagination/buildPages.ts +61 -0
  203. package/dist/Pagination/index.d.ts +63 -0
  204. package/dist/Pagination/index.js +3 -0
  205. package/dist/Popover/Popover.torp +39 -52
  206. package/dist/Popover/PopoverContent.torp +27 -76
  207. package/dist/Popover/PopoverHover.torp +90 -0
  208. package/dist/Popover/PopoverTrigger.torp +17 -40
  209. package/dist/Popover/PopoverTypes.ts +5 -18
  210. package/dist/Popover/index.d.ts +40 -25
  211. package/dist/Popover/index.js +18 -18
  212. package/dist/Popover/index.js.map +1 -1
  213. package/dist/Progress/Progress.torp +88 -0
  214. package/dist/Progress/index.d.ts +37 -0
  215. package/dist/Progress/index.js +2 -0
  216. package/dist/Rating/Rating.torp +225 -0
  217. package/dist/Rating/index.d.ts +44 -0
  218. package/dist/Rating/index.js +2 -0
  219. package/dist/SegmentedControl/SegmentedControl.torp +233 -0
  220. package/dist/SegmentedControl/SegmentedControlTypes.ts +26 -0
  221. package/dist/SegmentedControl/SegmentedItem.torp +78 -0
  222. package/dist/SegmentedControl/index.d.ts +74 -0
  223. package/dist/SegmentedControl/index.js +3 -0
  224. package/dist/SelectBox/SelectBox.torp +190 -0
  225. package/dist/SelectBox/SelectBoxContent.torp +107 -0
  226. package/dist/SelectBox/SelectBoxTrigger.torp +141 -0
  227. package/dist/SelectBox/SelectBoxTypes.ts +33 -0
  228. package/dist/SelectBox/index.d.ts +112 -0
  229. package/dist/SelectBox/index.js +5 -0
  230. package/dist/Slider/Slider.torp +248 -0
  231. package/dist/Slider/index.d.ts +45 -0
  232. package/dist/Slider/index.js +2 -0
  233. package/dist/Splitter/Splitter.torp +156 -0
  234. package/dist/Splitter/SplitterHandle.torp +161 -0
  235. package/dist/Splitter/SplitterPane.torp +63 -0
  236. package/dist/Splitter/SplitterTypes.ts +31 -0
  237. package/dist/Splitter/index.d.ts +103 -0
  238. package/dist/Splitter/index.js +4 -0
  239. package/dist/Stepper/Stepper.torp +146 -0
  240. package/dist/Stepper/StepperMarker.torp +24 -0
  241. package/dist/Stepper/StepperNext.torp +44 -0
  242. package/dist/Stepper/StepperPrevious.torp +44 -0
  243. package/dist/Stepper/StepperStep.torp +90 -0
  244. package/dist/Stepper/StepperTypes.ts +30 -0
  245. package/dist/Stepper/index.d.ts +149 -0
  246. package/dist/Stepper/index.js +6 -0
  247. package/dist/TabGroup/TabContent.torp +6 -6
  248. package/dist/TabGroup/TabGroup.torp +97 -113
  249. package/dist/TabGroup/TabGroupTypes.ts +3 -3
  250. package/dist/TabGroup/TabHeader.torp +23 -19
  251. package/dist/TabGroup/TabList.torp +8 -21
  252. package/dist/TabGroup/TabTrigger.torp +6 -7
  253. package/dist/TabGroup/index.d.ts +26 -26
  254. package/dist/TabGroup/index.js +6 -22
  255. package/dist/TagInput/TagInput.torp +378 -0
  256. package/dist/TagInput/index.d.ts +48 -0
  257. package/dist/TagInput/index.js +2 -0
  258. package/dist/TimePicker/TimePicker.torp +462 -0
  259. package/dist/TimePicker/index.d.ts +53 -0
  260. package/dist/TimePicker/index.js +2 -0
  261. package/dist/ToolBar/ToolBar.torp +117 -0
  262. package/dist/ToolBar/ToolBarButton.torp +56 -0
  263. package/dist/ToolBar/ToolBarElement.torp +51 -0
  264. package/dist/ToolBar/ToolBarPopout.torp +45 -0
  265. package/dist/ToolBar/ToolBarPopoutContent.torp +34 -0
  266. package/dist/ToolBar/ToolBarPopoutTrigger.torp +47 -0
  267. package/dist/ToolBar/ToolBarSeparator.torp +21 -0
  268. package/dist/ToolBar/ToolBarTypes.ts +28 -0
  269. package/dist/ToolBar/index.d.ts +210 -0
  270. package/dist/ToolBar/index.js +8 -0
  271. package/dist/Tree/Tree.torp +395 -0
  272. package/dist/Tree/TreeItem.torp +176 -0
  273. package/dist/Tree/TreeItemChildren.torp +60 -0
  274. package/dist/Tree/TreeItemContent.torp +46 -0
  275. package/dist/Tree/TreeItemLabel.torp +94 -0
  276. package/dist/Tree/TreeItemTrigger.torp +78 -0
  277. package/dist/Tree/TreeLoadedChildren.torp +122 -0
  278. package/dist/Tree/TreeTypes.ts +63 -0
  279. package/dist/Tree/index.d.ts +262 -0
  280. package/dist/Tree/index.js +7 -0
  281. package/dist/icons/ChevronDoubleLeft.torp +19 -0
  282. package/dist/icons/ChevronDoubleRight.torp +19 -0
  283. package/dist/icons/index.d.ts +61 -1
  284. package/dist/icons/index.js +17 -58
  285. package/dist/loader-DEeG5vFY.js +44 -0
  286. package/dist/loader-DEeG5vFY.js.map +1 -0
  287. package/dist/motion/index.d.ts +12 -8
  288. package/dist/motion/index.d.ts.map +1 -0
  289. package/dist/motion/index.js +72 -88
  290. package/dist/motion/index.js.map +1 -1
  291. package/dist/mount/draggable.ts +63 -0
  292. package/dist/mount/dropTarget.ts +108 -0
  293. package/dist/mount/hoverTrigger.ts +1 -1
  294. package/dist/utils/$handle.ts +23 -0
  295. package/dist/utils/LoadedItems.torp +47 -0
  296. package/dist/utils/PopoutClickTrigger.torp +99 -0
  297. package/dist/utils/PopoutTypes.ts +82 -0
  298. package/dist/utils/SubmenuPopout.torp +89 -0
  299. package/dist/utils/SubmenuPopoutContent.torp +87 -0
  300. package/dist/utils/SubmenuPopoutTrigger.torp +160 -0
  301. package/dist/utils/chartColors.ts +13 -13
  302. package/dist/utils/chartLayout.ts +143 -0
  303. package/dist/utils/chartUtils.ts +1 -1
  304. package/dist/utils/colorUtils.ts +103 -0
  305. package/dist/utils/createItemGroup.ts +152 -0
  306. package/dist/utils/dateUtils.ts +8 -7
  307. package/dist/utils/documentEvents.ts +4 -4
  308. package/dist/utils/dragState.ts +86 -0
  309. package/dist/utils/focusGroup.ts +204 -0
  310. package/dist/utils/focusItem.ts +44 -0
  311. package/dist/utils/formField.ts +70 -0
  312. package/dist/utils/hoverOpen.ts +50 -0
  313. package/dist/utils/hoverReveal.ts +194 -0
  314. package/dist/utils/loader.ts +113 -0
  315. package/dist/utils/maskUtils.ts +98 -0
  316. package/dist/utils/popoutContent.ts +137 -0
  317. package/dist/utils/reorderList.ts +52 -0
  318. package/package.json +116 -25
  319. package/dist/Accordion/index.js.map +0 -1
  320. package/dist/Breadcrumb/index.js.map +0 -1
  321. package/dist/Calendar/index.js.map +0 -1
  322. package/dist/Chart/BarChart.torp +0 -159
  323. package/dist/Chart/LineChart.torp +0 -196
  324. package/dist/Chart/index.d.ts +0 -220
  325. package/dist/Chart/index.js +0 -34
  326. package/dist/Chart/index.js.map +0 -1
  327. package/dist/Contextual/index.js.map +0 -1
  328. package/dist/Dialog/index.js.map +0 -1
  329. package/dist/Disclosure/index.js.map +0 -1
  330. package/dist/Drawer/index.js.map +0 -1
  331. package/dist/Form/index.js.map +0 -1
  332. package/dist/Menu/index.js.map +0 -1
  333. package/dist/MenuBar/index.js.map +0 -1
  334. package/dist/NavMenu/NavMenuPopoutButton.torp +0 -129
  335. package/dist/NavMenu/index.js.map +0 -1
  336. package/dist/TabGroup/index.js.map +0 -1
  337. package/dist/icons/index.js.map +0 -1
  338. package/dist/index.d.ts +0 -19
  339. package/dist/metafile-esm.json +0 -1
  340. package/dist/motion/fade.ts +0 -16
  341. package/dist/motion/grow.ts +0 -23
  342. package/dist/motion/measure.ts +0 -28
  343. package/dist/motion/slide.ts +0 -45
  344. package/dist/mount/index.d.ts +0 -2
  345. package/dist/utils/index.d.ts +0 -2
  346. /package/dist/{Chart → Charts}/DataSeries.ts +0 -0
@@ -1,196 +0,0 @@
1
- import type { ClassValue, StyleValue } from "@torpor/view";
2
-
3
- import XAxis from "./XAxis.torp";
4
- import YAxis from "./YAxis.torp";
5
- import GridLines from "./GridLines.torp";
6
- import {
7
- calculateMaxValue,
8
- calculateStepValue,
9
- calculateStepLabels,
10
- calculateItemWidth,
11
- calculateValueHeight,
12
- calculateChartBottom,
13
- calculateChartLeft
14
- } from "../utils/chartUtils";
15
- import { chartColors } from "../utils/chartColors";
16
-
17
- import type DataSeries from "./DataSeries";
18
-
19
- interface LineChartProps {
20
- /** An ID for the root element */
21
- id?: string;
22
- /** Classes for the root element */
23
- class?: ClassValue,
24
- /** Styles for the root element */
25
- style?: StyleValue,
26
- series: DataSeries[],
27
- height?: number,
28
- width?: number,
29
- xLabel?: string,
30
- yLabel?: string,
31
- maxValue?: number,
32
- stepCount?: number,
33
- stepValue?: number,
34
- showPoints?: boolean,
35
- hideXAxis?: boolean,
36
- hideYAxis?: boolean,
37
- showHLines?: boolean,
38
- showVLines?: boolean,
39
- }
40
-
41
- export default function LineChart($props: LineChartProps) {
42
- const defaultHeight = 200;
43
- const defaultWidth = 400;
44
-
45
- let container: HTMLElement;
46
- let measurer: SVGTextElement;
47
-
48
- let $state = $watch({
49
- textWidth: 0,
50
- textHeight: 0,
51
- get labels() {
52
- return $props.series.map((s) => s.name);
53
- },
54
- get calculatedHeight() {
55
- return $props.height || defaultHeight;
56
- },
57
- get calculatedWidth() {
58
- return $props.width || container?.clientWidth || defaultWidth;
59
- },
60
- get maxValue() {
61
- return $props.maxValue || calculateMaxValue($props.series);
62
- },
63
- get calculatedStepValue() {
64
- return $props.stepValue || calculateStepValue($state.maxValue, $props.stepCount);
65
- },
66
- get stepLabels() {
67
- return calculateStepLabels($props.stepCount || 2, $state.calculatedStepValue);
68
- },
69
- get itemWidth() {
70
- return calculateItemWidth($state.calculatedWidth, $state.chartLeft, $state.labels);
71
- },
72
- get valueHeight() {
73
- return calculateValueHeight($state.chartBottom, $state.textHeight, $state.calculatedStepValue, $props.stepCount || 2);
74
- },
75
- get chartBottom() {
76
- return calculateChartBottom($props.xLabel ?? "", $state.calculatedHeight, $state.textHeight);
77
- },
78
- get chartLeft() {
79
- return calculateChartLeft($state.stepLabels, $props.yLabel ?? "", $state.textHeight, $state.textWidth);
80
- },
81
- get pointSeries() {
82
- return buildPointSeries(
83
- $props.series,
84
- $state.chartLeft,
85
- $state.chartBottom,
86
- $state.itemWidth,
87
- $state.valueHeight
88
- );
89
- }
90
- });
91
-
92
- $mount(() => {
93
- // HACK: Wait until the measurer is really available
94
- setTimeout(() => {
95
- const bbox = measurer.getBBox();
96
- $state.textWidth = bbox.width;
97
- $state.textHeight = bbox.height * 1.5;
98
- measurer.remove();
99
- }, 1);
100
- });
101
-
102
- function buildPointSeries(
103
- theSeries: DataSeries[],
104
- theChartLeft: number,
105
- theChartBottom: number,
106
- theItemWidth: number,
107
- theValueHeight: number
108
- ): { x: number; y: number }[][] {
109
- return theSeries.map((series) => {
110
- return series.data.map((value, i) => {
111
- const x = +(theChartLeft + i * theItemWidth + theItemWidth / 2).toFixed(2);
112
- const y = +(theChartBottom - value * theValueHeight).toFixed(2);
113
- return { x, y };
114
- });
115
- });
116
- }
117
-
118
- @render {
119
- <div
120
- {$props?.id}
121
- class={["torp-line-chart", $props?.class]}
122
- {$props?.style}
123
- &ref={container}
124
- >
125
- <svg version="1.1" width={$state.calculatedWidth} height={$state.calculatedHeight}>
126
- <g>
127
- <text &ref={measurer} x="-999" y="-999">8</text>
128
-
129
- @if ($state.textWidth && $state.textHeight) {
130
- <XAxis
131
- showAxis={!$props.hideXAxis}
132
- height={$state.calculatedHeight}
133
- width={$state.calculatedWidth}
134
- {$state.itemWidth}
135
- {$state.textHeight}
136
- xLabel={$props.xLabel ?? ""}
137
- {$state.labels}
138
- stepLabels={[]}
139
- stepValue={0}
140
- {$state.chartLeft}
141
- {$state.chartBottom}
142
- />
143
- <YAxis
144
- showAxis={!$props.hideYAxis}
145
- {$state.valueHeight}
146
- {$state.textHeight}
147
- yLabel={$props.yLabel ?? ""}
148
- {$state.stepLabels}
149
- stepValue={$state.calculatedStepValue}
150
- {$state.chartLeft}
151
- {$state.chartBottom}
152
- />
153
- <GridLines
154
- {$props.showHLines}
155
- {$props.showVLines}
156
- width={$state.calculatedWidth}
157
- {$state.labels}
158
- xStepValue={0}
159
- xStepLabels={[]}
160
- yStepValue={$state.calculatedStepValue}
161
- yStepLabels={[]}
162
- {$state.stepLabels}
163
- {$state.itemWidth}
164
- {$state.valueHeight}
165
- {$state.chartLeft}
166
- {$state.chartBottom}
167
- type="line"
168
- />
169
- @for (let [i, series] of $props.series.entries()) {
170
- <polyline
171
- points={$state.pointSeries[i].map((p) => `${p.x},${p.y}`).join(" ")}
172
- stroke={series.color || chartColors[i % chartColors.length]}
173
- stroke-width="2"
174
- fill="none"
175
- />
176
- @if ($props.showPoints) {
177
- @for (let [j, point] of $state.pointSeries[i].entries()) {
178
- <circle
179
- cx={point.x}
180
- cy={point.y}
181
- r="4"
182
- stroke={series.color || chartColors[i % chartColors.length]}
183
- stroke-width="2"
184
- fill="white"
185
- >
186
- <title>{`${[series.name, $state.labels[j], series.data[j]].filter(Boolean).join("\n")}`}</title>
187
- </circle>
188
- }
189
- }
190
- }
191
- }
192
- </g>
193
- </svg>
194
- </div>
195
- }
196
- }
@@ -1,220 +0,0 @@
1
- import { type SlotRender } from "@torpor/view";
2
-
3
-
4
- interface BarChartProps {
5
- /** An ID for the root element */
6
- id?: string;
7
- /** Classes for the root element */
8
- class?: ClassValue,
9
- /** Styles for the root element */
10
- style?: StyleValue,
11
- series: DataSeries[],
12
- height?: number,
13
- width?: number,
14
- xLabel?: string,
15
- yLabel?: string,
16
- maxValue?: number,
17
- stepCount?: number,
18
- stepValue?: number,
19
- hideXAxis?: boolean,
20
- hideYAxis?: boolean,
21
- showHLines?: boolean,
22
- showVLines?: boolean,
23
- }
24
-
25
- declare function BarChart(
26
- $parent: ParentNode,
27
- $anchor: Node | null,
28
- $props: BarChartProps,
29
- $context?: Record<PropertyKey, any>,
30
- $slots?: Record<string, SlotRender>,
31
- ): void;
32
-
33
-
34
-
35
- interface GridLinesProps {
36
- /** An ID for the root element */
37
- id?: string;
38
- /** Classes for the root element */
39
- class?: ClassValue,
40
- /** Styles for the root element */
41
- style?: StyleValue,
42
- showHLines?: boolean,
43
- showVLines?: boolean,
44
- width: number;
45
- labels: string[];
46
- xStepValue: number;
47
- xStepLabels: number[];
48
- yStepValue: number;
49
- yStepLabels: number[];
50
- itemWidth: number;
51
- valueHeight: number;
52
- chartLeft: number;
53
- chartBottom: number;
54
- type: string;
55
- }
56
-
57
- declare function GridLines(
58
- $parent: ParentNode,
59
- $anchor: Node | null,
60
- $props: GridLinesProps,
61
- $context?: Record<PropertyKey, any>,
62
- $slots?: Record<string, SlotRender>,
63
- ): void;
64
-
65
-
66
-
67
- interface LineChartProps {
68
- /** An ID for the root element */
69
- id?: string;
70
- /** Classes for the root element */
71
- class?: ClassValue,
72
- /** Styles for the root element */
73
- style?: StyleValue,
74
- series: DataSeries[],
75
- height?: number,
76
- width?: number,
77
- xLabel?: string,
78
- yLabel?: string,
79
- maxValue?: number,
80
- stepCount?: number,
81
- stepValue?: number,
82
- showPoints?: boolean,
83
- hideXAxis?: boolean,
84
- hideYAxis?: boolean,
85
- showHLines?: boolean,
86
- showVLines?: boolean,
87
- }
88
-
89
- declare function LineChart(
90
- $parent: ParentNode,
91
- $anchor: Node | null,
92
- $props: LineChartProps,
93
- $context?: Record<PropertyKey, any>,
94
- $slots?: Record<string, SlotRender>,
95
- ): void;
96
-
97
-
98
-
99
- interface PieChartProps {
100
- /** An ID for the root element */
101
- id?: string;
102
- /** Classes for the root element */
103
- class?: ClassValue,
104
- /** Styles for the root element */
105
- style?: StyleValue,
106
- data: PieData[],
107
- size?: number,
108
- radius?: number,
109
- cutout?: number,
110
- }
111
-
112
- declare function PieChart(
113
- $parent: ParentNode,
114
- $anchor: Node | null,
115
- $props: PieChartProps,
116
- $context?: Record<PropertyKey, any>,
117
- $slots?: Record<string, SlotRender>,
118
- ): void;
119
-
120
-
121
-
122
- interface ScatterChartProps {
123
- /** An ID for the root element */
124
- id?: string;
125
- /** Classes for the root element */
126
- class?: ClassValue,
127
- /** Styles for the root element */
128
- style?: StyleValue,
129
- series: DataSeries[],
130
- height?: number,
131
- width?: number,
132
- xLabel?: string,
133
- yLabel?: string,
134
- xStepCount?: number,
135
- xStepValue?: number,
136
- yStepCount?: number,
137
- yStepValue?: number,
138
- hideXAxis?: boolean,
139
- hideYAxis?: boolean,
140
- showHLines?: boolean,
141
- showVLines?: boolean,
142
- }
143
-
144
- declare function ScatterChart(
145
- $parent: ParentNode,
146
- $anchor: Node | null,
147
- $props: ScatterChartProps,
148
- $context?: Record<PropertyKey, any>,
149
- $slots?: Record<string, SlotRender>,
150
- ): void;
151
-
152
-
153
-
154
- interface SparkLineProps {
155
- /** An ID for the root element */
156
- id?: string;
157
- /** Classes for the root element */
158
- class?: ClassValue,
159
- /** Styles for the root element */
160
- style?: StyleValue,
161
- data: number[];
162
- color?: string,
163
- height?: number,
164
- width?: number,
165
- }
166
-
167
- declare function SparkLine(
168
- $parent: ParentNode,
169
- $anchor: Node | null,
170
- $props: SparkLineProps,
171
- $context?: Record<PropertyKey, any>,
172
- $slots?: Record<string, SlotRender>,
173
- ): void;
174
-
175
-
176
-
177
- interface XAxisProps {
178
- showAxis: boolean,
179
- height: number,
180
- width: number,
181
- itemWidth: number,
182
- textHeight: number,
183
- xLabel: string,
184
- labels: string[] ,
185
- stepLabels:number[] ,
186
- stepValue: number,
187
- chartLeft: number,
188
- chartBottom: number,
189
- }
190
-
191
- declare function XAxis(
192
- $parent: ParentNode,
193
- $anchor: Node | null,
194
- $props: XAxisProps,
195
- $context?: Record<PropertyKey, any>,
196
- $slots?: Record<string, SlotRender>,
197
- ): void;
198
-
199
-
200
-
201
- interface YAxisProps {
202
- showAxis: boolean,
203
- valueHeight: number,
204
- textHeight: number,
205
- yLabel: string,
206
- stepLabels: number[],
207
- stepValue: number,
208
- chartLeft: number,
209
- chartBottom: number,
210
- }
211
-
212
- declare function YAxis(
213
- $parent: ParentNode,
214
- $anchor: Node | null,
215
- $props: YAxisProps,
216
- $context?: Record<PropertyKey, any>,
217
- $slots?: Record<string, SlotRender>,
218
- ): void;
219
-
220
- export { BarChart, GridLines, LineChart, PieChart, ScatterChart, SparkLine, XAxis, YAxis };
@@ -1,34 +0,0 @@
1
- // src/Chart/BarChart.torp
2
- import BarChart_default from "./BarChart.torp";
3
-
4
- // src/Chart/GridLines.torp
5
- import GridLines_default from "./GridLines.torp";
6
-
7
- // src/Chart/LineChart.torp
8
- import LineChart_default from "./LineChart.torp";
9
-
10
- // src/Chart/PieChart.torp
11
- import PieChart_default from "./PieChart.torp";
12
-
13
- // src/Chart/ScatterChart.torp
14
- import ScatterChart_default from "./ScatterChart.torp";
15
-
16
- // src/Chart/SparkLine.torp
17
- import SparkLine_default from "./SparkLine.torp";
18
-
19
- // src/Chart/XAxis.torp
20
- import XAxis_default from "./XAxis.torp";
21
-
22
- // src/Chart/YAxis.torp
23
- import YAxis_default from "./YAxis.torp";
24
- export {
25
- BarChart_default as BarChart,
26
- GridLines_default as GridLines,
27
- LineChart_default as LineChart,
28
- PieChart_default as PieChart,
29
- ScatterChart_default as ScatterChart,
30
- SparkLine_default as SparkLine,
31
- XAxis_default as XAxis,
32
- YAxis_default as YAxis
33
- };
34
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,129 +0,0 @@
1
- import type { ClassValue, StyleValue } from "@torpor/view";
2
- import {
3
- NavMenuContextName,
4
- NavMenuPopoutContextName,
5
- type NavMenuContext,
6
- type NavMenuPopoutContext,
7
- } from "./NavMenuTypes";
8
-
9
- interface NavMenuPopoutButtonProps {
10
- /** An ID for the root element */
11
- id?: string;
12
- /** Classes for the root element */
13
- class?: ClassValue,
14
- /** Styles for the root element */
15
- style?: StyleValue,
16
- /** The delay before showing the popout, in milliseconds */
17
- hoverDelay?: number,
18
- /** Whether this button is disabled */
19
- disabled?: boolean,
20
- }
21
-
22
- /**
23
- * A button that is placed in a NavMenu and signals a response by a user.
24
- *
25
- */
26
- export default function NavMenuPopoutButton($props: NavMenuPopoutButtonProps | undefined) {
27
- let defaultHoverDelay = 500;
28
-
29
- let button: HTMLButtonElement;
30
- let interval: NodeJS.Timeout | undefined;
31
-
32
- // Get stuff out of the NavMenuContext
33
- const menuContext = $context[NavMenuContextName] as NavMenuContext;
34
- if (!menuContext) {
35
- throw new Error("NavMenuPopoutButton must be contained within a NavMenu");
36
- }
37
- const { registerItem, handleItemKey, handleItemFocus } = menuContext;
38
-
39
- // Get stuff out of the NavMenuPopoutContext
40
- const popoutContext = $context[NavMenuPopoutContextName] as NavMenuPopoutContext;
41
- if (!popoutContext) {
42
- throw new Error("NavMenuPopoutButton must be contained within a NavMenuPopout");
43
- }
44
- let $state = popoutContext.state;
45
-
46
- // Register this item with the parent NavMenu and store the index
47
- const { index } = registerItem(setFocused);
48
-
49
- // TODO: $mount should be run AFTER the button has been set
50
- //$mount(() => {
51
- // // Set the anchor element to the button when it exists
52
- // popoutContext.anchorElement = button;
53
- //});
54
-
55
- function setFocused() {
56
- button.focus();
57
- }
58
-
59
- function handleClick() {
60
- $state.visible = true;
61
- }
62
-
63
- function handlePopoutKey(e: KeyboardEvent) {
64
- switch (e.key) {
65
- case "Right":
66
- case "ArrowRight":
67
- // TODO: This should be based on what side the menu shows on
68
- e.preventDefault();
69
- $state.visible = true;
70
- break;
71
- default:
72
- handleItemKey(e);
73
- }
74
- }
75
-
76
- function handleMouseEnter() {
77
- if ($props?.disabled) return;
78
-
79
- // Handle the hover after a delay
80
- if (!interval) {
81
- interval = setTimeout(() => $state.visible = true, $props?.hoverDelay ?? defaultHoverDelay);
82
- }
83
- }
84
-
85
- function handleMouseLeave() {
86
- if ($props?.disabled) return;
87
-
88
- // Prevent short hovers or touches from firing the event
89
- if (interval) {
90
- clearTimeout(interval);
91
- interval = undefined;
92
- }
93
- }
94
-
95
- function handleMouseMove() {
96
- if ($props?.disabled) return;
97
-
98
- // Reset the interval on mouse move
99
- if (interval) {
100
- clearTimeout(interval);
101
- interval = setTimeout(() => $state.visible = true, $props?.hoverDelay ?? defaultHoverDelay);
102
- }
103
- }
104
-
105
- @render {
106
- <button
107
- {$props?.id}
108
- class={["torp-nav-menu-popout-button", $props?.class]}
109
- {$props?.style}
110
- type="button"
111
- {$props?.disabled}
112
- role="menuitem"
113
- aria-haspopup="true"
114
- aria-expanded={$state.visible.toString()}
115
- aria-disabled={$props?.disabled ? "true" : undefined}
116
- data-disabled={$props?.disabled ? "true" : undefined}
117
- onkeydown={handlePopoutKey}
118
- onclick={handleClick}
119
- onfocus={() => handleItemFocus(index)}
120
- onmouseenter={handleMouseEnter}
121
- onmouseleave={handleMouseLeave}
122
- onmousemove={handleMouseMove}
123
- &ref={button}
124
- onmount={(el) => popoutContext.anchorElement = el }
125
- >
126
- <slot />
127
- </button>
128
- }
129
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts DELETED
@@ -1,19 +0,0 @@
1
- import { Animation } from '@torpor/view';
2
-
3
- declare function fade(_el: HTMLElement, options?: number | KeyframeAnimationOptions): Animation;
4
-
5
- declare function grow(el: HTMLElement, options?: number | KeyframeAnimationOptions): Animation;
6
-
7
- /**
8
- * Measures an element before it is added to the DOM
9
- * @param el The element to measure
10
- * @param fn The function to use to get the desired measurement (e.g. el.offsetHeight)
11
- */
12
- declare function measure(el: HTMLElement, fn: (_: HTMLElement) => number): number;
13
-
14
- interface Options extends KeyframeAnimationOptions {
15
- side: "left" | "right" | "top" | "bottom";
16
- }
17
- declare function slide(el: HTMLElement, options?: Options): Animation;
18
-
19
- export { fade, grow, measure, slide };