@imfusion/web-ui 0.8.1-dev.48.g0dad5878 → 0.8.1-dev.50.g91c115bb

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.
package/CHANGELOG.md CHANGED
@@ -59,6 +59,9 @@ workflows already ask for stay as they are. Say "change my profile" to answer ag
59
59
  values such as emails anywhere, and takes a `render` prop for router links.
60
60
  - `Skeleton` holds the place of loading data: `Skeleton.Text` is one line of its parent's font tall, `Skeleton.Block`
61
61
  takes a size or a circle, and `Skeleton.Root` announces the load once and can hold its scan line still.
62
+ - `Button` has a `justify` prop: `center` or `spread`, which pins the icons to the edges of a stretched button.
63
+ - `Meter` shows a measured amount within a range, such as seats in use, as a read-only bar with an optional label and
64
+ value readout. ([WEBSDK-250](https://imfusion.atlassian.net/browse/WEBSDK-250))
62
65
  - Components — Stephan Wenninger <wenninger@imfusion.com>
63
66
  - `Slider.Root` has a `variant="position"` that draws a scrollbar-like trough and bar thumb for picking one position in a
64
67
  range.
@@ -98,6 +101,9 @@ workflows already ask for stay as they are. Say "change my profile" to answer ag
98
101
  catalog filters by origin and badges every icon with it. While no category filter is set, each tile also names the
99
102
  icon's category.
100
103
 
104
+ - Components — Nikolaus Brunner <brunner@imfusion.com>
105
+ - `Button` centers its icons and label when a container stretches it wider than its content; `justify="spread"`
106
+ keeps the icons at the edges.
101
107
  - Documentation — Nikolaus Brunner <brunner@imfusion.com>
102
108
  - The `CodeHighlight` install section names TanStack Highlight 0.1.x and the 0.1.0 build it is tested against.
103
109
  - The consumer agent tooling diagram groups the skills you run in one lane, so the router and the profile each reach them
@@ -145,6 +151,7 @@ workflows already ask for stay as they are. Say "change my profile" to answer ag
145
151
  - Screen readers announce `Field.Error` when its message appears; it has `role="alert"` by default.
146
152
  - `WebUIProvider` and the components under it render on React 18, the runtime Claude's design canvases use.
147
153
  - On-color `ghost` and `outline` Buttons invert to a white fill on hover instead of near-black.
154
+ - `Button`'s `startIcon` sits level with the label.
148
155
  - Peer dependencies — Nikolaus Brunner <brunner@imfusion.com>
149
156
  - The `@imfusion/sdk` and `@imfusion/sdk-react` peers accept any version, SDK dev builds included. The
150
157
  `FrameSelection` and `ImageDisplayOptions` install sections name SDK 1.x and the 1.0.0 build they are tested against.
@@ -6,11 +6,12 @@ declare const button: (props?: ({
6
6
  chamfer?: boolean | null | undefined;
7
7
  radius?: "sm" | "md" | "lg" | "none" | "round" | null | undefined;
8
8
  context?: "default" | "oncolor" | null | undefined;
9
+ justify?: "center" | "spread" | null | undefined;
9
10
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
10
11
  interface Props extends VariantProps<typeof button>, React.ComponentProps<typeof ButtonPrimitive> {
11
- /** Leading slot — typically a label. When present, the label aligns right and the icon pins left. */
12
+ /** Leading slot, typically an icon. */
12
13
  startIcon?: React.ReactNode;
13
- /** Trailing slot — typically an icon. When present, the label aligns left and the icon pins right. */
14
+ /** Trailing slot, typically an icon. */
14
15
  endIcon?: React.ReactNode;
15
16
  }
16
17
  /**
@@ -21,5 +22,5 @@ interface Props extends VariantProps<typeof button>, React.ComponentProps<typeof
21
22
  */
22
23
  export declare function Button({ variant, size,
23
24
  /** Explicit saturated-surface context; this is never inferred from an ancestor. */
24
- context, chamfer, radius, startIcon, endIcon, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
25
+ context, chamfer, radius, justify, startIcon, endIcon, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
25
26
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Button } from '../button';
2
2
  import { Icon, IconComponent } from '../icon';
3
- interface Props extends Omit<React.ComponentProps<typeof Button>, "children" | "startIcon" | "endIcon"> {
3
+ interface Props extends Omit<React.ComponentProps<typeof Button>, "children" | "startIcon" | "endIcon" | "justify"> {
4
4
  /** Icon component imported from `@imfusion/web-ui/icons`. */
5
5
  glyph: IconComponent;
6
6
  /** Accessible name; the button renders no visible text. */
@@ -0,0 +1,2 @@
1
+ export * as Meter from './meter';
2
+ export { meterMeta } from './meter.meta';
@@ -0,0 +1,33 @@
1
+ import { Meter as MeterPrimitive } from '@base-ui/react/meter';
2
+ /**
3
+ * Meter.Root — read-only measurement of a value within a known range.
4
+ *
5
+ * Without a visible `Meter.Label`, name the meter with `aria-label`.
6
+ *
7
+ * @doc https://base-ui.com/react/components/meter
8
+ * @llm https://base-ui.com/react/components/meter.md
9
+ */
10
+ export declare function Root({ min, max, ...props }: React.ComponentProps<typeof MeterPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
11
+ export declare namespace Root {
12
+ var displayName: string;
13
+ }
14
+ /** Meter.Label — accessible label for the meter. */
15
+ export declare function Label(props: React.ComponentProps<typeof MeterPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace Label {
17
+ var displayName: string;
18
+ }
19
+ /** Meter.Value — formatted readout of the current value. */
20
+ export declare function Value(props: React.ComponentProps<typeof MeterPrimitive.Value>): import("react/jsx-runtime").JSX.Element;
21
+ export declare namespace Value {
22
+ var displayName: string;
23
+ }
24
+ /** Meter.Track — the full range. */
25
+ export declare function Track(props: React.ComponentProps<typeof MeterPrimitive.Track>): import("react/jsx-runtime").JSX.Element;
26
+ export declare namespace Track {
27
+ var displayName: string;
28
+ }
29
+ /** Meter.Indicator — filled portion of the track up to the value. */
30
+ export declare function Indicator(props: React.ComponentProps<typeof MeterPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
31
+ export declare namespace Indicator {
32
+ var displayName: string;
33
+ }
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const meterMeta: ComponentMeta;
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export { Code, codeMeta } from './components/code';
28
28
  export { Collapsible, collapsibleMeta } from './components/collapsible';
29
29
  export { Icon, iconMeta } from './components/icon';
30
30
  export { Logo, logoMeta } from './components/logo';
31
+ export { Meter, meterMeta } from './components/meter';
31
32
  export { NavigationMenu, navigationMenuMeta } from './components/navigation-menu';
32
33
  export { Skeleton, skeletonMeta } from './components/skeleton';
33
34
  export { Spinner, spinnerMeta } from './components/spinner';