@torpor/ui 0.4.0 → 1.0.1

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 +85 -0
  43. package/dist/Charts/ChartYAxis.torp +107 -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 +14 -11
  51. package/dist/Charts/YAxis.torp +10 -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 +120 -0
  60. package/dist/ComboBox/ComboBoxInput.torp +161 -0
  61. package/dist/ComboBox/ComboBoxTrigger.torp +49 -0
  62. package/dist/ComboBox/ComboBoxTypes.ts +39 -0
  63. package/dist/ComboBox/index.d.ts +154 -0
  64. package/dist/ComboBox/index.js +6 -0
  65. package/dist/CommandPalette/CommandPalette.torp +223 -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 +315 -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 +70 -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 +49 -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 +245 -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 +70 -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
@@ -0,0 +1,262 @@
1
+ import { type SlotRender } from "@torpor/view";
2
+
3
+
4
+ interface TreeProps {
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
+ /** The value(s) of the expanded TreeItem(s) */
12
+ expanded: Bindable<string | string[] | undefined>;
13
+ /** Whether a single TreeItem or multiple TreeItems can be selected at the same time */
14
+ type?: "single" | "multiple";
15
+ /** The value of the selected TreeItem, or an array of values if the type is "multiple" */
16
+ value: Bindable<string | string[] | undefined>;
17
+ /** If set to true, the user cannot interact with any items in the Tree */
18
+ disabled?: boolean;
19
+ /** The aria-label for the root element */
20
+ ariaLabel?: string | undefined;
21
+ /**
22
+ * Reads the children of an item from the network (or anywhere async) when
23
+ * the item is first expanded. Receives a request with `item` (the parent
24
+ * item's value). Items load automatically when they set the TreeItem
25
+ * `hasChildren` prop; a TreeItem `load` prop overrides this per item.
26
+ */
27
+ load?: Loader<any, TreeLoadRequest>;
28
+ /** Called after each successful child load with the normalized result */
29
+ onload?: (result: LoadResult, item: string | undefined) => void;
30
+ /** Extracts the display text for a loaded item (defaults to `label ?? text ?? item`) */
31
+ getItemLabel?: (item: any) => any;
32
+ /** Extracts the value for a loaded item (defaults to `value ?? id`) */
33
+ getItemValue?: (item: any) => any;
34
+ /** Raised when the expanded item(s) have changed */
35
+ onexpand?: (value: string | string[]) => void;
36
+ /** Raised when the selected item(s) have changed */
37
+ /** The name of the component's form data field */
38
+ name?: string;
39
+ onchange?: (value: string | string[] | undefined) => void;
40
+ }
41
+
42
+ /**
43
+ * A hierarchical list of items that can be expanded and collapsed to reveal nested content,
44
+ * with support for selecting items.
45
+ *
46
+ * See [the WAI ARIA guidelines for Tree Views](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/).
47
+ *
48
+ * The structure of a Tree is:
49
+ *
50
+ * ```
51
+ * <Tree>
52
+ * <TreeItem>
53
+ * <TreeItemContent>
54
+ * <TreeItemTrigger />
55
+ * <TreeItemLabel />
56
+ * </TreeItemContent>
57
+ * <TreeItemChildren>
58
+ * <TreeItem />
59
+ * </TreeItemChildren>
60
+ * </TreeItem>
61
+ * </Tree>
62
+ * ```
63
+ */
64
+ declare function Tree(
65
+ $parent: ParentNode,
66
+ $anchor: Node | null,
67
+ $props: TreeProps | undefined,
68
+ $context?: Record<PropertyKey, any>,
69
+ $slots?: Record<string, SlotRender>,
70
+ ): void;
71
+
72
+
73
+
74
+ interface TreeItemProps {
75
+ /** An ID for the root element */
76
+ id?: string;
77
+ /** Classes for the root element */
78
+ class?: ClassValue;
79
+ /** Styles for the root element */
80
+ style?: StyleValue;
81
+ /** A value for the item */
82
+ value?: string;
83
+ /**
84
+ * Declares that the item has children that are not slotted in. When a
85
+ * `load` function is available (this item's, or the tree's) they are
86
+ * loaded from the network when the item is first expanded.
87
+ */
88
+ hasChildren?: boolean;
89
+ /** If set to true, the user cannot interact with this TreeItem */
90
+ disabled?: boolean;
91
+ /**
92
+ * Reads this item's children from the network (or anywhere async),
93
+ * receiving `{ item }` (the item's value). Set alongside `hasChildren`;
94
+ * overrides the tree's `load` function for this item.
95
+ */
96
+ load?: Loader<any, TreeLoadRequest>;
97
+ /** Raised when this item is expanded or collapsed */
98
+ onexpand?: (expanded: boolean) => void;
99
+ /** Raised when this item is selected or deselected */
100
+ onselect?: (selected: boolean) => void;
101
+ }
102
+
103
+ /**
104
+ * An item in a Tree, which can contain nested TreeItems via TreeItemChildren.
105
+ *
106
+ * The structure of a TreeItem is:
107
+ *
108
+ * ```
109
+ * <TreeItem>
110
+ * <TreeItemContent>
111
+ * <TreeItemTrigger />
112
+ * <TreeItemLabel />
113
+ * </TreeItemContent>
114
+ * <TreeItemChildren>
115
+ * <TreeItem />
116
+ * </TreeItemChildren>
117
+ * </TreeItem>
118
+ * ```
119
+ */
120
+ declare function TreeItem(
121
+ $parent: ParentNode,
122
+ $anchor: Node | null,
123
+ $props: TreeItemProps | undefined,
124
+ $context?: Record<PropertyKey, any>,
125
+ $slots?: Record<string, SlotRender>,
126
+ ): void;
127
+
128
+
129
+
130
+ /**
131
+ * A container for nested TreeItems. This component must be a direct child of TreeItem.
132
+ *
133
+ * The structure is:
134
+ *
135
+ * ```
136
+ * <TreeItem>
137
+ * <TreeItemContent>...</TreeItemContent>
138
+ * <TreeItemChildren>
139
+ * <TreeItem />
140
+ * </TreeItemChildren>
141
+ * </TreeItem>
142
+ * ```
143
+ */
144
+ declare function TreeItemChildren(
145
+ $parent: ParentNode,
146
+ $anchor: Node | null,
147
+ $props?: TreeItemChildrenProps,
148
+ $context?: Record<PropertyKey, any>,
149
+ $slots?: Record<string, SlotRender>,
150
+ ): void;
151
+
152
+
153
+
154
+ interface TreeItemContentProps {
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
+ }
162
+
163
+ /**
164
+ * A wrapper for the content of a TreeItem, which should contain TreeItemTrigger and TreeItemLabel.
165
+ *
166
+ * The structure is:
167
+ *
168
+ * ```
169
+ * <TreeItem>
170
+ * <TreeItemContent>
171
+ * <TreeItemTrigger />
172
+ * <TreeItemLabel />
173
+ * </TreeItemContent>
174
+ * </TreeItem>
175
+ * ```
176
+ */
177
+ declare function TreeItemContent(
178
+ $parent: ParentNode,
179
+ $anchor: Node | null,
180
+ $props: TreeItemContentProps | undefined,
181
+ $context?: Record<PropertyKey, any>,
182
+ $slots?: Record<string, SlotRender>,
183
+ ): void;
184
+
185
+
186
+
187
+ /**
188
+ * The interactive label for a TreeItem, which can be clicked or keyboard-navigated to select the item.
189
+ * This component handles keyboard navigation and focus management for the tree.
190
+ *
191
+ * The structure is:
192
+ *
193
+ * ```
194
+ * <TreeItem>
195
+ * <TreeItemContent>
196
+ * <TreeItemTrigger />
197
+ * <TreeItemLabel>Item text</TreeItemLabel>
198
+ * </TreeItemContent>
199
+ * </TreeItem>
200
+ * ```
201
+ */
202
+ declare function TreeItemLabel(
203
+ $parent: ParentNode,
204
+ $anchor: Node | null,
205
+ $props?: TreeItemLabelProps,
206
+ $context?: Record<PropertyKey, any>,
207
+ $slots?: Record<string, SlotRender>,
208
+ ): void;
209
+
210
+
211
+
212
+ /**
213
+ * A button for expanding or collapsing a TreeItem that has nested children.
214
+ * When the item has no children, this renders as a spacer for consistent indentation.
215
+ *
216
+ * The structure is:
217
+ *
218
+ * ```
219
+ * <TreeItem>
220
+ * <TreeItemContent>
221
+ * <TreeItemTrigger />
222
+ * <TreeItemLabel />
223
+ * </TreeItemContent>
224
+ * </TreeItem>
225
+ * ```
226
+ */
227
+ declare function TreeItemTrigger(
228
+ $parent: ParentNode,
229
+ $anchor: Node | null,
230
+ $props?: TreeItemTriggerProps,
231
+ $context?: Record<PropertyKey, any>,
232
+ $slots?: Record<string, SlotRender>,
233
+ ): void;
234
+
235
+
236
+
237
+ interface TreeLoadedChildrenProps {
238
+ /** The state of the item whose children are loaded */
239
+ itemState: ItemState;
240
+ /** The load function that reads this item's children */
241
+ load: Loader<any, TreeLoadRequest>;
242
+ }
243
+
244
+ /**
245
+ * Loads the children of a TreeItem that declares `hasChildren` but has no
246
+ * slotted TreeItemChildren, rendering them as nested TreeItems. The load
247
+ * starts when the item is first expanded and is not repeated afterwards;
248
+ * the results stay mounted (hidden while collapsed) so the tree can search
249
+ * through them.
250
+ *
251
+ * This is rendered automatically by TreeItem when there is a `load`
252
+ * function available; it is not part of the public API.
253
+ */
254
+ declare function TreeLoadedChildren(
255
+ $parent: ParentNode,
256
+ $anchor: Node | null,
257
+ $props: TreeLoadedChildrenProps | undefined,
258
+ $context?: Record<PropertyKey, any>,
259
+ $slots?: Record<string, SlotRender>,
260
+ ): void;
261
+
262
+ export { Tree, TreeItem, TreeItemChildren, TreeItemContent, TreeItemLabel, TreeItemTrigger, TreeLoadedChildren };
@@ -0,0 +1,7 @@
1
+ import Tree from "./Tree.torp";
2
+ import TreeItem from "./TreeItem.torp";
3
+ import TreeItemChildren from "./TreeItemChildren.torp";
4
+ import TreeItemContent from "./TreeItemContent.torp";
5
+ import TreeItemLabel from "./TreeItemLabel.torp";
6
+ import TreeItemTrigger from "./TreeItemTrigger.torp";
7
+ export { Tree, TreeItem, TreeItemChildren, TreeItemContent, TreeItemLabel, TreeItemTrigger };
@@ -0,0 +1,19 @@
1
+ import { type IconProps } from "./IconTypes";
2
+
3
+ export default function ChevronDoubleLeft($props: IconProps | undefined) {
4
+ @render {
5
+ <svg
6
+ {$props?.id}
7
+ class={["torp-icon", $props?.class]}
8
+ {$props?.style}
9
+ viewBox="0 0 100 100"
10
+ stroke-linejoin="round"
11
+ stroke-width="12"
12
+ >
13
+ <g>
14
+ <path fill="none" d="M90,10 L50,50 L90,90"></path>
15
+ <path fill="none" d="M50,10 L10,50 L50,90"></path>
16
+ </g>
17
+ </svg>
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ import { type IconProps } from "./IconTypes";
2
+
3
+ export default function ChevronDoubleRight($props: IconProps | undefined) {
4
+ @render {
5
+ <svg
6
+ {$props?.id}
7
+ class={["torp-icon", $props?.class]}
8
+ {$props?.style}
9
+ viewBox="0 0 100 100"
10
+ stroke-linejoin="round"
11
+ stroke-width="12"
12
+ >
13
+ <g>
14
+ <path d="M10,10 L50,50 L10,90" fill="none" />
15
+ <path d="M50,10 L90,50 L50,90" fill="none" />
16
+ </g>
17
+ </svg>
18
+ }
19
+ }
@@ -177,6 +177,66 @@ declare function Check(
177
177
 
178
178
 
179
179
 
180
+ type IconProps } from "./IconTypes";
181
+
182
+ export default function ChevronDoubleLeft($props: IconProps | undefined) {
183
+ @render {
184
+ <svg
185
+ {$props?.id}
186
+ class={["torp-icon", $props?.class]}
187
+ {$props?.style}
188
+ viewBox="0 0 100 100"
189
+ stroke-linejoin="round"
190
+ stroke-width="12"
191
+ >
192
+ <g>
193
+ <path fill="none" d="M90,10 L50,50 L90,90"></path>
194
+ <path fill="none" d="M50,10 L10,50 L50,90"></path>
195
+ </g>
196
+ </svg>
197
+ }
198
+ }
199
+
200
+ declare function ChevronDoubleLeft(
201
+ $parent: ParentNode,
202
+ $anchor: Node | null,
203
+ $props: IconProps | undefined,
204
+ $context?: Record<PropertyKey, any>,
205
+ $slots?: Record<string, SlotRender>,
206
+ ): void;
207
+
208
+
209
+
210
+ type IconProps } from "./IconTypes";
211
+
212
+ export default function ChevronDoubleRight($props: IconProps | undefined) {
213
+ @render {
214
+ <svg
215
+ {$props?.id}
216
+ class={["torp-icon", $props?.class]}
217
+ {$props?.style}
218
+ viewBox="0 0 100 100"
219
+ stroke-linejoin="round"
220
+ stroke-width="12"
221
+ >
222
+ <g>
223
+ <path d="M10,10 L50,50 L10,90" fill="none" />
224
+ <path d="M50,10 L90,50 L50,90" fill="none" />
225
+ </g>
226
+ </svg>
227
+ }
228
+ }
229
+
230
+ declare function ChevronDoubleRight(
231
+ $parent: ParentNode,
232
+ $anchor: Node | null,
233
+ $props: IconProps | undefined,
234
+ $context?: Record<PropertyKey, any>,
235
+ $slots?: Record<string, SlotRender>,
236
+ ): void;
237
+
238
+
239
+
180
240
  type IconProps } from "./IconTypes";
