@fusion.dev/helix 0.211.1 → 0.212.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.
package/types/svelte.d.ts CHANGED
@@ -67,6 +67,7 @@ declare module 'svelte/elements' {
67
67
  'helix-date-picker': Helix<'helix-date-picker'>
68
68
  'helix-description-list-item': Helix<'helix-description-list-item'>
69
69
  'helix-description-list': Helix<'helix-description-list'>
70
+ 'helix-device-screen': Helix<'helix-device-screen'>
70
71
  'helix-dialog': Helix<'helix-dialog'>
71
72
  'helix-divider': Helix<'helix-divider'>
72
73
  'helix-donut-chart': Helix<'helix-donut-chart'>
package/types/vue.d.ts CHANGED
@@ -70,6 +70,15 @@ import type {
70
70
  HelixDatePicker,
71
71
  HelixDescriptionList,
72
72
  HelixDescriptionListItem,
73
+ HelixDeviceButtonEvent,
74
+ HelixDeviceKeyEvent,
75
+ HelixDeviceScreen,
76
+ HelixDeviceScreenshotEvent,
77
+ HelixDeviceScrollEvent,
78
+ HelixDeviceSwipeEvent,
79
+ HelixDeviceTapEvent,
80
+ HelixDeviceTextEvent,
81
+ HelixDeviceTouchEvent,
73
82
  HelixDialog,
74
83
  HelixDismissEvent,
75
84
  HelixDivider,
@@ -7155,6 +7164,195 @@ makes the list a named group. */
7155
7164
 
7156
7165
  export type HelixDescriptionListVueEvents = {};
7157
7166
 
7167
+ /** `HelixDeviceScreen` component event */
7168
+ export type HelixDeviceScreenElementEvent<E = Event> = TypedEvent<
7169
+ HelixDeviceScreen,
7170
+ E
7171
+ >;
7172
+ /** `helix-device-button` event type */
7173
+ export type HelixDeviceScreenHelixDeviceButtonElementEvent =
7174
+ HelixDeviceScreenElementEvent<HelixDeviceButtonEvent>;
7175
+ /** `helix-device-key` event type */
7176
+ export type HelixDeviceScreenHelixDeviceKeyElementEvent =
7177
+ HelixDeviceScreenElementEvent<HelixDeviceKeyEvent>;
7178
+ /** `helix-device-screenshot` event type */
7179
+ export type HelixDeviceScreenHelixDeviceScreenshotElementEvent =
7180
+ HelixDeviceScreenElementEvent<HelixDeviceScreenshotEvent>;
7181
+ /** `helix-device-scroll` event type */
7182
+ export type HelixDeviceScreenHelixDeviceScrollElementEvent =
7183
+ HelixDeviceScreenElementEvent<HelixDeviceScrollEvent>;
7184
+ /** `helix-device-swipe` event type */
7185
+ export type HelixDeviceScreenHelixDeviceSwipeElementEvent =
7186
+ HelixDeviceScreenElementEvent<HelixDeviceSwipeEvent>;
7187
+ /** `helix-device-tap` event type */
7188
+ export type HelixDeviceScreenHelixDeviceTapElementEvent =
7189
+ HelixDeviceScreenElementEvent<HelixDeviceTapEvent>;
7190
+ /** `helix-device-text` event type */
7191
+ export type HelixDeviceScreenHelixDeviceTextElementEvent =
7192
+ HelixDeviceScreenElementEvent<HelixDeviceTextEvent>;
7193
+ /** `helix-device-touch` event type */
7194
+ export type HelixDeviceScreenHelixDeviceTouchElementEvent =
7195
+ HelixDeviceScreenElementEvent<HelixDeviceTouchEvent>;
7196
+
7197
+ export type HelixDeviceScreenVueProps = {
7198
+ /** How the device stands apart from the page. Absent draws its body around
7199
+ the screen; `plain` draws the screen alone, with its rounded corners. */
7200
+ separation?: (HelixDeviceScreen["separation"]) | undefined;
7201
+ /** The Back button's label. */
7202
+ "back-label"?: (HelixDeviceScreen["backLabel"]) | undefined;
7203
+ /** The Back button's label. */
7204
+ backLabel?: (HelixDeviceScreen["backLabel"]) | undefined;
7205
+ /** Which hardware buttons to draw, as a list: `back`, `home`, `recents`,
7206
+ `power`, `volume`, `rotate`, `screenshot`, and `fullscreen`, or `none`.
7207
+ They are drawn in that order whatever order the list is in. Absent is
7208
+ `home screenshot`. `volume` draws Volume up and Volume down, and `rotate`
7209
+ draws Rotate left and Rotate right. */
7210
+ controls?: (HelixDeviceScreen["controls"]) | undefined;
7211
+ /** The name of the toolbar of hardware buttons, read by screen readers. */
7212
+ "controls-label"?: (HelixDeviceScreen["controlsLabel"]) | undefined;
7213
+ /** The name of the toolbar of hardware buttons, read by screen readers. */
7214
+ controlsLabel?: (HelixDeviceScreen["controlsLabel"]) | undefined;
7215
+ /** Which side of the device the hardware buttons sit on. Absent and `top`
7216
+ are a row above it, `bottom` is a row below it, and `start` and `end` are
7217
+ a column beside it, as the Android Emulator draws its toolbar. The words
7218
+ are sides, as Carousel's are, and not the corners a map's controls take. */
7219
+ "controls-placement"?: (HelixDeviceScreen["controlsPlacement"]) | undefined;
7220
+ /** Which side of the device the hardware buttons sit on. Absent and `top`
7221
+ are a row above it, `bottom` is a row below it, and `start` and `end` are
7222
+ a column beside it, as the Android Emulator draws its toolbar. The words
7223
+ are sides, as Carousel's are, and not the corners a map's controls take. */
7224
+ controlsPlacement?: (HelixDeviceScreen["controlsPlacement"]) | undefined;
7225
+ /** The screen's name where `label` is empty and the host has no `aria-label`. */
7226
+ "fallback-label"?: (HelixDeviceScreen["fallbackLabel"]) | undefined;
7227
+ /** The screen's name where `label` is empty and the host has no `aria-label`. */
7228
+ fallbackLabel?: (HelixDeviceScreen["fallbackLabel"]) | undefined;
7229
+ /** Also sends key presses with Control, Command, or Alt held, which are left
7230
+ to the browser otherwise. For an app that owns its window. Command or
7231
+ Control with V pastes either way. */
7232
+ "forward-shortcuts"?: (HelixDeviceScreen["forwardShortcuts"]) | undefined;
7233
+ /** Also sends key presses with Control, Command, or Alt held, which are left
7234
+ to the browser otherwise. For an app that owns its window. Command or
7235
+ Control with V pastes either way. */
7236
+ forwardShortcuts?: (HelixDeviceScreen["forwardShortcuts"]) | undefined;
7237
+ /** The fullscreen button's label. */
7238
+ "fullscreen-label"?: (HelixDeviceScreen["fullscreenLabel"]) | undefined;
7239
+ /** The fullscreen button's label. */
7240
+ fullscreenLabel?: (HelixDeviceScreen["fullscreenLabel"]) | undefined;
7241
+ /** The Home button's label. */
7242
+ "home-label"?: (HelixDeviceScreen["homeLabel"]) | undefined;
7243
+ /** The Home button's label. */
7244
+ homeLabel?: (HelixDeviceScreen["homeLabel"]) | undefined;
7245
+ /** What a screen reader says about the keys when it reaches the screen,
7246
+ after its name. */
7247
+ "keys-hint-label"?: (HelixDeviceScreen["keysHintLabel"]) | undefined;
7248
+ /** What a screen reader says about the keys when it reaches the screen,
7249
+ after its name. */
7250
+ keysHintLabel?: (HelixDeviceScreen["keysHintLabel"]) | undefined;
7251
+ /** The device's name, read by screen readers as the screen's name, such as
7252
+ "iPhone 17 Pro". Name each device on a page with several. Required. */
7253
+ label?: (HelixDeviceScreen["label"]) | undefined;
7254
+ /** Shows the `loading` slot over the screen, for a stream that is starting
7255
+ or has stopped. Screen readers hear `loading-label`. */
7256
+ loading?: (HelixDeviceScreen["loading"]) | undefined;
7257
+ /** What the screen shows and screen readers hear while `loading` is set and nothing is in the `loading` slot. */
7258
+ "loading-label"?: (HelixDeviceScreen["loadingLabel"]) | undefined;
7259
+ /** What the screen shows and screen readers hear while `loading` is set and nothing is in the `loading` slot. */
7260
+ loadingLabel?: (HelixDeviceScreen["loadingLabel"]) | undefined;
7261
+ /** The Power button's label. */
7262
+ "power-label"?: (HelixDeviceScreen["powerLabel"]) | undefined;
7263
+ /** The Power button's label. */
7264
+ powerLabel?: (HelixDeviceScreen["powerLabel"]) | undefined;
7265
+ /** Shows the screen and sends nothing: no touches, scrolls, keys, or button
7266
+ presses. The screen is then a picture, out of the tab order, and the
7267
+ hardware buttons are off but for screenshot and fullscreen. Buttons of
7268
+ your own in the `controls` slot are yours to turn off. */
7269
+ readonly?: (HelixDeviceScreen["readonly"]) | undefined;
7270
+ /** The Recent apps button's label. */
7271
+ "recents-label"?: (HelixDeviceScreen["recentsLabel"]) | undefined;
7272
+ /** The Recent apps button's label. */
7273
+ recentsLabel?: (HelixDeviceScreen["recentsLabel"]) | undefined;
7274
+ /** What a screen reader calls the screen in place of its role, after its
7275
+ name: "iPhone 17 Pro, screen". Empty leaves the role. */
7276
+ "role-label"?: (HelixDeviceScreen["roleLabel"]) | undefined;
7277
+ /** What a screen reader calls the screen in place of its role, after its
7278
+ name: "iPhone 17 Pro, screen". Empty leaves the role. */
7279
+ roleLabel?: (HelixDeviceScreen["roleLabel"]) | undefined;
7280
+ /** The Rotate left button's label. */
7281
+ "rotate-left-label"?: (HelixDeviceScreen["rotateLeftLabel"]) | undefined;
7282
+ /** The Rotate left button's label. */
7283
+ rotateLeftLabel?: (HelixDeviceScreen["rotateLeftLabel"]) | undefined;
7284
+ /** The Rotate right button's label. */
7285
+ "rotate-right-label"?: (HelixDeviceScreen["rotateRightLabel"]) | undefined;
7286
+ /** The Rotate right button's label. */
7287
+ rotateRightLabel?: (HelixDeviceScreen["rotateRightLabel"]) | undefined;
7288
+ /** How far to turn the picture clockwise, in degrees: `90`, `180`, or `270`.
7289
+ For a source that sends frames in the device's natural orientation while
7290
+ the device is turned. Every point is turned back, so events stay in the
7291
+ device's own orientation. A source whose frames turn with the device
7292
+ needs none. */
7293
+ rotation?: (HelixDeviceScreen["rotation"]) | undefined;
7294
+ /** The screen's height in the units your device takes input in: points for
7295
+ the iOS Simulator, pixels for an Android device. Set with `screen-width`.
7296
+ Set alone, the width follows the stream's shape, and with neither, both
7297
+ are the stream's own size in pixels. */
7298
+ "screen-height"?: (HelixDeviceScreen["screenHeight"] | `${number}`) | undefined;
7299
+ /** The screen's height in the units your device takes input in: points for
7300
+ the iOS Simulator, pixels for an Android device. Set with `screen-width`.
7301
+ Set alone, the width follows the stream's shape, and with neither, both
7302
+ are the stream's own size in pixels. */
7303
+ screenHeight?: (HelixDeviceScreen["screenHeight"]) | undefined;
7304
+ /** The screenshot button's label. */
7305
+ "screenshot-label"?: (HelixDeviceScreen["screenshotLabel"]) | undefined;
7306
+ /** The screenshot button's label. */
7307
+ screenshotLabel?: (HelixDeviceScreen["screenshotLabel"]) | undefined;
7308
+ /** The screen's width in the units your device takes input in, as
7309
+ `screen-height` is. Set alone, the height follows the stream's shape. */
7310
+ "screen-width"?: (HelixDeviceScreen["screenWidth"] | `${number}`) | undefined;
7311
+ /** The screen's width in the units your device takes input in, as
7312
+ `screen-height` is. Set alone, the height follows the stream's shape. */
7313
+ screenWidth?: (HelixDeviceScreen["screenWidth"]) | undefined;
7314
+ /** The screen's outline. Absent is a rectangle with rounded corners;
7315
+ `square` has square corners, as on a phone with a Home button or a
7316
+ television, and `circle` is round, as on a round watch, and takes
7317
+ touches inside the circle only. */
7318
+ shape?: (HelixDeviceScreen["shape"]) | undefined;
7319
+ /** Draws a ring under each finger on the screen, as the iOS Simulator's
7320
+ Show single touches does. Rings from `showTap()` and `showSwipe()` are
7321
+ drawn either way. */
7322
+ "show-touches"?: (HelixDeviceScreen["showTouches"]) | undefined;
7323
+ /** Draws a ring under each finger on the screen, as the iOS Simulator's
7324
+ Show single touches does. Rings from `showTap()` and `showSwipe()` are
7325
+ drawn either way. */
7326
+ showTouches?: (HelixDeviceScreen["showTouches"]) | undefined;
7327
+ /** The Volume down button's label. */
7328
+ "volume-down-label"?: (HelixDeviceScreen["volumeDownLabel"]) | undefined;
7329
+ /** The Volume down button's label. */
7330
+ volumeDownLabel?: (HelixDeviceScreen["volumeDownLabel"]) | undefined;
7331
+ /** The Volume up button's label. */
7332
+ "volume-up-label"?: (HelixDeviceScreen["volumeUpLabel"]) | undefined;
7333
+ /** The Volume up button's label. */
7334
+ volumeUpLabel?: (HelixDeviceScreen["volumeUpLabel"]) | undefined;
7335
+ };
7336
+
7337
+ export type HelixDeviceScreenVueEvents = {
7338
+ /** A hardware button was pressed, with how long it was held. Press it on the device in response. */
7339
+ "helix-device-button": HelixDeviceScreenHelixDeviceButtonElementEvent;
7340
+ /** A key went down or came up while the screen had focus. Press or release it on the device in response. */
7341
+ "helix-device-key": HelixDeviceScreenHelixDeviceKeyElementEvent;
7342
+ /** A screenshot was asked for. Take one in response. */
7343
+ "helix-device-screenshot": HelixDeviceScreenHelixDeviceScreenshotElementEvent;
7344
+ /** A wheel or a trackpad scrolled over the screen. Scroll the device in response. */
7345
+ "helix-device-scroll": HelixDeviceScreenHelixDeviceScrollElementEvent;
7346
+ /** One finger moved across the screen and lifted. Swipe the device in response. */
7347
+ "helix-device-swipe": HelixDeviceScreenHelixDeviceSwipeElementEvent;
7348
+ /** One finger touched the screen and lifted near where it landed. Tap the device in response. */
7349
+ "helix-device-tap": HelixDeviceScreenHelixDeviceTapElementEvent;
7350
+ /** Text was pasted into the screen. Type it on the device in response. */
7351
+ "helix-device-text": HelixDeviceScreenHelixDeviceTextElementEvent;
7352
+ /** A finger landed, moved, lifted, or was taken away. Touch the device in response. */
7353
+ "helix-device-touch": HelixDeviceScreenHelixDeviceTouchElementEvent;
7354
+ };
7355
+
7158
7356
  /** `HelixDialog` component event */
7159
7357
  export type HelixDialogElementEvent<E = Event> = TypedEvent<HelixDialog, E>;
7160
7358
  /** `toggle` event type */
@@ -24045,6 +24243,32 @@ export type CustomCssProperties = {
24045
24243
  "--description-list-gap"?: (string) | undefined;
24046
24244
  /** The width of the column of labels, with `direction="row"`. Defaults to the width of the longest label; set a length such as `10rem` to line up several lists. */
24047
24245
  "--description-list-label-width"?: (string) | undefined;
24246
+ /** How thick the body is at the sides, as a fraction of the screen's width. `0.045` by default. */
24247
+ "--device-screen-bezel"?: (string) | undefined;
24248
+ /** How thick the body is at the top and bottom, as a fraction of the screen's width. The same as `--device-screen-bezel` by default. */
24249
+ "--device-screen-bezel-block"?: (string) | undefined;
24250
+ /** The color of the body around the screen. */
24251
+ "--device-screen-bezel-color"?: (string) | undefined;
24252
+ /** The body's corners, as a fraction of the screen's width. Round with the screen's corners by default. */
24253
+ "--device-screen-bezel-radius"?: (string) | undefined;
24254
+ /** The element's height, which holds the device, its buttons, the header, and the footer. `36rem` by default. */
24255
+ "--device-screen-block-size"?: (string) | undefined;
24256
+ /** The screen's corners, as a fraction of the screen's width. `0.13` by default, which is near a recent iPhone's. */
24257
+ "--device-screen-radius"?: (string) | undefined;
24258
+ /** The drawn screen's width divided by its height, turned by `rotation`, as a number. Written by the frame once the screen's size is known. */
24259
+ "--device-screen-ratio"?: (string) | undefined;
24260
+ /** How far the picture is turned, as an angle. The frame writes it from `rotation`. */
24261
+ "--device-screen-rotation"?: (string) | undefined;
24262
+ /** How long a swipe's ring takes to travel, as a time. Written on each ring from `showSwipe()`. */
24263
+ "--device-screen-touch-duration"?: (string) | undefined;
24264
+ /** Where a swipe's ring travels to, across the screen, as a percentage. Written on each ring from `showSwipe()`. */
24265
+ "--device-screen-touch-to-x"?: (string) | undefined;
24266
+ /** Where a swipe's ring travels to, down the screen, as a percentage. Written on each ring from `showSwipe()`. */
24267
+ "--device-screen-touch-to-y"?: (string) | undefined;
24268
+ /** Where a ring is, across the screen, as a percentage. Written on each ring. */
24269
+ "--device-screen-touch-x"?: (string) | undefined;
24270
+ /** Where a ring is, down the screen, as a percentage. Written on each ring. */
24271
+ "--device-screen-touch-y"?: (string) | undefined;
24048
24272
  /** The panel's fill. Follows `--helix-color-surface-overlay`. */
24049
24273
  "--dialog-background-color"?: (string) | undefined;
24050
24274
  /** Color of the panel's edge. */
@@ -26281,6 +26505,12 @@ export interface WcToolkitVueGlobalComponents {
26281
26505
  HelixDescriptionListVueProps,
26282
26506
  HelixDescriptionListVueEvents
26283
26507
  >;
26508
+ /** The styled device: a dark body around a screen with rounded corners, fitted to the space it is given, with its hardware buttons raised in a row above it. Give it a height with 'block-size' or '--device-screen-block-size', such as '100%' to fill a pane, and the device keeps its shape inside it. The body is drawn in proportion to the screen, so it keeps its look at any size. '--device-screen-bezel' sets how thick it is at the sides and '--device-screen-bezel-block' at the top and bottom, each as a fraction of the screen's width: '0.25' at the top and bottom draws the forehead and chin of a phone with a Home button. '--device-screen-radius' sets the screen's corners the same way. Set 'separation="plain"' to draw the screen alone. For a picture of a real device, put an image of it with a clear screen in the 'bezel' slot, set '--device-screen-bezel-color' to 'transparent', and set the two bezel properties to the picture's own margins around its screen, each divided by the width of its screen. */
26509
+ "helix-device-screen": DefineCustomElement<
26510
+ HelixDeviceScreen,
26511
+ HelixDeviceScreenVueProps,
26512
+ HelixDeviceScreenVueEvents
26513
+ >;
26284
26514
  /** The panel uses 'surface-overlay' with a shadow, because it sits over the page. The scrim is drawn on '::backdrop', the platform's element for it, which sits in the top layer with the dialog. */
26285
26515
  "helix-dialog": DefineCustomElement<
26286
26516
  HelixDialog,
package/types/words.d.ts CHANGED
@@ -1469,6 +1469,100 @@ declare module '@fusion.dev/helix-core' {
1469
1469
  */
1470
1470
  yearViewLabel: Message
1471
1471
  }
1472
+ 'helix-device-screen': {
1473
+ /**
1474
+ * The Back button's label.
1475
+ *
1476
+ * English: `Back`
1477
+ */
1478
+ backLabel: Message
1479
+ /**
1480
+ * The name of the toolbar of hardware buttons, read by screen readers.
1481
+ *
1482
+ * English: `Device controls`
1483
+ */
1484
+ controlsLabel: Message
1485
+ /**
1486
+ * The screen's name where `label` is empty and the host has no `aria-label`.
1487
+ *
1488
+ * English: `Device`
1489
+ */
1490
+ fallbackLabel: Message
1491
+ /**
1492
+ * The fullscreen button's label.
1493
+ *
1494
+ * English: `Fill the screen`
1495
+ */
1496
+ fullscreenLabel: Message
1497
+ /**
1498
+ * The Home button's label.
1499
+ *
1500
+ * English: `Home`
1501
+ */
1502
+ homeLabel: Message
1503
+ /**
1504
+ * What a screen reader says about the keys when it reaches the screen,
1505
+ * after its name.
1506
+ *
1507
+ * English: `Keys you press go to the device. Press Tab to leave the screen.`
1508
+ */
1509
+ keysHintLabel: Message
1510
+ /**
1511
+ * What the screen shows and screen readers hear while `loading` is set and nothing is in the `loading` slot.
1512
+ *
1513
+ * English: `Connecting to the device`
1514
+ */
1515
+ loadingLabel: Message
1516
+ /**
1517
+ * The Power button's label.
1518
+ *
1519
+ * English: `Power`
1520
+ */
1521
+ powerLabel: Message
1522
+ /**
1523
+ * The Recent apps button's label.
1524
+ *
1525
+ * English: `Recent apps`
1526
+ */
1527
+ recentsLabel: Message
1528
+ /**
1529
+ * What a screen reader calls the screen in place of its role, after its
1530
+ * name: "iPhone 17 Pro, screen". Empty leaves the role.
1531
+ *
1532
+ * English: `screen`
1533
+ */
1534
+ roleLabel: Message
1535
+ /**
1536
+ * The Rotate left button's label.
1537
+ *
1538
+ * English: `Rotate left`
1539
+ */
1540
+ rotateLeftLabel: Message
1541
+ /**
1542
+ * The Rotate right button's label.
1543
+ *
1544
+ * English: `Rotate right`
1545
+ */
1546
+ rotateRightLabel: Message
1547
+ /**
1548
+ * The screenshot button's label.
1549
+ *
1550
+ * English: `Take a screenshot`
1551
+ */
1552
+ screenshotLabel: Message
1553
+ /**
1554
+ * The Volume down button's label.
1555
+ *
1556
+ * English: `Volume down`
1557
+ */
1558
+ volumeDownLabel: Message
1559
+ /**
1560
+ * The Volume up button's label.
1561
+ *
1562
+ * English: `Volume up`
1563
+ */
1564
+ volumeUpLabel: Message
1565
+ }
1472
1566
  'helix-dialog': {
1473
1567
  /**
1474
1568
  * The close control's accessible name. Translate it with the rest of your