@raylang/elements 0.5.2 → 0.6.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.
package/index.js CHANGED
@@ -19,7 +19,7 @@ export { RayInput } from "./components/input/input.js";
19
19
  export { RayNumberInput, parseNumber, formatNumber } from "./components/number-input/number-input.js";
20
20
  export { RayPasswordInput } from "./components/password-input/password-input.js";
21
21
  export { RayPathInput, dirName, baseName } from "./components/path-input/path-input.js";
22
- export { RayRadioGroup, RayRadio } from "./components/radio/radio.js";
22
+ export { RayRadioGroup, RayRadio, RayRadioCard } from "./components/radio/radio.js";
23
23
  export { RaySearch } from "./components/search/search.js";
24
24
  export { RaySegmentedControl } from "./components/segmented-control/segmented-control.js";
25
25
  export { RaySelect } from "./components/select/select.js";
@@ -56,8 +56,10 @@ export { RayAlert } from "./components/alert/alert.js";
56
56
  export { RayEmptyState } from "./components/empty-state/empty-state.js";
57
57
  export { RayNotification, RayToaster, notify, updateNotification, hideNotification, clearNotifications, statusIcon } from "./components/notification/notification.js";
58
58
  export { RayProgress } from "./components/progress/progress.js";
59
+ export { RayRingProgress } from "./components/ring-progress/ring-progress.js";
59
60
  export { RaySkeleton } from "./components/skeleton/skeleton.js";
60
61
  export { RaySpinner } from "./components/spinner/spinner.js";
62
+ export { RayStepDots } from "./components/step-dots/step-dots.js";
61
63
  export { RayAppBar } from "./components/app-bar/app-bar.js";
62
64
  export { RayAppShell } from "./components/app-shell/app-shell.js";
63
65
  export { RayAspectRatio, parseRatio } from "./components/aspect-ratio/aspect-ratio.js";
package/llms-full.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # ray-elements
2
2
 
3
- > Web components (custom elements, Shadow DOM, no dependencies) for any web app: plain HTML, React, Vue or a raylang app. npm: `@raylang/elements`, `@raylang/react`, `@raylang/vue`; raylang: the `elements` package. This file describes version 0.5.2.
3
+ > Web components (custom elements, Shadow DOM, no dependencies) for any web app: plain HTML, React, Vue or a raylang app. npm: `@raylang/elements`, `@raylang/react`, `@raylang/vue`; raylang: the `elements` package. This file describes version 0.6.0.
4
4
 
5
5
  ray-elements is a design system of standard web components (custom elements
6
6
  with Shadow DOM, no dependencies): `<ray-button>`, `<ray-input>`,
@@ -292,7 +292,7 @@ Properties:
292
292
  - `variant`: `filled` | `light` | `outline` | `subtle` | `default` | `transparent` | `gradient` | `raised`, default `filled`, reflects. Visual style. raised: a physical key on a darker edge that sinks when pressed (mouse, touch or keyboard).
293
293
  - `gradient`: string, reflects. With variant=gradient: "from to [deg]", palette colors or CSS colors ("teal blue 90"). Default: the --ray-gradient-* tokens.
294
294
  - `color`: string. A palette color (blue, red…) or any CSS color. Default: the primary color.
295
- - `size`: `xs` | `sm` | `md` | `lg` | `xl`, default `sm`, reflects. Height, padding and font size.
295
+ - `size`: `"xs" | "sm" | "md" | "lg" | "xl" | (string & {})`, default `sm`, reflects. Height, padding and font size: xs…xl or any CSS length (the padding and the font follow).
296
296
  - `radius`: `xs` | `sm` | `md` | `lg` | `xl` | `full`. Corner radius. Default: --ray-radius-default.
297
297
  - `type`: `button` | `submit` | `reset`, default `button`. submit/reset act on the enclosing form.
298
298
  - `disabled`: boolean. Not interactive (also when inside a disabled fieldset).
@@ -354,7 +354,7 @@ Properties:
354
354
  - `variant`: `filled` | `light` | `outline` | `subtle` | `default` | `transparent` | `gradient` | `raised`, default `subtle`, reflects. Visual style.
355
355
  - `gradient`: string, reflects. With variant=gradient: "from to [deg]", palette colors or CSS colors ("teal blue 90"). Default: the --ray-gradient-* tokens.
356
356
  - `color`: string. A palette color or any CSS color.
357
- - `size`: `xs` | `sm` | `md` | `lg` | `xl`, default `sm`, reflects. Width and height.
357
+ - `size`: `"xs" | "sm" | "md" | "lg" | "xl" | (string & {})`, default `sm`, reflects. Width and height: xs…xl or any CSS length ("5.5rem": a big main action, round with radius=full); the icon scales with it.
358
358
  - `disabled`: boolean. Not interactive.