181
241
 
182
242
  export default function ChevronDown($props: IconProps | undefined) {
@@ -410,4 +470,4 @@ declare function Plus(
410
470
  $slots?: Record<string, SlotRender>,
411
471
  ): void;
412
472
 
413
- export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bars, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Cross, Loading, Minus, Plus };
473
+ export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bars, Check, ChevronDoubleLeft, ChevronDoubleRight, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Cross, Loading, Minus, Plus };
@@ -1,58 +1,17 @@
1
- // src/icons/ArrowDown.torp
2
- import ArrowDown_default from "./ArrowDown.torp";
3
-
4
- // src/icons/ArrowLeft.torp
5
- import ArrowLeft_default from "./ArrowLeft.torp";
6
-
7
- // src/icons/ArrowRight.torp
8
- import ArrowRight_default from "./ArrowRight.torp";
9
-
10
- // src/icons/ArrowUp.torp
11
- import ArrowUp_default from "./ArrowUp.torp";
12
-
13
- // src/icons/Bars.torp
14
- import Bars_default from "./Bars.torp";
15
-
16
- // src/icons/Check.torp
17
- import Check_default from "./Check.torp";
18
-
19
- // src/icons/ChevronDown.torp
20
- import ChevronDown_default from "./ChevronDown.torp";
21
-
22
- // src/icons/ChevronLeft.torp
23
- import ChevronLeft_default from "./ChevronLeft.torp";
24
-
25
- // src/icons/ChevronRight.torp
26
- import ChevronRight_default from "./ChevronRight.torp";
27
-
28
- // src/icons/ChevronUp.torp
29
- import ChevronUp_default from "./ChevronUp.torp";
30
-
31
- // src/icons/Cross.torp
32
- import Cross_default from "./Cross.torp";
33
-
34
- // src/icons/Loading.torp
35
- import Loading_default from "./Loading.torp";
36
-
37
- // src/icons/Minus.torp
38
- import Minus_default from "./Minus.torp";
39
-
40
- // src/icons/Plus.torp
41
- import Plus_default from "./Plus.torp";
42
- export {
43
- ArrowDown_default as ArrowDown,
44
- ArrowLeft_default as ArrowLeft,
45
- ArrowRight_default as ArrowRight,
46
- ArrowUp_default as ArrowUp,
47
- Bars_default as Bars,
48
- Check_default as Check,
49
- ChevronDown_default as ChevronDown,
50
- ChevronLeft_default as ChevronLeft,
51
- ChevronRight_default as ChevronRight,
52
- ChevronUp_default as ChevronUp,
53
- Cross_default as Cross,
54
- Loading_default as Loading,
55
- Minus_default as Minus,
56
- Plus_default as Plus
57
- };
58
- //# sourceMappingURL=index.js.map
1
+ import ArrowDown from "./ArrowDown.torp";
2
+ import ArrowLeft from "./ArrowLeft.torp";
3
+ import ArrowRight from "./ArrowRight.torp";
4
+ import ArrowUp from "./ArrowUp.torp";
5
+ import Bars from "./Bars.torp";
6
+ import Check from "./Check.torp";
7
+ import ChevronDoubleLeft from "./ChevronDoubleLeft.torp";
8
+ import ChevronDoubleRight from "./ChevronDoubleRight.torp";
9
+ import ChevronDown from "./ChevronDown.torp";
10
+ import ChevronLeft from "./ChevronLeft.torp";
11
+ import ChevronRight from "./ChevronRight.torp";
12
+ import ChevronUp from "./ChevronUp.torp";
13
+ import Cross from "./Cross.torp";
14
+ import Loading from "./Loading.torp";
15
+ import Minus from "./Minus.torp";
16
+ import Plus from "./Plus.torp";
17
+ export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bars, Check, ChevronDoubleLeft, ChevronDoubleRight, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Cross, Loading, Minus, Plus };
@@ -0,0 +1,44 @@
1
+ import { $async, $watch } from "@torpor/view";
2
+ //#region src/utils/loader.ts
3
+ /** Wraps a bare array in a LoadResult so consumers always get the same shape */
4
+ function normalizeLoadResult(result) {
5
+ return Array.isArray(result) ? { items: result } : result;
6
+ }
7
+ /**
8
+ * Shared loading state for components that read items from a network loader
9
+ * (DataGrid, ComboBox auto-complete etc). Read the returned state's `items`
10
+ * or `result` inside an `@await` boundary: while a fetch is pending the read
11
+ * suspends, and when dependencies read inside `getRequest` change the fetch
12
+ * re-runs.
13
+ *
14
+ * For lazy loading (fetch only once some condition is met), gate the whole
15
+ * rendering of the region that reads this loader behind that condition
16
+ * (`@if`), so the `@await` boundary -- and with it the first fetch --
17
+ * comes into existence when the condition flips.
18
+ *
19
+ * ```
20
+ * let $load = createItemLoader({
21
+ * load: $props.load,
22
+ * getRequest: () => ({ searchText: $state.searchText }),
23
+ * });
24
+ * @await { ...$load.items... } with { <span>Loading…</span> }
25
+ * ```
26
+ */
27
+ function createItemLoader(options) {
28
+ return $watch({
29
+ get result() {
30
+ return $async(() => {
31
+ const promise = Promise.resolve(options.load(options.getRequest())).then(normalizeLoadResult);
32
+ promise.then((r) => options.onload?.(r), () => {});
33
+ return promise;
34
+ });
35
+ },
36
+ get items() {
37
+ return this.result?.items ?? [];
38
+ }
39
+ });
40
+ }
41
+ //#endregion
42
+ export { normalizeLoadResult as n, createItemLoader as t };
43
+
44
+ //# sourceMappingURL=loader-DEeG5vFY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-DEeG5vFY.js","names":[],"sources":["../src/utils/loader.ts"],"sourcesContent":["import { $async, $watch } from \"@torpor/view\";\n\n/**\n * Shared contract for loading data from the network, used by components that\n * can take either static data or a loader function (DataGrid now, ComboBox\n * auto-complete and others later).\n *\n * A loader receives a request object describing what to fetch -- paging,\n * search text and sorting are standard; components extend it with their own\n * fields -- plus an AbortSignal so stale requests can be cancelled.\n */\n\n/** The base shape of a load request. Components extend this with their own fields. */\nexport interface LoadRequest {\n\t/** 1-based page number to load */\n\tpage?: number;\n\t/** Number of items per page */\n\tpageSize?: number;\n\t/** Search or filter text entered by the user */\n\tsearchText?: string;\n\t/** The field to sort by */\n\tsortBy?: string;\n\t/** The direction to sort in */\n\tsortDirection?: \"asc\" | \"desc\";\n}\n\n/**\n * The result of a load: the items for the current request, and optionally\n * the total count (needed for paged components to show a pager).\n */\nexport interface LoadResult<T = any> {\n\titems: T[];\n\t/** The total number of items across all pages, if known */\n\ttotal?: number;\n}\n\n/**\n * Reads data for a request. May return a promise or a plain result, and may\n * return just an array of items when no total is available.\n */\nexport type Loader<T = any, TRequest extends LoadRequest = LoadRequest> = (\n\trequest: TRequest,\n\tsignal?: AbortSignal,\n) => Promise<LoadResult<T> | T[]> | LoadResult<T> | T[];\n\n/** Wraps a bare array in a LoadResult so consumers always get the same shape */\nexport function normalizeLoadResult<T>(result: LoadResult<T> | T[]): LoadResult<T> {\n\treturn Array.isArray(result) ? { items: result } : result;\n}\n\nexport interface ItemLoaderOptions<T = any, TRequest extends LoadRequest = LoadRequest> {\n\t/** The loader function to fetch items */\n\tload: Loader<T, TRequest>;\n\t/**\n\t * Builds the request for the current fetch. Called inside the async\n\t * getter, so reads of reactive state here re-fetch when they change.\n\t */\n\tgetRequest: () => TRequest;\n\t/** Called after each successful load with the normalized result */\n\tonload?: (result: LoadResult<T>) => void;\n}\n\n/** Reactive loading state returned by createItemLoader */\nexport interface ItemLoaderState<T = any> {\n\t/** The full result of the current load; suspends while a fetch is pending */\n\treadonly result: LoadResult<T> | undefined;\n\t/** The loaded items; suspends while a fetch is pending */\n\treadonly items: T[];\n}\n\n/**\n * Shared loading state for components that read items from a network loader\n * (DataGrid, ComboBox auto-complete etc). Read the returned state's `items`\n * or `result` inside an `@await` boundary: while a fetch is pending the read\n * suspends, and when dependencies read inside `getRequest` change the fetch\n * re-runs.\n *\n * For lazy loading (fetch only once some condition is met), gate the whole\n * rendering of the region that reads this loader behind that condition\n * (`@if`), so the `@await` boundary -- and with it the first fetch --\n * comes into existence when the condition flips.\n *\n * ```\n * let $load = createItemLoader({\n * \tload: $props.load,\n * \tgetRequest: () => ({ searchText: $state.searchText }),\n * });\n * @await { ...$load.items... } with { <span>Loading…</span> }\n * ```\n */\nexport function createItemLoader<T = any, TRequest extends LoadRequest = LoadRequest>(\n\toptions: ItemLoaderOptions<T, TRequest>,\n): ItemLoaderState<T> {\n\treturn $watch({\n\t\tget result(): LoadResult<T> | undefined {\n\t\t\treturn $async(() => {\n\t\t\t\tconst promise = Promise.resolve(options.load(options.getRequest())).then(\n\t\t\t\t\tnormalizeLoadResult,\n\t\t\t\t);\n\t\t\t\t// Report successful loads to the consumer; failures surface\n\t\t\t\t// through the component's error boundary, not this chain\n\t\t\t\tpromise.then(\n\t\t\t\t\t(r) => options.onload?.(r),\n\t\t\t\t\t() => {},\n\t\t\t\t);\n\t\t\t\treturn promise as Promise<LoadResult<T>>;\n\t\t\t});\n\t\t},\n\t\tget items(): T[] {\n\t\t\treturn this.result?.items ?? [];\n\t\t},\n\t});\n}\n"],"mappings":";;;AA8CA,SAAgB,oBAAuB,QAA4C;CAClF,OAAO,MAAM,QAAQ,MAAM,IAAI,EAAE,OAAO,OAAO,IAAI;AACpD;;;;;;;;;;;;;;;;;;;;;AA0CA,SAAgB,iBACf,SACqB;CACrB,OAAO,OAAO;EACb,IAAI,SAAoC;GACvC,OAAO,aAAa;IACnB,MAAM,UAAU,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,KACnE,mBACD;IAGA,QAAQ,MACN,MAAM,QAAQ,SAAS,CAAC,SACnB,CAAC,CACR;IACA,OAAO;GACR,CAAC;EACF;EACA,IAAI,QAAa;GAChB,OAAO,KAAK,QAAQ,SAAS,CAAC;EAC/B;CACD,CAAC;AACF"}
@@ -1,19 +1,23 @@
1
- import { Animation } from '@torpor/view';
2
-
1
+ import { Animation } from "@torpor/view";
2
+ //#region src/motion/fade.d.ts
3
3
  declare function fade(_el: HTMLElement, options?: number | KeyframeAnimationOptions): Animation;
