@inglorious/ui 9.7.3 → 9.8.1

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 (104) hide show
  1. package/package.json +5 -5
  2. package/src/controls/button/style.css +0 -2
  3. package/src/controls/button/template.js +2 -3
  4. package/src/controls/checkbox/style.css +0 -1
  5. package/src/controls/checkbox/template.js +0 -2
  6. package/src/controls/combobox/style.css +0 -14
  7. package/src/controls/combobox/template.js +0 -13
  8. package/src/controls/file-upload/template.js +1 -1
  9. package/src/controls/image-cropper/helpers.js +0 -2
  10. package/src/controls/image-cropper/image.js +0 -2
  11. package/src/controls/image-cropper/style.css +0 -6
  12. package/src/controls/image-cropper/template.js +3 -5
  13. package/src/controls/input/style.css +0 -1
  14. package/src/controls/radio-group/style.css +0 -2
  15. package/src/controls/rating/style.css +0 -3
  16. package/src/controls/select/style.css +0 -6
  17. package/src/controls/slider/style.css +0 -5
  18. package/src/controls/slider/template.js +0 -1
  19. package/src/controls/switch/style.css +0 -1
  20. package/src/controls/switch/template.js +0 -2
  21. package/src/controls/textarea/style.css +0 -2
  22. package/src/data-display/before-after/style.css +0 -4
  23. package/src/data-display/before-after/template.js +3 -3
  24. package/src/data-display/carousel/carousel.stories.js +0 -2
  25. package/src/data-display/carousel/handlers.js +0 -2
  26. package/src/data-display/carousel/style.css +0 -18
  27. package/src/data-display/carousel/template.js +0 -15
  28. package/src/data-display/chat/index.js +0 -1
  29. package/src/data-display/chat/style.css +0 -2
  30. package/src/data-display/chat/template.js +0 -1
  31. package/src/data-display/chip/template.js +0 -1
  32. package/src/data-display/data-grid/base.css +0 -2
  33. package/src/data-display/data-grid/handlers.js +1 -8
  34. package/src/data-display/data-grid/helpers.js +0 -5
  35. package/src/data-display/data-grid/template.js +0 -1
  36. package/src/data-display/data-grid/theme.css +0 -1
  37. package/src/data-display/icon/style.css +0 -7
  38. package/src/data-display/icon/template.js +2 -2
  39. package/src/data-display/table/style.css +0 -2
  40. package/src/data-display/tooltip/style.css +0 -3
  41. package/src/data-display/virtual-list/handlers.js +0 -2
  42. package/src/data-display/virtual-list/template.js +2 -4
  43. package/src/examples/dashboard/before-after-data.js +0 -3
  44. package/src/examples/dashboard/data.js +0 -1
  45. package/src/examples/dashboard/primitive-content.js +0 -2
  46. package/src/examples/dashboard/style.css +0 -3
  47. package/src/feedback/alert/style.css +0 -1
  48. package/src/feedback/dialog/dialog.stories.js +7 -2
  49. package/src/feedback/dialog/style.css +31 -18
  50. package/src/feedback/dialog/template.js +16 -16
  51. package/src/feedback/progress/style.css +0 -6
  52. package/src/feedback/progress/template.js +0 -3
  53. package/src/feedback/snackbar/snackbar.stories.js +0 -1
  54. package/src/feedback/snackbar/style.css +0 -10
  55. package/src/layout/flex/style.css +0 -2
  56. package/src/navigation/bottom-navigation/style.css +0 -7
  57. package/src/navigation/drawer/style.css +0 -21
  58. package/src/navigation/drawer/template.js +10 -9
  59. package/src/navigation/menu/menu.stories.js +0 -2
  60. package/src/navigation/menu/style.css +0 -4
  61. package/src/navigation/menu/template.js +0 -3
  62. package/src/navigation/speed-dial/style.css +0 -4
  63. package/src/navigation/speed-dial/template.js +0 -5
  64. package/src/navigation/tabs/template.js +0 -2
  65. package/src/navigation/view-transitions/index.js +0 -13
  66. package/src/navigation/view-transitions/style.css +0 -2
  67. package/src/shared/icons.js +0 -4
  68. package/src/styles/themes/bootstrap.css +0 -40
  69. package/src/styles/themes/inglorious.css +0 -21
  70. package/src/styles/themes/ios-18.css +0 -47
  71. package/src/styles/themes/ios-26.css +0 -55
  72. package/src/styles/themes/material-3.css +0 -52
  73. package/src/styles/themes/material-ui.css +0 -43
  74. package/src/styles/tokens.css +0 -40
  75. package/src/surfaces/accordion/style.css +0 -2
  76. package/src/surfaces/accordion/template.js +0 -4
  77. package/src/surfaces/app-bar/style.css +0 -3
  78. package/src/surfaces/card/style.css +0 -3
  79. package/types/controls/button-group.d.ts +5 -3
  80. package/types/controls/button.d.ts +3 -1
  81. package/types/controls/combobox.d.ts +13 -0
  82. package/types/controls/fab.d.ts +1 -1
  83. package/types/controls/icon-button.d.ts +7 -21
  84. package/types/controls/input.d.ts +2 -2
  85. package/types/data-display/avatar.d.ts +1 -1
  86. package/types/data-display/badge.d.ts +4 -2
  87. package/types/data-display/chip.d.ts +5 -3
  88. package/types/data-display/icon.d.ts +4 -2
  89. package/types/data-display/tooltip.d.ts +4 -2
  90. package/types/data-display/typography.d.ts +3 -1
  91. package/types/feedback/alert.d.ts +3 -1
  92. package/types/feedback/backdrop.d.ts +4 -2
  93. package/types/feedback/dialog.d.ts +11 -1
  94. package/types/index.d.ts +1 -0
  95. package/types/layout/container.d.ts +3 -1
  96. package/types/layout/flex.d.ts +9 -11
  97. package/types/layout/grid.d.ts +4 -2
  98. package/types/navigation/breadcrumbs.d.ts +1 -1
  99. package/types/navigation/drawer.d.ts +9 -1
  100. package/types/navigation/link.d.ts +4 -2
  101. package/types/shared/renderable.d.ts +12 -0
  102. package/types/surfaces/app-bar.d.ts +3 -1
  103. package/types/surfaces/card.d.ts +4 -2
  104. package/types/surfaces/paper.d.ts +3 -1
