@inglorious/ui 8.6.0 → 9.0.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 (37) hide show
  1. package/package.json +1 -1
  2. package/src/controls/button/template.js +4 -4
  3. package/src/controls/combobox/style.css +14 -7
  4. package/src/controls/combobox/template.js +12 -2
  5. package/src/controls/rating/style.css +26 -4
  6. package/src/controls/rating/template.js +29 -12
  7. package/src/controls/switch/template.js +3 -1
  8. package/src/data-display/tooltip/style.css +22 -14
  9. package/src/examples/dashboard/primitive-content.js +6 -6
  10. package/src/examples/dashboard/style.css +11 -5
  11. package/src/feedback/dialog/dialog.stories.js +9 -0
  12. package/src/feedback/dialog/style.css +13 -12
  13. package/src/feedback/dialog/template.js +63 -18
  14. package/src/feedback/progress/style.css +47 -23
  15. package/src/feedback/progress/template.js +18 -11
  16. package/src/feedback/snackbar/style.css +13 -0
  17. package/src/feedback/snackbar/template.js +7 -0
  18. package/src/navigation/drawer/drawer.stories.js +3 -7
  19. package/src/navigation/drawer/style.css +59 -18
  20. package/src/navigation/drawer/template.js +137 -80
  21. package/src/navigation/menu/menu.stories.js +15 -0
  22. package/src/navigation/menu/style.css +19 -0
  23. package/src/navigation/menu/template.js +59 -6
  24. package/src/navigation/speed-dial/style.css +32 -5
  25. package/src/navigation/speed-dial/template.js +41 -12
  26. package/src/navigation/tabs/template.js +52 -4
  27. package/src/shared/anchor.js +11 -0
  28. package/src/shared/top-layer.js +83 -0
  29. package/src/surfaces/accordion/style.css +14 -7
  30. package/src/surfaces/accordion/template.js +27 -20
  31. package/types/controls/rating.d.ts +4 -0
  32. package/types/feedback/dialog.d.ts +3 -1
  33. package/types/feedback/progress.d.ts +2 -0
  34. package/types/navigation/drawer.d.ts +8 -3
  35. package/types/navigation/menu.d.ts +17 -0
  36. package/types/navigation/speed-dial.d.ts +5 -0
  37. package/types/surfaces/accordion.d.ts +2 -0
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { ButtonProps } from "../controls/button"
4
+
3
5
  export interface MenuItem {
4
6
  id?: string | number
5
7
  value?: string | number
@@ -14,9 +16,23 @@ export interface MenuItem {
14
16
  }
15
17
 
16
18
  export interface MenuProps {
19
+ /** Required with `trigger`: it links the button to the menu. */
17
20
  id?: string
18
21
  type?: string
19
22
  isOpen?: boolean
23
+ /**
24
+ * Content of a button that opens the menu. With it, the menu is a popover
25
+ * anchored to the button; without it, the menu renders in place while open.
26
+ */
27
+ trigger?: TemplateResult | string | number
28
+ /** Extra props for the trigger button, such as `variant` or `ariaLabel`. */
29
+ triggerProps?: ButtonProps
30
+ /**
31
+ * Called with the new state when the browser opens or closes an anchored
32
+ * menu. Without it, the browser alone keeps the open state and `isOpen` is
33
+ * not applied.
34
+ */
35
+ onToggle?: (isOpen: boolean) => void
20
36
  items?: MenuItem[]
21
37
  isDense?: boolean
22
38
  className?: string
@@ -26,6 +42,7 @@ export interface MenuProps {
26
42
 
27
43
  export type MenuType = {
28
44
  render(props: MenuProps): TemplateResult | null
45
+ renderTrigger(props: MenuProps): TemplateResult
29
46
  renderMenu(props: MenuProps): TemplateResult | null
30
47
  renderItem(item: MenuItem, index: number, props: MenuProps): TemplateResult
31
48
  }
@@ -18,6 +18,11 @@ export interface SpeedDialProps {
18
18
  ariaLabel?: string
19
19
  direction?: "up" | "down" | "left" | "right"
20
20
  actions?: SpeedDialAction[]
21
+ /**
22
+ * Called with the new state when the browser opens or closes the actions.
23
+ * Without it, the browser alone keeps the open state and `isOpen` is not
24
+ * applied.
25
+ */
21
26
  onToggle?: (isOpen: boolean) => void
22
27
  onAction?: (value: string | number, action: SpeedDialAction) => void
23
28
  [key: string]: unknown
@@ -15,6 +15,8 @@ export interface AccordionProps {
15
15
  id?: string
16
16
  type?: string
17
17
  className?: string
18
+ /** Items sharing a name close each other: at most one is open at a time. */
19
+ name?: string
18
20
  items?: AccordionItem[]
19
21
  onItemToggle?: (item: AccordionItem, index: number, expanded: boolean) => void
20
22
  [key: string]: unknown