@msqd/lydia 0.0.0-stage → 0.6.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 (378) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +151 -2
  3. package/THIRD_PARTY_NOTICES.md +29 -0
  4. package/dist/Components/Badges/Badge.d.ts +20 -0
  5. package/dist/Components/Badges/Badge.js +33 -0
  6. package/dist/Components/Badges/index.d.ts +1 -0
  7. package/dist/Components/Badges/index.js +4 -0
  8. package/dist/Components/Buttons/Button.d.ts +8 -0
  9. package/dist/Components/Buttons/Button.js +30 -0
  10. package/dist/Components/Buttons/ButtonGroup.d.ts +13 -0
  11. package/dist/Components/Buttons/ButtonGroup.js +61 -0
  12. package/dist/Components/Buttons/index.d.ts +2 -0
  13. package/dist/Components/Buttons/index.js +6 -0
  14. package/dist/Components/Cards/Card.d.ts +38 -0
  15. package/dist/Components/Cards/Card.js +31 -0
  16. package/dist/Components/Cards/StatCard.d.ts +14 -0
  17. package/dist/Components/Cards/StatCard.js +27 -0
  18. package/dist/Components/Cards/index.d.ts +2 -0
  19. package/dist/Components/Cards/index.js +7 -0
  20. package/dist/Components/Charts/Components/ThinBarChart.d.ts +35 -0
  21. package/dist/Components/Charts/Components/ThinBarChart.js +41 -0
  22. package/dist/Components/Charts/Components/WideBarChart.d.ts +48 -0
  23. package/dist/Components/Charts/Components/WideBarChart.js +50 -0
  24. package/dist/Components/Charts/Components/index.d.ts +2 -0
  25. package/dist/Components/Charts/Components/index.js +6 -0
  26. package/dist/Components/Charts/Hooks/index.d.ts +2 -0
  27. package/dist/Components/Charts/Hooks/index.js +7 -0
  28. package/dist/Components/Charts/Hooks/useChartDimensions.d.ts +24 -0
  29. package/dist/Components/Charts/Hooks/useChartDimensions.js +42 -0
  30. package/dist/Components/Charts/Hooks/useThemeColors.d.ts +10 -0
  31. package/dist/Components/Charts/Hooks/useThemeColors.js +51 -0
  32. package/dist/Components/Charts/SummaryPerformancesChart.d.ts +7 -0
  33. package/dist/Components/Charts/SummaryPerformancesChart.js +93 -0
  34. package/dist/Components/Charts/SummaryRateChart.d.ts +9 -0
  35. package/dist/Components/Charts/SummaryRateChart.js +81 -0
  36. package/dist/Components/Charts/TransactionsChart.d.ts +6 -0
  37. package/dist/Components/Charts/TransactionsChart.js +70 -0
  38. package/dist/Components/Charts/Utils/ChartBarCalculator.d.ts +48 -0
  39. package/dist/Components/Charts/Utils/ChartBarCalculator.js +66 -0
  40. package/dist/Components/Charts/Utils/ChartColors.d.ts +13 -0
  41. package/dist/Components/Charts/Utils/ChartColors.js +10 -0
  42. package/dist/Components/Charts/Utils/ChartTooltipFormatter.d.ts +43 -0
  43. package/dist/Components/Charts/Utils/ChartTooltipFormatter.js +57 -0
  44. package/dist/Components/Charts/Utils/ReactEChartsCore.d.ts +4 -0
  45. package/dist/Components/Charts/Utils/ReactEChartsCore.js +5 -0
  46. package/dist/Components/Charts/Utils/ThemeColor.d.ts +21 -0
  47. package/dist/Components/Charts/Utils/ThemeColor.js +54 -0
  48. package/dist/Components/Charts/Utils/TimeFormatter.d.ts +9 -0
  49. package/dist/Components/Charts/Utils/TimeFormatter.js +25 -0
  50. package/dist/Components/Charts/Utils/escapeTooltipHtml.d.ts +6 -0
  51. package/dist/Components/Charts/Utils/escapeTooltipHtml.js +5 -0
  52. package/dist/Components/Charts/Utils/index.d.ts +5 -0
  53. package/dist/Components/Charts/Utils/index.js +14 -0
  54. package/dist/Components/Charts/index.d.ts +6 -0
  55. package/dist/Components/Charts/index.js +29 -0
  56. package/dist/Components/Colors/Colors.d.ts +19 -0
  57. package/dist/Components/Colors/Colors.js +154 -0
  58. package/dist/Components/Colors/index.d.ts +1 -0
  59. package/dist/Components/Colors/index.js +4 -0
  60. package/dist/Components/DataTable/DataTable.d.ts +86 -0
  61. package/dist/Components/DataTable/DataTable.js +122 -0
  62. package/dist/Components/DataTable/Paginator.d.ts +41 -0
  63. package/dist/Components/DataTable/Paginator.js +122 -0
  64. package/dist/Components/DataTable/ProportionBar.d.ts +48 -0
  65. package/dist/Components/DataTable/ProportionBar.js +20 -0
  66. package/dist/Components/DataTable/index.d.ts +3 -0
  67. package/dist/Components/DataTable/index.js +9 -0
  68. package/dist/Components/Dialog/Dialog.d.ts +49 -0
  69. package/dist/Components/Dialog/Dialog.js +83 -0
  70. package/dist/Components/Dialog/Drawer.d.ts +45 -0
  71. package/dist/Components/Dialog/Drawer.js +120 -0
  72. package/dist/Components/Dialog/index.d.ts +3 -0
  73. package/dist/Components/Dialog/index.js +12 -0
  74. package/dist/Components/Dialog/modal.types.d.ts +47 -0
  75. package/dist/Components/Dialog/modal.types.js +8 -0
  76. package/dist/Components/Facets/FacetCount.d.ts +11 -0
  77. package/dist/Components/Facets/FacetCount.js +8 -0
  78. package/dist/Components/Facets/FacetCountsCaption.d.ts +16 -0
  79. package/dist/Components/Facets/FacetCountsCaption.js +14 -0
  80. package/dist/Components/Facets/FacetInnerLightButton.d.ts +10 -0
  81. package/dist/Components/Facets/FacetInnerLightButton.js +17 -0
  82. package/dist/Components/Facets/FacetLabel.d.ts +13 -0
  83. package/dist/Components/Facets/FacetLabel.js +15 -0
  84. package/dist/Components/Facets/FacetList.d.ts +40 -0
  85. package/dist/Components/Facets/FacetList.js +37 -0
  86. package/dist/Components/Facets/FacetListCard.d.ts +38 -0
  87. package/dist/Components/Facets/FacetListCard.js +47 -0
  88. package/dist/Components/Facets/FacetResetLink.d.ts +13 -0
  89. package/dist/Components/Facets/FacetResetLink.js +23 -0
  90. package/dist/Components/Facets/Variants/DateRangeFacet.d.ts +47 -0
  91. package/dist/Components/Facets/Variants/DateRangeFacet.js +51 -0
  92. package/dist/Components/Facets/Variants/MultipleChoiceFacet.d.ts +67 -0
  93. package/dist/Components/Facets/Variants/MultipleChoiceFacet.js +200 -0
  94. package/dist/Components/Facets/Variants/PerformanceFacet.d.ts +61 -0
  95. package/dist/Components/Facets/Variants/PerformanceFacet.js +77 -0
  96. package/dist/Components/Facets/Variants/SingleChoiceFacet.d.ts +56 -0
  97. package/dist/Components/Facets/Variants/SingleChoiceFacet.js +54 -0
  98. package/dist/Components/Facets/Variants/index.d.ts +8 -0
  99. package/dist/Components/Facets/Variants/index.js +10 -0
  100. package/dist/Components/Facets/Variants/nestedValues.d.ts +33 -0
  101. package/dist/Components/Facets/Variants/nestedValues.js +87 -0
  102. package/dist/Components/Facets/index.d.ts +15 -0
  103. package/dist/Components/Facets/index.js +27 -0
  104. package/dist/Components/Formatter/BodyNotice.d.ts +9 -0
  105. package/dist/Components/Formatter/BodyNotice.js +21 -0
  106. package/dist/Components/Formatter/CodeFormatter.d.ts +47 -0
  107. package/dist/Components/Formatter/CodeFormatter.js +47 -0
  108. package/dist/Components/Formatter/HeadersDisplay.d.ts +9 -0
  109. package/dist/Components/Formatter/HeadersDisplay.js +18 -0
  110. package/dist/Components/Formatter/JsonTreeView.d.ts +27 -0
  111. package/dist/Components/Formatter/JsonTreeView.js +145 -0
  112. package/dist/Components/Formatter/PerformanceMetrics.d.ts +27 -0
  113. package/dist/Components/Formatter/PerformanceMetrics.js +29 -0
  114. package/dist/Components/Formatter/SyntaxHighlighter.d.ts +11 -0
  115. package/dist/Components/Formatter/SyntaxHighlighter.js +16 -0
  116. package/dist/Components/Formatter/VirtualizedCodeView.d.ts +24 -0
  117. package/dist/Components/Formatter/VirtualizedCodeView.js +47 -0
  118. package/dist/Components/Formatter/bodyLimits.d.ts +6 -0
  119. package/dist/Components/Formatter/bodyLimits.js +6 -0
  120. package/dist/Components/Formatter/index.d.ts +8 -0
  121. package/dist/Components/Formatter/index.js +16 -0
  122. package/dist/Components/Formatter/syntaxTheme.d.ts +8 -0
  123. package/dist/Components/Formatter/syntaxTheme.js +15 -0
  124. package/dist/Components/Formatter/useCodeHighlighting.d.ts +15 -0
  125. package/dist/Components/Formatter/useCodeHighlighting.js +47 -0
  126. package/dist/Components/Formatter/useVirtualization.d.ts +29 -0
  127. package/dist/Components/Formatter/useVirtualization.js +18 -0
  128. package/dist/Components/Inputs/Checkbox/Checkbox.d.ts +6 -0
  129. package/dist/Components/Inputs/Checkbox/Checkbox.js +75 -0
  130. package/dist/Components/Inputs/Checkbox/index.d.ts +1 -0
  131. package/dist/Components/Inputs/Checkbox/index.js +4 -0
  132. package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.d.ts +48 -0
  133. package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.js +71 -0
  134. package/dist/Components/Inputs/DateRangeSelector/index.d.ts +1 -0
  135. package/dist/Components/Inputs/DateRangeSelector/index.js +4 -0
  136. package/dist/Components/Inputs/Field/Field.d.ts +19 -0
  137. package/dist/Components/Inputs/Field/Field.js +35 -0
  138. package/dist/Components/Inputs/Field/index.d.ts +2 -0
  139. package/dist/Components/Inputs/Field/index.js +7 -0
  140. package/dist/Components/Inputs/Field/useField.d.ts +33 -0
  141. package/dist/Components/Inputs/Field/useField.js +36 -0
  142. package/dist/Components/Inputs/Input/Input.d.ts +85 -0
  143. package/dist/Components/Inputs/Input/Input.js +146 -0
  144. package/dist/Components/Inputs/Input/index.d.ts +1 -0
  145. package/dist/Components/Inputs/Input/index.js +4 -0
  146. package/dist/Components/Inputs/InputAddon/InputAddon.d.ts +21 -0
  147. package/dist/Components/Inputs/InputAddon/InputAddon.js +18 -0
  148. package/dist/Components/Inputs/InputAddon/index.d.ts +1 -0
  149. package/dist/Components/Inputs/InputAddon/index.js +4 -0
  150. package/dist/Components/Inputs/InputButton/InputButton.d.ts +21 -0
  151. package/dist/Components/Inputs/InputButton/InputButton.js +29 -0
  152. package/dist/Components/Inputs/InputButton/index.d.ts +1 -0
  153. package/dist/Components/Inputs/InputButton/index.js +4 -0
  154. package/dist/Components/Inputs/InputIcon/InputIcon.d.ts +20 -0
  155. package/dist/Components/Inputs/InputIcon/InputIcon.js +16 -0
  156. package/dist/Components/Inputs/InputIcon/index.d.ts +1 -0
  157. package/dist/Components/Inputs/InputIcon/index.js +4 -0
  158. package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.d.ts +12 -0
  159. package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.js +18 -0
  160. package/dist/Components/Inputs/KeyboardShortcut/index.d.ts +1 -0
  161. package/dist/Components/Inputs/KeyboardShortcut/index.js +4 -0
  162. package/dist/Components/Inputs/Radio/Radio.d.ts +3 -0
  163. package/dist/Components/Inputs/Radio/Radio.js +59 -0
  164. package/dist/Components/Inputs/Radio/index.d.ts +1 -0
  165. package/dist/Components/Inputs/Radio/index.js +4 -0
  166. package/dist/Components/Inputs/SearchInput/SearchInput.d.ts +9 -0
  167. package/dist/Components/Inputs/SearchInput/SearchInput.js +48 -0
  168. package/dist/Components/Inputs/SearchInput/index.d.ts +2 -0
  169. package/dist/Components/Inputs/SearchInput/index.js +4 -0
  170. package/dist/Components/Inputs/Sliders/RangeSlider.d.ts +40 -0
  171. package/dist/Components/Inputs/Sliders/RangeSlider.js +160 -0
  172. package/dist/Components/Inputs/Sliders/index.d.ts +2 -0
  173. package/dist/Components/Inputs/Sliders/index.js +4 -0
  174. package/dist/Components/Inputs/Textarea/Textarea.d.ts +56 -0
  175. package/dist/Components/Inputs/Textarea/Textarea.js +79 -0
  176. package/dist/Components/Inputs/Textarea/index.d.ts +1 -0
  177. package/dist/Components/Inputs/Textarea/index.js +4 -0
  178. package/dist/Components/Inputs/choiceInput.d.ts +12 -0
  179. package/dist/Components/Inputs/choiceInput.js +8 -0
  180. package/dist/Components/Inputs/index.d.ts +11 -0
  181. package/dist/Components/Inputs/index.js +24 -0
  182. package/dist/Components/Layouts/DefaultLayout.d.ts +30 -0
  183. package/dist/Components/Layouts/DefaultLayout.js +25 -0
  184. package/dist/Components/Layouts/index.d.ts +2 -0
  185. package/dist/Components/Layouts/index.js +4 -0
  186. package/dist/Components/NavBar/Assets/defaultAvatar.d.ts +4 -0
  187. package/dist/Components/NavBar/Assets/defaultAvatar.js +28 -0
  188. package/dist/Components/NavBar/Assets/index.d.ts +2 -0
  189. package/dist/Components/NavBar/Assets/index.js +4 -0
  190. package/dist/Components/NavBar/NavBar.d.ts +58 -0
  191. package/dist/Components/NavBar/NavBar.js +141 -0
  192. package/dist/Components/NavBar/index.d.ts +1 -0
  193. package/dist/Components/NavBar/index.js +5 -0
  194. package/dist/Components/Tabs/Tabs.d.ts +24 -0
  195. package/dist/Components/Tabs/Tabs.js +69 -0
  196. package/dist/Components/Tabs/index.d.ts +2 -0
  197. package/dist/Components/Tabs/index.js +5 -0
  198. package/dist/Components/Toast/Toast.d.ts +28 -0
  199. package/dist/Components/Toast/Toast.js +128 -0
  200. package/dist/Components/Toast/ToastContainer.d.ts +29 -0
  201. package/dist/Components/Toast/ToastContainer.js +28 -0
  202. package/dist/Components/Toast/ToastContext.d.ts +103 -0
  203. package/dist/Components/Toast/ToastContext.js +124 -0
  204. package/dist/Components/Toast/index.d.ts +3 -0
  205. package/dist/Components/Toast/index.js +13 -0
  206. package/dist/Components/Typography/HeadingLevel.d.ts +28 -0
  207. package/dist/Components/Typography/HeadingLevel.js +20 -0
  208. package/dist/Components/Typography/Paragraphs.d.ts +8 -0
  209. package/dist/Components/Typography/Paragraphs.js +6 -0
  210. package/dist/Components/Typography/Section.d.ts +8 -0
  211. package/dist/Components/Typography/Section.js +6 -0
  212. package/dist/Components/Typography/Titles.d.ts +31 -0
  213. package/dist/Components/Typography/Titles.js +14 -0
  214. package/dist/Components/Typography/index.d.ts +4 -0
  215. package/dist/Components/Typography/index.js +17 -0
  216. package/dist/Components/Utilities/Foldable.d.ts +42 -0
  217. package/dist/Components/Utilities/Foldable.js +39 -0
  218. package/dist/Components/Utilities/index.d.ts +2 -0
  219. package/dist/Components/Utilities/index.js +6 -0
  220. package/dist/Components/Utilities/useClickOutside.d.ts +21 -0
  221. package/dist/Components/Utilities/useClickOutside.js +23 -0
  222. package/dist/Components/index.d.ts +16 -0
  223. package/dist/Components/index.js +158 -0
  224. package/dist/Elements/Http/CacheBadge.d.ts +13 -0
  225. package/dist/Elements/Http/CacheBadge.js +34 -0
  226. package/dist/Elements/Http/CacheIndicator.d.ts +17 -0
  227. package/dist/Elements/Http/CacheIndicator.js +47 -0
  228. package/dist/Elements/Http/RequestMethodBadge.d.ts +5 -0
  229. package/dist/Elements/Http/RequestMethodBadge.js +13 -0
  230. package/dist/Elements/Http/ResponseStatusBadge.d.ts +19 -0
  231. package/dist/Elements/Http/ResponseStatusBadge.js +20 -0
  232. package/dist/Elements/Http/index.d.ts +4 -0
  233. package/dist/Elements/Http/index.js +10 -0
  234. package/dist/Elements/System/CircuitBreakerStatus.d.ts +11 -0
  235. package/dist/Elements/System/CircuitBreakerStatus.js +98 -0
  236. package/dist/Elements/System/EndpointNode.d.ts +10 -0
  237. package/dist/Elements/System/EndpointNode.js +19 -0
  238. package/dist/Elements/System/EntrypointNode.d.ts +9 -0
  239. package/dist/Elements/System/EntrypointNode.js +17 -0
  240. package/dist/Elements/System/NetworkEdges.d.ts +37 -0
  241. package/dist/Elements/System/NetworkEdges.js +52 -0
  242. package/dist/Elements/System/NetworkMap.d.ts +33 -0
  243. package/dist/Elements/System/NetworkMap.js +121 -0
  244. package/dist/Elements/System/NetworkNode.d.ts +29 -0
  245. package/dist/Elements/System/NetworkNode.js +31 -0
  246. package/dist/Elements/System/ProxyNode.d.ts +8 -0
  247. package/dist/Elements/System/ProxyNode.js +10 -0
  248. package/dist/Elements/System/index.d.ts +9 -0
  249. package/dist/Elements/System/index.js +17 -0
  250. package/dist/Elements/Tpdex/TpdexBadge.d.ts +26 -0
  251. package/dist/Elements/Tpdex/TpdexBadge.js +36 -0
  252. package/dist/Elements/Tpdex/index.d.ts +4 -0
  253. package/dist/Elements/Tpdex/index.js +8 -0
  254. package/dist/Elements/Transactions/TransactionFiltersCard.d.ts +41 -0
  255. package/dist/Elements/Transactions/TransactionFiltersCard.js +121 -0
  256. package/dist/Elements/Transactions/TransactionsExplorerSidebar.d.ts +37 -0
  257. package/dist/Elements/Transactions/TransactionsExplorerSidebar.js +154 -0
  258. package/dist/Elements/Transactions/TransactionsFiltersSidebar.d.ts +22 -0
  259. package/dist/Elements/Transactions/TransactionsFiltersSidebar.js +39 -0
  260. package/dist/Elements/Transactions/index.d.ts +13 -0
  261. package/dist/Elements/Transactions/index.js +9 -0
  262. package/dist/Elements/index.d.ts +18 -0
  263. package/dist/Elements/index.js +38 -0
  264. package/dist/Models/Filters/active.d.ts +12 -0
  265. package/dist/Models/Filters/active.js +10 -0
  266. package/dist/Models/Filters/dates.d.ts +8 -0
  267. package/dist/Models/Filters/dates.js +16 -0
  268. package/dist/Models/Filters/index.d.ts +4 -0
  269. package/dist/Models/Filters/index.js +13 -0
  270. package/dist/Models/Filters/read.d.ts +9 -0
  271. package/dist/Models/Filters/read.js +22 -0
  272. package/dist/Models/Filters/types.d.ts +50 -0
  273. package/dist/Models/Filters/types.js +1 -0
  274. package/dist/Models/Http/body.d.ts +7 -0
  275. package/dist/Models/Http/body.js +6 -0
  276. package/dist/Models/Http/contentDisposition.d.ts +7 -0
  277. package/dist/Models/Http/contentDisposition.js +51 -0
  278. package/dist/Models/Http/dataUrl.d.ts +12 -0
  279. package/dist/Models/Http/dataUrl.js +21 -0
  280. package/dist/Models/Http/headers.d.ts +18 -0
  281. package/dist/Models/Http/headers.js +7 -0
  282. package/dist/Models/Http/index.d.ts +2 -0
  283. package/dist/Models/Http/index.js +6 -0
  284. package/dist/Models/Http/percent.d.ts +5 -0
  285. package/dist/Models/Http/percent.js +17 -0
  286. package/dist/Models/Http/requestTarget.d.ts +11 -0
  287. package/dist/Models/Http/requestTarget.js +7 -0
  288. package/dist/Models/System/index.d.ts +1 -0
  289. package/dist/Models/System/index.js +7 -0
  290. package/dist/Models/System/types.d.ts +20 -0
  291. package/dist/Models/System/types.js +48 -0
  292. package/dist/Models/Tpdex.d.ts +36 -0
  293. package/dist/Models/Tpdex.js +38 -0
  294. package/dist/Models/Transactions/Overview.d.ts +19 -0
  295. package/dist/Models/Transactions/Overview.js +1 -0
  296. package/dist/Models/Transactions/encoding.d.ts +49 -0
  297. package/dist/Models/Transactions/encoding.js +26 -0
  298. package/dist/Models/Transactions/endpoints.d.ts +15 -0
  299. package/dist/Models/Transactions/endpoints.js +21 -0
  300. package/dist/Models/Transactions/facets.d.ts +25 -0
  301. package/dist/Models/Transactions/facets.js +40 -0
  302. package/dist/Models/Transactions/filtering.d.ts +20 -0
  303. package/dist/Models/Transactions/filtering.js +34 -0
  304. package/dist/Models/Transactions/treeDepth.d.ts +2 -0
  305. package/dist/Models/Transactions/treeDepth.js +4 -0
  306. package/dist/Models/Transactions/types.d.ts +58 -0
  307. package/dist/Models/Transactions/types.js +1 -0
  308. package/dist/Models/index.d.ts +10 -0
  309. package/dist/Models/index.js +46 -0
  310. package/dist/Pages/Alerts/AlertsPage.d.ts +18 -0
  311. package/dist/Pages/Alerts/AlertsPage.js +104 -0
  312. package/dist/Pages/Alerts/index.d.ts +1 -0
  313. package/dist/Pages/Alerts/index.js +4 -0
  314. package/dist/Pages/Explorer/ExplorerPage.d.ts +6 -0
  315. package/dist/Pages/Explorer/ExplorerPage.js +55 -0
  316. package/dist/Pages/Explorer/index.d.ts +1 -0
  317. package/dist/Pages/Explorer/index.js +4 -0
  318. package/dist/Pages/Overview/OverviewPage.d.ts +11 -0
  319. package/dist/Pages/Overview/OverviewPage.js +10 -0
  320. package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.d.ts +7 -0
  321. package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.js +32 -0
  322. package/dist/Pages/Overview/Sections/Components/index.d.ts +1 -0
  323. package/dist/Pages/Overview/Sections/Components/index.js +4 -0
  324. package/dist/Pages/Overview/Sections/HistorySection.d.ts +18 -0
  325. package/dist/Pages/Overview/Sections/HistorySection.js +21 -0
  326. package/dist/Pages/Overview/Sections/SummarySection.d.ts +44 -0
  327. package/dist/Pages/Overview/Sections/SummarySection.js +127 -0
  328. package/dist/Pages/Overview/index.d.ts +4 -0
  329. package/dist/Pages/Overview/index.js +8 -0
  330. package/dist/Pages/SystemPage/SystemPage.d.ts +8 -0
  331. package/dist/Pages/SystemPage/SystemPage.js +16 -0
  332. package/dist/Pages/SystemPage/index.d.ts +1 -0
  333. package/dist/Pages/SystemPage/index.js +4 -0
  334. package/dist/Pages/Transactions/Detail/Components/DownloadButton.d.ts +33 -0
  335. package/dist/Pages/Transactions/Detail/Components/DownloadButton.js +62 -0
  336. package/dist/Pages/Transactions/Detail/Components/TransactionMessage.d.ts +16 -0
  337. package/dist/Pages/Transactions/Detail/Components/TransactionMessage.js +44 -0
  338. package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.d.ts +21 -0
  339. package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.js +127 -0
  340. package/dist/Pages/Transactions/Detail/Components/index.d.ts +6 -0
  341. package/dist/Pages/Transactions/Detail/Components/index.js +8 -0
  342. package/dist/Pages/Transactions/Detail/TransactionsDetailPage.d.ts +8 -0
  343. package/dist/Pages/Transactions/Detail/TransactionsDetailPage.js +15 -0
  344. package/dist/Pages/Transactions/Detail/Utils/BodyPreview.d.ts +15 -0
  345. package/dist/Pages/Transactions/Detail/Utils/BodyPreview.js +30 -0
  346. package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.d.ts +28 -0
  347. package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.js +115 -0
  348. package/dist/Pages/Transactions/Detail/Utils/index.d.ts +4 -0
  349. package/dist/Pages/Transactions/Detail/Utils/index.js +9 -0
  350. package/dist/Pages/Transactions/Detail/index.d.ts +4 -0
  351. package/dist/Pages/Transactions/Detail/index.js +8 -0
  352. package/dist/Pages/Transactions/List/TransactionsListPage.d.ts +80 -0
  353. package/dist/Pages/Transactions/List/TransactionsListPage.js +220 -0
  354. package/dist/Pages/Transactions/List/index.d.ts +4 -0
  355. package/dist/Pages/Transactions/List/index.js +6 -0
  356. package/dist/Pages/Transactions/List/useClientSideTransactions.d.ts +38 -0
  357. package/dist/Pages/Transactions/List/useClientSideTransactions.js +32 -0
  358. package/dist/Pages/Transactions/index.d.ts +4 -0
  359. package/dist/Pages/Transactions/index.js +6 -0
  360. package/dist/Pages/index.d.ts +5 -0
  361. package/dist/Pages/index.js +18 -0
  362. package/dist/Settings.d.ts +13 -0
  363. package/dist/Settings.js +16 -0
  364. package/dist/css/Components/Formatter/prism.css +79 -0
  365. package/dist/css/Components/Inputs/Input/Input.css +73 -0
  366. package/dist/css/Components/Inputs/Sliders/RangeSliderStyles.css +92 -0
  367. package/dist/css/components.css +6 -0
  368. package/dist/css/fonts/Lato-Bold.woff2 +0 -0
  369. package/dist/css/fonts/Lato-BoldItalic.woff2 +0 -0
  370. package/dist/css/fonts/Lato-Italic.woff2 +0 -0
  371. package/dist/css/fonts/Lato-Regular.woff2 +0 -0
  372. package/dist/css/fonts/OFL.txt +93 -0
  373. package/dist/css/theme.css +109 -0
  374. package/dist/index.d.ts +4 -0
  375. package/dist/index.js +250 -0
  376. package/dist/logo.svg +1 -0
  377. package/dist/styles/styles.css +1 -0
  378. package/package.json +367 -3
