@webority/ui-react 0.37.0 → 0.39.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 (431) hide show
  1. package/dist/components/AppAccordion.js +1 -57
  2. package/dist/components/AppActionIcon.js +1 -53
  3. package/dist/components/AppAlert.js +1 -85
  4. package/dist/components/AppAsyncBlock.js +1 -48
  5. package/dist/components/AppAutocomplete.js +1 -93
  6. package/dist/components/AppAvatar.js +1 -143
  7. package/dist/components/AppAvatarGroup.js +1 -43
  8. package/dist/components/AppAvatarPicker.js +1 -247
  9. package/dist/components/AppBadge.js +1 -28
  10. package/dist/components/AppBanner.js +1 -49
  11. package/dist/components/AppBreadcrumbs.js +1 -24
  12. package/dist/components/AppButton.js +1 -85
  13. package/dist/components/AppCalendar.js +1 -72
  14. package/dist/components/AppCard.js +1 -110
  15. package/dist/components/AppChart.js +1 -153
  16. package/dist/components/AppChartCard.js +1 -125
  17. package/dist/components/AppCheckbox.js +1 -21
  18. package/dist/components/AppChip.js +1 -71
  19. package/dist/components/AppChoiceCard.js +1 -69
  20. package/dist/components/AppChoiceChip.js +1 -31
  21. package/dist/components/AppColorField.js +1 -63
  22. package/dist/components/AppColumnMenu.js +1 -27
  23. package/dist/components/AppCommandPalette.js +1 -164
  24. package/dist/components/AppCompareTable.js +1 -41
  25. package/dist/components/AppConfirmDialog.js +1 -93
  26. package/dist/components/AppConsentBanner.js +1 -37
  27. package/dist/components/AppContextMenu.js +1 -46
  28. package/dist/components/AppCopyButton.js +1 -41
  29. package/dist/components/AppCountrySelect.js +1 -75
  30. package/dist/components/AppDashboardCell.js +1 -19
  31. package/dist/components/AppDashboardGrid.js +1 -12
  32. package/dist/components/AppDataTable.js +1 -213
  33. package/dist/components/AppDatePicker.js +1 -59
  34. package/dist/components/AppDateRangePicker.js +1 -73
  35. package/dist/components/AppDescriptions.js +1 -40
  36. package/dist/components/AppDropZone.js +1 -106
  37. package/dist/components/AppDropdown.js +1 -90
  38. package/dist/components/AppEmptyState.js +1 -37
  39. package/dist/components/AppErrorSummary.js +1 -37
  40. package/dist/components/AppFileAttachment.js +1 -140
  41. package/dist/components/AppFilePicker.js +1 -220
  42. package/dist/components/AppFileViewer.js +1 -50
  43. package/dist/components/AppFilterBar.js +1 -129
  44. package/dist/components/AppFloatingDock.js +1 -47
  45. package/dist/components/AppFormActions.js +1 -23
  46. package/dist/components/AppFormRow.js +1 -24
  47. package/dist/components/AppFormSection.js +1 -32
  48. package/dist/components/AppIcon.js +1 -147
  49. package/dist/components/AppInfoList.js +1 -36
  50. package/dist/components/AppInfoTip.js +1 -41
  51. package/dist/components/AppInput.js +1 -269
  52. package/dist/components/AppKanban.js +1 -270
  53. package/dist/components/AppKpiTile.js +1 -91
  54. package/dist/components/AppLink.js +1 -74
  55. package/dist/components/AppLogoPicker.js +1 -264
  56. package/dist/components/AppMeter.js +1 -42
  57. package/dist/components/AppModal.js +1 -124
  58. package/dist/components/AppMultiSelect.js +1 -75
  59. package/dist/components/AppNumberInput.js +1 -139
  60. package/dist/components/AppOtpInput.js +1 -53
  61. package/dist/components/AppPageHeader.js +1 -82
  62. package/dist/components/AppPagination.js +1 -66
  63. package/dist/components/AppPhoneNumberInput.js +1 -53
  64. package/dist/components/AppPopover.js +1 -47
  65. package/dist/components/AppPricingCard.js +1 -58
  66. package/dist/components/AppProgress.js +1 -42
  67. package/dist/components/AppQrCode.js +1 -40
  68. package/dist/components/AppRadio.js +1 -21
  69. package/dist/components/AppRadioGroup.js +1 -79
  70. package/dist/components/AppRepeater.js +1 -57
  71. package/dist/components/AppRequiredMark.js +1 -11
  72. package/dist/components/AppResourceCard.js +1 -38
  73. package/dist/components/AppResult.js +1 -66
  74. package/dist/components/AppRichText.js +1 -72
  75. package/dist/components/AppRouteError.js +1 -0
  76. package/dist/components/AppScrollbar.js +1 -16
  77. package/dist/components/AppSearch.js +1 -52
  78. package/dist/components/AppSegmented.js +1 -87
  79. package/dist/components/AppSelect.js +1 -95
  80. package/dist/components/AppSelectMini.js +1 -45
  81. package/dist/components/AppShell.js +1 -712
  82. package/dist/components/AppSidebarMenu.js +1 -77
  83. package/dist/components/AppSkeleton.js +1 -24
  84. package/dist/components/AppSlider.js +1 -76
  85. package/dist/components/AppSortableList.js +1 -63
  86. package/dist/components/AppSparkline.js +1 -47
  87. package/dist/components/AppSpinner.js +1 -23
  88. package/dist/components/AppSplash.js +1 -62
  89. package/dist/components/AppStatusBadge.js +1 -22
  90. package/dist/components/AppStepper.js +1 -94
  91. package/dist/components/AppSwitch.js +1 -26
  92. package/dist/components/AppTableEmptyState.js +1 -30
  93. package/dist/components/AppTablePagination.js +1 -85
  94. package/dist/components/AppTableToolbar.js +1 -41
  95. package/dist/components/AppTabs.js +1 -195
  96. package/dist/components/AppTagInput.js +1 -63
  97. package/dist/components/AppTextarea.js +1 -81
  98. package/dist/components/AppThemeToggle.js +1 -102
  99. package/dist/components/AppTimePicker.js +1 -68
  100. package/dist/components/AppTimeline.js +1 -102
  101. package/dist/components/AppToast.js +1 -169
  102. package/dist/components/AppToolbar.js +1 -63
  103. package/dist/components/AppTooltip.js +1 -50
  104. package/dist/components/AppTour.js +1 -39
  105. package/dist/components/AppTreeView.js +1 -61
  106. package/dist/components/AppUpdateBar.js +1 -0
  107. package/dist/components/AppWizard.js +1 -82
  108. package/dist/components/AppWorkspaceSwitcher.js +1 -176
  109. package/dist/components/ModalIcons.js +1 -18
  110. package/dist/components/iconCatalogFull/bold/a.g.js +1 -69
  111. package/dist/components/iconCatalogFull/bold/b.g.js +1 -79
  112. package/dist/components/iconCatalogFull/bold/c.g.js +1 -98
  113. package/dist/components/iconCatalogFull/bold/d.g.js +1 -54
  114. package/dist/components/iconCatalogFull/bold/e.g.js +1 -34
  115. package/dist/components/iconCatalogFull/bold/f.g.js +1 -39
  116. package/dist/components/iconCatalogFull/bold/g.g.js +1 -43
  117. package/dist/components/iconCatalogFull/bold/h.g.js +1 -38
  118. package/dist/components/iconCatalogFull/bold/i.g.js +1 -20
  119. package/dist/components/iconCatalogFull/bold/j.g.js +1 -8
  120. package/dist/components/iconCatalogFull/bold/k.g.js +1 -9
  121. package/dist/components/iconCatalogFull/bold/l.g.js +1 -38
  122. package/dist/components/iconCatalogFull/bold/m.g.js +1 -91
  123. package/dist/components/iconCatalogFull/bold/n.g.js +1 -23
  124. package/dist/components/iconCatalogFull/bold/o.g.js +1 -11
  125. package/dist/components/iconCatalogFull/bold/p.g.js +1 -45
  126. package/dist/components/iconCatalogFull/bold/q.g.js +1 -12
  127. package/dist/components/iconCatalogFull/bold/r.g.js +1 -47
  128. package/dist/components/iconCatalogFull/bold/s.g.js +1 -99
  129. package/dist/components/iconCatalogFull/bold/t.g.js +1 -60
  130. package/dist/components/iconCatalogFull/bold/u.g.js +1 -17
  131. package/dist/components/iconCatalogFull/bold/v.g.js +1 -27
  132. package/dist/components/iconCatalogFull/bold/w.g.js +1 -30
  133. package/dist/components/iconCatalogFull/bold/x.g.js +1 -8
  134. package/dist/components/iconCatalogFull/bold/y.g.js +1 -0
  135. package/dist/components/iconCatalogFull/bold/z.g.js +1 -7
  136. package/dist/components/iconCatalogFull/broken/a.g.js +1 -69
  137. package/dist/components/iconCatalogFull/broken/b.g.js +1 -79
  138. package/dist/components/iconCatalogFull/broken/c.g.js +1 -98
  139. package/dist/components/iconCatalogFull/broken/d.g.js +1 -54
  140. package/dist/components/iconCatalogFull/broken/e.g.js +1 -34
  141. package/dist/components/iconCatalogFull/broken/f.g.js +1 -39
  142. package/dist/components/iconCatalogFull/broken/g.g.js +1 -43
  143. package/dist/components/iconCatalogFull/broken/h.g.js +1 -38
  144. package/dist/components/iconCatalogFull/broken/i.g.js +1 -20
  145. package/dist/components/iconCatalogFull/broken/j.g.js +1 -8
  146. package/dist/components/iconCatalogFull/broken/k.g.js +1 -9
  147. package/dist/components/iconCatalogFull/broken/l.g.js +1 -38
  148. package/dist/components/iconCatalogFull/broken/m.g.js +1 -91
  149. package/dist/components/iconCatalogFull/broken/n.g.js +1 -23
  150. package/dist/components/iconCatalogFull/broken/o.g.js +1 -11
  151. package/dist/components/iconCatalogFull/broken/p.g.js +1 -45
  152. package/dist/components/iconCatalogFull/broken/q.g.js +1 -12
  153. package/dist/components/iconCatalogFull/broken/r.g.js +1 -47
  154. package/dist/components/iconCatalogFull/broken/s.g.js +1 -99
  155. package/dist/components/iconCatalogFull/broken/t.g.js +1 -60
  156. package/dist/components/iconCatalogFull/broken/u.g.js +1 -17
  157. package/dist/components/iconCatalogFull/broken/v.g.js +1 -27
  158. package/dist/components/iconCatalogFull/broken/w.g.js +1 -30
  159. package/dist/components/iconCatalogFull/broken/x.g.js +1 -8
  160. package/dist/components/iconCatalogFull/broken/y.g.js +1 -0
  161. package/dist/components/iconCatalogFull/broken/z.g.js +1 -7
  162. package/dist/components/iconCatalogFull/bulk/a.g.js +1 -69
  163. package/dist/components/iconCatalogFull/bulk/b.g.js +1 -79
  164. package/dist/components/iconCatalogFull/bulk/c.g.js +1 -98
  165. package/dist/components/iconCatalogFull/bulk/d.g.js +1 -54
  166. package/dist/components/iconCatalogFull/bulk/e.g.js +1 -34
  167. package/dist/components/iconCatalogFull/bulk/f.g.js +1 -39
  168. package/dist/components/iconCatalogFull/bulk/g.g.js +1 -43
  169. package/dist/components/iconCatalogFull/bulk/h.g.js +1 -38
  170. package/dist/components/iconCatalogFull/bulk/i.g.js +1 -20
  171. package/dist/components/iconCatalogFull/bulk/j.g.js +1 -8
  172. package/dist/components/iconCatalogFull/bulk/k.g.js +1 -9
  173. package/dist/components/iconCatalogFull/bulk/l.g.js +1 -38
  174. package/dist/components/iconCatalogFull/bulk/m.g.js +1 -91
  175. package/dist/components/iconCatalogFull/bulk/n.g.js +1 -23
  176. package/dist/components/iconCatalogFull/bulk/o.g.js +1 -11
  177. package/dist/components/iconCatalogFull/bulk/p.g.js +1 -45
  178. package/dist/components/iconCatalogFull/bulk/q.g.js +1 -12
  179. package/dist/components/iconCatalogFull/bulk/r.g.js +1 -47
  180. package/dist/components/iconCatalogFull/bulk/s.g.js +1 -99
  181. package/dist/components/iconCatalogFull/bulk/t.g.js +1 -60
  182. package/dist/components/iconCatalogFull/bulk/u.g.js +1 -17
  183. package/dist/components/iconCatalogFull/bulk/v.g.js +1 -27
  184. package/dist/components/iconCatalogFull/bulk/w.g.js +1 -30
  185. package/dist/components/iconCatalogFull/bulk/x.g.js +1 -8
  186. package/dist/components/iconCatalogFull/bulk/y.g.js +1 -0
  187. package/dist/components/iconCatalogFull/bulk/z.g.js +1 -7
  188. package/dist/components/iconCatalogFull/linear/a.g.js +1 -69
  189. package/dist/components/iconCatalogFull/linear/b.g.js +1 -79
  190. package/dist/components/iconCatalogFull/linear/c.g.js +1 -98
  191. package/dist/components/iconCatalogFull/linear/d.g.js +1 -54
  192. package/dist/components/iconCatalogFull/linear/e.g.js +1 -34
  193. package/dist/components/iconCatalogFull/linear/f.g.js +1 -39
  194. package/dist/components/iconCatalogFull/linear/g.g.js +1 -43
  195. package/dist/components/iconCatalogFull/linear/h.g.js +1 -38
  196. package/dist/components/iconCatalogFull/linear/i.g.js +1 -20
  197. package/dist/components/iconCatalogFull/linear/j.g.js +1 -8
  198. package/dist/components/iconCatalogFull/linear/k.g.js +1 -9
  199. package/dist/components/iconCatalogFull/linear/l.g.js +1 -38
  200. package/dist/components/iconCatalogFull/linear/m.g.js +1 -91
  201. package/dist/components/iconCatalogFull/linear/n.g.js +1 -23
  202. package/dist/components/iconCatalogFull/linear/o.g.js +1 -11
  203. package/dist/components/iconCatalogFull/linear/p.g.js +1 -45
  204. package/dist/components/iconCatalogFull/linear/q.g.js +1 -12
  205. package/dist/components/iconCatalogFull/linear/r.g.js +1 -47
  206. package/dist/components/iconCatalogFull/linear/s.g.js +1 -99
  207. package/dist/components/iconCatalogFull/linear/t.g.js +1 -60
  208. package/dist/components/iconCatalogFull/linear/u.g.js +1 -17
  209. package/dist/components/iconCatalogFull/linear/v.g.js +1 -27
  210. package/dist/components/iconCatalogFull/linear/w.g.js +1 -30
  211. package/dist/components/iconCatalogFull/linear/x.g.js +1 -8
  212. package/dist/components/iconCatalogFull/linear/y.g.js +1 -0
  213. package/dist/components/iconCatalogFull/linear/z.g.js +1 -7
  214. package/dist/components/iconCatalogFull/outline/a.g.js +1 -69
  215. package/dist/components/iconCatalogFull/outline/b.g.js +1 -79
  216. package/dist/components/iconCatalogFull/outline/c.g.js +1 -98
  217. package/dist/components/iconCatalogFull/outline/d.g.js +1 -54
  218. package/dist/components/iconCatalogFull/outline/e.g.js +1 -34
  219. package/dist/components/iconCatalogFull/outline/f.g.js +1 -39
  220. package/dist/components/iconCatalogFull/outline/g.g.js +1 -43
  221. package/dist/components/iconCatalogFull/outline/h.g.js +1 -38
  222. package/dist/components/iconCatalogFull/outline/i.g.js +1 -20
  223. package/dist/components/iconCatalogFull/outline/j.g.js +1 -8
  224. package/dist/components/iconCatalogFull/outline/k.g.js +1 -9
  225. package/dist/components/iconCatalogFull/outline/l.g.js +1 -38
  226. package/dist/components/iconCatalogFull/outline/m.g.js +1 -91
  227. package/dist/components/iconCatalogFull/outline/n.g.js +1 -23
  228. package/dist/components/iconCatalogFull/outline/o.g.js +1 -11
  229. package/dist/components/iconCatalogFull/outline/p.g.js +1 -45
  230. package/dist/components/iconCatalogFull/outline/q.g.js +1 -12
  231. package/dist/components/iconCatalogFull/outline/r.g.js +1 -47
  232. package/dist/components/iconCatalogFull/outline/s.g.js +1 -99
  233. package/dist/components/iconCatalogFull/outline/t.g.js +1 -60
  234. package/dist/components/iconCatalogFull/outline/u.g.js +1 -17
  235. package/dist/components/iconCatalogFull/outline/v.g.js +1 -27
  236. package/dist/components/iconCatalogFull/outline/w.g.js +1 -30
  237. package/dist/components/iconCatalogFull/outline/x.g.js +1 -8
  238. package/dist/components/iconCatalogFull/outline/y.g.js +1 -0
  239. package/dist/components/iconCatalogFull/outline/z.g.js +1 -7
  240. package/dist/components/iconCatalogFull/twotone/a.g.js +1 -69
  241. package/dist/components/iconCatalogFull/twotone/b.g.js +1 -79
  242. package/dist/components/iconCatalogFull/twotone/c.g.js +1 -98
  243. package/dist/components/iconCatalogFull/twotone/d.g.js +1 -54
  244. package/dist/components/iconCatalogFull/twotone/e.g.js +1 -34
  245. package/dist/components/iconCatalogFull/twotone/f.g.js +1 -39
  246. package/dist/components/iconCatalogFull/twotone/g.g.js +1 -43
  247. package/dist/components/iconCatalogFull/twotone/h.g.js +1 -38
  248. package/dist/components/iconCatalogFull/twotone/i.g.js +1 -20
  249. package/dist/components/iconCatalogFull/twotone/j.g.js +1 -8
  250. package/dist/components/iconCatalogFull/twotone/k.g.js +1 -9
  251. package/dist/components/iconCatalogFull/twotone/l.g.js +1 -38
  252. package/dist/components/iconCatalogFull/twotone/m.g.js +1 -91
  253. package/dist/components/iconCatalogFull/twotone/n.g.js +1 -23
  254. package/dist/components/iconCatalogFull/twotone/o.g.js +1 -11
  255. package/dist/components/iconCatalogFull/twotone/p.g.js +1 -45
  256. package/dist/components/iconCatalogFull/twotone/q.g.js +1 -12
  257. package/dist/components/iconCatalogFull/twotone/r.g.js +1 -47
  258. package/dist/components/iconCatalogFull/twotone/s.g.js +1 -99
  259. package/dist/components/iconCatalogFull/twotone/t.g.js +1 -60
  260. package/dist/components/iconCatalogFull/twotone/u.g.js +1 -17
  261. package/dist/components/iconCatalogFull/twotone/v.g.js +1 -27
  262. package/dist/components/iconCatalogFull/twotone/w.g.js +1 -30
  263. package/dist/components/iconCatalogFull/twotone/x.g.js +1 -8
  264. package/dist/components/iconCatalogFull/twotone/y.g.js +1 -0
  265. package/dist/components/iconCatalogFull/twotone/z.g.js +1 -7
  266. package/dist/components/iconCatalogLoaders.g.js +1 -170
  267. package/dist/components/iconCatalogNames.g.js +1 -4
  268. package/dist/components/iconGlyphs.g.js +1 -211
  269. package/dist/components/iconVariants.g.js +1 -1040
  270. package/dist/components/renderIconProp.js +1 -13
  271. package/dist/components/toast.js +1 -41
  272. package/dist/components/toastStore.js +1 -78
  273. package/dist/components/useWuiControl.js +1 -106
  274. package/dist/components/warnInvalidValue.js +1 -17
  275. package/dist/components/warnUnknownProps.js +1 -17
  276. package/dist/components/withTooltip.js +1 -12
  277. package/dist/lib/CheckField.js +1 -37
  278. package/dist/lib/FileItemRow.js +1 -44
  279. package/dist/lib/emptyValue.js +1 -6
  280. package/dist/lib/fileItem.js +1 -27
  281. package/dist/lib/focusField.js +1 -14
  282. package/dist/lib/listQuery.js +1 -57
  283. package/dist/lib/navMatch.js +1 -29
  284. package/dist/lib/pageWindow.js +1 -14
  285. package/dist/lib/qrCode.js +1 -577
  286. package/dist/lib/shellCookie.js +1 -16
  287. package/dist/lib/useCommandPaletteShortcut.js +1 -15
  288. package/dist/lib/useFloatingStack.js +1 -25
  289. package/dist/lib/useListQuery.js +1 -120
  290. package/dist/lib/usePagination.js +1 -29
  291. package/dist/lib/useTableView.js +1 -42
  292. package/dist/types/components/AppAlert.d.ts +6 -1
  293. package/dist/types/components/AppCalendar.d.ts +8 -6
  294. package/dist/types/components/AppDatePicker.d.ts +4 -1
  295. package/dist/types/components/AppDateRangePicker.d.ts +2 -1
  296. package/dist/types/components/AppDropdown.d.ts +12 -1
  297. package/dist/types/components/AppRouteError.d.ts +32 -0
  298. package/dist/types/components/AppStepper.d.ts +8 -1
  299. package/dist/types/components/AppUpdateBar.d.ts +20 -0
  300. package/dist/types/components/AppWizard.d.ts +4 -0
  301. package/dist/types/components/iconCatalogFull/bold/a.g.d.ts +11 -0
  302. package/dist/types/components/iconCatalogFull/bold/b.g.d.ts +3 -0
  303. package/dist/types/components/iconCatalogFull/bold/c.g.d.ts +18 -0
  304. package/dist/types/components/iconCatalogFull/bold/d.g.d.ts +4 -0
  305. package/dist/types/components/iconCatalogFull/bold/e.g.d.ts +4 -0
  306. package/dist/types/components/iconCatalogFull/bold/f.g.d.ts +7 -0
  307. package/dist/types/components/iconCatalogFull/bold/g.g.d.ts +2 -0
  308. package/dist/types/components/iconCatalogFull/bold/h.g.d.ts +6 -0
  309. package/dist/types/components/iconCatalogFull/bold/i.g.d.ts +2 -0
  310. package/dist/types/components/iconCatalogFull/bold/k.g.d.ts +2 -0
  311. package/dist/types/components/iconCatalogFull/bold/l.g.d.ts +5 -0
  312. package/dist/types/components/iconCatalogFull/bold/m.g.d.ts +10 -0
  313. package/dist/types/components/iconCatalogFull/bold/n.g.d.ts +1 -0
  314. package/dist/types/components/iconCatalogFull/bold/p.g.d.ts +6 -0
  315. package/dist/types/components/iconCatalogFull/bold/r.g.d.ts +4 -0
  316. package/dist/types/components/iconCatalogFull/bold/s.g.d.ts +11 -0
  317. package/dist/types/components/iconCatalogFull/bold/t.g.d.ts +7 -0
  318. package/dist/types/components/iconCatalogFull/bold/u.g.d.ts +3 -0
  319. package/dist/types/components/iconCatalogFull/bold/v.g.d.ts +3 -0
  320. package/dist/types/components/iconCatalogFull/bold/w.g.d.ts +2 -0
  321. package/dist/types/components/iconCatalogFull/bold/y.g.d.ts +3 -0
  322. package/dist/types/components/iconCatalogFull/broken/a.g.d.ts +11 -0
  323. package/dist/types/components/iconCatalogFull/broken/b.g.d.ts +3 -0
  324. package/dist/types/components/iconCatalogFull/broken/c.g.d.ts +18 -0
  325. package/dist/types/components/iconCatalogFull/broken/d.g.d.ts +4 -0
  326. package/dist/types/components/iconCatalogFull/broken/e.g.d.ts +4 -0
  327. package/dist/types/components/iconCatalogFull/broken/f.g.d.ts +7 -0
  328. package/dist/types/components/iconCatalogFull/broken/g.g.d.ts +2 -0
  329. package/dist/types/components/iconCatalogFull/broken/h.g.d.ts +6 -0
  330. package/dist/types/components/iconCatalogFull/broken/i.g.d.ts +2 -0
  331. package/dist/types/components/iconCatalogFull/broken/k.g.d.ts +2 -0
  332. package/dist/types/components/iconCatalogFull/broken/l.g.d.ts +5 -0
  333. package/dist/types/components/iconCatalogFull/broken/m.g.d.ts +10 -0
  334. package/dist/types/components/iconCatalogFull/broken/n.g.d.ts +1 -0
  335. package/dist/types/components/iconCatalogFull/broken/p.g.d.ts +6 -0
  336. package/dist/types/components/iconCatalogFull/broken/r.g.d.ts +4 -0
  337. package/dist/types/components/iconCatalogFull/broken/s.g.d.ts +11 -0
  338. package/dist/types/components/iconCatalogFull/broken/t.g.d.ts +7 -0
  339. package/dist/types/components/iconCatalogFull/broken/u.g.d.ts +3 -0
  340. package/dist/types/components/iconCatalogFull/broken/v.g.d.ts +3 -0
  341. package/dist/types/components/iconCatalogFull/broken/w.g.d.ts +2 -0
  342. package/dist/types/components/iconCatalogFull/broken/y.g.d.ts +3 -0
  343. package/dist/types/components/iconCatalogFull/bulk/a.g.d.ts +11 -0
  344. package/dist/types/components/iconCatalogFull/bulk/b.g.d.ts +3 -0
  345. package/dist/types/components/iconCatalogFull/bulk/c.g.d.ts +18 -0
  346. package/dist/types/components/iconCatalogFull/bulk/d.g.d.ts +4 -0
  347. package/dist/types/components/iconCatalogFull/bulk/e.g.d.ts +4 -0
  348. package/dist/types/components/iconCatalogFull/bulk/f.g.d.ts +7 -0
  349. package/dist/types/components/iconCatalogFull/bulk/g.g.d.ts +2 -0
  350. package/dist/types/components/iconCatalogFull/bulk/h.g.d.ts +6 -0
  351. package/dist/types/components/iconCatalogFull/bulk/i.g.d.ts +2 -0
  352. package/dist/types/components/iconCatalogFull/bulk/k.g.d.ts +2 -0
  353. package/dist/types/components/iconCatalogFull/bulk/l.g.d.ts +5 -0
  354. package/dist/types/components/iconCatalogFull/bulk/m.g.d.ts +10 -0
  355. package/dist/types/components/iconCatalogFull/bulk/n.g.d.ts +1 -0
  356. package/dist/types/components/iconCatalogFull/bulk/p.g.d.ts +6 -0
  357. package/dist/types/components/iconCatalogFull/bulk/r.g.d.ts +4 -0
  358. package/dist/types/components/iconCatalogFull/bulk/s.g.d.ts +11 -0
  359. package/dist/types/components/iconCatalogFull/bulk/t.g.d.ts +7 -0
  360. package/dist/types/components/iconCatalogFull/bulk/u.g.d.ts +3 -0
  361. package/dist/types/components/iconCatalogFull/bulk/v.g.d.ts +3 -0
  362. package/dist/types/components/iconCatalogFull/bulk/w.g.d.ts +2 -0
  363. package/dist/types/components/iconCatalogFull/bulk/y.g.d.ts +3 -0
  364. package/dist/types/components/iconCatalogFull/linear/a.g.d.ts +11 -0
  365. package/dist/types/components/iconCatalogFull/linear/b.g.d.ts +3 -0
  366. package/dist/types/components/iconCatalogFull/linear/c.g.d.ts +18 -0
  367. package/dist/types/components/iconCatalogFull/linear/d.g.d.ts +4 -0
  368. package/dist/types/components/iconCatalogFull/linear/e.g.d.ts +4 -0
  369. package/dist/types/components/iconCatalogFull/linear/f.g.d.ts +7 -0
  370. package/dist/types/components/iconCatalogFull/linear/g.g.d.ts +2 -0
  371. package/dist/types/components/iconCatalogFull/linear/h.g.d.ts +6 -0
  372. package/dist/types/components/iconCatalogFull/linear/i.g.d.ts +2 -0
  373. package/dist/types/components/iconCatalogFull/linear/k.g.d.ts +2 -0
  374. package/dist/types/components/iconCatalogFull/linear/l.g.d.ts +5 -0
  375. package/dist/types/components/iconCatalogFull/linear/m.g.d.ts +10 -0
  376. package/dist/types/components/iconCatalogFull/linear/n.g.d.ts +1 -0
  377. package/dist/types/components/iconCatalogFull/linear/p.g.d.ts +6 -0
  378. package/dist/types/components/iconCatalogFull/linear/r.g.d.ts +4 -0
  379. package/dist/types/components/iconCatalogFull/linear/s.g.d.ts +11 -0
  380. package/dist/types/components/iconCatalogFull/linear/t.g.d.ts +7 -0
  381. package/dist/types/components/iconCatalogFull/linear/u.g.d.ts +3 -0
  382. package/dist/types/components/iconCatalogFull/linear/v.g.d.ts +3 -0
  383. package/dist/types/components/iconCatalogFull/linear/w.g.d.ts +2 -0
  384. package/dist/types/components/iconCatalogFull/linear/y.g.d.ts +3 -0
  385. package/dist/types/components/iconCatalogFull/outline/a.g.d.ts +11 -0
  386. package/dist/types/components/iconCatalogFull/outline/b.g.d.ts +3 -0
  387. package/dist/types/components/iconCatalogFull/outline/c.g.d.ts +18 -0
  388. package/dist/types/components/iconCatalogFull/outline/d.g.d.ts +4 -0
  389. package/dist/types/components/iconCatalogFull/outline/e.g.d.ts +4 -0
  390. package/dist/types/components/iconCatalogFull/outline/f.g.d.ts +7 -0
  391. package/dist/types/components/iconCatalogFull/outline/g.g.d.ts +2 -0
  392. package/dist/types/components/iconCatalogFull/outline/h.g.d.ts +6 -0
  393. package/dist/types/components/iconCatalogFull/outline/i.g.d.ts +2 -0
  394. package/dist/types/components/iconCatalogFull/outline/k.g.d.ts +2 -0
  395. package/dist/types/components/iconCatalogFull/outline/l.g.d.ts +5 -0
  396. package/dist/types/components/iconCatalogFull/outline/m.g.d.ts +10 -0
  397. package/dist/types/components/iconCatalogFull/outline/n.g.d.ts +1 -0
  398. package/dist/types/components/iconCatalogFull/outline/p.g.d.ts +6 -0
  399. package/dist/types/components/iconCatalogFull/outline/r.g.d.ts +4 -0
  400. package/dist/types/components/iconCatalogFull/outline/s.g.d.ts +11 -0
  401. package/dist/types/components/iconCatalogFull/outline/t.g.d.ts +7 -0
  402. package/dist/types/components/iconCatalogFull/outline/u.g.d.ts +3 -0
  403. package/dist/types/components/iconCatalogFull/outline/v.g.d.ts +3 -0
  404. package/dist/types/components/iconCatalogFull/outline/w.g.d.ts +2 -0
  405. package/dist/types/components/iconCatalogFull/outline/y.g.d.ts +3 -0
  406. package/dist/types/components/iconCatalogFull/twotone/a.g.d.ts +11 -0
  407. package/dist/types/components/iconCatalogFull/twotone/b.g.d.ts +3 -0
  408. package/dist/types/components/iconCatalogFull/twotone/c.g.d.ts +18 -0
  409. package/dist/types/components/iconCatalogFull/twotone/d.g.d.ts +4 -0
  410. package/dist/types/components/iconCatalogFull/twotone/e.g.d.ts +4 -0
  411. package/dist/types/components/iconCatalogFull/twotone/f.g.d.ts +7 -0
  412. package/dist/types/components/iconCatalogFull/twotone/g.g.d.ts +2 -0
  413. package/dist/types/components/iconCatalogFull/twotone/h.g.d.ts +6 -0
  414. package/dist/types/components/iconCatalogFull/twotone/i.g.d.ts +2 -0
  415. package/dist/types/components/iconCatalogFull/twotone/k.g.d.ts +2 -0
  416. package/dist/types/components/iconCatalogFull/twotone/l.g.d.ts +5 -0
  417. package/dist/types/components/iconCatalogFull/twotone/m.g.d.ts +10 -0
  418. package/dist/types/components/iconCatalogFull/twotone/n.g.d.ts +1 -0
  419. package/dist/types/components/iconCatalogFull/twotone/p.g.d.ts +6 -0
  420. package/dist/types/components/iconCatalogFull/twotone/r.g.d.ts +4 -0
  421. package/dist/types/components/iconCatalogFull/twotone/s.g.d.ts +11 -0
  422. package/dist/types/components/iconCatalogFull/twotone/t.g.d.ts +7 -0
  423. package/dist/types/components/iconCatalogFull/twotone/u.g.d.ts +3 -0
  424. package/dist/types/components/iconCatalogFull/twotone/v.g.d.ts +3 -0
  425. package/dist/types/components/iconCatalogFull/twotone/w.g.d.ts +2 -0
  426. package/dist/types/components/iconCatalogFull/twotone/y.g.d.ts +3 -0
  427. package/dist/types/components/iconCatalogLoaders.g.d.ts +6 -0
  428. package/dist/types/index.d.ts +2 -0
  429. package/dist/ui-react.js +1 -117
  430. package/package.json +7 -9
  431. package/dist/types/components/__tests__/restPassthrough.d.ts +0 -9
