@webority/ui-react 0.88.1 → 0.89.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 (190) hide show
  1. package/dist/canvas-kit/kit.css +0 -0
  2. package/dist/canvas-kit/kit.js +155261 -0
  3. package/dist/canvas-kit/manifest.json +26177 -0
  4. package/dist/canvas-kit/release.json +25 -0
  5. package/dist/components/AppAutocomplete.js +1 -1
  6. package/dist/components/AppAvatarPicker.js +1 -1
  7. package/dist/components/AppChipGroup.js +1 -1
  8. package/dist/components/AppColorField.js +1 -1
  9. package/dist/components/AppCommandPalette.js +1 -1
  10. package/dist/components/AppCountrySelect.js +1 -1
  11. package/dist/components/AppDatePicker.js +1 -1
  12. package/dist/components/AppDateRangePicker.js +1 -1
  13. package/dist/components/AppDropZone.js +1 -1
  14. package/dist/components/AppFileAttachment.js +1 -1
  15. package/dist/components/AppFilePicker.js +1 -1
  16. package/dist/components/AppIcon.js +1 -1
  17. package/dist/components/AppInput.js +1 -1
  18. package/dist/components/AppLogoPicker.js +1 -1
  19. package/dist/components/AppMentionInput.js +1 -1
  20. package/dist/components/AppMeter.js +1 -1
  21. package/dist/components/AppModal.js +1 -1
  22. package/dist/components/AppMultiSelect.js +1 -1
  23. package/dist/components/AppNumberInput.js +1 -1
  24. package/dist/components/AppOtpInput.js +1 -1
  25. package/dist/components/AppPhoneNumberInput.js +1 -1
  26. package/dist/components/AppProgress.js +1 -1
  27. package/dist/components/AppRadioGroup.js +1 -1
  28. package/dist/components/AppRating.js +1 -1
  29. package/dist/components/AppRichText.js +1 -1
  30. package/dist/components/AppSearch.js +1 -1
  31. package/dist/components/AppSegmented.js +1 -1
  32. package/dist/components/AppSelect.js +1 -1
  33. package/dist/components/AppSidebarMenu.js +1 -1
  34. package/dist/components/AppSlider.js +1 -1
  35. package/dist/components/AppSplitView.js +1 -1
  36. package/dist/components/AppTabs.js +1 -1
  37. package/dist/components/AppTagInput.js +1 -1
  38. package/dist/components/AppTextarea.js +1 -1
  39. package/dist/components/AppTimePicker.js +1 -1
  40. package/dist/guidance.json +9623 -0
  41. package/dist/lib/wuiMarker.js +1 -1
  42. package/dist/types/components/AppAccordion.d.ts +14 -4
  43. package/dist/types/components/AppActionIcon.d.ts +40 -15
  44. package/dist/types/components/AppAlert.d.ts +50 -17
  45. package/dist/types/components/AppAsyncBlock.d.ts +19 -9
  46. package/dist/types/components/AppAutocomplete.d.ts +36 -0
  47. package/dist/types/components/AppAvatar.d.ts +48 -12
  48. package/dist/types/components/AppAvatarGroup.d.ts +14 -4
  49. package/dist/types/components/AppAvatarPicker.d.ts +50 -19
  50. package/dist/types/components/AppBadge.d.ts +14 -3
  51. package/dist/types/components/AppBanner.d.ts +13 -3
  52. package/dist/types/components/AppBreadcrumbs.d.ts +3 -3
  53. package/dist/types/components/AppButton.d.ts +72 -20
  54. package/dist/types/components/AppButtonGroup.d.ts +18 -4
  55. package/dist/types/components/AppCalendar.d.ts +13 -0
  56. package/dist/types/components/AppCard.d.ts +60 -21
  57. package/dist/types/components/AppCarousel.d.ts +56 -14
  58. package/dist/types/components/AppChart.d.ts +38 -0
  59. package/dist/types/components/AppChartCard.d.ts +13 -5
  60. package/dist/types/components/AppCheckbox.d.ts +9 -0
  61. package/dist/types/components/AppChip.d.ts +29 -10
  62. package/dist/types/components/AppChipGroup.d.ts +16 -3
  63. package/dist/types/components/AppChoiceCard.d.ts +55 -14
  64. package/dist/types/components/AppChoiceChip.d.ts +26 -6
  65. package/dist/types/components/AppCodeBlock.d.ts +27 -7
  66. package/dist/types/components/AppColorField.d.ts +36 -8
  67. package/dist/types/components/AppColumnMenu.d.ts +17 -4
  68. package/dist/types/components/AppCommandPalette.d.ts +72 -29
  69. package/dist/types/components/AppCommentThread.d.ts +25 -7
  70. package/dist/types/components/AppCompareTable.d.ts +9 -4
  71. package/dist/types/components/AppConfirmDialog.d.ts +54 -15
  72. package/dist/types/components/AppConsentBanner.d.ts +45 -12
  73. package/dist/types/components/AppContextMenu.d.ts +23 -10
  74. package/dist/types/components/AppCopyButton.d.ts +39 -9
  75. package/dist/types/components/AppCountrySelect.d.ts +50 -1
  76. package/dist/types/components/AppDashboardCell.d.ts +10 -2
  77. package/dist/types/components/AppDashboardGrid.d.ts +5 -1
  78. package/dist/types/components/AppDataTable.d.ts +103 -50
  79. package/dist/types/components/AppDatePicker.d.ts +32 -0
  80. package/dist/types/components/AppDateRangePicker.d.ts +31 -0
  81. package/dist/types/components/AppDescriptions.d.ts +28 -8
  82. package/dist/types/components/AppDrawer.d.ts +54 -13
  83. package/dist/types/components/AppDropZone.d.ts +34 -11
  84. package/dist/types/components/AppDropdown.d.ts +27 -20
  85. package/dist/types/components/AppDueDate.d.ts +16 -5
  86. package/dist/types/components/AppEmptyState.d.ts +22 -6
  87. package/dist/types/components/AppErrorSummary.d.ts +17 -4
  88. package/dist/types/components/AppFileAttachment.d.ts +30 -14
  89. package/dist/types/components/AppFilePicker.d.ts +39 -13
  90. package/dist/types/components/AppFileViewer.d.ts +21 -0
  91. package/dist/types/components/AppFilterBar.d.ts +23 -8
  92. package/dist/types/components/AppFloatingDock.d.ts +20 -6
  93. package/dist/types/components/AppFormActions.d.ts +11 -2
  94. package/dist/types/components/AppFormRow.d.ts +11 -2
  95. package/dist/types/components/AppFormSection.d.ts +25 -9
  96. package/dist/types/components/AppHoverCard.d.ts +25 -8
  97. package/dist/types/components/AppIcon.d.ts +18 -8
  98. package/dist/types/components/AppInfoList.d.ts +2 -0
  99. package/dist/types/components/AppInfoTip.d.ts +17 -4
  100. package/dist/types/components/AppInlineEdit.d.ts +22 -11
  101. package/dist/types/components/AppInput.d.ts +81 -2
  102. package/dist/types/components/AppInputGroup.d.ts +19 -6
  103. package/dist/types/components/AppKanban.d.ts +51 -23
  104. package/dist/types/components/AppKbd.d.ts +1 -0
  105. package/dist/types/components/AppKpiTile.d.ts +61 -31
  106. package/dist/types/components/AppLightbox.d.ts +12 -6
  107. package/dist/types/components/AppLink.d.ts +38 -17
  108. package/dist/types/components/AppLogoPicker.d.ts +88 -23
  109. package/dist/types/components/AppMarkdown.d.ts +3 -1
  110. package/dist/types/components/AppMentionInput.d.ts +35 -0
  111. package/dist/types/components/AppMenubar.d.ts +9 -7
  112. package/dist/types/components/AppMeter.d.ts +39 -10
  113. package/dist/types/components/AppMetricStrip.d.ts +11 -2
  114. package/dist/types/components/AppModal.d.ts +48 -19
  115. package/dist/types/components/AppMultiSelect.d.ts +44 -0
  116. package/dist/types/components/AppNavigationMenu.d.ts +6 -3
  117. package/dist/types/components/AppNotificationCenter.d.ts +23 -8
  118. package/dist/types/components/AppNumberInput.d.ts +38 -1
  119. package/dist/types/components/AppOnboardingChecklist.d.ts +27 -8
  120. package/dist/types/components/AppOtpInput.d.ts +24 -0
  121. package/dist/types/components/AppPageHeader.d.ts +60 -19
  122. package/dist/types/components/AppPagination.d.ts +21 -7
  123. package/dist/types/components/AppPhoneNumberInput.d.ts +37 -0
  124. package/dist/types/components/AppPopover.d.ts +23 -16
  125. package/dist/types/components/AppPricingCard.d.ts +27 -8
  126. package/dist/types/components/AppProgress.d.ts +44 -10
  127. package/dist/types/components/AppQrCode.d.ts +13 -5
  128. package/dist/types/components/AppRadio.d.ts +10 -0
  129. package/dist/types/components/AppRadioGroup.d.ts +47 -17
  130. package/dist/types/components/AppRating.d.ts +52 -15
  131. package/dist/types/components/AppRecordPager.d.ts +24 -8
  132. package/dist/types/components/AppRelativeTime.d.ts +9 -5
  133. package/dist/types/components/AppRepeater.d.ts +34 -8
  134. package/dist/types/components/AppResizable.d.ts +11 -3
  135. package/dist/types/components/AppResizableHandle.d.ts +9 -1
  136. package/dist/types/components/AppResizablePanel.d.ts +10 -3
  137. package/dist/types/components/AppResourceCard.d.ts +14 -2
  138. package/dist/types/components/AppResult.d.ts +23 -7
  139. package/dist/types/components/AppRichText.d.ts +34 -0
  140. package/dist/types/components/AppRollingNumber.d.ts +17 -7
  141. package/dist/types/components/AppRouteError.d.ts +22 -5
  142. package/dist/types/components/AppScoreScale.d.ts +40 -12
  143. package/dist/types/components/AppScrollbar.d.ts +7 -3
  144. package/dist/types/components/AppSearch.d.ts +32 -7
  145. package/dist/types/components/AppSectionCallToAction.d.ts +27 -7
  146. package/dist/types/components/AppSectionFaq.d.ts +27 -7
  147. package/dist/types/components/AppSectionFeatures.d.ts +34 -8
  148. package/dist/types/components/AppSectionHero.d.ts +29 -8
  149. package/dist/types/components/AppSectionLogos.d.ts +29 -7
  150. package/dist/types/components/AppSectionPricing.d.ts +25 -6
  151. package/dist/types/components/AppSectionTestimonials.d.ts +29 -7
  152. package/dist/types/components/AppSegmented.d.ts +41 -13
  153. package/dist/types/components/AppSelect.d.ts +53 -1
  154. package/dist/types/components/AppSelectMini.d.ts +28 -11
  155. package/dist/types/components/AppShell.d.ts +81 -35
  156. package/dist/types/components/AppShortcutLegend.d.ts +12 -4
  157. package/dist/types/components/AppShowMore.d.ts +26 -5
  158. package/dist/types/components/AppSidebarMenu.d.ts +59 -18
  159. package/dist/types/components/AppSkeleton.d.ts +33 -4
  160. package/dist/types/components/AppSlider.d.ts +43 -0
  161. package/dist/types/components/AppSortableList.d.ts +20 -0
  162. package/dist/types/components/AppSparkline.d.ts +19 -5
  163. package/dist/types/components/AppSpinner.d.ts +14 -3
  164. package/dist/types/components/AppSplash.d.ts +24 -7
  165. package/dist/types/components/AppSplitButton.d.ts +47 -14
  166. package/dist/types/components/AppSplitView.d.ts +53 -27
  167. package/dist/types/components/AppStatusBadge.d.ts +11 -3
  168. package/dist/types/components/AppStepper.d.ts +36 -11
  169. package/dist/types/components/AppSwitch.d.ts +16 -0
  170. package/dist/types/components/AppTableEmptyState.d.ts +7 -3
  171. package/dist/types/components/AppTablePagination.d.ts +23 -9
  172. package/dist/types/components/AppTableToolbar.d.ts +24 -10
  173. package/dist/types/components/AppTabs.d.ts +47 -18
  174. package/dist/types/components/AppTagInput.d.ts +38 -0
  175. package/dist/types/components/AppTextarea.d.ts +46 -0
  176. package/dist/types/components/AppThemeToggle.d.ts +58 -12
  177. package/dist/types/components/AppTimePicker.d.ts +38 -1
  178. package/dist/types/components/AppTimeline.d.ts +22 -20
  179. package/dist/types/components/AppToast.d.ts +30 -12
  180. package/dist/types/components/AppToolbar.d.ts +24 -9
  181. package/dist/types/components/AppTooltip.d.ts +24 -14
  182. package/dist/types/components/AppTour.d.ts +10 -0
  183. package/dist/types/components/AppTreeView.d.ts +23 -0
  184. package/dist/types/components/AppTruncate.d.ts +11 -2
  185. package/dist/types/components/AppUpdateBar.d.ts +10 -2
  186. package/dist/types/components/AppWhatsNew.d.ts +26 -7
  187. package/dist/types/components/AppWizard.d.ts +79 -0
  188. package/dist/types/components/AppWorkspaceSwitcher.d.ts +36 -17
  189. package/dist/types/lib/wuiMarker.d.ts +4 -0
  190. package/package.json +10 -7