@@ -0,0 +1,47 @@
1
+ import { type FoldableProps } from "../../Utilities/Foldable.js";
2
+ import { type FilterChangeHandler, type Filters } from "../../../Models/Filters/index.js";
3
+ import { type ComponentProps } from "react";
4
+ export interface DateRangeFacetProps extends ComponentProps<"div"> {
5
+ /** Filter name/key in the filters object */
6
+ name: string;
7
+ /** Display title for the facet */
8
+ title: string;
9
+ /** Current filter values */
10
+ filters: Filters;
11
+ /** Unified filter change handler */
12
+ onFiltersChange: FilterChangeHandler;
13
+ /** Whether the facet should be open by default */
14
+ defaultOpen?: boolean;
15
+ /**
16
+ * Where the facet's title sits in the document outline, if that is not `h5`.
17
+ *
18
+ * Forwarded to `Foldable`, which draws the title and cannot know what
19
+ * precedes it. A rail headed `h2` whose facets are fixed at `h5` skips two
20
+ * levels, which is WCAG 1.3.1 -- and a consumer had no way to say so, because
21
+ * this component did not pass the prop on.
22
+ */
23
+ headingLevel?: FoldableProps["headingLevel"];
24
+ /** Placeholder text for start date input */
25
+ startDatePlaceholder?: string;
26
+ /** Placeholder text for end date input */
27
+ endDatePlaceholder?: string;
28
+ /** Additional CSS classes */
29
+ className?: string;
30
+ }
31
+ /**
32
+ * DateRangeFacet component for date range filtering using a date range selector.
33
+ * Allows users to select a start and end date to filter results.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <DateRangeFacet
38
+ * name="time"
39
+ * title="Time Range"
40
+ * filters={filters}
41
+ * onFiltersChange={onFiltersChange}
42
+ * startDatePlaceholder="Start date"
43
+ * endDatePlaceholder="End date"
44
+ * />
45
+ * ```
46
+ */
47
+ export declare function DateRangeFacet({ name, title, filters, onFiltersChange, defaultOpen, headingLevel, startDatePlaceholder, endDatePlaceholder, className, ...props }: DateRangeFacetProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,51 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { Foldable as u } from "../../Utilities/Foldable.js";
3
+ import "react";
4
+ import { FacetResetLink as v } from "../FacetResetLink.js";
5
+ import { readDates as F } from "../../../Models/Filters/read.js";
6
+ import { DateRangeSelector as A } from "../../Inputs/DateRangeSelector/DateRangeSelector.js";
7
+ function C({
8
+ name: o,
9
+ title: n,
10
+ filters: d,
11
+ onFiltersChange: s,
12
+ defaultOpen: i = !0,
13
+ headingLevel: D,
14
+ startDatePlaceholder: c = "Start date",
15
+ endDatePlaceholder: l = "End date",
16
+ className: m,
17
+ ...f
18
+ }) {
19
+ const h = (t) => {
20
+ const a = {};
21
+ t.startDate && t.startDate.trim() && (a.startDate = t.startDate), t.endDate && t.endDate.trim() && (a.endDate = t.endDate), s(o, Object.keys(a).length > 0 ? a : void 0);
22
+ }, e = F(d, o), R = {
23
+ startDate: e.startDate || "",
24
+ endDate: e.endDate || ""
25
+ }, p = !!(e.startDate || e.endDate) ? /* @__PURE__ */ r(v, { title: n, onReset: () => {
26
+ s(o, void 0);
27
+ }, children: "reset" }) : void 0;
28
+ return /* @__PURE__ */ r(
29
+ u,
30
+ {
31
+ title: n,
32
+ titleAction: p,
33
+ defaultOpen: i,
34
+ headingLevel: D,
35
+ className: m,
36
+ ...f,
37
+ children: /* @__PURE__ */ r(
38
+ A,
39
+ {
40
+ value: R,
41
+ onChange: h,
42
+ startDatePlaceholder: c,
43
+ endDatePlaceholder: l
44
+ }
45
+ )
46
+ }
47
+ );
48
+ }
49
+ export {
50
+ C as DateRangeFacet
51
+ };
@@ -0,0 +1,67 @@
1
+ import { type FoldableProps } from "../../Utilities/Foldable.js";
2
+ import { type FilterChangeHandler, type Filters } from "../../../Models/Filters/index.js";
3
+ import { type ComponentProps } from "react";
4
+ import { type FacetOption } from "./nestedValues.js";
5
+ export type { FacetOption } from "./nestedValues.js";
6
+ export interface MultipleChoiceFacetProps extends ComponentProps<"div"> {
7
+ /** Filter name/key in the filters object */
8
+ name: string;
9
+ /** Display title for the facet */
10
+ title: string;
11
+ /** Current filter values */
12
+ filters: Filters;
13
+ /** Unified filter change handler */
14
+ onFiltersChange: FilterChangeHandler;
15
+ /**
16
+ * Values this facet can offer, with their counts. Only the consumer knows what exists in the
17
+ * whole result set, so an absent or empty list renders an empty facet rather than a guess.
18
+ *
19
+ * An option with `under` is a class (`"4"`, labelled "4xx") whose codes (`"404"`) hang beneath it. In
20
+ * `filters` a class is chosen whole (`"4"`), as some codes (`"404"`), or as every code but some (`"4"`
21
+ * then `"-404"`). ADR 0002 has the full rules.
22
+ */
23
+ options?: FacetOption[];
24
+ /** Fallback name to use when option name is "NULL" or similar */
25
+ fallbackName?: string;
26
+ /** Whether the facet should be open by default */
27
+ defaultOpen?: boolean;
28
+ /**
29
+ * Says what the counts are counts of. Counts come from the whole result set, so selecting a value in another facet
30
+ * does not change them, and a number beside a value would otherwise read as "what I would get". The caption
31
+ * describes the option group for a screen reader. Pass an empty string to drop it. Shown only when an option has a
32
+ * count.
33
+ */
34
+ countsCaption?: string;
35
+ /**
36
+ * Where the facet's title sits in the document outline, if that is not `h5`.
37
+ *
38
+ * Forwarded to `Foldable`, which draws the title and cannot know what
39
+ * precedes it. A rail headed `h2` whose facets are fixed at `h5` skips two
40
+ * levels, which is WCAG 1.3.1 -- and a consumer had no way to say so, because
41
+ * this component did not pass the prop on.
42
+ */
43
+ headingLevel?: FoldableProps["headingLevel"];
44
+ /** Additional CSS classes */
45
+ className?: string;
46
+ }
47
+ /**
48
+ * MultipleChoiceFacet component for multi-select filters with "only" buttons.
49
+ * Allows users to select multiple options from a list using checkboxes.
50
+ * A tick narrows to its value; nothing ticked means no filter.
51
+ * An option with `under` nests its codes beneath it (ADR 0002).
52
+ *
53
+ * @example
54
+ * ```tsx
55
+ * <MultipleChoiceFacet
56
+ * name="status"
57
+ * title="Status"
58
+ * filters={filters}
59
+ * onFiltersChange={onFiltersChange}
60
+ * options={[
61
+ * { name: "2xx", label: "2xx Success", count: 756 },
62
+ * { name: "4xx", label: "4xx Client Error", count: 123 }
63
+ * ]}
64
+ * />
65
+ * ```
66
+ */
67
+ export declare function MultipleChoiceFacet({ name, title, filters, onFiltersChange, options, fallbackName, defaultOpen, countsCaption, headingLevel, className, ...props }: MultipleChoiceFacetProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,200 @@
1
+ import { jsxs as m, jsx as a, Fragment as J } from "react/jsx-runtime";
2
+ import { ChevronRightIcon as K, ChevronDownIcon as Q, XMarkIcon as W } from "@heroicons/react/16/solid";
3
+ import { Foldable as Y } from "../../Utilities/Foldable.js";
4
+ import { useState as L, useId as Z, Fragment as ee } from "react";
5
+ import { twMerge as te } from "tailwind-merge";
6
+ import { FacetCount as ne } from "../FacetCount.js";
7
+ import { countsCaptionOf as re, DEFAULT_COUNTS_CAPTION as ae, FacetCountsCaption as ce } from "../FacetCountsCaption.js";
8
+ import { FacetInnerLightButton as se } from "../FacetInnerLightButton.js";
9
+ import { FacetResetLink as ie } from "../FacetResetLink.js";
10
+ import { readSelection as le, isNested as k, toggleCode as E, isCodeTicked as oe, toggleOption as de, writeSelection as me } from "./nestedValues.js";
11
+ import { readArray as he } from "../../../Models/Filters/read.js";
12
+ import { Checkbox as ue } from "../../Inputs/Checkbox/Checkbox.js";
13
+ function R({
14
+ id: d,
15
+ label: p,
16
+ count: g,
17
+ checked: f,
18
+ indeterminate: s,
19
+ describedBy: y,
20
+ description: h,
21
+ onChange: N,
22
+ before: C,
23
+ onOnly: b,
24
+ className: w
25
+ }) {
26
+ const l = `${d}-description`, u = [h && l, y].filter(Boolean).join(" ") || void 0;
27
+ return (
28
+ // "only" follows the name and sits outside the label: a label may hold
29
+ // nothing interactive but its own control, and some browsers pass a
30
+ // click on a button inside it to the box. The count is taken out of
31
+ // the flow into the padding on the right (wide enough for 7 digits), so it is one column that
32
+ // "only" appearing, or being absent, cannot shift.
33
+ /* @__PURE__ */ m("div", { className: te("group relative flex items-center pr-14", w), children: [
34
+ C,
35
+ /* @__PURE__ */ a(
36
+ ue,
37
+ {
38
+ containerProps: { className: "static w-auto min-w-0" },
39
+ id: d,
40
+ name: d,
41
+ label: /* @__PURE__ */ m(J, { children: [
42
+ /* @__PURE__ */ a("span", { className: "block truncate", title: h, children: p }),
43
+ g !== void 0 && /* @__PURE__ */ a(ne, { count: g, className: "absolute right-0 top-1/2 -translate-y-1/2 tabular-nums" })
44
+ ] }),
45
+ checked: f,
46
+ indeterminate: s,
47
+ "aria-describedby": u,
48
+ onChange: N
49
+ }
50
+ ),
51
+ h && /* @__PURE__ */ a("span", { id: l, className: "sr-only", children: h }),
52
+ b && /* @__PURE__ */ a("span", { className: "shrink-0 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity", children: /* @__PURE__ */ a(se, { label: "only", handler: b }) })
53
+ ] })
54
+ );
55
+ }
56
+ function Ie({
57
+ name: d,
58
+ title: p,
59
+ filters: g,
60
+ onFiltersChange: f,
61
+ options: s = [],
62
+ fallbackName: y,
63
+ defaultOpen: h = !0,
64
+ countsCaption: N = ae,
65
+ headingLevel: C,
66
+ className: b,
67
+ ...w
68
+ }) {
69
+ const l = he(g, d), u = le(l, s), T = s.some(k), [I, U] = L([]), [A, j] = L([]), x = s.filter((e) => k(e) && !I.includes(e.name));
70
+ x.length > 0 && (U([...I, ...x.map((e) => e.name)]), j([
71
+ ...A,
72
+ ...x.filter((e) => u[s.indexOf(e)].kind !== "none").map((e) => e.name)
73
+ ]));
74
+ const B = (e, t) => j((n) => [...n.filter((i) => i !== e), ...t ? [e] : []]), O = (e, t) => {
75
+ const n = me(
76
+ u.map((i, r) => r === e ? t : i),
77
+ s,
78
+ l
79
+ );
80
+ f(d, n.length === 0 ? void 0 : n);
81
+ }, $ = (e) => {
82
+ const t = de(u[e]);
83
+ O(e, t), k(s[e]) && B(s[e].name, t.kind === "whole");
84
+ }, M = Z(), c = (...e) => [M, ...e].join("-"), F = re(s, N), D = (e, t) => {
85
+ f(d, [e]), document.getElementById(t)?.focus();
86
+ }, P = () => {
87
+ f(d, void 0);
88
+ }, S = (e, t) => l.length > 0 && !(l.length === 1 && l[0] === e) ? () => D(e, t) : void 0, _ = l.length > 0 ? /* @__PURE__ */ a(ie, { title: p, onReset: P, children: "reset" }) : void 0, v = (e) => e.label || (e.name === "NULL" && y ? y : e.name), V = (e, t, n, i) => /* @__PURE__ */ a(
89
+ "div",
90
+ {
91
+ id: c(t, "codes"),
92
+ role: "group",
93
+ "aria-label": v(e),
94
+ hidden: i,
95
+ className: "space-y-2 ps-11 pt-2",
96
+ children: e.under.map((r, o) => /* @__PURE__ */ a(
97
+ R,
98
+ {
99
+ id: c(t, o),
100
+ label: v(r),
101
+ description: r.description,
102
+ count: r.count,
103
+ checked: oe(n, r.name),
104
+ onChange: () => O(t, E(n, e, r.name)),
105
+ onOnly: S(r.name, c(t, o))
106
+ },
107
+ r.name
108
+ ))
109
+ }
110
+ ), X = (e, t, n, i, r) => {
111
+ const o = r + 1 < n.length ? c(t, "except", r + 1) : c(t);
112
+ document.getElementById(o)?.focus(), O(t, E(i, e, n[r]));
113
+ }, q = (e, t, n, i) => /* @__PURE__ */ m("div", { className: "flex flex-wrap items-center gap-1 ps-11 pt-1 text-xs text-gray-600", children: [
114
+ /* @__PURE__ */ m("span", { id: c(t, "except"), className: "sr-only", children: [
115
+ "except ",
116
+ n.join(", ")
117
+ ] }),
118
+ /* @__PURE__ */ a("span", { "aria-hidden": !0, children: "except" }),
119
+ n.map((r, o) => /* @__PURE__ */ m(
120
+ "button",
121
+ {
122
+ id: c(t, "except", o),
123
+ type: "button",
124
+ "aria-label": `Include ${r} again`,
125
+ onClick: () => X(e, t, n, i, o),
126
+ className: "inline-flex cursor-pointer items-center gap-0.5 rounded bg-gray-100 px-1.5 leading-5 text-gray-800 hover:bg-gray-200",
127
+ children: [
128
+ r,
129
+ /* @__PURE__ */ a(W, { "aria-hidden": !0, className: "h-3 w-3" })
130
+ ]
131
+ },
132
+ r
133
+ ))
134
+ ] }), z = (e, t) => {
135
+ const n = u[t], i = (H = {}) => /* @__PURE__ */ a(
136
+ R,
137
+ {
138
+ id: c(t),
139
+ label: v(e),
140
+ description: e.description,
141
+ count: e.count,
142
+ checked: n.kind === "whole",
143
+ onChange: () => $(t),
144
+ onOnly: S(e.name, c(t)),
145
+ ...H
146
+ }
147
+ );
148
+ if (!k(e))
149
+ return /* @__PURE__ */ a(ee, { children: i({ className: T ? "ps-4" : void 0 }) }, e.name);
150
+ const r = !A.includes(e.name), o = r ? K : Q, G = n.kind === "minus" ? n.excluded : [];
151
+ return /* @__PURE__ */ m("div", { children: [
152
+ i({
153
+ indeterminate: n.kind === "some" || n.kind === "minus",
154
+ describedBy: n.kind === "minus" ? c(t, "except") : void 0,
155
+ before: /* @__PURE__ */ a(
156
+ "button",
157
+ {
158
+ type: "button",
159
+ "aria-label": `${v(e)} codes`,
160
+ "aria-expanded": !r,
161
+ "aria-controls": c(t, "codes"),
162
+ onClick: () => B(e.name, r),
163
+ className: "-ms-1 me-1 flex h-6 w-4 shrink-0 cursor-pointer items-center justify-center text-gray-600 hover:text-gray-900",
164
+ children: /* @__PURE__ */ a(o, { "aria-hidden": !0, className: "h-4 w-4" })
165
+ }
166
+ )
167
+ }),
168
+ n.kind === "minus" && q(e, t, G, n),
169
+ V(e, t, n, r)
170
+ ] }, e.name);
171
+ };
172
+ return /* @__PURE__ */ m(
173
+ Y,
174
+ {
175
+ title: p,
176
+ titleAction: _,
177
+ defaultOpen: h,
178
+ headingLevel: C,
179
+ className: b,
180
+ ...w,
181
+ children: [
182
+ s.length === 0 && /* @__PURE__ */ a("p", { className: "text-xs text-gray-500 italic", children: "No values" }),
183
+ F && /* @__PURE__ */ a(ce, { id: c("caption"), children: F }),
184
+ /* @__PURE__ */ a(
185
+ "div",
186
+ {
187
+ role: "group",
188
+ "aria-label": p,
189
+ "aria-describedby": F ? c("caption") : void 0,
190
+ className: "space-y-2",
191
+ children: s.map(z)
192
+ }
193
+ )
194
+ ]
195
+ }
196
+ );
197
+ }
198
+ export {
199
+ Ie as MultipleChoiceFacet
200
+ };
@@ -0,0 +1,61 @@
1
+ import { type FoldableProps } from "../../Utilities/Foldable.js";
2
+ import { type FilterChangeHandler, type Filters } from "../../../Models/Filters/index.js";
3
+ import { type ComponentProps } from "react";
4
+ type SliderValue = {
5
+ min: number;
6
+ max: number;
7
+ };
8
+ type TpdexBounds = {
9
+ min?: number;
10
+ max?: number;
11
+ };
12
+ /**
13
+ * Slider positions to tpdex bounds.
14
+ *
15
+ * Marks follow `tpdexScale`, best rating first, so the left thumb bounds the score from above and the
16
+ * right thumb from below. A thumb at its end of the track sets no bound.
17
+ */
18
+ export declare function sliderToFilter(slider: SliderValue): TpdexBounds;
19
+ /**
20
+ * Tpdex bounds to slider positions. A bound between two marks sits on the next mark at or below it,
21
+ * and a bound that no mark can show leaves its thumb at the end of the track.
22
+ */
23
+ export declare function filterToSlider({ min, max }: TpdexBounds): SliderValue;
24
+ export interface PerformanceFacetProps extends ComponentProps<"div"> {
25
+ /** Filter name/key in the filters object */
26
+ name: string;
27
+ /** Display title for the facet */
28
+ title: string;
29
+ /** Current filter values */
30
+ filters: Filters;
31
+ /** Unified filter change handler */
32
+ onFiltersChange: FilterChangeHandler;
33
+ /** Whether the facet should be open by default */
34
+ defaultOpen?: boolean;
35
+ /**
36
+ * Where the facet's title sits in the document outline, if that is not `h5`.
37
+ *
38
+ * Forwarded to `Foldable`, which draws the title and cannot know what
39
+ * precedes it. A rail headed `h2` whose facets are fixed at `h5` skips two
40
+ * levels, which is WCAG 1.3.1 -- and a consumer had no way to say so, because
41
+ * this component did not pass the prop on.
42
+ */
43
+ headingLevel?: FoldableProps["headingLevel"];
44
+ /** Additional CSS classes */
45
+ className?: string;
46
+ }
47
+ /**
48
+ * PerformanceFacet component for TPDEX performance index filtering using a range slider.
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * <PerformanceFacet
53
+ * name="tpdex"
54
+ * title="Performance Index"
55
+ * filters={filters}
56
+ * onFiltersChange={onFiltersChange}
57
+ * />
58
+ * ```
59
+ */
60
+ export declare function PerformanceFacet({ name, title, filters, onFiltersChange, defaultOpen, headingLevel, className, ...props }: PerformanceFacetProps): import("react/jsx-runtime").JSX.Element;
61
+ export {};
@@ -0,0 +1,77 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { Foldable as R } from "../../Utilities/Foldable.js";
3
+ import { tpdexScale as s } from "../../../Models/Tpdex.js";
4
+ import "react";
5
+ import { FacetResetLink as b } from "../FacetResetLink.js";
6
+ import { readRange as g } from "../../../Models/Filters/read.js";
7
+ import { RangeSlider as k } from "../../Inputs/Sliders/RangeSlider.js";
8
+ const r = 10, F = s.map((e, o) => ({
9
+ value: o * r,
10
+ label: e.label,
11
+ className: e.className
12
+ })), n = {
13
+ min: 0,
14
+ max: (s.length - 1) * r,
15
+ step: r,
16
+ marks: F
17
+ };
18
+ function A(e) {
19
+ const o = e.min === n.min ? void 0 : s[e.min / r]?.threshold, t = s[e.max / r]?.threshold;
20
+ return {
21
+ ...t !== void 0 && { min: t },
22
+ ...o !== void 0 && { max: o - 1 }
23
+ };
24
+ }
25
+ function I({ min: e, max: o }) {
26
+ const t = e === void 0 ? -1 : s.findIndex((i) => i.threshold !== void 0 && i.threshold <= e), m = o === void 0 ? -1 : s.findIndex((i, a) => a > 0 && i.threshold !== void 0 && i.threshold - 1 <= o);
27
+ return {
28
+ min: m < 0 || (o ?? 0) >= 100 ? n.min : m * r,
29
+ max: t < 0 ? n.max : t * r
30
+ };
31
+ }
32
+ function E({
33
+ name: e,
34
+ title: o,
35
+ filters: t,
36
+ onFiltersChange: m,
37
+ defaultOpen: i = !0,
38
+ headingLevel: a,
39
+ className: p,
40
+ ...x
41
+ }) {
42
+ const d = g(t, e), v = (c) => {
43
+ const h = A({ min: c.min ?? n.min, max: c.max ?? n.max });
44
+ m(e, Object.keys(h).length > 0 ? h : void 0);
45
+ }, u = I(d), f = d.min !== void 0 || d.max !== void 0 ? /* @__PURE__ */ l(b, { title: o, onReset: () => {
46
+ m(e, void 0);
47
+ }, children: "reset" }) : void 0;
48
+ return /* @__PURE__ */ l(
49
+ R,
50
+ {
51
+ title: o,
52
+ titleAction: f,
53
+ defaultOpen: i,
54
+ headingLevel: a,
55
+ className: p,
56
+ ...x,
57
+ children: /* @__PURE__ */ l(
58
+ k,
59
+ {
60
+ min: n.min,
61
+ max: n.max,
62
+ step: n.step,
63
+ value: u,
64
+ onChange: v,
65
+ marks: n.marks,
66
+ label: o,
67
+ className: "mt-4"
68
+ }
69
+ )
70
+ }
71
+ );
72
+ }
73
+ export {
74
+ E as PerformanceFacet,
75
+ I as filterToSlider,
76
+ A as sliderToFilter
77
+ };
@@ -0,0 +1,56 @@
1
+ import { type FoldableProps } from "../../Utilities/Foldable.js";
2
+ import { type FilterChangeHandler, type FilterMeta, type Filters } from "../../../Models/Filters/index.js";
3
+ import { type ComponentProps } from "react";
4
+ export interface SingleChoiceFacetProps extends ComponentProps<"div"> {
5
+ /** Filter name/key in the filters object */
6
+ name: string;
7
+ /** Display title for the facet */
8
+ title: string;
9
+ /** Current filter values */
10
+ filters: Filters;
11
+ /** Unified filter change handler */
12
+ onFiltersChange: FilterChangeHandler;
13
+ /** Available options for the radio filter */
14
+ options: FilterMeta[];
15
+ /** Fallback name to use when option name is "NULL" or similar */
16
+ fallbackName?: string;
17
+ /** Whether the facet should be open by default */
18
+ defaultOpen?: boolean;
19
+ /**
20
+ * Says what the counts are counts of. Counts come from the whole result set, so selecting a value in another facet
21
+ * does not change them, and a number beside a value would otherwise read as "what I would get". The caption
22
+ * describes the option group for a screen reader. Pass an empty string to drop it. Shown only when an option has a
23
+ * count.
24
+ */
25
+ countsCaption?: string;
26
+ /**
27
+ * Where the facet's title sits in the document outline, if that is not `h5`.
28
+ *
29
+ * Forwarded to `Foldable`, which draws the title and cannot know what
30
+ * precedes it. A rail headed `h2` whose facets are fixed at `h5` skips two
31
+ * levels, which is WCAG 1.3.1 -- and a consumer had no way to say so, because
32
+ * this component did not pass the prop on.
33
+ */
34
+ headingLevel?: FoldableProps["headingLevel"];
35
+ /** Additional CSS classes */
36
+ className?: string;
37
+ }
38
+ /**
39
+ * SingleChoiceFacet component for single-select filters using radio buttons.
40
+ * Allows users to select only one option from a list.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * <SingleChoiceFacet
45
+ * name="sortBy"
46
+ * title="Sort By"
47
+ * filters={filters}
48
+ * onFiltersChange={onFiltersChange}
49
+ * options={[
50
+ * { name: "newest", label: "Newest First", count: undefined },
51
+ * { name: "oldest", label: "Oldest First", count: undefined }
52
+ * ]}
53
+ * />
54
+ * ```
55
+ */
56
+ export declare function SingleChoiceFacet({ name, title, filters, onFiltersChange, options, fallbackName, defaultOpen, countsCaption, headingLevel, className, ...props }: SingleChoiceFacetProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,54 @@
1
+ import { jsxs as F, jsx as r } from "react/jsx-runtime";
2
+ import { Foldable as L } from "../../Utilities/Foldable.js";
3
+ import { useId as N } from "react";
4
+ import { countsCaptionOf as v, DEFAULT_COUNTS_CAPTION as x, FacetCountsCaption as y } from "../FacetCountsCaption.js";
5
+ import { FacetLabel as I } from "../FacetLabel.js";
6
+ import { readSingle as O } from "../../../Models/Filters/read.js";
7
+ import { Radio as S } from "../../Inputs/Radio/Radio.js";
8
+ function E({
9
+ name: a,
10
+ title: c,
11
+ filters: i,
12
+ onFiltersChange: d,
13
+ options: o,
14
+ fallbackName: m,
15
+ defaultOpen: l = !0,
16
+ countsCaption: s = x,
17
+ headingLevel: u,
18
+ className: f,
19
+ ...h
20
+ }) {
21
+ const p = O(i, a), t = N(), n = v(o, s), C = (e) => {
22
+ d(a, e);
23
+ };
24
+ return /* @__PURE__ */ F(L, { title: c, defaultOpen: l, headingLevel: u, className: f, ...h, children: [
25
+ n && /* @__PURE__ */ r(y, { id: t, children: n }),
26
+ /* @__PURE__ */ r(
27
+ "div",
28
+ {
29
+ role: "radiogroup",
30
+ "aria-label": c,
31
+ "aria-describedby": n ? t : void 0,
32
+ className: "space-y-2",
33
+ children: o.map((e) => {
34
+ const b = e.name === "NULL" && m ? m : e.name, g = e.label || b;
35
+ return /* @__PURE__ */ r(
36
+ S,
37
+ {
38
+ id: `${a}-${e.name}`,
39
+ name: a,
40
+ value: e.name,
41
+ label: /* @__PURE__ */ r(I, { name: g, count: e.count }),
42
+ checked: p === e.name,
43
+ onChange: () => C(e.name)
44
+ },
45
+ e.name
46
+ );
47
+ })
48
+ }
49
+ )
50
+ ] });
51
+ }
52
+ export {
53
+ E as SingleChoiceFacet
54
+ };
@@ -0,0 +1,8 @@
1
+ export { DateRangeFacet } from "./DateRangeFacet.js";
2
+ export { MultipleChoiceFacet } from "./MultipleChoiceFacet.js";
3
+ export { PerformanceFacet } from "./PerformanceFacet.js";
4
+ export { SingleChoiceFacet } from "./SingleChoiceFacet.js";
5
+ export type { DateRangeFacetProps } from "./DateRangeFacet.js";
6
+ export type { MultipleChoiceFacetProps, FacetOption } from "./MultipleChoiceFacet.js";
7
+ export type { PerformanceFacetProps } from "./PerformanceFacet.js";
8
+ export type { SingleChoiceFacetProps } from "./SingleChoiceFacet.js";
@@ -0,0 +1,10 @@
1
+ import { DateRangeFacet as r } from "./DateRangeFacet.js";
2
+ import { MultipleChoiceFacet as a } from "./MultipleChoiceFacet.js";
3
+ import { PerformanceFacet as f } from "./PerformanceFacet.js";
4
+ import { SingleChoiceFacet as p } from "./SingleChoiceFacet.js";
5
+ export {
6
+ r as DateRangeFacet,
7
+ a as MultipleChoiceFacet,
8
+ f as PerformanceFacet,
9
+ p as SingleChoiceFacet
10
+ };
@@ -0,0 +1,33 @@
1
+ import type { FacetOption, FilterMeta } from "../../../Models/Filters/index.js";
2
+ export type { FacetOption };
3
+ /** An option that has values beneath it. An empty `under` is a flat value. */
4
+ export type NestedOption = FacetOption & {
5
+ under: FilterMeta[];
6
+ };
7
+ export declare const isNested: (option: FacetOption) => option is NestedOption;
8
+ /** What a filter says about one option. A flat value is `whole` or `none`. */
9
+ export type OptionState = {
10
+ kind: "none";
11
+ } | {
12
+ kind: "whole";
13
+ } | {
14
+ kind: "some";
15
+ codes: string[];
16
+ } | {
17
+ kind: "minus";
18
+ excluded: string[];
19
+ };
20
+ export declare const readSelection: (values: string[], options: FacetOption[]) => OptionState[];
21
+ /**
22
+ * The filter the given states write: options in the facet's order, depth first, so one view has one address. Values
23
+ * the facet does not offer keep their place after the offered ones rather than being dropped unseen.
24
+ */
25
+ export declare function writeSelection(states: OptionState[], options: FacetOption[], values: string[]): string[];
26
+ export declare const toggleOption: (state: OptionState) => OptionState;
27
+ /**
28
+ * Under a closed class a code is chosen or not; under an open class it is kept or excluded. Choosing the last code
29
+ * gives the class; excluding the last kept code clears it, as `["4", "-400", "-404", "-422"]` would only match codes
30
+ * not seen yet.
31
+ */
32
+ export declare function toggleCode(state: OptionState, option: NestedOption, code: string): OptionState;
33
+ export declare function isCodeTicked(state: OptionState, code: string): boolean;