@inglorious/ui 9.0.0 → 9.1.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 (64) hide show
  1. package/package.json +2 -2
  2. package/src/controls/button/button.stories.js +7 -1
  3. package/src/controls/button/style.css +11 -0
  4. package/src/controls/button/template.js +13 -12
  5. package/src/controls/button-group/template.js +6 -6
  6. package/src/controls/checkbox/checkbox.stories.js +12 -0
  7. package/src/controls/checkbox/style.css +11 -0
  8. package/src/controls/checkbox/template.js +11 -1
  9. package/src/controls/file-upload/template.js +27 -26
  10. package/src/controls/icon-button/template.js +6 -6
  11. package/src/controls/image-cropper/template.js +3 -1
  12. package/src/controls/radio-group/radio-group.stories.js +21 -1
  13. package/src/controls/radio-group/style.css +11 -0
  14. package/src/controls/radio-group/template.js +15 -6
  15. package/src/controls/rating/rating.stories.js +8 -0
  16. package/src/controls/select/template.js +5 -6
  17. package/src/controls/slider/slider.stories.js +28 -1
  18. package/src/controls/slider/style.css +102 -0
  19. package/src/controls/slider/template.js +131 -29
  20. package/src/controls/switch/style.css +11 -0
  21. package/src/controls/switch/switch.stories.js +10 -0
  22. package/src/controls/switch/template.js +15 -1
  23. package/src/controls/textarea/template.js +29 -26
  24. package/src/data-display/avatar/template.js +6 -5
  25. package/src/data-display/chip/chip.stories.js +17 -0
  26. package/src/data-display/chip/style.css +5 -0
  27. package/src/data-display/chip/template.js +11 -8
  28. package/src/data-display/data-grid/template.js +1 -1
  29. package/src/data-display/divider/divider.stories.js +9 -0
  30. package/src/data-display/divider/template.js +12 -4
  31. package/src/data-display/list/template.js +4 -5
  32. package/src/examples/dashboard/primitive-section.js +18 -18
  33. package/src/feedback/alert/alert.stories.js +9 -1
  34. package/src/feedback/alert/style.css +5 -0
  35. package/src/feedback/alert/template.js +28 -27
  36. package/src/feedback/dialog/dialog.stories.js +22 -0
  37. package/src/feedback/dialog/style.css +15 -2
  38. package/src/feedback/dialog/template.js +37 -30
  39. package/src/feedback/progress/progress.stories.js +5 -0
  40. package/src/feedback/snackbar/template.js +14 -13
  41. package/src/layout/flex/flex.stories.js +1 -1
  42. package/src/layout/flex/style.css +8 -0
  43. package/src/navigation/bottom-navigation/template.js +11 -12
  44. package/src/navigation/breadcrumbs/template.js +28 -25
  45. package/src/navigation/menu/template.js +9 -10
  46. package/src/navigation/pagination/template.js +15 -18
  47. package/src/navigation/stepper/template.js +5 -5
  48. package/src/navigation/tabs/template.js +2 -1
  49. package/src/surfaces/accordion/accordion.stories.js +9 -0
  50. package/src/surfaces/accordion/template.js +7 -2
  51. package/src/surfaces/card/card.stories.js +24 -0
  52. package/src/surfaces/card/style.css +15 -0
  53. package/src/surfaces/card/template.js +5 -2
  54. package/types/controls/button.d.ts +1 -1
  55. package/types/controls/checkbox.d.ts +2 -0
  56. package/types/controls/radio-group.d.ts +2 -0
  57. package/types/controls/slider.d.ts +6 -2
  58. package/types/controls/switch.d.ts +2 -0
  59. package/types/data-display/chip.d.ts +2 -0
  60. package/types/data-display/divider.d.ts +2 -0
  61. package/types/feedback/alert.d.ts +1 -1
  62. package/types/feedback/dialog.d.ts +2 -0
  63. package/types/layout/flex.d.ts +1 -1
  64. package/types/surfaces/card.d.ts +5 -0