@@ -1,32 +1,84 @@
1
1
  import "@webority/ui-elements/elements/select";
2
2
  declare const AppSelect: import("react").ForwardRefExoticComponent<{
3
+ /**
4
+ * The choices. A label may be a node, such as CO2 with a subscript: it renders as static markup, and search and the option's accessible name use its text.
5
+ * @default []
6
+ */
3
7
  options?: Array<{
4
8
  value: string;
5
9
  label?: import('react').ReactNode;
6
10
  text?: string;
7
11
  icon?: string;
8
12
  }>;
13
+ /**
14
+ * Class names added to the control element.
15
+ * @default ""
16
+ */
9
17
  className?: string;
18
+ /**
19
+ * Class names added to the wrapper field element.
20
+ * @default ""
21
+ */
10
22
  fieldClassName?: string;
23
+ /** A bordered box before the select, such as +91 or Tag, in the same shell as an input's prefix. Not combined with floatingLabel. */
11
24
  prefix?: import('react').ReactNode;
25
+ /** A bordered box after the select, in the same shell as an input's suffix. */
12
26
  suffix?: import('react').ReactNode;
27
+ /** The selected option's value. Leaving it out clears the control. */
13
28
  value?: string;
14
29
  onChange?: (value: string) => void;
30
+ /**
31
+ * Text shown in the empty field.
32
+ * @default "Select..."
33
+ */
15
34
  placeholder?: string;
35
+ /**
36
+ * Text shown in the search box of the menu.
37
+ * @default "Search..."
38
+ */
16
39
  searchPlaceholder?: string;
40
+ /**
41
+ * Show the search box in the menu.
42
+ * @default false
43
+ */
17
44
  searchable?: boolean;
45
+ /**
46
+ * Show a control that clears the chosen value.
47
+ * @default false
48
+ */
18
49
  clearable?: boolean;
50
+ /** Control size. Leave it out for the default size. xl is the 52px control, the same height as an input with size xl. */
19
51
  size?: "sm" | "lg" | "xl";
52
+ /** Icon name shown in the control. */
20
53
  icon?: string;
21
- floatingLabel?: boolean;
54
+ /**
55
+ * Where the label rests. Off keeps it above the control. Border sits the label inside as a placeholder, then slides it onto the top border on focus or once a value is chosen. Needs label.
56
+ * @default "off"
57
+ */
58
+ floatingLabel?: "off" | "border";
59
+ /** Disables the control. */
22
60
  disabled?: boolean;
61
+ /** The visible field label. */
23
62
  label?: import('react').ReactNode;
63
+ /**
64
+ * Marks the field required.
65
+ * @default false
66
+ */
24
67
  required?: boolean;
68
+ /** Error message shown under the field. Marks the control invalid. */
25
69
  error?: string;
70
+ /** Help text shown under the field when there is no error. */
26
71
  hint?: string;
72
+ /** Help content shown in an info tip beside the label. */
27
73
  help?: import('react').ReactNode;
74
+ /**
75
+ * Accessible name for that info tip.
76
+ * @default "More information"
77
+ */
28
78
  helpLabel?: string;
79
+ /** DOM id for the control and the target of the label. */
29
80
  id?: string;
81
+ /** Form field name. */
30
82
  name?: string;
31
83
  } & import("react").RefAttributes<any>>;