4
-
4
+ //#endregion
5
+ //#region src/motion/grow.d.ts
5
6
  declare function grow(el: HTMLElement, options?: number | KeyframeAnimationOptions): Animation;
6
-
7
+ //#endregion
8
+ //#region src/motion/measure.d.ts
7
9
  /**
8
10
  * Measures an element before it is added to the DOM
9
11
  * @param el The element to measure
10
12
  * @param fn The function to use to get the desired measurement (e.g. el.offsetHeight)
11
13
  */
12
- declare function measure(el: HTMLElement, fn: (_: HTMLElement) => number): number;
13
-
14
+ declare function measure(el: HTMLElement, fn: (_el: HTMLElement) => number): number;
15
+ //#endregion
16
+ //#region src/motion/slide.d.ts
14
17
  interface Options extends KeyframeAnimationOptions {
15
- side: "left" | "right" | "top" | "bottom";
18
+ side: "left" | "right" | "top" | "bottom";
16
19
  }
17
20
  declare function slide(el: HTMLElement, options?: Options): Animation;
18
-
21
+ //#endregion
19
22
  export { fade, grow, measure, slide };
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/motion/fade.ts","../../src/motion/grow.ts","../../src/motion/measure.ts","../../src/motion/slide.ts"],"mappings":";;iBAEwB,KACvB,KAAK,aACL,mBAAmB,2BACjB;;;iBCFqB,KACvB,IAAI,aACJ,mBAAmB,2BACjB;;;;;;;;iBCDqB,QAAQ,IAAI,aAAa,KAAK,KAAK;;;UCFjD,gBAAgB;EACzB;;iBAGuB,MAAM,IAAI,aAAa,UAAU,UAAU"}