@@ -1,27 +1,13 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
- export interface IconButtonProps {
4
- id?: string
5
- type?: string
6
- icon?: string
7
- label?: string
8
- iconAfter?: string
3
+ import type { ButtonProps } from "./button"
4
+
5
+ /** A Button, with its content given as icons and a label. */
6
+ export interface IconButtonProps extends ButtonProps {
7
+ icon?: TemplateResult | string
8
+ label?: TemplateResult | string | number
9
+ iconAfter?: TemplateResult | string
9
10
  direction?: "row" | "column"
10
- ariaLabel?: string
11
- variant?: "default" | "outline" | "ghost"
12
- color?:
13
- | "default"
14
- | "primary"
15
- | "secondary"
16
- | "success"
17
- | "warning"
18
- | "error"
19
- | "info"
20
- size?: "sm" | "md" | "lg"
21
- isDisabled?: boolean
22
- isFullWidth?: boolean
23
- buttonType?: "button" | "submit" | "reset" | "menu"
24
- onClick?: () => void
25
11
  }
26
12
 
27
13
  export type IconButtonType = {
@@ -29,8 +29,8 @@ export interface InputProps {
29
29
  isReadOnly?: boolean
30
30
  isRequired?: boolean
31
31
  isFullWidth?: boolean
32
- icon?: string
33
- iconAfter?: string
32
+ icon?: TemplateResult | string
33
+ iconAfter?: TemplateResult | string
34
34
  onChange?: (value: string) => void
35
35
  onBlur?: () => void
36
36
  onFocus?: () => void
@@ -19,7 +19,7 @@ export interface AvatarProps {
19
19
  backgroundColor?: string
20
20
  textColor?: string
21
21
  children?: TemplateResult | string | number
22
- onClick?: () => void
22
+ onClick?: (event: MouseEvent) => void
23
23
  [key: string]: unknown
24
24
  }
25
25
 
@@ -1,15 +1,17 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface BadgeProps {
4
6
  id?: string
5
- children?: TemplateResult | string | number
7
+ children?: Renderable
6
8
  color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
7
9
  variant?: "solid" | "outline"
8
10
  size?: "sm" | "md" | "lg"
9
11
  shape?: "rectangle" | "pill" | "circle" | "square"
10
12
  ringWidth?: string
11
13
  className?: string
12
- onClick?: () => void
14
+ onClick?: (event: MouseEvent) => void
13
15
  [key: string]: unknown
14
16
  }
15
17
 
@@ -1,10 +1,12 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface ChipProps {
4
6
  id?: string
5
- children?: TemplateResult | string | number
7
+ children?: Renderable
6
8
  /** Shown before the label, such as an `Icon.render(...)`. Decorative. */
7
- icon?: TemplateResult
9
+ icon?: TemplateResult | string
8
10
  isRemovable?: boolean
9
11
  color?:
10
12
  | "default"
@@ -23,7 +25,7 @@ export interface ChipProps {
23
25
  isSelected?: boolean
24
26
  /** Only for a chip with `isSelected`. */
25
27
  isDisabled?: boolean
26
- onClick?: () => void
28
+ onClick?: (event: MouseEvent) => void
27
29
  [key: string]: unknown
28
30
  }
29
31
 
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  /**
4
6
  * An icon in the Iconify format, as every set on `@iconify-icons/*` exports
5
7
  * it: `import arrowBack from "@iconify-icons/material-symbols/arrow-back"`.
@@ -19,7 +21,7 @@ export interface IconProps {
19
21
  /** The icon to draw, as inline SVG at the size's font size. */
20
22
  icon?: IconData
21
23
  /** Shown when there is no `icon`: an emoji, a glyph, any markup. */
22
- children?: TemplateResult | string | number
24
+ children?: Renderable
23
25
  size?: "sm" | "md" | "lg"
24
26
  color?: string
25
27
  /**
@@ -30,7 +32,7 @@ export interface IconProps {
30
32
  /** Names an icon that means something on its own. Without it the icon is decorative. */
31
33
  label?: string
32
34
  className?: string
33
- onClick?: () => void
35
+ onClick?: (event: MouseEvent) => void
34
36
  [key: string]: unknown
35
37
  }
36
38
 
@@ -1,15 +1,17 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface TooltipProps {
4
6
  id?: string
5
- children?: TemplateResult | string | number
7
+ children?: Renderable
6
8
  content?: TemplateResult | string | number
7
9
  position?: "top" | "right" | "bottom" | "left"
8
10
  size?: "sm" | "md" | "lg"
9
11
  isOpen?: boolean
10
12
  maxWidth?: string
11
13
  className?: string
12
- onClick?: () => void
14
+ onClick?: (event: MouseEvent) => void
13
15
  [key: string]: unknown
14
16
  }
15
17
 
@@ -1,11 +1,13 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export type TypographyVariant =
4
6
  "body" | "h1" | "h2" | "h3" | "caption" | "overline"
5
7
 
6
8
  export interface TypographyProps {
7
9
  id?: string
8
- children?: TemplateResult | string | number
10
+ children?: Renderable
9
11
  variant?: TypographyVariant
10
12
  align?: "left" | "center" | "right"
11
13
  weight?: string | number
@@ -1,11 +1,13 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface AlertProps {
4
6
  id?: string
5
7
  type?: string
6
8
  title?: TemplateResult | string | number
7
9
  description?: TemplateResult | string | number
8
- children?: TemplateResult | string | number
10
+ children?: Renderable
9
11
  severity?: "info" | "success" | "warning" | "error" | "neutral"
10
12
  variant?: "filled" | "outlined"
11
13
  icon?: TemplateResult | string | number
@@ -1,12 +1,14 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface BackdropProps {
4
6
  id?: string
5
7
  type?: string
6
8
  isOpen?: boolean
7
9
  className?: string
8
- children?: TemplateResult | string | number
9
- onClick?: () => void
10
+ children?: Renderable
11
+ onClick?: (event: MouseEvent) => void
10
12
  [key: string]: unknown
11
13
  }
12
14
 
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface DialogProps {
4
6
  id?: string
5
7
  type?: string
@@ -8,11 +10,19 @@ export interface DialogProps {
8
10
  isModal?: boolean
9
11
  /** Its width: `"sm"`, `"md"` (default) or `"lg"`. */
10
12
  size?: "sm" | "md" | "lg"
13
+ /**
14
+ * How it presents itself: `"dialog"` (default) centred, or `"sheet"`, which
15
+ * below 48rem is anchored to the bottom edge at full width, rising from
16
+ * below, and from 48rem is the centred dialog. Either can be modal or not.
17
+ */
18
+ variant?: "dialog" | "sheet"
11
19
  title?: TemplateResult | string | number
12
20
  description?: TemplateResult | string | number
13
- children?: TemplateResult | string | number
21
+ children?: Renderable
14
22
  actions?: TemplateResult | string | number
15
23
  className?: string
24
+ /** The close button's accessible name, for the app's language. Defaults to `"Close"`. */
25
+ closeLabel?: string
16
26
  onClose?: () => void
17
27
  onBackdropClick?: () => void
18
28
  [key: string]: unknown
package/types/index.d.ts CHANGED
@@ -80,6 +80,7 @@ export type { TextareaProps, TextareaType } from "./controls/textarea"
80
80
  export type { FileUploadProps, FileUploadType } from "./controls/file-upload"
81
81
  export type { ContainerProps, ContainerType } from "./layout/container"
82
82
  export type { FlexProps, FlexType } from "./layout/flex"
83
+ export type { Renderable } from "./shared/renderable"
83
84
  export type { GridProps, GridType } from "./layout/grid"
84
85
  export type {
85
86
  BottomNavigationProps,
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface ContainerProps {
4
6
  id?: string
5
7
  type?: string
@@ -12,7 +14,7 @@ export interface ContainerProps {
12
14
  | "nav"
13
15
  | "aside"
14
16
  | "article"
15
- children?: TemplateResult | string | number
17
+ children?: Renderable
16
18
  maxWidth?: "xs" | "sm" | "md" | "lg" | "xl" | "none" | false | number | string
17
19
  isFixed?: boolean
18
20
  padding?: "none" | "sm" | "md" | "lg" | "xl"
@@ -1,17 +1,13 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface FlexProps {
4
6
  id?: string
5
7
  type?: string
6
- element?:
7
- | "div"
8
- | "section"
9
- | "main"
10
- | "header"
11
- | "footer"
12
- | "nav"
13
- | "aside"
14
- | "article"
8
+ /** The tag to render. Defaults to `"div"`. */
9
+ element?: keyof HTMLElementTagNameMap
10
+ className?: string
15
11
  direction?: "row" | "column" | "row-reverse" | "column-reverse"
16
12
  wrap?: "nowrap" | "wrap" | "wrap-reverse"
17
13
  justify?: "start" | "center" | "end" | "between" | "around" | "evenly"
@@ -21,8 +17,10 @@ export interface FlexProps {
21
17
  overflow?: "visible" | "hidden" | "clip" | "scroll" | "auto"
22
18
  isInline?: boolean
23
19
  isFullWidth?: boolean
24
- children?: Array<TemplateResult | string | number>
25
- onClick?: () => void
20
+ children?: Renderable
21
+ onClick?: (event: MouseEvent) => void
22
+ /** Any other property is set on the element, such as `style` or `data-*`. */
23
+ [key: string]: unknown
26
24
  }
27
25
 
28
26
  export type FlexType = {
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface GridProps {
4
6
  id?: string
5
7
  type?: string
@@ -19,8 +21,8 @@ export interface GridProps {
19
21
  align?: "stretch" | "start" | "center" | "end"
20
22
  justify?: "stretch" | "start" | "center" | "end"
21
23
  isFullWidth?: boolean
22
- children?: Array<TemplateResult | string | number>
23
- onClick?: () => void
24
+ children?: Renderable
25
+ onClick?: (event: MouseEvent) => void
24
26
  }
25
27
 
26
28
  export type GridType = {
@@ -4,7 +4,7 @@ export interface BreadcrumbItem {
4
4
  id?: string | number
5
5
  label: TemplateResult | string | number
6
6
  href?: string
7
- onClick?: () => void
7
+ onClick?: (event: MouseEvent) => void
8
8
  [key: string]: unknown
9
9
  }
10
10
 
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface DrawerProps {
4
6
  id?: string
5
7
  type?: string
@@ -13,9 +15,15 @@ export interface DrawerProps {
13
15
  isHidden?: boolean
14
16
  isCollapsed?: boolean
15
17
  title?: TemplateResult | string | number
16
- children?: TemplateResult | string | number
18
+ children?: Renderable
17
19
  hasBackdrop?: boolean
18
20
  className?: string
21
+ /** The close button's accessible name, for the app's language. Defaults to `"Close"`. */
22
+ closeLabel?: string
23
+ /** The collapse toggle's accessible name while expanded. Defaults to `"Collapse sidebar"`. */
24
+ collapseLabel?: string
25
+ /** The collapse toggle's accessible name while collapsed. Defaults to `"Expand sidebar"`. */
26
+ expandLabel?: string
19
27
  onClose?: () => void
20
28
  onCollapseToggle?: () => void
21
29
  [key: string]: unknown
@@ -1,17 +1,19 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface LinkProps {
4
6
  id?: string
5
7
  type?: string
6
8
  href?: string
7
9
  label?: TemplateResult | string | number
8
- children?: TemplateResult | string | number
10
+ children?: Renderable
9
11
  underline?: "always" | "hover" | "none"
10
12
  color?: "primary" | "secondary" | "inherit"
11
13
  isMuted?: boolean
12
14
  isExternal?: boolean
13
15
  className?: string
14
- onClick?: () => void
16
+ onClick?: (event: MouseEvent) => void
15
17
  [key: string]: unknown
16
18
  }
17
19
 
@@ -0,0 +1,12 @@
1
+ import type { TemplateResult } from "@inglorious/web"
2
+
3
+ /** What a template can render, `nothing` and `when()`'s results included. */
4
+ export type Renderable =
5
+ | TemplateResult
6
+ | string
7
+ | number
8
+ | boolean
9
+ | symbol
10
+ | null
11
+ | undefined
12
+ | Renderable[]
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface AppBarProps {
4
6
  id?: string
5
7
  type?: string
@@ -7,7 +9,7 @@ export interface AppBarProps {
7
9
  subtitle?: TemplateResult | string | number
8
10
  leading?: TemplateResult | string | number
9
11
  trailing?: TemplateResult | string | number
10
- children?: TemplateResult | string | number
12
+ children?: Renderable
11
13
  isDense?: boolean
12
14
  variant?: "regular" | "dense" | "prominent"
13
15
  color?: "default" | "primary" | "secondary" | "transparent" | "inherit"
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface CardProps {
4
6
  id?: string
5
7
  type?: string
@@ -21,7 +23,7 @@ export interface CardProps {
21
23
  subtitle?: TemplateResult | string | number
22
24
  header?: TemplateResult | string | number
23
25
  body?: TemplateResult | string | number
24
- children?: TemplateResult | string | number
26
+ children?: Renderable
25
27
  footer?: TemplateResult | string | number
26
28
  headerPadding?: "none" | "sm" | "md" | "lg" | "xl"
27
29
  bodyPadding?: "none" | "sm" | "md" | "lg" | "xl"
@@ -30,7 +32,7 @@ export interface CardProps {
30
32
  isClickable?: boolean
31
33
  isFullWidth?: boolean
32
34
  className?: string
33
- onClick?: () => void
35
+ onClick?: (event: MouseEvent) => void
34
36
  [key: string]: unknown
35
37
  }
36
38
 
@@ -1,5 +1,7 @@
1
1
  import type { TemplateResult } from "@inglorious/web"
2
2
 
3
+ import type { Renderable } from "../shared/renderable"
4
+
3
5
  export interface PaperProps {
4
6
  id?: string
5
7
  type?: string
@@ -12,7 +14,7 @@ export interface PaperProps {
12
14
  | "nav"
13
15
  | "aside"
14
16
  | "article"
15
- children?: TemplateResult | string | number
17
+ children?: Renderable
16
18
  variant?: "elevated" | "outlined"
17
19
  elevation?: number
18
20
  padding?: "none" | "sm" | "md" | "lg"