32
84
  export default AppSelect;
@@ -3,34 +3,51 @@ import "@webority/ui-elements/elements/select";
3
3
  * A compact select for toolbars and filters, drawn by the shared `<wui-select>` element in compact mode.
4
4
  *
5
5
  * @param {object} props
6
- * @param {string} [props.value] The selected option's value. Unset, the control is cleared.
6
+ * @param {string} [props.value]
7
7
  * @param {(value: string) => void} [props.onChange] Called with the new value when the user picks an option.
8
- * @param {Array<{ value: string, label?: import('react').ReactNode, icon?: string }>} [props.options] The options. A node label renders as markup, and `icon` is a semantic icon name drawn before the label. Omitted, the select has no options.
9
- * @param {string} [props.placeholder="Select..."] Text shown while no value is selected.
10
- * @param {string} [props.name] Form field name of the select.
11
- * @param {string} [props.ariaLabel] Accessible name of the select.
12
- * @param {string} [props.id] Element id of the select.
13
- * @param {boolean} [props.disabled] Disables the select so its value cannot change.
14
- * @param {"sm"|"lg"} [props.size] Compact size around the default 32px picker.
15
- * @param {string} [props.icon] A leading library icon, e.g. `funnel` or `sort-down`.
16
- * @param {string} [props.prefix] Static text before the value, e.g. `Sort:`.
17
- * @param {string} [props.className] Extra classes on the select, so a caller can position or space it.
8
+ * @param {Array<{ value: string, label?: import('react').ReactNode, icon?: string }>} [props.options]
9
+ * @param {string} [props.placeholder]
10
+ * @param {string} [props.name]
11
+ * @param {string} [props.ariaLabel]
12
+ * @param {string} [props.id]
13
+ * @param {boolean} [props.disabled]
14
+ * @param {"sm"|"lg"} [props.size]
15
+ * @param {string} [props.icon]
16
+ * @param {string} [props.prefix]
17
+ * @param {string} [props.className]
18
18
  */