359
359
  - `loading`: boolean. Shows a spinner instead of the icon.
360
360
 
@@ -911,7 +911,7 @@ Vue `v-model`: `value` (updated on input).
911
911
 
912
912
  ### Number input
913
913
 
914
- A number field (Mantine's NumberInput): + and − buttons (hold to repeat), arrow keys, min, max and step, fixed decimals, a prefix and a suffix, a thousands separator. An ARIA spinbutton.
914
+ A number field (Mantine's NumberInput): + and − buttons (hold to repeat), arrow keys, min, max and step, fixed decimals, a prefix and a suffix, a thousands separator, or a duration (m:ss). An ARIA spinbutton.
915
915
 
916
916
  Import: `import "@raylang/elements/number-input";` · Category: Inputs
917
917
 
@@ -931,6 +931,7 @@ Properties:
931
931
  - `thousandsSeparator` (attribute `thousands-separator`): string. Groups thousands in the shown text (",", ".", " ").
932
932
  - `decimalSeparator` (attribute `decimal-separator`): string, default `.`. The decimal mark shown and typed ("," in many locales).
933
933
  - `clamp`: `blur` | `strict` | `none`, default `blur`. When out-of-range input is clamped: on blur, while typing, or never (then it is invalid).
934
+ - `format`: `number` | `duration`, default `number`, reflects. duration: the value is seconds, shown and typed as m:ss (h:mm:ss when min or max reaches an hour; a plain number is seconds); aria-valuetext says "3 minutes, 15 seconds" in the page's language. decimals, prefix, suffix and the separators do not apply.
934
935
  - `hideControls` (attribute `hide-controls`): boolean, reflects. No + and − buttons (the keys still step).
935
936
  - `placeholder`: string. Shown while empty.
936
937
  - `readonly`: boolean, reflects. Not editable, still submitted.
@@ -1052,7 +1053,7 @@ for e in ui.events() {
1052
1053
 
1053
1054
  ### Radio group
1054
1055
 
1055
- One choice among options: ray-radio elements inside a ray-radio-group, which is the form control.
1056
+ One choice among options: ray-radio (or ray-radio-card) elements inside a ray-radio-group, which is the form control.
1056
1057
 
1057
1058
  Import: `import "@raylang/elements/radio";` · Category: Inputs
1058
1059
 
@@ -1082,11 +1083,11 @@ Events:
1082
1083
 
1083
1084
  Slots:
1084
1085
 
1085
- - (default): ray-radio elements (may be wrapped in layout elements).
1086
+ - (default): ray-radio or ray-radio-card elements (may be wrapped in layout elements: a ray-grid of cards).
1086
1087
 
1087
1088
  Methods and properties:
1088
1089
 
1089
- - `readonly radios: RayRadio[]`: The radios of the group.
1090
+ - `readonly radios: RayRadio[]`: The radios (and radio cards) of the group.
1090
1091
 
1091
1092
  Vue `v-model`: `value` (updated on change).
1092
1093
 
@@ -1112,6 +1113,26 @@ Parts (`::part()`):
1112
1113
  - `indicator`: The circle.
1113
1114
  - `label`: The label.
1114
1115
 
1116
+ #### `<ray-radio-card>` (RayRadioCard, extends RayRadio)
1117
+
1118
+ A radio drawn as a card: a title (label), a detail (description), an icon, more content; checked, it takes the color's border and light background. Inside a ray-radio-group like a ray-radio (arrow keys, the form, required, disabled); put the cards in a ray-grid for columns.
1119
+
1120
+ Properties:
1121
+
1122
+ - `hideIndicator` (attribute `hide-indicator`): boolean, reflects. No radio circle: the card's border and background alone show the choice.
1123
+
1124
+ Also the properties of RayRadio (`<ray-radio>`): `value`, `checked`, `label`, `description`, `disabled`, `color`, `size`, `variant`.
1125
+
1126
+ Slots:
1127
+
1128
+ - (default): More content under the description.
1129
+ - `icon`: An icon before the title.
1130
+
1131
+ Parts (`::part()`):
1132
+
1133
+ - `root`: The card.
1134
+ - `icon`: Around the icon slot.
1135
+
1115
1136
  ### Search
1116
1137
 
1117
1138
  A search box: icon, clear button, an optional shortcut that focuses it, and a debounced ray-search event. A RayInput, so it has a label and takes part in forms.
@@ -2777,6 +2798,37 @@ Parts (`::part()`):
2777
2798
  - `bar`: The filled bar.
2778
2799
  - `value`: The percentage beside the bar (show-value on xs, sm, md).
2779
2800
 
2801
+ ### Ring progress
2802
+
2803
+ Progress as a ring (Mantine's RingProgress), with content in the middle: a countdown, a goal, an upload. Announced as a progressbar.
2804
+
2805
+ Import: `import "@raylang/elements/ring-progress";` · Category: Feedback
2806
+
2807
+ #### `<ray-ring-progress>` (RayRingProgress, extends RayElement)
2808
+
2809
+ The arc starts at 12 o'clock and runs clockwise; a countdown is a value that goes down. Without value it spins (indeterminate). The middle holds the default slot (a clock), or the percentage with show-value.
2810
+
2811
+ Properties:
2812
+
2813
+ - `value`: number. Progress, from 0 to max. Unset: indeterminate (a spinning arc).
2814
+ - `max`: number, default `100`. The value of a full ring.
2815
+ - `color`: string, reflects. A palette color or any CSS color. Default: the primary color.
2816
+ - `size`: `"xs" | "sm" | "md" | "lg" | "xl" | (string & {})`, default `md`, reflects. Diameter: xs…xl (3, 5, 7.5, 10, 12.5rem) or any CSS length.
2817
+ - `thickness`: string, reflects. Width of the ring: a CSS length (a bare number is px). Default: a tenth of the diameter.
2818
+ - `roundCaps` (attribute `round-caps`): boolean, reflects. Rounded ends of the arc.
2819
+ - `showValue` (attribute `show-value`): boolean, reflects. Shows the percentage in the middle (when the default slot is empty).
2820
+ - `label`: string. Accessible name (default: Progress).
2821
+
2822
+ Slots:
2823
+
2824
+ - (default): The middle of the ring (a clock, a figure, an icon); its font scales with size.
2825
+
2826
+ Parts (`::part()`):
2827
+
2828
+ - `track`: The background circle.
2829
+ - `bar`: The arc.
2830
+ - `center`: The middle, around the default slot.
2831
+
2780
2832
  ### Skeleton
2781
2833
 
2782
2834
  A placeholder while content loads: a shimmering block, a circle or text lines; with loaded it shows its content.
@@ -2824,6 +2876,30 @@ Parts (`::part()`):
2824
2876
 
2825
2877
  - `spinner`: The ring.
2826
2878
 
2879
+ ### Step dots
2880
+
2881
+ A row of dots, one per step: done, current, to do. A compact progress for rounds, onboarding pages or a quiz; announced as a progressbar ("Round 4 of 12").
2882
+
2883
+ Import: `import "@raylang/elements/step-dots";` · Category: Feedback
2884
+
2885
+ #### `<ray-step-dots>` (RayStepDots, extends RayElement)
2886
+
2887
+ Dots before value are done (filled), the one at value is current (a filled pill), the rest are to do (empty). Not interactive: for steps the user picks, use ray-stepper (or the dots of ray-carousel). Many dots wrap onto more lines.
2888
+
2889
+ Properties:
2890
+
2891
+ - `count`: number, default `0`. Number of steps (dots).
2892
+ - `value`: number, default `0`. The current step, 0-based; count means every step is done.
2893
+ - `color`: string, reflects. A palette color or any CSS color for done and current dots. Default: the primary color.
2894
+ - `size`: `xs` | `sm` | `md` | `lg` | `xl`, default `sm`, reflects. Size of a dot.
2895
+ - `align`: `start` | `center` | `end`, default `center`, reflects. Where the row sits in its width.
2896
+ - `label`: string. What a step is called: "Round" is announced "Round 4 of 12" and names the element. Default: Step (named Steps).
2897
+
2898
+ Parts (`::part()`):
2899
+
2900
+ - `dots`: The row.
2901
+ - `dot`: Each dot ([data-state] done, current or todo).
2902
+
2827
2903
  ### App bar
2828
2904
 
2829
2905
  The top bar of a phone screen (Material's top app bar, the iOS navigation bar): back or menu, a title and subtitle, actions, and an optional row under it. It elevates once the content scrolls, or hides while scrolling down.
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # ray-elements
2
2
 
3
- > Web components (custom elements, Shadow DOM, no dependencies) for any web app: plain HTML, React, Vue or a raylang app. npm: `@raylang/elements`, `@raylang/react`, `@raylang/vue`; raylang: the `elements` package. This file describes version 0.5.2.
3
+ > Web components (custom elements, Shadow DOM, no dependencies) for any web app: plain HTML, React, Vue or a raylang app. npm: `@raylang/elements`, `@raylang/react`, `@raylang/vue`; raylang: the `elements` package. This file describes version 0.6.0.
4
4
 
5
5
  ray-elements is a design system of standard web components (custom elements
6
6
  with Shadow DOM, no dependencies): `<ray-button>`, `<ray-input>`,
@@ -268,10 +268,10 @@ Members whose name starts with `_` are internal.
268
268
  - [Date picker](https://elements.raylang.dev/components/date-picker.md): `<ray-date-picker>`, `<ray-calendar>` (Inputs). A date field with a calendar dropdown, and the calendar on its own.
269
269
  - [File upload](https://elements.raylang.dev/components/file-upload.md): `<ray-file-upload>` (Inputs). A drop zone to pick files: drag, click, keyboard or paste.
270
270
  - [Input](https://elements.raylang.dev/components/input.md): `<ray-input>` (Inputs). A text field with label, description and error (Mantine's TextInput).
271
- - [Number input](https://elements.raylang.dev/components/number-input.md): `<ray-number-input>` (Inputs). A number field (Mantine's NumberInput): + and − buttons (hold to repeat), arrow keys, min, max and step, fixed decimals, a prefix and a suffix, a thousands separator.
271
+ - [Number input](https://elements.raylang.dev/components/number-input.md): `<ray-number-input>` (Inputs). A number field (Mantine's NumberInput): + and − buttons (hold to repeat), arrow keys, min, max and step, fixed decimals, a prefix and a suffix, a thousands separator, or a duration (m:ss).
272
272
  - [Password input](https://elements.raylang.dev/components/password-input.md): `<ray-password-input>` (Inputs). A password field with a button that shows or hides what was typed (Mantine's PasswordInput).
273
273
  - [Path input](https://elements.raylang.dev/components/path-input.md): `<ray-path-input>` (Inputs). A field for a path on disk: a file to open, a folder, or where to save.
274
- - [Radio group](https://elements.raylang.dev/components/radio.md): `<ray-radio-group>`, `<ray-radio>` (Inputs). One choice among options: ray-radio elements inside a ray-radio-group, which is the form control.
274
+ - [Radio group](https://elements.raylang.dev/components/radio.md): `<ray-radio-group>`, `<ray-radio>`, `<ray-radio-card>` (Inputs). One choice among options: ray-radio (or ray-radio-card) elements inside a ray-radio-group, which is the form control.
275
275
  - [Search](https://elements.raylang.dev/components/search.md): `<ray-search>` (Inputs). A search box: icon, clear button, an optional shortcut that focuses it, and a debounced ray-search event.
276
276
  - [Segmented control](https://elements.raylang.dev/components/segmented-control.md): `<ray-segmented-control>` (Inputs). One choice among a few, as a segmented row with a sliding indicator.
277
277
  - [Select](https://elements.raylang.dev/components/select.md): `<ray-select>` (Inputs). A select with its own dropdown (keyboard, typeahead, groups); options from child <option> elements or the data property.
@@ -308,8 +308,10 @@ Members whose name starts with `_` are internal.
308
308
  - [Empty state](https://elements.raylang.dev/components/empty-state.md): `<ray-empty-state>` (Feedback). What a list, table or pane shows when it is empty: icon, title, text and the action that fills it.
309
309
  - [Notification](https://elements.raylang.dev/components/notification.md): `<ray-notification>`, `<ray-toaster>` (Feedback). Toasts: notify(), updateNotification(), hideNotification(), clearNotifications(); shown in a ray-toaster (a polite live region in the top layer).
310
310
  - [Progress](https://elements.raylang.dev/components/progress.md): `<ray-progress>` (Feedback). A determinate or (without value) indeterminate progress bar, announced as a progressbar.
311
+ - [Ring progress](https://elements.raylang.dev/components/ring-progress.md): `<ray-ring-progress>` (Feedback). Progress as a ring (Mantine's RingProgress), with content in the middle: a countdown, a goal, an upload.
311
312
  - [Skeleton](https://elements.raylang.dev/components/skeleton.md): `<ray-skeleton>` (Feedback). A placeholder while content loads: a shimmering block, a circle or text lines; with loaded it shows its content.
312
313
  - [Spinner](https://elements.raylang.dev/components/spinner.md): `<ray-spinner>` (Feedback). An indeterminate loading indicator, announced as a status.
314
+ - [Step dots](https://elements.raylang.dev/components/step-dots.md): `<ray-step-dots>` (Feedback). A row of dots, one per step: done, current, to do.
313
315
  - [App bar](https://elements.raylang.dev/components/app-bar.md): `<ray-app-bar>` (Layout). The top bar of a phone screen (Material's top app bar, the iOS navigation bar): back or menu, a title and subtitle, actions, and an optional row under it.
314
316
  - [App shell](https://elements.raylang.dev/components/app-shell.md): `<ray-app-shell>` (Layout). The frame of an app (Mantine's AppShell): header, navbar, main, aside and footer on wide screens; on phones one column with a bottom bar.
315
317
  - [Aspect ratio](https://elements.raylang.dev/components/aspect-ratio.md): `<ray-aspect-ratio>` (Layout). A box with a fixed width/height ratio; its image, video or iframe fills it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raylang/elements",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "Web components for any app, with raylang extras (shadcn/ui + Mantine inspired)",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": ["web-components", "custom-elements", "design-system", "ui", "raylang"],
@@ -244,6 +244,10 @@
244
244
  "types": "./ray-elements.d.ts",
245
245
  "default": "./components/progress/progress.js"
246
246
  },
247
+ "./ring-progress": {
248
+ "types": "./ray-elements.d.ts",
249
+ "default": "./components/ring-progress/ring-progress.js"
250
+ },
247
251
  "./skeleton": {
248
252
  "types": "./ray-elements.d.ts",
249
253
  "default": "./components/skeleton/skeleton.js"
@@ -252,6 +256,10 @@
252
256
  "types": "./ray-elements.d.ts",
253
257
  "default": "./components/spinner/spinner.js"
254
258
  },
259
+ "./step-dots": {
260
+ "types": "./ray-elements.d.ts",
261
+ "default": "./components/step-dots/step-dots.js"
262
+ },
255
263
  "./app-bar": {
256
264
  "types": "./ray-elements.d.ts",
257
265
  "default": "./components/app-bar/app-bar.js"
package/ray-elements.d.ts CHANGED
@@ -361,8 +361,8 @@ export declare class RayButton extends RayElement {
361
361
  gradient: string | undefined;
362
362
  /** A palette color (blue, red…) or any CSS color. Default: the primary color. */
363
363
  color: string | undefined;
364
- /** Height, padding and font size. */
365
- size: "xs" | "sm" | "md" | "lg" | "xl";
364
+ /** Height, padding and font size: xs…xl or any CSS length (the padding and the font follow). */
365
+ size: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
366
366
  /** Corner radius. Default: --ray-radius-default. */
367
367
  radius: "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
368
368
  /** submit/reset act on the enclosing form. */
@@ -407,8 +407,8 @@ export declare class RayIconButton extends RayButton {
407
407
  gradient: string | undefined;
408
408
  /** A palette color or any CSS color. */
409
409
  color: string | undefined;
410
- /** Width and height. */
411
- size: "xs" | "sm" | "md" | "lg" | "xl";
410
+ /** Width and height: xs…xl or any CSS length ("5.5rem": a big main action, round with radius=full); the icon scales with it. */
411
+ size: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
412
412
  /** Not interactive. */
413
413
  disabled: boolean | undefined;
414
414
  /** Shows a spinner instead of the icon. */
@@ -865,6 +865,8 @@ export declare class RayNumberInput extends FieldControl {
865
865
  decimalSeparator: string;
866
866
  /** When out-of-range input is clamped: on blur, while typing, or never (then it is invalid). */
867
867
  clamp: "blur" | "strict" | "none";
868
+ /** duration: the value is seconds, shown and typed as m:ss (h:mm:ss when min or max reaches an hour; a plain number is seconds); aria-valuetext says "3 minutes, 15 seconds" in the page's language. decimals, prefix, suffix and the separators do not apply. */
869
+ format: "number" | "duration";
868
870
  /** No + and − buttons (the keys still step). */
869
871
  hideControls: boolean | undefined;
870
872
  /** Shown while empty. */
@@ -950,10 +952,10 @@ export declare class RayRadioGroup extends FormControl {
950
952
  color: string | undefined;
951
953
  /** Checked look of every radio: filled circle, or colored ring and dot. */
952
954
  variant: "filled" | "outline";
953
- /** The radios of the group. */
955
+ /** The radios (and radio cards) of the group. */
954
956
  readonly radios: RayRadio[];
955
957
  }
956
- /** <ray-radio> One choice among options: ray-radio elements inside a ray-radio-group, which is the form control. */
958
+ /** <ray-radio> One choice among options: ray-radio (or ray-radio-card) elements inside a ray-radio-group, which is the form control. */
957
959
  export declare class RayRadio extends RayElement {
958
960
  /** Value given to the group when chosen. */
959
961
  value: string | undefined;
@@ -972,6 +974,11 @@ export declare class RayRadio extends RayElement {
972
974
  /** Overrides the group variant. */
973
975
  variant: "filled" | "outline" | undefined;
974
976
  }
977
+ /** <ray-radio-card> A radio drawn as a card: a title (label), a detail (description), an icon, more content; checked, it takes the color's border and light background. Inside a ray-radio-group like a ray-radio (arrow keys, the form, required, disabled); put the cards in a ray-grid for columns. */
978
+ export declare class RayRadioCard extends RayRadio {
979
+ /** No radio circle: the card's border and background alone show the choice. */
980
+ hideIndicator: boolean | undefined;
981
+ }
975
982
 
976
983
  // --- Search (search)
977
984
  /** <ray-search> Escape clears it (when it has text); Enter fires ray-search at once. JS: clear(), focus(). */
@@ -2198,6 +2205,27 @@ export declare class RayProgress extends RayElement {
2198
2205
  label: string | undefined;
2199
2206
  }
2200
2207
 
2208
+ // --- Ring progress (ring-progress)
2209
+ /** <ray-ring-progress> The arc starts at 12 o'clock and runs clockwise; a countdown is a value that goes down. Without value it spins (indeterminate). The middle holds the default slot (a clock), or the percentage with show-value. */
2210
+ export declare class RayRingProgress extends RayElement {
2211
+ /** Progress, from 0 to max. Unset: indeterminate (a spinning arc). */
2212
+ value: number | undefined;
2213
+ /** The value of a full ring. */
2214
+ max: number;
2215
+ /** A palette color or any CSS color. Default: the primary color. */
2216
+ color: string | undefined;
2217
+ /** Diameter: xs…xl (3, 5, 7.5, 10, 12.5rem) or any CSS length. */
2218
+ size: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
2219
+ /** Width of the ring: a CSS length (a bare number is px). Default: a tenth of the diameter. */
2220
+ thickness: string | undefined;
2221
+ /** Rounded ends of the arc. */
2222
+ roundCaps: boolean | undefined;
2223
+ /** Shows the percentage in the middle (when the default slot is empty). */
2224
+ showValue: boolean | undefined;
2225
+ /** Accessible name (default: Progress). */
2226
+ label: string | undefined;
2227
+ }
2228
+
2201
2229
  // --- Skeleton (skeleton)
2202
2230
  /** <ray-skeleton> aria-busy="true" on the host while loading; the placeholder is aria-hidden. */
2203
2231
  export declare class RaySkeleton extends RayElement {
@@ -2228,6 +2256,23 @@ export declare class RaySpinner extends RayElement {
2228
2256
  label: string;
2229
2257
  }
2230
2258
 
2259
+ // --- Step dots (step-dots)
2260
+ /** <ray-step-dots> Dots before value are done (filled), the one at value is current (a filled pill), the rest are to do (empty). Not interactive: for steps the user picks, use ray-stepper (or the dots of ray-carousel). Many dots wrap onto more lines. */
2261
+ export declare class RayStepDots extends RayElement {
2262
+ /** Number of steps (dots). */
2263
+ count: number;
2264
+ /** The current step, 0-based; count means every step is done. */
2265
+ value: number;
2266
+ /** A palette color or any CSS color for done and current dots. Default: the primary color. */
2267
+ color: string | undefined;
2268
+ /** Size of a dot. */
2269
+ size: "xs" | "sm" | "md" | "lg" | "xl";
2270
+ /** Where the row sits in its width. */
2271
+ align: "start" | "center" | "end";
2272
+ /** What a step is called: "Round" is announced "Round 4 of 12" and names the element. Default: Step (named Steps). */
2273
+ label: string | undefined;
2274
+ }
2275
+
2231
2276
  // --- App bar (app-bar)
2232
2277
  /** <ray-app-bar> It follows the scroller of its ray-app-shell, else scroll-target, else the window; clear of the notch (safe-area inset). The title is plain text: put a heading in the default slot when the page needs one. */
2233
2278
  export declare class RayAppBar extends RayElement {
@@ -2500,6 +2545,7 @@ declare global {
2500
2545
  "ray-path-input": RayPathInput;
2501
2546
  "ray-radio-group": RayRadioGroup;
2502
2547
  "ray-radio": RayRadio;
2548
+ "ray-radio-card": RayRadioCard;
2503
2549
  "ray-search": RaySearch;
2504
2550
  "ray-segmented-control": RaySegmentedControl;
2505
2551
  "ray-select": RaySelect;
@@ -2549,8 +2595,10 @@ declare global {
2549
2595
  "ray-notification": RayNotification;
2550
2596
  "ray-toaster": RayToaster;
2551
2597
  "ray-progress": RayProgress;
2598
+ "ray-ring-progress": RayRingProgress;
2552
2599
  "ray-skeleton": RaySkeleton;
2553
2600
  "ray-spinner": RaySpinner;
2601
+ "ray-step-dots": RayStepDots;
2554
2602
  "ray-app-bar": RayAppBar;
2555
2603
  "ray-app-shell": RayAppShell;
2556
2604
  "ray-aspect-ratio": RayAspectRatio;
@@ -45,24 +45,7 @@
45
45
  },
46
46
  {
47
47
  "name": "size",
48
- "description": "Height, padding and font size.",
49
- "values": [
50
- {
51
- "name": "xs"
52
- },
53
- {
54
- "name": "sm"
55
- },
56
- {
57
- "name": "md"
58
- },
59
- {
60
- "name": "lg"
61
- },
62
- {
63
- "name": "xl"
64
- }
65
- ]
48
+ "description": "Height, padding and font size: xs…xl or any CSS length (the padding and the font follow)."
66
49
  },
67
50
  {
68
51
  "name": "radius",
@@ -211,24 +194,7 @@
211
194
  },
212
195
  {
213
196
  "name": "size",
214
- "description": "Width and height.",
215
- "values": [
216
- {
217
- "name": "xs"
218
- },
219
- {
220
- "name": "sm"
221
- },
222
- {
223
- "name": "md"
224
- },
225
- {
226
- "name": "lg"
227
- },
228
- {
229
- "name": "xl"
230
- }
231
- ]
197
+ "description": "Width and height: xs…xl or any CSS length (\"5.5rem\": a big main action, round with radius=full); the icon scales with it."
232
198
  },
233
199
  {
234
200
  "name": "disabled",
@@ -351,24 +317,7 @@
351
317
  },
352
318
  {
353
319
  "name": "size",
354
- "description": "Height, padding and font size.",
355
- "values": [
356
- {
357
- "name": "xs"
358
- },
359
- {
360
- "name": "sm"
361
- },
362
- {
363
- "name": "md"
364
- },
365
- {
366
- "name": "lg"
367
- },
368
- {
369
- "name": "xl"
370
- }
371
- ]
320
+ "description": "Height, padding and font size: xs…xl or any CSS length (the padding and the font follow)."
372
321
  },
373
322
  {
374
323
  "name": "radius",
@@ -1654,6 +1603,18 @@
1654
1603
  }
1655
1604
  ]
1656
1605
  },
1606
+ {
1607
+ "name": "format",
1608
+ "description": "duration: the value is seconds, shown and typed as m:ss (h:mm:ss when min or max reaches an hour; a plain number is seconds); aria-valuetext says \"3 minutes, 15 seconds\" in the page's language. decimals, prefix, suffix and the separators do not apply.",
1609
+ "values": [
1610
+ {
1611
+ "name": "number"
1612
+ },
1613
+ {
1614
+ "name": "duration"
1615
+ }
1616
+ ]
1617
+ },
1657
1618
  {
1658
1619
  "name": "hide-controls",
1659
1620
  "description": "No + and − buttons (the keys still step).",
@@ -2283,8 +2244,78 @@
2283
2244
  },
2284
2245
  {
2285
2246
  "name": "ray-radio",
2286
- "description": "One choice among options: ray-radio elements inside a ray-radio-group, which is the form control.",
2247
+ "description": "One choice among options: ray-radio (or ray-radio-card) elements inside a ray-radio-group, which is the form control.",
2248
+ "attributes": [
2249
+ {
2250
+ "name": "value",
2251
+ "description": "Value given to the group when chosen."
2252
+ },
2253
+ {
2254
+ "name": "checked",
2255
+ "description": "Whether this radio is the group's value; setting it sets the group's value. The checked attribute marks the group's initial value (when the group has no value attribute).",
2256
+ "valueSet": "v"
2257
+ },
2258
+ {
2259
+ "name": "label",
2260
+ "description": "Label text (or the content)."
2261
+ },
2262
+ {
2263
+ "name": "description",
2264
+ "description": "Help text under the label."
2265
+ },
2266
+ {
2267
+ "name": "disabled",
2268
+ "description": "Cannot be chosen.",
2269
+ "valueSet": "v"
2270
+ },
2271
+ {
2272
+ "name": "color",
2273
+ "description": "Overrides the group color."
2274
+ },
2275
+ {
2276
+ "name": "size",
2277
+ "description": "Overrides the group size.",
2278
+ "values": [
2279
+ {
2280
+ "name": "xs"
2281
+ },
2282
+ {
2283
+ "name": "sm"
2284
+ },
2285
+ {
2286
+ "name": "md"
2287
+ },
2288
+ {
2289
+ "name": "lg"
2290
+ },
2291
+ {
2292
+ "name": "xl"
2293
+ }
2294
+ ]
2295
+ },
2296
+ {
2297
+ "name": "variant",
2298
+ "description": "Overrides the group variant.",
2299
+ "values": [
2300
+ {
2301
+ "name": "filled"
2302
+ },
2303
+ {
2304
+ "name": "outline"
2305
+ }
2306
+ ]
2307
+ }
2308
+ ]
2309
+ },
2310
+ {
2311
+ "name": "ray-radio-card",
2312
+ "description": "A radio drawn as a card: a title (label), a detail (description), an icon, more content; checked, it takes the color's border and light background. Inside a ray-radio-group like a ray-radio (arrow keys, the form, required, disabled); put the cards in a ray-grid for columns.",
2287
2313
  "attributes": [
2314
+ {
2315
+ "name": "hide-indicator",
2316
+ "description": "No radio circle: the card's border and background alone show the choice.",
2317
+ "valueSet": "v"
2318
+ },
2288
2319
  {
2289
2320
  "name": "value",
2290
2321
  "description": "Value given to the group when chosen."
@@ -5189,6 +5220,46 @@
5189
5220
  }
5190
5221
  ]
5191
5222
  },
5223
+ {
5224
+ "name": "ray-ring-progress",
5225
+ "description": "The arc starts at 12 o'clock and runs clockwise; a countdown is a value that goes down. Without value it spins (indeterminate). The middle holds the default slot (a clock), or the percentage with show-value.",
5226
+ "attributes": [
5227
+ {
5228
+ "name": "value",
5229
+ "description": "Progress, from 0 to max. Unset: indeterminate (a spinning arc)."
5230
+ },
5231
+ {
5232
+ "name": "max",
5233
+ "description": "The value of a full ring."
5234
+ },
5235
+ {
5236
+ "name": "color",
5237
+ "description": "A palette color or any CSS color. Default: the primary color."
5238
+ },
5239
+ {
5240
+ "name": "size",
5241
+ "description": "Diameter: xs…xl (3, 5, 7.5, 10, 12.5rem) or any CSS length."
5242
+ },
5243
+ {
5244
+ "name": "thickness",
5245
+ "description": "Width of the ring: a CSS length (a bare number is px). Default: a tenth of the diameter."
5246
+ },
5247
+ {
5248
+ "name": "round-caps",
5249
+ "description": "Rounded ends of the arc.",
5250
+ "valueSet": "v"
5251
+ },
5252
+ {
5253
+ "name": "show-value",
5254
+ "description": "Shows the percentage in the middle (when the default slot is empty).",
5255
+ "valueSet": "v"
5256
+ },
5257
+ {
5258
+ "name": "label",
5259
+ "description": "Accessible name (default: Progress)."
5260
+ }
5261
+ ]
5262
+ },
5192
5263
  {
5193
5264
  "name": "ray-skeleton",
5194
5265
  "description": "aria-busy=\"true\" on the host while loading; the placeholder is aria-hidden.",
@@ -5271,6 +5342,64 @@
5271
5342
  }
5272
5343
  ]
5273
5344
  },
5345
+ {
5346
+ "name": "ray-step-dots",
5347
+ "description": "Dots before value are done (filled), the one at value is current (a filled pill), the rest are to do (empty). Not interactive: for steps the user picks, use ray-stepper (or the dots of ray-carousel). Many dots wrap onto more lines.",
5348
+ "attributes": [
5349
+ {
5350
+ "name": "count",
5351
+ "description": "Number of steps (dots)."
5352
+ },
5353
+ {
5354
+ "name": "value",
5355
+ "description": "The current step, 0-based; count means every step is done."
5356
+ },
5357
+ {
5358
+ "name": "color",
5359
+ "description": "A palette color or any CSS color for done and current dots. Default: the primary color."
5360
+ },
5361
+ {
5362
+ "name": "size",
5363
+ "description": "Size of a dot.",
5364
+ "values": [
5365
+ {
5366
+ "name": "xs"
5367
+ },
5368
+ {
5369
+ "name": "sm"
5370
+ },
5371
+ {
5372
+ "name": "md"
5373
+ },
5374
+ {
5375
+ "name": "lg"
5376
+ },
5377
+ {
5378
+ "name": "xl"
5379
+ }
5380
+ ]
5381
+ },
5382
+ {
5383
+ "name": "align",
5384
+ "description": "Where the row sits in its width.",
5385
+ "values": [
5386
+ {
5387
+ "name": "start"
5388
+ },
5389
+ {
5390
+ "name": "center"
5391
+ },
5392
+ {
5393
+ "name": "end"
5394
+ }
5395
+ ]
5396
+ },
5397
+ {
5398
+ "name": "label",
5399
+ "description": "What a step is called: \"Round\" is announced \"Round 4 of 12\" and names the element. Default: Step (named Steps)."
5400
+ }
5401
+ ]
5402
+ },
5274
5403
  {
5275
5404
  "name": "ray-app-bar",
5276
5405
  "description": "It follows the scroller of its ray-app-shell, else scroll-target, else the window; clear of the notch (safe-area inset). The title is plain text: put a heading in the default slot when the page needs one.",