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