19
19
  export default function AppSelectMini(props: {
20
+ /** The selected option's value. Unset, the control is cleared. */
20
21
  value?: string;
21
22
  onChange?: (value: string) => void;
23
+ /**
24
+ * The options. Omitted, the select has no options.
25
+ * @default []
26
+ */
22
27
  options?: Array<{
23
28
  value: string;
24
29
  label?: import('react').ReactNode;
25
30
  icon?: string;
26
31
  }>;
32
+ /**
33
+ * Text shown while no value is selected.
34
+ * @default "Select..."
35
+ */
27
36
  placeholder?: string;
37
+ /** Form field name of the select. */
28
38
  name?: string;
39
+ /** Accessible name of the select. */
29
40
  ariaLabel?: string;
41
+ /** Element id of the select. */
30
42
  id?: string;
43
+ /** Disables the select so its value cannot change. */
31
44
  disabled?: boolean;
45
+ /** Compact size around the default 32px picker. */
32
46
  size?: "sm" | "lg";
47
+ /** A leading library icon, such as funnel or sort-down. */
33
48
  icon?: string;
49
+ /** Static text before the value, such as Sort:. */
34
50
  prefix?: string;
51
+ /** Extra classes on the select, so a caller can position or space it. */
35
52
  className?: string;
36
53
  }): import("react").JSX.Element;
@@ -18,7 +18,7 @@ export type NavItemShape = {
18
18
  /**
19
19
  * With `children`, the label link goes here and the chevron alone opens the sub-list.
20
20
  */
21
- href: string;
21
+ href?: string;
22
22
  /**
23
23
  * A count or short status at the row's end.
24
24
  */
@@ -96,7 +96,7 @@ export type UserMenuShape = {
96
96
  icon?: string;
97
97
  href?: string;
98
98
  onClick?: () => void;
99
- divider?: true;
99
+ divider?: boolean;
100
100
  }[];
101
101
  };