@@ -1,712 +1 @@
1
- import e from "./warnInvalidValue.js";
2
- import t from "./warnUnknownProps.js";
3
- import n from "./AppIcon.js";
4
- import r from "./AppAvatar.js";
5
- import { navMatchScore as i } from "../lib/navMatch.js";
6
- import { readShellCollapsed as a, writeShellCollapsed as o } from "../lib/shellCookie.js";
7
- import { useEffect as s, useId as c, useMemo as l, useRef as u, useState as d } from "react";
8
- import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
9
- //#region src/components/AppShell.jsx
10
- var h = 99, g = 4, _ = 5, v = ["prefix", "exact"], y = (e) => e > h ? `${h}+` : String(e);
11
- function b({ groups: e = [], brand: r, sidebarStart: i, sidebarStartCompact: c, sidebarFooter: u, topbarStart: f, topbarEnd: h, footer: g, children: _, collapsed: v, onCollapsedChange: y, noSidebar: b = !1, navLabel: T = "Main navigation", linkComponent: O, currentPath: A, rememberCollapsed: j = !1, collapsedCookie: M = "wui-shell-collapsed", tabBarLabel: N = "Quick navigation", moreLabel: P = "More", userMenu: F, notifications: I, search: L, className: R = "", ...z }) {
12
- t("AppShell", z);
13
- let [B, V] = d(() => j && v === void 0 && typeof document < "u" ? a(M) ?? !1 : !1), [H, U] = d(!1), [W, G] = d(!1), K = v ?? B, q = () => {
14
- let e = !K;
15
- v === void 0 && V(e), j && o(e, M), y?.(e);
16
- }, J = l(() => x(e, A), [e, A]), Y = b ? null : S(J);
17
- return s(() => {
18
- let e = () => G(window.scrollY > 4);
19
- return e(), window.addEventListener("scroll", e, { passive: !0 }), () => window.removeEventListener("scroll", e);
20
- }, []), s(() => {
21
- if (!H) return;
22
- let e = (e) => {
23
- e.key === "Escape" && U(!1);
24
- };
25
- return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
26
- }, [H]), /* @__PURE__ */ m("div", {
27
- className: [
28
- "app-shell",
29
- K ? "collapsed" : "",
30
- b ? "no-sidebar" : "",
31
- H ? "mobile-open" : "",
32
- R
33
- ].filter(Boolean).join(" "),
34
- ...z,
35
- children: [
36
- /* @__PURE__ */ m("aside", {
37
- className: "app-sidebar",
38
- children: [
39
- r && /* @__PURE__ */ p("div", {
40
- className: "app-sidebar-brand",
41
- children: r
42
- }),
43
- i && /* @__PURE__ */ p("div", {
44
- className: "app-sidebar-start",
45
- children: i
46
- }),
47
- c && /* @__PURE__ */ p("div", {
48
- className: "app-sidebar-start-compact",
49
- children: c
50
- }),
51
- /* @__PURE__ */ p("nav", {
52
- className: "app-sidebar-scroll",
53
- "aria-label": T,
54
- children: J.map((e, t) => /* @__PURE__ */ m("div", {
55
- className: "app-nav-group",
56
- children: [
57
- e.label && /* @__PURE__ */ p("div", {
58
- className: "app-nav-group-label",
59
- children: e.label
60
- }),
61
- e.items.map((e) => /* @__PURE__ */ p(w, {
62
- item: e,
63
- linkComponent: O,
64
- onNavigate: () => U(!1)
65
- }, e.key ?? e.href ?? e.label)),
66
- e.after && /* @__PURE__ */ p("div", {
67
- className: "wui-nav-group-after",
68
- children: e.after
69
- })
70
- ]
71
- }, e.label ?? `group-${t}`))
72
- }),
73
- u && /* @__PURE__ */ p("div", {
74
- className: "app-sidebar-foot",
75
- children: u
76
- }),
77
- !b && /* @__PURE__ */ p("button", {
78
- type: "button",
79
- className: "app-sidebar-toggle",
80
- onClick: q,
81
- "aria-label": K ? "Expand navigation" : "Collapse navigation",
82
- "aria-expanded": !K,
83
- children: /* @__PURE__ */ p(n, {
84
- name: "chevrons-left",
85
- size: 20
86
- })
87
- })
88
- ]
89
- }),
90
- /* @__PURE__ */ m("div", {
91
- className: "app-main",
92
- children: [
93
- /* @__PURE__ */ m("header", {
94
- className: `app-topbar${W ? " scrolled" : ""}`,
95
- children: [/* @__PURE__ */ m("div", {
96
- className: "app-topbar-start",
97
- children: [
98
- /* @__PURE__ */ p("button", {
99
- type: "button",
100
- className: "app-topbar-menu",
101
- onClick: () => U(!0),
102
- "aria-label": "Open navigation",
103
- "aria-expanded": H,
104
- children: /* @__PURE__ */ p(n, {
105
- name: "menu",
106
- size: 18
107
- })
108
- }),
109
- f,
110
- L && /* @__PURE__ */ p(k, { config: L })
111
- ]
112
- }), /* @__PURE__ */ m("div", {
113
- className: "app-topbar-end",
114
- children: [
115
- h,
116
- I && /* @__PURE__ */ p(D, { config: I }),
117
- F && /* @__PURE__ */ p(E, {
118
- config: F,
119
- linkComponent: O
120
- })
121
- ]
122
- })]
123
- }),
124
- /* @__PURE__ */ p("main", {
125
- className: "app-content",
126
- children: _
127
- }),
128
- g && /* @__PURE__ */ p("footer", {
129
- className: "app-footer",
130
- children: g
131
- })
132
- ]
133
- }),
134
- Y && /* @__PURE__ */ m("nav", {
135
- className: "wui-tabbar",
136
- "aria-label": N,
137
- children: [Y.tabs.map((e) => /* @__PURE__ */ p(C, {
138
- tab: e,
139
- linkComponent: O
140
- }, e.key ?? e.href)), Y.hasMore && /* @__PURE__ */ m("button", {
141
- type: "button",
142
- className: `wui-tabbar-item${Y.moreActive ? " active" : ""}`,
143
- onClick: () => U(!0),
144
- children: [/* @__PURE__ */ p("span", {
145
- className: "wui-tabbar-icon",
146
- children: /* @__PURE__ */ p(n, {
147
- name: "more",
148
- size: 24
149
- })
150
- }), /* @__PURE__ */ p("span", {
151
- className: "wui-tabbar-label",
152
- children: P
153
- })]
154
- })]
155
- }),
156
- /* @__PURE__ */ p("button", {
157
- type: "button",
158
- className: "app-scrim",
159
- onClick: () => U(!1),
160
- "aria-label": "Close navigation",
161
- tabIndex: H ? 0 : -1
162
- })
163
- ]
164
- });
165
- }
166
- function x(t, n) {
167
- let r = (e) => (e ?? []).map((e) => Array.isArray(e.children) ? {
168
- ...e,
169
- children: r(e.children)
170
- } : { ...e }).filter((e) => (e.children?.length ?? 0) > 0 || !!e.href), a = t.map((e) => ({
171
- ...e,
172
- items: r(e.items)
173
- })).filter((e) => e.items.length > 0), o = [], s = (e) => {
174
- for (let t of e) o.push(t), t.children && s(t.children);
175
- };
176
- for (let e of a) s(e.items);
177
- for (let t of o) e("AppShell", "match", t.match, v);
178
- let c = null;
179
- if (n != null && !o.some((e) => e.active === !0)) {
180
- let e = -1;
181
- for (let t of o) {
182
- if (t.active != null || t.children?.length) continue;
183
- let r = i(n, t.href, {
184
- exact: t.match === "exact",
185
- also: t.matchAlso
186
- });
187
- r > e && (e = r, c = t);
188
- }
189
- }
190
- for (let e of o) e.active = e.active ?? e === c;
191
- return a;
192
- }
193
- function S(e) {
194
- let t = [], n = (e) => {
195
- for (let r of e) r.children?.length ? n(r.children) : t.push(r);
196
- };
197
- for (let t of e) n(t.items);
198
- let r = t.filter((e) => e.tab);
199
- if (r.length === 0) return null;
200
- let i = r.length < t.length, a = i ? g : _;
201
- if (r.length > a) throw Error(`<AppShell>: ${r.length} items carry tab: true, but the phone tab bar holds ${a} (${i ? "4 plus More, because other items exist" : "5 when every item is a tab"}). Flag fewer items.`);
202
- return {
203
- tabs: r,
204
- hasMore: i,
205
- moreActive: t.some((e) => !e.tab && e.active)
206
- };
207
- }
208
- function C({ tab: e, linkComponent: t }) {
209
- let r = `wui-tabbar-item${e.active ? " active" : ""}`, i = /* @__PURE__ */ m(f, { children: [
210
- e.icon && /* @__PURE__ */ p("span", {
211
- className: "wui-tabbar-icon",
212
- children: typeof e.icon == "string" ? /* @__PURE__ */ p(n, {
213
- name: e.icon,
214
- size: 24
215
- }) : e.icon
216
- }),
217
- /* @__PURE__ */ p("span", {
218
- className: "wui-tabbar-label",
219
- children: e.tabLabel ?? e.label
220
- }),
221
- e.badge != null && /* @__PURE__ */ p("span", {
222
- className: `wui-tabbar-badge${e.badgeTone ? ` tone-${e.badgeTone}` : ""}`,
223
- children: e.badge
224
- })
225
- ] }), a = e.active ? "page" : void 0;
226
- return t ? /* @__PURE__ */ p(t, {
227
- className: r,
228
- to: e.href,
229
- "aria-current": a,
230
- children: i
231
- }) : /* @__PURE__ */ p("a", {
232
- className: r,
233
- href: e.href,
234
- "aria-current": a,
235
- children: i
236
- });
237
- }
238
- function w({ item: e, linkComponent: t, onNavigate: r, depth: i = 0 }) {
239
- let a = i > 0, o = i > 1 ? { "--wui-nav-depth": i } : void 0, c = Array.isArray(e.children) && e.children.length > 0, l = c && e.children.some((e) => e.active), [u, h] = d(l);
240
- s(() => {
241
- l && !u && h(!0);
242
- }, [l, u]);
243
- let g = typeof e.label == "string" ? e.label : void 0, _ = !a && e.icon && /* @__PURE__ */ p("span", {
244
- className: "app-nav-icon",
245
- children: typeof e.icon == "string" ? /* @__PURE__ */ p(n, {
246
- name: e.icon,
247
- size: 22
248
- }) : e.icon
249
- }), v = e.badge != null && /* @__PURE__ */ p("span", {
250
- className: `app-nav-badge${e.badgeTone ? ` tone-${e.badgeTone}` : ""}`,
251
- children: e.badge
252
- });
253
- if (c) return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
254
- type: "button",
255
- className: `app-nav-item${a ? " app-nav-subitem" : ""} has-children${l ? " active" : ""}`,
256
- style: o,
257
- "aria-expanded": u,
258
- "data-label": g,
259
- onClick: () => h((e) => !e),
260
- children: [
261
- _,
262
- /* @__PURE__ */ p("span", {
263
- className: "app-nav-text",
264
- children: e.label
265
- }),
266
- v,
267
- /* @__PURE__ */ p("span", {
268
- className: "app-nav-caret",
269
- children: /* @__PURE__ */ p(n, {
270
- name: "chevron-right",
271
- size: 16
272
- })
273
- })
274
- ]
275
- }), /* @__PURE__ */ p("div", {
276
- className: `app-nav-sub${u ? " expanded" : ""}`,
277
- inert: !u,
278
- "aria-hidden": !u || void 0,
279
- children: /* @__PURE__ */ p("div", {
280
- className: "app-nav-sub-inner",
281
- children: e.children.map((e) => /* @__PURE__ */ p(w, {
282
- item: e,
283
- linkComponent: t,
284
- onNavigate: r,
285
- depth: i + 1
286
- }, e.key ?? e.href))
287
- })
288
- })] });
289
- let y = `app-nav-item${a ? " app-nav-subitem" : ""}${e.active ? " active" : ""}`, b = /* @__PURE__ */ m(f, { children: [
290
- _,
291
- /* @__PURE__ */ p("span", {
292
- className: "app-nav-text",
293
- children: e.label
294
- }),
295
- v,
296
- e.trailingIcon && /* @__PURE__ */ p("span", {
297
- className: "app-nav-trailing",
298
- children: typeof e.trailingIcon == "string" ? /* @__PURE__ */ p(n, {
299
- name: e.trailingIcon,
300
- size: 16
301
- }) : e.trailingIcon
302
- })
303
- ] }), x = e.active ? "page" : void 0;
304
- return t ? /* @__PURE__ */ p(t, {
305
- className: y,
306
- style: o,
307
- to: e.href,
308
- "aria-current": x,
309
- "data-label": g,
310
- onClick: r,
311
- children: b
312
- }) : /* @__PURE__ */ p("a", {
313
- className: y,
314
- style: o,
315
- href: e.href,
316
- "aria-current": x,
317
- "data-label": g,
318
- onClick: r,
319
- children: b
320
- });
321
- }
322
- function T() {
323
- let [e, t] = d(!1), n = u(null);
324
- return s(() => {
325
- if (!e) return;
326
- let r = (e) => {
327
- n.current?.contains(e.target) || t(!1);
328
- }, i = (e) => {
329
- e.key === "Escape" && (t(!1), n.current?.querySelector("button")?.focus());
330
- };
331
- return document.addEventListener("mousedown", r), document.addEventListener("keydown", i), () => {
332
- document.removeEventListener("mousedown", r), document.removeEventListener("keydown", i);
333
- };
334
- }, [e]), {
335
- open: e,
336
- setOpen: t,
337
- ref: n
338
- };
339
- }
340
- function E({ config: e, linkComponent: t }) {
341
- let i = c(), { open: a, setOpen: o, ref: s } = T(), { name: l, role: u, photo: d, profileHref: h, profileLabel: g = "My profile", onLogout: _, logoutAction: v, logoutLabel: y = "Sign out", items: b = [] } = e;
342
- if (!l) throw Error("<AppShell> userMenu.name is required; the trigger and the avatar are named from it.");
343
- let x = () => o(!1), S = (e, n, r, i) => t ? /* @__PURE__ */ p(t, {
344
- className: "dropdown-item",
345
- to: e,
346
- onClick: i,
347
- children: n
348
- }, r) : /* @__PURE__ */ p("a", {
349
- className: "dropdown-item",
350
- href: e,
351
- onClick: i,
352
- children: n
353
- }, r), C = /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(n, {
354
- name: "log-out",
355
- size: 18
356
- }), y] });
357
- return /* @__PURE__ */ m("div", {
358
- className: "dropdown wui-usermenu",
359
- ref: s,
360
- children: [/* @__PURE__ */ m("button", {
361
- type: "button",
362
- id: i,
363
- className: "wui-usermenu-trigger",
364
- "aria-expanded": a,
365
- "aria-label": `Account menu for ${l}`,
366
- onClick: () => o((e) => !e),
367
- children: [
368
- /* @__PURE__ */ p(r, {
369
- name: l,
370
- src: d,
371
- tone: "auto"
372
- }),
373
- /* @__PURE__ */ m("span", {
374
- className: "wui-usermenu-text",
375
- children: [/* @__PURE__ */ p("span", {
376
- className: "wui-usermenu-name",
377
- children: l
378
- }), u && /* @__PURE__ */ p("span", {
379
- className: "wui-usermenu-role",
380
- children: u
381
- })]
382
- }),
383
- /* @__PURE__ */ p(n, {
384
- name: "chevron-down",
385
- size: 14,
386
- className: "wui-usermenu-caret"
387
- })
388
- ]
389
- }), /* @__PURE__ */ m("div", {
390
- className: `dropdown-menu dropdown-menu-end wui-usermenu-menu${a ? " show" : ""}`,
391
- "aria-labelledby": i,
392
- "data-bs-popper": a ? "static" : void 0,
393
- children: [
394
- /* @__PURE__ */ m("div", {
395
- className: "wui-usermenu-head",
396
- children: [/* @__PURE__ */ p(r, {
397
- name: l,
398
- src: d,
399
- size: "lg",
400
- tone: "auto"
401
- }), /* @__PURE__ */ m("div", {
402
- className: "wui-usermenu-who",
403
- children: [/* @__PURE__ */ p("div", {
404
- className: "wui-usermenu-name",
405
- children: l
406
- }), u && /* @__PURE__ */ p("div", {
407
- className: "wui-usermenu-role",
408
- children: u
409
- })]
410
- })]
411
- }),
412
- h && S(h, /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(n, {
413
- name: "user",
414
- size: 18
415
- }), g] }), void 0, x),
416
- b.map((e) => {
417
- if (e.divider) return /* @__PURE__ */ p("hr", { className: "dropdown-divider" }, e.key);
418
- let t = /* @__PURE__ */ m(f, { children: [e.icon && /* @__PURE__ */ p(n, {
419
- name: e.icon,
420
- size: 18
421
- }), e.label] }), r = () => {
422
- e.onClick?.(), x();
423
- };
424
- return e.href ? S(e.href, t, e.key, r) : /* @__PURE__ */ p("button", {
425
- type: "button",
426
- className: "dropdown-item",
427
- onClick: r,
428
- children: t
429
- }, e.key);
430
- }),
431
- v ? /* @__PURE__ */ p("form", {
432
- method: "post",
433
- action: v,
434
- className: "wui-usermenu-logout",
435
- children: /* @__PURE__ */ p("button", {
436
- type: "submit",
437
- className: "dropdown-item danger",
438
- children: C
439
- })
440
- }) : _ && /* @__PURE__ */ p("button", {
441
- type: "button",
442
- className: "dropdown-item danger",
443
- onClick: () => {
444
- x(), _();
445
- },
446
- children: C
447
- })
448
- ]
449
- })]
450
- });
451
- }
452
- function D({ config: e }) {
453
- let t = c(), { open: r, setOpen: i, ref: a } = T(), { unread: o = 0, items: l, loading: h = !1, onOpen: g, onMarkAllRead: _, viewAllHref: v, label: b = "Notifications", emptyText: x = "You are all caught up." } = e, [S, C] = d(""), w = u(o);
454
- s(() => {
455
- w.current !== o && (w.current = o, C(o === 0 ? "No unread notifications" : `${y(o)} unread notifications`));
456
- }, [o]);
457
- let E = null;
458
- return l?.length ? E = /* @__PURE__ */ p("div", {
459
- className: "wui-bell-items",
460
- children: l.map((e, t) => {
461
- let r = `wui-bell-item${e.read ? " wui-bell-item-read" : ""}`, i = /* @__PURE__ */ m(f, { children: [
462
- /* @__PURE__ */ p("span", {
463
- className: "wui-bell-dot",
464
- "aria-hidden": "true"
465
- }),
466
- e.icon && /* @__PURE__ */ p("span", {
467
- className: "wui-bell-icon",
468
- children: /* @__PURE__ */ p(n, {
469
- name: e.icon,
470
- size: 18
471
- })
472
- }),
473
- /* @__PURE__ */ m("span", {
474
- className: "wui-bell-body",
475
- children: [
476
- !e.read && /* @__PURE__ */ p("span", {
477
- className: "visually-hidden",
478
- children: "Unread: "
479
- }),
480
- /* @__PURE__ */ p("span", {
481
- className: "wui-bell-item-title",
482
- children: e.title
483
- }),
484
- e.time && /* @__PURE__ */ p("span", {
485
- className: "wui-bell-when",
486
- children: e.time
487
- })
488
- ]
489
- })
490
- ] });
491
- return e.href ? /* @__PURE__ */ p("a", {
492
- className: r,
493
- href: e.href,
494
- "data-id": e.id,
495
- children: i
496
- }, e.id ?? t) : /* @__PURE__ */ p("div", {
497
- className: r,
498
- "data-id": e.id,
499
- children: i
500
- }, e.id ?? t);
501
- })
502
- }) : h ? E = /* @__PURE__ */ p("div", {
503
- className: "wui-bell-state",
504
- children: "Loading…"
505
- }) : l && (E = /* @__PURE__ */ p("div", {
506
- className: "wui-bell-state",
507
- children: x
508
- })), /* @__PURE__ */ m("div", {
509
- className: "dropdown wui-bell",
510
- ref: a,
511
- children: [
512
- /* @__PURE__ */ m("button", {
513
- type: "button",
514
- id: t,
515
- className: "topbar-icon-btn wui-bell-trigger",
516
- "aria-expanded": r,
517
- "aria-label": o === 0 ? b : `${b}, ${y(o)} unread`,
518
- onClick: () => {
519
- let e = !r;
520
- i(e), e && g?.();
521
- },
522
- children: [/* @__PURE__ */ p(n, {
523
- name: "notification",
524
- size: 20
525
- }), /* @__PURE__ */ p("span", {
526
- className: "wui-bell-count",
527
- "aria-hidden": "true",
528
- hidden: o === 0,
529
- children: y(o)
530
- })]
531
- }),
532
- /* @__PURE__ */ p("span", {
533
- className: "visually-hidden",
534
- "aria-live": "polite",
535
- children: S
536
- }),
537
- /* @__PURE__ */ m("div", {
538
- className: `dropdown-menu dropdown-menu-end wui-bell-menu${r ? " show" : ""}`,
539
- "aria-labelledby": t,
540
- "data-bs-popper": r ? "static" : void 0,
541
- children: [
542
- /* @__PURE__ */ m("div", {
543
- className: "wui-bell-head",
544
- children: [/* @__PURE__ */ p("span", {
545
- className: "wui-bell-title",
546
- children: b
547
- }), _ && /* @__PURE__ */ p("button", {
548
- type: "button",
549
- className: "wui-bell-markall",
550
- onClick: _,
551
- children: "Mark all read"
552
- })]
553
- }),
554
- /* @__PURE__ */ p("div", {
555
- className: "wui-bell-list",
556
- "aria-busy": h || void 0,
557
- children: E
558
- }),
559
- v && /* @__PURE__ */ p("a", {
560
- className: "wui-bell-foot",
561
- href: v,
562
- children: "View all"
563
- })
564
- ]
565
- })
566
- ]
567
- });
568
- }
569
- var O = (e) => !!e && (e.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName));
570
- function k({ config: e }) {
571
- let t = c(), { value: r = "", onChange: i, results: a = null, loading: o = !1, onSelect: f, onSubmit: h, placeholder: g = "Search" } = e, [_, v] = d(!1), [y, b] = d(!1), [x, S] = d({
572
- results: null,
573
- index: -1
574
- }), C = x.results === a ? x.index : -1, w = (e) => S({
575
- results: a,
576
- index: e
577
- }), T = u(null), E = u(null), D = u([]), k = l(() => (a ?? []).flatMap((e) => e.hits ?? []), [a]), A = a != null && !y, j = k.length;
578
- s(() => {
579
- let e = (e) => {
580
- e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey || O(e.target) || (e.preventDefault(), v(!0), E.current?.focus());
581
- }, t = (e) => {
582
- T.current?.contains(e.target) || (b(!0), v(!1));
583
- };
584
- return document.addEventListener("keydown", e), document.addEventListener("pointerdown", t), () => {
585
- document.removeEventListener("keydown", e), document.removeEventListener("pointerdown", t);
586
- };
587
- }, []);
588
- let M = (e) => {
589
- if (e.key === "ArrowDown" || e.key === "ArrowUp") {
590
- if (!A || j === 0) return;
591
- e.preventDefault(), w((C + (e.key === "ArrowDown" ? 1 : -1) + j) % j);
592
- } else e.key === "Enter" ? A && C >= 0 && D.current[C] ? (e.preventDefault(), D.current[C].click()) : h && r.trim() !== "" && (e.preventDefault(), h(r.trim())) : e.key === "Escape" && (A ? (e.preventDefault(), b(!0)) : _ && (e.preventDefault(), v(!1)));
593
- }, N = -1;
594
- return D.current = [], /* @__PURE__ */ m("div", {
595
- className: `wui-topsearch${_ ? " is-open" : ""}${o ? " is-loading" : ""}`,
596
- ref: T,
597
- children: [
598
- /* @__PURE__ */ p("button", {
599
- type: "button",
600
- className: "topbar-icon-btn wui-topsearch-open",
601
- "aria-label": g,
602
- "aria-expanded": _,
603
- "aria-controls": `${t}-panel`,
604
- onClick: () => {
605
- let e = !_;
606
- v(e), e && E.current?.focus();
607
- },
608
- children: /* @__PURE__ */ p(n, {
609
- name: "search",
610
- size: 20
611
- })
612
- }),
613
- /* @__PURE__ */ m("div", {
614
- className: "wui-topsearch-panel",
615
- id: `${t}-panel`,
616
- children: [/* @__PURE__ */ m("div", {
617
- className: "search-wrap",
618
- children: [/* @__PURE__ */ p(n, {
619
- name: "search",
620
- size: 18,
621
- className: "search-icon"
622
- }), /* @__PURE__ */ p("input", {
623
- ref: E,
624
- type: "search",
625
- className: "form-control input search-input",
626
- id: `${t}-input`,
627
- placeholder: g,
628
- "aria-label": g,
629
- role: "combobox",
630
- "aria-autocomplete": "list",
631
- "aria-expanded": A,
632
- "aria-controls": `${t}-list`,
633
- "aria-activedescendant": A && C >= 0 ? `${t}-opt-${C}` : void 0,
634
- autoComplete: "off",
635
- value: r,
636
- onChange: (e) => {
637
- b(!1), i?.(e.target.value);
638
- },
639
- onKeyDown: M
640
- })]
641
- }), /* @__PURE__ */ p("div", {
642
- className: "wui-topsearch-results",
643
- id: `${t}-list`,
644
- role: "listbox",
645
- "aria-label": "Search results",
646
- hidden: !A,
647
- children: A && /* @__PURE__ */ m("div", {
648
- className: "wui-topsearch-groups",
649
- role: "presentation",
650
- children: [j === 0 && /* @__PURE__ */ m("div", {
651
- className: "wui-topsearch-empty",
652
- role: "option",
653
- "aria-disabled": "true",
654
- "aria-selected": "false",
655
- children: [
656
- "No results for “",
657
- r,
658
- "”"
659
- ]
660
- }), a.filter((e) => e.hits?.length).map((e, r) => /* @__PURE__ */ m("div", {
661
- className: "wui-topsearch-group",
662
- role: "group",
663
- "aria-label": e.label ?? "",
664
- children: [e.label && /* @__PURE__ */ p("div", {
665
- className: "wui-topsearch-group-label",
666
- role: "presentation",
667
- children: e.label
668
- }), e.hits.map((e) => {
669
- N += 1;
670
- let r = N;
671
- return /* @__PURE__ */ m("a", {
672
- className: `wui-topsearch-hit${r === C ? " is-active" : ""}`,
673
- role: "option",
674
- "aria-selected": r === C,
675
- id: `${t}-opt-${r}`,
676
- href: e.href,
677
- ref: (e) => {
678
- D.current[r] = e;
679
- },
680
- onClick: (t) => f?.(e, t),
681
- children: [e.icon && /* @__PURE__ */ p("span", {
682
- className: "wui-topsearch-hit-icon",
683
- children: /* @__PURE__ */ p(n, {
684
- name: e.icon,
685
- size: 18
686
- })
687
- }), /* @__PURE__ */ m("span", {
688
- className: "wui-topsearch-hit-text",
689
- children: [/* @__PURE__ */ p("span", {
690
- className: "wui-topsearch-hit-title",
691
- children: e.title
692
- }), e.subtitle && /* @__PURE__ */ p("span", {
693
- className: "wui-topsearch-hit-sub",
694
- children: e.subtitle
695
- })]
696
- })]
697
- }, `${e.href}-${r}`);
698
- })]
699
- }, e.label ?? r))]
700
- })
701
- })]
702
- }),
703
- /* @__PURE__ */ p("span", {
704
- className: "visually-hidden",
705
- "aria-live": "polite",
706
- children: A ? j === 0 ? "No results" : `${j} ${j === 1 ? "result" : "results"}` : ""
707
- })
708
- ]
709
- });
710
- }
711
- //#endregion
712
- export { b as default };
1
+ import e from"./warnInvalidValue.js";import t from"./warnUnknownProps.js";import n from"./AppIcon.js";import r from"./AppAvatar.js";import{navMatchScore as i}from"../lib/navMatch.js";import{readShellCollapsed as a,writeShellCollapsed as o}from"../lib/shellCookie.js";import{initScrollEdges as s}from"@webority/ui-elements/helpers";import{useEffect as c,useId as l,useMemo as u,useRef as d,useState as f}from"react";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";var g=99,_=4,v=5,y=[`prefix`,`exact`],b=e=>e>g?`${g}+`:String(e);function x({groups:e=[],brand:r,sidebarStart:i,sidebarStartCompact:l,sidebarFooter:d,topbarStart:p,topbarEnd:g,footer:_,children:v,collapsed:y,onCollapsedChange:b,noSidebar:x=!1,navLabel:E=`Main navigation`,linkComponent:k,currentPath:j,rememberCollapsed:M=!1,collapsedCookie:N=`wui-shell-collapsed`,tabBarLabel:P=`Quick navigation`,moreLabel:F=`More`,userMenu:I,notifications:L,search:R,className:z=``,...B}){t(`AppShell`,B);let[V,H]=f(()=>M&&y===void 0&&typeof document<`u`?a(N)??!1:!1),[U,W]=f(!1),[G,K]=f(!1),q=y??V,J=()=>{let e=!q;y===void 0&&H(e),M&&o(e,N),b?.(e)},Y=u(()=>S(e,j),[e,j]),X=x?null:C(Y);return c(()=>{let e=()=>K(window.scrollY>4);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),c(()=>{s()},[]),c(()=>{if(!U)return;let e=e=>{e.key===`Escape`&&W(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[U]),h(`div`,{className:[`app-shell`,q?`collapsed`:``,x?`no-sidebar`:``,U?`mobile-open`:``,z].filter(Boolean).join(` `),...B,children:[h(`aside`,{className:`app-sidebar`,children:[r&&m(`div`,{className:`app-sidebar-brand`,children:r}),i&&m(`div`,{className:`app-sidebar-start`,children:i}),l&&m(`div`,{className:`app-sidebar-start-compact`,children:l}),m(`nav`,{className:`app-sidebar-scroll`,"aria-label":E,children:Y.map((e,t)=>h(`div`,{className:`app-nav-group`,children:[e.label&&m(`div`,{className:`app-nav-group-label`,children:e.label}),e.items.map(e=>m(T,{item:e,linkComponent:k,onNavigate:()=>W(!1)},e.key??e.href??e.label)),e.after&&m(`div`,{className:`wui-nav-group-after`,children:e.after})]},e.label??`group-${t}`))}),d&&m(`div`,{className:`app-sidebar-foot`,children:d}),!x&&m(`button`,{type:`button`,className:`app-sidebar-toggle`,onClick:J,"aria-label":q?`Expand navigation`:`Collapse navigation`,"aria-expanded":!q,children:m(n,{name:`chevrons-left`,size:20})})]}),h(`div`,{className:`app-main`,children:[h(`header`,{className:`app-topbar${G?` scrolled`:``}`,children:[h(`div`,{className:`app-topbar-start`,children:[m(`button`,{type:`button`,className:`app-topbar-menu`,onClick:()=>W(!0),"aria-label":`Open navigation`,"aria-expanded":U,children:m(n,{name:`menu`,size:18})}),p,R&&m(A,{config:R})]}),h(`div`,{className:`app-topbar-end`,children:[g,L&&m(O,{config:L}),I&&m(D,{config:I,linkComponent:k})]})]}),m(`main`,{className:`app-content`,children:v}),_&&m(`footer`,{className:`app-footer`,children:_})]}),X&&h(`nav`,{className:`wui-tabbar`,"aria-label":P,children:[X.tabs.map(e=>m(w,{tab:e,linkComponent:k},e.key??e.href)),X.hasMore&&h(`button`,{type:`button`,className:`wui-tabbar-item${X.moreActive?` active`:``}`,onClick:()=>W(!0),children:[m(`span`,{className:`wui-tabbar-icon`,children:m(n,{name:`more`,size:24})}),m(`span`,{className:`wui-tabbar-label`,children:F})]})]}),m(`button`,{type:`button`,className:`app-scrim`,onClick:()=>W(!1),"aria-label":`Close navigation`,tabIndex:U?0:-1})]})}function S(t,n){let r=e=>(e??[]).map(e=>Array.isArray(e.children)?{...e,children:r(e.children)}:{...e}).filter(e=>(e.children?.length??0)>0||!!e.href),a=t.map(e=>({...e,items:r(e.items)})).filter(e=>e.items.length>0),o=[],s=e=>{for(let t of e)o.push(t),t.children&&s(t.children)};for(let e of a)s(e.items);for(let t of o)e(`AppShell`,`match`,t.match,y);let c=null;if(n!=null&&!o.some(e=>e.active===!0)){let e=-1;for(let t of o){if(t.active!=null||t.children?.length)continue;let r=i(n,t.href,{exact:t.match===`exact`,also:t.matchAlso});r>e&&(e=r,c=t)}}for(let e of o)e.active=e.active??e===c;return a}function C(e){let t=[],n=e=>{for(let r of e)r.children?.length?n(r.children):t.push(r)};for(let t of e)n(t.items);let r=t.filter(e=>e.tab);if(r.length===0)return null;let i=r.length<t.length,a=i?_:v;if(r.length>a)throw Error(`<AppShell>: ${r.length} items carry tab: true, but the phone tab bar holds ${a} (${i?`4 plus More, because other items exist`:`5 when every item is a tab`}). Flag fewer items.`);return{tabs:r,hasMore:i,moreActive:t.some(e=>!e.tab&&e.active)}}function w({tab:e,linkComponent:t}){let r=`wui-tabbar-item${e.active?` active`:``}`,i=h(p,{children:[e.icon&&m(`span`,{className:`wui-tabbar-icon`,children:typeof e.icon==`string`?m(n,{name:e.icon,size:24}):e.icon}),m(`span`,{className:`wui-tabbar-label`,children:e.tabLabel??e.label}),e.badge!=null&&m(`span`,{className:`wui-tabbar-badge${e.badgeTone?` tone-${e.badgeTone}`:``}`,children:e.badge})]}),a=e.active?`page`:void 0;return t?m(t,{className:r,to:e.href,"aria-current":a,children:i}):m(`a`,{className:r,href:e.href,"aria-current":a,children:i})}function T({item:e,linkComponent:t,onNavigate:r,depth:i=0}){let a=i>0,o=i>1?{"--wui-nav-depth":i}:void 0,s=Array.isArray(e.children)&&e.children.length>0,l=s&&e.children.some(e=>e.active),[u,d]=f(l);c(()=>{l&&!u&&d(!0)},[l,u]);let g=typeof e.label==`string`?e.label:void 0,_=!a&&e.icon&&m(`span`,{className:`app-nav-icon`,children:typeof e.icon==`string`?m(n,{name:e.icon,size:22}):e.icon}),v=e.badge!=null&&m(`span`,{className:`app-nav-badge${e.badgeTone?` tone-${e.badgeTone}`:``}`,children:e.badge});if(s)return h(p,{children:[h(`button`,{type:`button`,className:`app-nav-item${a?` app-nav-subitem`:``} has-children${l?` active`:``}`,style:o,"aria-expanded":u,"data-label":g,onClick:()=>d(e=>!e),children:[_,m(`span`,{className:`app-nav-text`,children:e.label}),v,m(`span`,{className:`app-nav-caret`,children:m(n,{name:`chevron-right`,size:16})})]}),m(`div`,{className:`app-nav-sub${u?` expanded`:``}`,inert:!u,"aria-hidden":!u||void 0,children:m(`div`,{className:`app-nav-sub-inner`,children:e.children.map(e=>m(T,{item:e,linkComponent:t,onNavigate:r,depth:i+1},e.key??e.href))})})]});let y=`app-nav-item${a?` app-nav-subitem`:``}${e.active?` active`:``}`,b=h(p,{children:[_,m(`span`,{className:`app-nav-text`,children:e.label}),v,e.trailingIcon&&m(`span`,{className:`app-nav-trailing`,children:typeof e.trailingIcon==`string`?m(n,{name:e.trailingIcon,size:16}):e.trailingIcon})]}),x=e.active?`page`:void 0;return t?m(t,{className:y,style:o,to:e.href,"aria-current":x,"data-label":g,onClick:r,children:b}):m(`a`,{className:y,style:o,href:e.href,"aria-current":x,"data-label":g,onClick:r,children:b})}function E(){let[e,t]=f(!1),n=d(null);return c(()=>{if(!e)return;let r=e=>{n.current?.contains(e.target)||t(!1)},i=e=>{e.key===`Escape`&&(t(!1),n.current?.querySelector(`button`)?.focus())};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e]),{open:e,setOpen:t,ref:n}}function D({config:e,linkComponent:t}){let i=l(),{open:a,setOpen:o,ref:s}=E(),{name:c,role:u,photo:d,profileHref:f,profileLabel:g=`My profile`,onLogout:_,logoutAction:v,logoutLabel:y=`Sign out`,items:b=[]}=e;if(!c)throw Error(`<AppShell> userMenu.name is required; the trigger and the avatar are named from it.`);let x=()=>o(!1),S=(e,n,r,i)=>t?m(t,{className:`dropdown-item`,to:e,onClick:i,children:n},r):m(`a`,{className:`dropdown-item`,href:e,onClick:i,children:n},r),C=h(p,{children:[m(n,{name:`log-out`,size:18}),y]});return h(`div`,{className:`dropdown wui-usermenu`,ref:s,children:[h(`button`,{type:`button`,id:i,className:`wui-usermenu-trigger`,"aria-expanded":a,"aria-label":`Account menu for ${c}`,onClick:()=>o(e=>!e),children:[m(r,{name:c,src:d,tone:`auto`}),h(`span`,{className:`wui-usermenu-text`,children:[m(`span`,{className:`wui-usermenu-name`,children:c}),u&&m(`span`,{className:`wui-usermenu-role`,children:u})]}),m(n,{name:`chevron-down`,size:14,className:`wui-usermenu-caret`})]}),h(`div`,{className:`dropdown-menu dropdown-menu-end wui-usermenu-menu${a?` show`:``}`,"aria-labelledby":i,"data-bs-popper":a?`static`:void 0,children:[h(`div`,{className:`wui-usermenu-head`,children:[m(r,{name:c,src:d,size:`lg`,tone:`auto`}),h(`div`,{className:`wui-usermenu-who`,children:[m(`div`,{className:`wui-usermenu-name`,children:c}),u&&m(`div`,{className:`wui-usermenu-role`,children:u})]})]}),f&&S(f,h(p,{children:[m(n,{name:`user`,size:18}),g]}),void 0,x),b.map(e=>{if(e.divider)return m(`hr`,{className:`dropdown-divider`},e.key);let t=h(p,{children:[e.icon&&m(n,{name:e.icon,size:18}),e.label]}),r=()=>{e.onClick?.(),x()};return e.href?S(e.href,t,e.key,r):m(`button`,{type:`button`,className:`dropdown-item`,onClick:r,children:t},e.key)}),v?m(`form`,{method:`post`,action:v,className:`wui-usermenu-logout`,children:m(`button`,{type:`submit`,className:`dropdown-item danger`,children:C})}):_&&m(`button`,{type:`button`,className:`dropdown-item danger`,onClick:()=>{x(),_()},children:C})]})]})}function O({config:e}){let t=l(),{open:r,setOpen:i,ref:a}=E(),{unread:o=0,items:s,loading:u=!1,onOpen:g,onMarkAllRead:_,viewAllHref:v,label:y=`Notifications`,emptyText:x=`You are all caught up.`}=e,[S,C]=f(``),w=d(o);c(()=>{w.current!==o&&(w.current=o,C(o===0?`No unread notifications`:`${b(o)} unread notifications`))},[o]);let T=null;return s?.length?T=m(`div`,{className:`wui-bell-items`,children:s.map((e,t)=>{let r=`wui-bell-item${e.read?` wui-bell-item-read`:``}`,i=h(p,{children:[m(`span`,{className:`wui-bell-dot`,"aria-hidden":`true`}),e.icon&&m(`span`,{className:`wui-bell-icon`,children:m(n,{name:e.icon,size:18})}),h(`span`,{className:`wui-bell-body`,children:[!e.read&&m(`span`,{className:`visually-hidden`,children:`Unread: `}),m(`span`,{className:`wui-bell-item-title`,children:e.title}),e.time&&m(`span`,{className:`wui-bell-when`,children:e.time})]})]});return e.href?m(`a`,{className:r,href:e.href,"data-id":e.id,children:i},e.id??t):m(`div`,{className:r,"data-id":e.id,children:i},e.id??t)})}):u?T=m(`div`,{className:`wui-bell-state`,children:`Loading…`}):s&&(T=m(`div`,{className:`wui-bell-state`,children:x})),h(`div`,{className:`dropdown wui-bell`,ref:a,children:[h(`button`,{type:`button`,id:t,className:`topbar-icon-btn wui-bell-trigger`,"aria-expanded":r,"aria-label":o===0?y:`${y}, ${b(o)} unread`,onClick:()=>{let e=!r;i(e),e&&g?.()},children:[m(n,{name:`notification`,size:20}),m(`span`,{className:`wui-bell-count`,"aria-hidden":`true`,hidden:o===0,children:b(o)})]}),m(`span`,{className:`visually-hidden`,"aria-live":`polite`,children:S}),h(`div`,{className:`dropdown-menu dropdown-menu-end wui-bell-menu${r?` show`:``}`,"aria-labelledby":t,"data-bs-popper":r?`static`:void 0,children:[h(`div`,{className:`wui-bell-head`,children:[m(`span`,{className:`wui-bell-title`,children:y}),_&&m(`button`,{type:`button`,className:`wui-bell-markall`,onClick:_,children:`Mark all read`})]}),m(`div`,{className:`wui-bell-list`,"aria-busy":u||void 0,children:T}),v&&m(`a`,{className:`wui-bell-foot`,href:v,children:`View all`})]})]})}var k=e=>!!e&&(e.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName));function A({config:e}){let t=l(),{value:r=``,onChange:i,results:a=null,loading:o=!1,onSelect:s,onSubmit:p,placeholder:g=`Search`}=e,[_,v]=f(!1),[y,b]=f(!1),[x,S]=f({results:null,index:-1}),C=x.results===a?x.index:-1,w=e=>S({results:a,index:e}),T=d(null),E=d(null),D=d([]),O=u(()=>(a??[]).flatMap(e=>e.hits??[]),[a]),A=a!=null&&!y,j=O.length;c(()=>{let e=e=>{e.key!==`/`||e.ctrlKey||e.metaKey||e.altKey||k(e.target)||(e.preventDefault(),v(!0),E.current?.focus())},t=e=>{T.current?.contains(e.target)||(b(!0),v(!1))};return document.addEventListener(`keydown`,e),document.addEventListener(`pointerdown`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`pointerdown`,t)}},[]);let M=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(!A||j===0)return;e.preventDefault(),w((C+(e.key===`ArrowDown`?1:-1)+j)%j)}else e.key===`Enter`?A&&C>=0&&D.current[C]?(e.preventDefault(),D.current[C].click()):p&&r.trim()!==``&&(e.preventDefault(),p(r.trim())):e.key===`Escape`&&(A?(e.preventDefault(),b(!0)):_&&(e.preventDefault(),v(!1)))},N=-1;return D.current=[],h(`div`,{className:`wui-topsearch${_?` is-open`:``}${o?` is-loading`:``}`,ref:T,children:[m(`button`,{type:`button`,className:`topbar-icon-btn wui-topsearch-open`,"aria-label":g,"aria-expanded":_,"aria-controls":`${t}-panel`,onClick:()=>{let e=!_;v(e),e&&E.current?.focus()},children:m(n,{name:`search`,size:20})}),h(`div`,{className:`wui-topsearch-panel`,id:`${t}-panel`,children:[h(`div`,{className:`search-wrap`,children:[m(n,{name:`search`,size:18,className:`search-icon`}),m(`input`,{ref:E,type:`search`,className:`form-control input search-input`,id:`${t}-input`,placeholder:g,"aria-label":g,role:`combobox`,"aria-autocomplete":`list`,"aria-expanded":A,"aria-controls":`${t}-list`,"aria-activedescendant":A&&C>=0?`${t}-opt-${C}`:void 0,autoComplete:`off`,value:r,onChange:e=>{b(!1),i?.(e.target.value)},onKeyDown:M})]}),m(`div`,{className:`wui-topsearch-results`,id:`${t}-list`,role:`listbox`,"aria-label":`Search results`,hidden:!A,children:A&&h(`div`,{className:`wui-topsearch-groups`,role:`presentation`,children:[j===0&&h(`div`,{className:`wui-topsearch-empty`,role:`option`,"aria-disabled":`true`,"aria-selected":`false`,children:[`No results for “`,r,`”`]}),a.filter(e=>e.hits?.length).map((e,r)=>h(`div`,{className:`wui-topsearch-group`,role:`group`,"aria-label":e.label??``,children:[e.label&&m(`div`,{className:`wui-topsearch-group-label`,role:`presentation`,children:e.label}),e.hits.map(e=>{N+=1;let r=N;return h(`a`,{className:`wui-topsearch-hit${r===C?` is-active`:``}`,role:`option`,"aria-selected":r===C,id:`${t}-opt-${r}`,href:e.href,ref:e=>{D.current[r]=e},onClick:t=>s?.(e,t),children:[e.icon&&m(`span`,{className:`wui-topsearch-hit-icon`,children:m(n,{name:e.icon,size:18})}),h(`span`,{className:`wui-topsearch-hit-text`,children:[m(`span`,{className:`wui-topsearch-hit-title`,children:e.title}),e.subtitle&&m(`span`,{className:`wui-topsearch-hit-sub`,children:e.subtitle})]})]},`${e.href}-${r}`)})]},e.label??r))]})})]}),m(`span`,{className:`visually-hidden`,"aria-live":`polite`,children:A?j===0?`No results`:`${j} ${j===1?`result`:`results`}`:``})]})}export{x as default};