@@ -11,6 +11,21 @@
11
11
  transform var(--iw-transition-normal);
12
12
  }
13
13
 
14
+ /* Set into the page rather than raised from it, for content grouped inside
15
+ another surface. */
16
+ .iw-card-sunk {
17
+ background-color: var(--iw-color-bg-secondary, var(--iw-card-bg));
18
+ border-color: transparent;
19
+ box-shadow: none;
20
+ }
21
+
22
+ /* Only the grouping: no surface at all. */
23
+ .iw-card-clear {
24
+ background-color: transparent;
25
+ border-color: transparent;
26
+ box-shadow: none;
27
+ }
28
+
14
29
  .iw-card-hoverable:hover {
15
30
  box-shadow: var(--iw-card-shadow-hover);
16
31
  }
@@ -6,6 +6,7 @@
6
6
  import { html } from "@inglorious/web"
7
7
  import { classMap } from "@inglorious/web/directives/class-map"
8
8
  import { ref } from "@inglorious/web/directives/ref"
9
+ import { when } from "@inglorious/web/directives/when"
9
10
 
10
11
  import { applyElementProps } from "../../shared/apply-element-props.js"
11
12
 
@@ -30,6 +31,7 @@ export const Card = {
30
31
  const {
31
32
  type, // eslint-disable-line no-unused-vars
32
33
  element = "article",
34
+ variant = "default",
33
35
  isHoverable = false,
34
36
  isClickable = false,
35
37
  isFullWidth = false,
@@ -47,6 +49,7 @@ export const Card = {
47
49
 
48
50
  const classes = {
49
51
  "iw-card": true,
52
+ [`iw-card-${variant}`]: variant !== "default",
50
53
  "iw-card-hoverable": isHoverable || isClickable,
51
54
  "iw-card-clickable": isClickable,
52
55
  "iw-card-full-width": isFullWidth,
@@ -93,8 +96,8 @@ export const Card = {
93
96
  [`iw-card-header-padding-${headerPadding}`]: headerPadding !== "md",
94
97
  })}
95
98
  >
96
- ${title ? html`<h3 class="iw-card-title">${title}</h3>` : null}
97
- ${subtitle ? html`<p class="iw-card-subtitle">${subtitle}</p>` : null}
99
+ ${when(title, () => html`<h3 class="iw-card-title">${title}</h3>`)}
100
+ ${when(subtitle, () => html`<p class="iw-card-subtitle">${subtitle}</p>`)}
98
101
  </div>`
99
102
  },
100
103
 
@@ -13,7 +13,7 @@ export interface ButtonProps {
13
13
  | "warning"
14
14
  | "error"
15
15
  | "info"
16
- size?: "sm" | "md" | "lg"
16
+ size?: "xs" | "sm" | "md" | "lg"
17
17
  shape?: "rectangle" | "pill" | "round" | "square"
18
18
  isDisabled?: boolean
19
19
  isPressed?: boolean
@@ -4,6 +4,8 @@ export interface CheckboxProps {
4
4
  id?: string
5
5
  name?: string
6
6
  label?: string
7
+ /** A line of detail under the label. */
8
+ description?: string
7
9
  isChecked?: boolean
8
10
  isDisabled?: boolean
9
11
  isRequired?: boolean
@@ -2,6 +2,8 @@ import type { TemplateResult } from "@inglorious/web"
2
2
 
3
3
  export interface RadioOption {
4
4
  label: string
5
+ /** A line of detail under the label. */
6
+ description?: string
5
7
  value: string
6
8
  isDisabled?: boolean
7
9
  [key: string]: unknown
@@ -4,7 +4,8 @@ export interface SliderProps {
4
4
  id?: string
5
5
  name?: string
6
6
  label?: string
7
- value?: number
7
+ /** One number, or `[low, high]` for a range with a thumb at each end. */
8
+ value?: number | [number, number]
8
9
  min?: number
9
10
  max?: number
10
11
  step?: number
@@ -12,7 +13,10 @@ export interface SliderProps {
12
13
  isDisabled?: boolean
13
14
  isValueVisible?: boolean
14
15
  isFullWidth?: boolean
15
- onChange?: (value: number) => void
16
+ /** Draws a tick at every step, for a slider that moves in clear steps. */
17
+ hasMarks?: boolean
18
+ /** The new value, in the shape `value` has: a number, or `[low, high]`. */
19
+ onChange?: (value: number | [number, number]) => void
16
20
  [key: string]: unknown
17
21
  }
18
22
 
@@ -4,6 +4,8 @@ export interface SwitchProps {
4
4
  id?: string
5
5
  name?: string
6
6
  label?: string
7
+ /** A line of detail under the label. */
8
+ description?: string
7
9
  isChecked?: boolean
8
10
  isDisabled?: boolean
9
11
  color?: "primary" | "secondary" | "success" | "warning" | "error" | "info"
@@ -3,6 +3,8 @@ import type { TemplateResult } from "@inglorious/web"
3
3
  export interface ChipProps {
4
4
  id?: string
5
5
  children?: TemplateResult | string | number
6
+ /** Shown before the label, such as an `Icon.render(...)`. Decorative. */
7
+ icon?: TemplateResult
6
8
  isRemovable?: boolean
7
9
  color?:
8
10
  | "default"
@@ -4,6 +4,8 @@ export interface DividerProps {
4
4
  id?: string
5
5
  orientation?: "horizontal" | "vertical"
6
6
  isInset?: boolean
7
+ /** Only visual: hidden from assistive tech, which otherwise announces a separator. */
8
+ isDecorative?: boolean
7
9
  [key: string]: unknown
8
10
  }
9
11
 
@@ -6,7 +6,7 @@ export interface AlertProps {
6
6
  title?: TemplateResult | string | number
7
7
  description?: TemplateResult | string | number
8
8
  children?: TemplateResult | string | number
9
- severity?: "info" | "success" | "warning" | "error"
9
+ severity?: "info" | "success" | "warning" | "error" | "neutral"
10
10
  variant?: "filled" | "outlined"
11
11
  icon?: TemplateResult | string | number
12
12
  action?: TemplateResult | string | number
@@ -6,6 +6,8 @@ export interface DialogProps {
6
6
  isOpen?: boolean
7
7
  /** Modal by default; `false` shows the dialog in place, with the page still usable. */
8
8
  isModal?: boolean
9
+ /** Its width: `"sm"`, `"md"` (default) or `"lg"`. */
10
+ size?: "sm" | "md" | "lg"
9
11
  title?: TemplateResult | string | number
10
12
  description?: TemplateResult | string | number
11
13
  children?: TemplateResult | string | number
@@ -16,7 +16,7 @@ export interface FlexProps {
16
16
  wrap?: "nowrap" | "wrap" | "wrap-reverse"
17
17
  justify?: "start" | "center" | "end" | "between" | "around" | "evenly"
18
18
  align?: "stretch" | "start" | "center" | "end" | "baseline"
19
- gap?: "none" | "sm" | "md" | "lg" | "xl"
19
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl"
20
20
  padding?: "none" | "sm" | "md" | "lg" | "xl"
21
21
  overflow?: "visible" | "hidden" | "clip" | "scroll" | "auto"
22
22
  isInline?: boolean
@@ -12,6 +12,11 @@ export interface CardProps {
12
12
  | "footer"
13
13
  | "nav"
14
14
  | "aside"
15
+ /**
16
+ * The surface: raised (`"default"`), `"sunk"` into the page for content
17
+ * inside another surface, or `"clear"` with none.
18
+ */
19
+ variant?: "default" | "sunk" | "clear"
15
20
  title?: TemplateResult | string | number
16
21
  subtitle?: TemplateResult | string | number
17
22
  header?: TemplateResult | string | number