102
102
  export type NotificationsShape = {
@@ -182,73 +182,119 @@ export type SearchShape = {
182
182
  * each item's `active` decides, as before.
183
183
  *
184
184
  * @param {object} props
185
- * @param {{ label?: string, items: NavItemShape[], after?: import('react').ReactNode }[]} props.groups Nav groups, in order.
186
- * Groups after the first are separated by a rule. A group left with no items is not rendered,
187
- * and neither is its `after`. `after` is a node rendered right after that group's links (an
188
- * "add a space" row, a help note); it is hidden on the collapsed rail and shown in the drawer.
189
- * @param {import('react').ReactNode} [props.brand] The logo row at the top of the sidebar.
190
- * @param {import('react').ReactNode} [props.sidebarStart] Between the brand row and the nav —
191
- * a workspace/tenant switcher, an environment badge. Hidden on the collapsed rail.
192
- * @param {import('react').ReactNode} [props.sidebarStartCompact] Same slot for the collapsed
193
- * rail — typically a compact monogram control (e.g. `AppWorkspaceSwitcher compact`). Shown
194
- * only on the desktop collapsed rail; the expanded `sidebarStart` stays hidden there. Omit
195
- * to keep today's behaviour (nothing in that slot when collapsed).
196
- * @param {import('react').ReactNode} [props.sidebarFooter] Pinned below the scrolling nav.
197
- * @param {import('react').ReactNode} [props.topbarStart] Leading topbar slot — page title, crumbs.
198
- * @param {import('react').ReactNode} [props.topbarEnd] Trailing topbar slot — page actions; the bell and account menu follow it.
185
+ * @param {{ label?: string, items: NavItemShape[], after?: import('react').ReactNode }[]} [props.groups]
186
+ * @param {import('react').ReactNode} [props.brand]
187
+ * @param {import('react').ReactNode} [props.sidebarStart]
188
+ * @param {import('react').ReactNode} [props.sidebarStartCompact]
189
+ * @param {import('react').ReactNode} [props.sidebarFooter]
190
+ * @param {import('react').ReactNode} [props.topbarStart]
191
+ * @param {import('react').ReactNode} [props.topbarEnd]
199
192
  * @param {import('react').ReactNode} [props.footer]
200
- * @param {import('react').ReactNode} [props.launcher] A floating button pinned to the bottom end corner over the page, such as an assistant launcher; on a phone it sits above the tab bar.
193
+ * @param {import('react').ReactNode} [props.launcher]
201
194
  * @param {import('react').ReactNode} props.children The routed page.
202
- * @param {boolean} [props.collapsed] Controlled rail state. Omit to let the shell own it.
195
+ * @param {boolean} [props.collapsed]
203
196
  * @param {(collapsed: boolean) => void} [props.onCollapsedChange]
204
- * @param {boolean} [props.noSidebar=false] Full-width, no side nav — a focused wizard. No tab bar either.
205
- * @param {'comfortable'|'compact'} [props.density='comfortable'] Compact sets the content's top padding to 12px.
206
- * @param {number} [props.itemHeight] The height of every sidebar row in px, in place of the density's row height.
207
- * Unset, the rows keep the density's height. A value above zero applies on every pointer, touch included.
208
- * @param {'linear'|'outline'|'bold'|'bulk'|'broken'|'twotone'} [props.iconVariant='linear'] The iconsax style of every
209
- * sidebar icon, so one prop sets the look of the whole nav. An item's own `iconVariant` overrides it; `bulk` is the filled look.
210
- * @param {'default'|'primary'} [props.topbarTone='default'] The top bar's colour. primary paints the bar in the primary colour, with its text, menu button, bell and account menu in the ink that reads on it; the search field keeps its own surface.
211
- * @param {string} [props.navLabel='Main navigation']
212
- * @param {string} [props.currentPath] The current location; items without `active` are matched against it.
213
- * @param {boolean} [props.rememberCollapsed=false] Remember the uncontrolled rail state in a cookie.
214
- * @param {string} [props.collapsedCookie='wui-shell-collapsed'] The cookie `rememberCollapsed` uses.
215
- * @param {string} [props.tabBarLabel='Quick navigation'] Accessible name of the phone tab bar.
216
- * @param {string} [props.moreLabel='More'] Label of the tab bar button that opens the drawer.
217
- * @param {UserMenuShape} [props.userMenu] The account menu at the end of the topbar.
218
- * @param {NotificationsShape} [props.notifications] The notification bell.
219
- * @param {SearchShape} [props.search] The topbar search.
197
+ * @param {boolean} [props.noSidebar]
198
+ * @param {'comfortable'|'compact'} [props.density]
199
+ * @param {number} [props.itemHeight]
200
+ * @param {'linear'|'outline'|'bold'|'bulk'|'broken'|'twotone'} [props.iconVariant]
201
+ * @param {'default'|'primary'} [props.topbarTone]
202
+ * @param {string} [props.navLabel]
203
+ * @param {string} [props.currentPath]
204
+ * @param {boolean} [props.rememberCollapsed]
205
+ * @param {string} [props.collapsedCookie]
206
+ * @param {string} [props.tabBarLabel]
207
+ * @param {string} [props.moreLabel]
208
+ * @param {UserMenuShape} [props.userMenu]
209
+ * @param {NotificationsShape} [props.notifications]
210
+ * @param {SearchShape} [props.search]
220
211
  * @param {string} [props.className]
221
212
  */
222
213
  export default function AppShell(props: {
223
- groups: {
214
+ /**
215
+ * Nav groups, in order. Groups after the first are separated by a rule. A group with no items is not rendered, and neither is its after.
216
+ * @default []
217
+ */
218
+ groups?: {
224
219
  label?: string;
225
220
  items: NavItemShape[];
226
221
  after?: import('react').ReactNode;
227
222
  }[];
223
+ /** The logo row at the top of the sidebar. */
228
224
  brand?: import('react').ReactNode;
225
+ /** Between the brand row and the nav, such as a workspace switcher or an environment badge. Hidden on the collapsed rail. */
229
226
  sidebarStart?: import('react').ReactNode;
227
+ /** The same slot for the collapsed rail, typically a compact monogram control. Shown only on the desktop collapsed rail. */
230
228
  sidebarStartCompact?: import('react').ReactNode;
229
+ /** Pinned below the scrolling nav. */
231
230
  sidebarFooter?: import('react').ReactNode;
231
+ /** Leading topbar slot, such as the page title or crumbs. */
232
232
  topbarStart?: import('react').ReactNode;
233
+ /** Trailing topbar slot for page actions. The bell and account menu follow it. */
233
234
  topbarEnd?: import('react').ReactNode;
235
+ /** Content shown below the page, in the content column. */
234
236
  footer?: import('react').ReactNode;
237
+ /** A floating button pinned to the bottom end corner over the page, such as an assistant launcher. On a phone it sits above the tab bar. */
235
238
  launcher?: import('react').ReactNode;
236
239
  children: import('react').ReactNode;
240
+ /** Controlled rail state. Omit it to let the shell own the state. */
237
241
  collapsed?: boolean;
238
242
  onCollapsedChange?: (collapsed: boolean) => void;
243
+ /**
244
+ * Full-width layout with no side nav, for a focused wizard. There is no tab bar either.
245
+ * @default false
246
+ */
239
247
  noSidebar?: boolean;
248
+ /**
249
+ * Compact sets the content's top padding to 12px.
250
+ * @default "comfortable"
251
+ */
240
252
  density?: 'comfortable' | 'compact';
253
+ /** The height of every sidebar row in px, in place of the density's row height. Unset, the rows keep the density's height. A value above zero applies on every pointer, touch included. */
241
254
  itemHeight?: number;
255
+ /** The iconsax style of every sidebar icon. A row's own iconVariant overrides it; bulk is the filled look. Unset, icons draw in the linear style. */
242
256
  iconVariant?: 'linear' | 'outline' | 'bold' | 'bulk' | 'broken' | 'twotone';
257
+ /**
258
+ * The top bar's colour. Primary paints the bar in the primary colour, with the ink that reads on it. The search field keeps its own surface.
259
+ * @default "default"
260
+ */
243
261
  topbarTone?: 'default' | 'primary';
262
+ /**
263
+ * Accessible name of the sidebar navigation.
264
+ * @default "Main navigation"
265
+ */
244
266
  navLabel?: string;
267
+ /** The current location. Rows without active are matched against it. */
245
268
  currentPath?: string;
269
+ /**
270
+ * Remembers the uncontrolled rail state in a cookie.
271
+ * @default false
272
+ */
246
273
  rememberCollapsed?: boolean;
274
+ /**
275
+ * The cookie rememberCollapsed uses.
276
+ * @default "wui-shell-collapsed"
277
+ */
247
278
  collapsedCookie?: string;
279
+ /**
280
+ * Accessible name of the phone tab bar.
281
+ * @default "Quick navigation"
282
+ */
248
283
  tabBarLabel?: string;
284
+ /**
285
+ * Label of the tab bar button that opens the drawer.
286
+ * @default "More"
287
+ */
249
288
  moreLabel?: string;
289
+ /** The account menu at the end of the topbar. */
250
290
  userMenu?: UserMenuShape;
291
+ /** The notification bell. */
251
292
  notifications?: NotificationsShape;
293
+ /** The topbar search. */
252
294
  search?: SearchShape;
295
+ /**
296
+ * Extra classes on the shell root.
297
+ * @default ""
298
+ */
253
299
  className?: string;
254
300
  }): import("react").JSX.Element;
@@ -16,19 +16,27 @@ import "@webority/ui-elements/elements/shortcuts";
16
16
  *
17
17
  * @param {object} props
18
18
  * @param {{ key: string, label: string, onPress?: (itemKey: string|null) => void }[]} [props.shortcuts]
19
- * The rows, in order ("?" is always the last row). `key` is one character or Enter, Esc, `/`;
20
- * `onPress` gets the `data-key` of the item marked `aria-current="true"` in the scope, or null.
21
- * @param {string} [props.items] CSS selector of the items J and K move between (inside the scope).
22
- * @param {string} [props.search] CSS selector of the field `/` focuses.
19
+ * @param {string} [props.items]
20
+ * @param {string} [props.search]
23
21
  * @param {string} [props.className]
24
22
  */
25
23
  export default function AppShortcutLegend(props: {
24
+ /**
25
+ * The rows of the sheet, in order; the ? row is always last.
26
+ * @default []
27
+ */
26
28
  shortcuts?: {
27
29
  key: string;
28
30
  label: string;
29
31
  onPress?: (itemKey: string | null) => void;
30
32
  }[];
33
+ /** CSS selector of the items that J and K move between, inside the scope. */
31
34
  items?: string;
35
+ /** CSS selector of the field that / focuses. */
32
36
  search?: string;
37
+ /**
38
+ * Extra classes on the legend root.
39
+ * @default ""
40
+ */
33
41
  className?: string;
34
42
  }): import("react").JSX.Element;
@@ -11,19 +11,40 @@ import "@webority/ui-elements/elements/show-more";
11
11
  *
12
12
  * @param {object} props
13
13
  * @param {import('react').ReactNode} props.children The text (or markup) to clamp.
14
- * @param {number} [props.lines=3] How many lines show while collapsed.
15
- * @param {string} [props.moreLabel="Show more"] The toggle's text while collapsed.
16
- * @param {string} [props.lessLabel="Show less"] The toggle's text while expanded.
17
- * @param {boolean} [props.defaultExpanded=false] Start with the whole text showing.
18
- * @param {string} [props.id] The root's id; the body's is `{id}-body`. Generated when omitted.
14
+ * @param {number} [props.lines]
15
+ * @param {string} [props.moreLabel]
16
+ * @param {string} [props.lessLabel]
17
+ * @param {boolean} [props.defaultExpanded]
18
+ * @param {string} [props.id]
19
19
  * @param {string} [props.className]
20
20
  */
21
21
  export default function AppShowMore(props: {
22
22
  children: import('react').ReactNode;
23
+ /**
24
+ * How many lines show while the text is collapsed.
25
+ * @default 3
26
+ */
23
27
  lines?: number;
28
+ /**
29
+ * The toggle's text while collapsed.
30
+ * @default "Show more"
31
+ */
24
32
  moreLabel?: string;
33
+ /**
34
+ * The toggle's text while expanded.
35
+ * @default "Show less"
36
+ */
25
37
  lessLabel?: string;
38
+ /**
39
+ * Start with the whole text showing; a change after mount is ignored.
40
+ * @default false
41
+ */
26
42
  defaultExpanded?: boolean;
43
+ /** The root's id; the text body's id is the root id plus -body. Generated when omitted. */
27
44
  id?: string;
45
+ /**
46
+ * Extra classes on the root.
47
+ * @default ""
48
+ */
28
49
  className?: string;
29
50
  }): import("react").JSX.Element;
@@ -6,44 +6,85 @@
6
6
  * via the app tokens so it renders correctly in dark mode.
7
7
  *
8
8
  * @param {object} props
9
- * @param {boolean} props.show Whether the panel is open. The caller owns this state.
9
+ * @param {boolean} props.show
10
10
  * @param {() => void} props.onHide Closes the panel: the header close button, the backdrop and Escape.
11
- * @param {"left"|"right"|"start"|"end"|"top"|"bottom"} [props.side="right"] The edge it opens from. `left` and `start` open from the start edge, `right` and `end` from the end edge.
11
+ * @param {"left"|"right"|"start"|"end"|"top"|"bottom"} [props.side]
12
12
  * @param {import('react').ReactNode} props.children The panel body.
13
- * @param {import('react').ReactNode} [props.title] Title of the default header bar. A text title also names the dialog, unless `ariaLabel` is set.
14
- * @param {string} [props.titleIcon] Library icon beside the title in the default header bar.
15
- * @param {import('react').ReactNode} [props.header] A custom header that replaces the default header bar entirely.
16
- * @param {import('react').ReactNode} [props.footer] A sticky footer for action buttons.
17
- * @param {string} [props.width] Panel width for a left or right panel, e.g. "480px". Unset, it is 420px. On a phone (below 576px) a left or right panel opens at the full screen width whatever this says; `maxWidth` still caps it there.
18
- * @param {string} [props.maxWidth] Caps the panel width, e.g. "600px". Unset, the theme caps it at 92vw, so a fixed `width` still fits on a small viewport.
19
- * @param {boolean|"static"} [props.backdrop=true] The dimming backdrop: `true` shows it and a click outside closes the panel; `false` removes it; `"static"` shows it and a click outside does not close.
20
- * @param {boolean} [props.scroll=false] Allows the page behind the panel to scroll.
21
- * @param {boolean} [props.keyboard=true] Escape closes the panel.
22
- * @param {boolean} [props.closeButton=true] Shows the header close button.
23
- * @param {string} [props.closeLabel="Close"] The close button's accessible name, for other languages.
24
- * @param {string} [props.responsive] Breakpoint, e.g. `lg`, below which the panel acts as an offcanvas and at or above which it renders inline.
25
- * @param {string} [props.className=""] Extra classes on the panel.
26
- * @param {string} [props.bodyClassName=""] Classes on the scrollable body region.
27
- * @param {string} [props.ariaLabel] Accessible name of the dialog. Unset, a text `title` names it.
13
+ * @param {import('react').ReactNode} [props.title]
14
+ * @param {string} [props.titleIcon]
15
+ * @param {import('react').ReactNode} [props.header]
16
+ * @param {import('react').ReactNode} [props.footer]
17
+ * @param {string} [props.width]
18
+ * @param {string} [props.maxWidth]
19
+ * @param {"on"|"static"|"off"} [props.backdrop]
20
+ * @param {boolean} [props.scroll]
21
+ * @param {boolean} [props.keyboard]
22
+ * @param {boolean} [props.closeButton]
23
+ * @param {string} [props.closeLabel]
24
+ * @param {string} [props.responsive]
25
+ * @param {string} [props.className]
26
+ * @param {string} [props.bodyClassName]
27
+ * @param {string} [props.ariaLabel]
28
28
  */
29
29
  export default function AppSidebarMenu(props: {
30
+ /** Whether the panel is open. The caller owns this state. */
30
31
  show: boolean;
31
32
  onHide: () => void;
33
+ /**
34
+ * The edge it opens from. left and start open from the start edge, right and end from the end edge.
35
+ * @default "right"
36
+ */
32
37
  side?: "left" | "right" | "start" | "end" | "top" | "bottom";
33
38
  children: import('react').ReactNode;
39
+ /** Title of the default header bar. A text title also names the dialog, unless ariaLabel is set. */
34
40
  title?: import('react').ReactNode;
41
+ /** Library icon beside the title in the default header bar. */
35
42
  titleIcon?: string;
43
+ /** A custom header that replaces the default header bar entirely. */
36
44
  header?: import('react').ReactNode;
45
+ /** A sticky footer for action buttons. */
37
46
  footer?: import('react').ReactNode;
47
+ /** Panel width for a left or right panel, such as 480px. Unset, it is 420px. On a phone a left or right panel opens at the full screen width, and maxWidth still caps it there. */
38
48
  width?: string;
49
+ /** Caps the panel width, such as 600px. Unset, the theme caps it at 92vw. */
39
50
  maxWidth?: string;
40
- backdrop?: boolean | "static";
51
+ /**
52
+ * The dimming backdrop: on shows it and a click outside closes the panel; static shows it and a click outside does not; off shows none.
53
+ * @default "on"
54
+ */
55
+ backdrop?: "on" | "static" | "off";
56
+ /**
57
+ * Allows the page behind the panel to scroll.
58
+ * @default false
59
+ */
41
60
  scroll?: boolean;
61
+ /**
62
+ * Escape closes the panel.
63
+ * @default true
64
+ */
42
65
  keyboard?: boolean;
66
+ /**
67
+ * Shows the header close button.
68
+ * @default true
69
+ */
43
70
  closeButton?: boolean;
71
+ /**
72
+ * The close button's accessible name, for other languages.
73
+ * @default "Close"
74
+ */
44
75
  closeLabel?: string;
76
+ /** Breakpoint, such as lg, below which the panel acts as an offcanvas and at or above which it renders inline. */
45
77
  responsive?: string;
78
+ /**
79
+ * Extra classes on the panel.
80
+ * @default ""
81
+ */
46
82
  className?: string;
83
+ /**
84
+ * Classes on the scrollable body region.
85
+ * @default ""
86
+ */
47
87
  bodyClassName?: string;
88
+ /** Accessible name of the dialog. Unset, a text title names it. */
48
89
  ariaLabel?: string;
49
90
  }): import("react").JSX.Element;
@@ -2,20 +2,49 @@
2
2
  * First-load shimmer placeholder.
3
3
  *
4
4
  * @param {object} props
5
- * @param {string|number} [props.width="100%"]
6
- * @param {string|number} [props.height=14]
7
- * @param {string|number} [props.radius=6]
5
+ * @param {string|number} [props.width]
6
+ * @param {string|number} [props.height]
7
+ * @param {string|number} [props.radius]
8
8
  * @param {string} [props.className]
9
9
  * @param {import('react').CSSProperties} [props.style]
10
10
  */
11
11
  export default function AppSkeleton(props: {
12
+ /**
13
+ * Width of the bar: a number is px, a string is any CSS length.
14
+ * @default "100%"
15
+ */
12
16
  width?: string | number;
17
+ /**
18
+ * Height of the bar: a number is px, a string is any CSS length.
19
+ * @default 14
20
+ */
13
21
  height?: string | number;
22
+ /**
23
+ * Corner radius of the bar: a number is px, a string is any CSS length.
24
+ * @default 6
25
+ */
14
26
  radius?: string | number;
27
+ /**
28
+ * Extra class names added to the bar.
29
+ * @default ""
30
+ */
15
31
  className?: string;
16
32
  style?: import('react').CSSProperties;
17
33
  }): import("react").JSX.Element;
34
+ /**
35
+ * @param {object} props
36
+ * @param {number} [props.rows]
37
+ * @param {number} [props.cols]
38
+ */
18
39
  export declare function AppSkeletonRows({ rows, cols }: {
19
- cols?: number;
40
+ /**
41
+ * Number of placeholder rows to draw.
42
+ * @default 4
43
+ */
20
44
  rows?: number;
45
+ /**
46
+ * Number of placeholder cells in each row.
47
+ * @default 5
48
+ */
49
+ cols?: number;
21
50
  }): import("react").JSX.Element[];
@@ -1,30 +1,73 @@
1
1
  import "@webority/ui-elements/elements/slider";
2
2
  declare const AppSlider: import("react").ForwardRefExoticComponent<{
3
+ /** Current value (single mode). */
3
4
  value?: number;
5
+ /** Range start (range mode). */
4
6
  start?: number;
7
+ /** Range end (range mode). */
5
8
  end?: number;
9
+ /**
10
+ * Enables dual-thumb range mode.
11
+ * @default false
12
+ */
6
13
  range?: boolean;
7
14
  onChange?: (value: number | {
8
15
  start: any;
9
16
  end: any;
10
17
  }) => void;
18
+ /**
19
+ * Lowest value the slider can take.
20
+ * @default 0
21
+ */
11
22
  min?: number;
23
+ /**
24
+ * Highest value the slider can take.
25
+ * @default 100
26
+ */
12
27
  max?: number;
28
+ /**
29
+ * Distance between two allowed values.
30
+ * @default 1
31
+ */
13
32
  step?: number;
33
+ /** Visible label above the control. */
14
34
  label?: string;
35
+ /**
36
+ * Marks the field as required.
37
+ * @default false
38
+ */
15
39
  required?: boolean;
40
+ /** Helper text under the control. */
16
41
  hint?: string;
42
+ /** Error text under the control; sets aria-invalid. */
17
43
  error?: string;
44
+ /** Form field name (single mode). */
18
45
  name?: string;
46
+ /** Form field name for range start. */
19
47
  startName?: string;
48
+ /** Form field name for range end. */
20
49
  endName?: string;
50
+ /** Disables the control. */
21
51
  disabled?: boolean;
52
+ /** Control size tier. */
22
53
  size?: 'sm' | 'md' | 'lg';
54
+ /** Shows a label with the current value or values. */
23
55
  showValue?: boolean;
56
+ /** Suffix for the value label, for example %. */
24
57
  unit?: string;
58
+ /** Element id; a generated id is used when omitted. */
25
59
  id?: string;
60
+ /** Accessible name when no visible label is used. */
26
61
  ariaLabel?: string;
62
+ /**
63
+ * Class applied to the control element.
64
+ * @default ""
65
+ */
27
66
  className?: string;
67
+ /**
68
+ * Class applied to the wrapper field element.
69
+ * @default ""
70
+ */
28
71
  fieldClassName?: string;
29
72
  } & import("react").RefAttributes<HTMLElement>>;
30
73
  export default AppSlider;