@fusion.dev/helix 0.16.6 → 0.17.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.
@@ -660,11 +660,15 @@
660
660
  "name": "HelixAccordion",
661
661
  "cssProperties": [
662
662
  {
663
- "description": "Color of the seams, and of the frame when outlined.",
663
+ "description": "Color of the seams, and of each item's frame when outlined.",
664
664
  "name": "--accordion-border-color"
665
665
  },
666
666
  {
667
- "description": "Corner radius of the stack, when outlined.",
667
+ "description": "Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge.",
668
+ "name": "--accordion-gap"
669
+ },
670
+ {
671
+ "description": "Corner radius of each item, when outlined.",
668
672
  "name": "--accordion-radius"
669
673
  }
670
674
  ],
@@ -685,7 +689,7 @@
685
689
  "type": {
686
690
  "text": "'outlined' | 'plain' | undefined"
687
691
  },
688
- "description": "How the stack separates itself from the page.\n\nTwo of the axis's four values, which is what this surface has meaning for:\na stack of items is already told apart by its seams, so a lift would be a\nthird statement and a fill a second.\n\n- `plain` is the default and is what an application usually wants: the\n seams between items already say the items are one set, so a frame is a\n second statement of the same thing. Inside a card, a panel, a dialog or a\n sidebar, it is a line and no meaning.\n- `outlined` frames the stack, for an accordion sitting directly on the\n page where nothing else says where it starts and stops. A marketing\n page's FAQ is the case it is for.\n\nBoth are writable, so a generated page can say which it means rather than\nrelying on the absence of an attribute.",
692
+ "description": "How the stack separates itself from the page.\n\nTwo of the axis's four values, which is what this surface has meaning for:\na stack of items is already told apart by its seams, so a lift would be a\nthird statement and a fill a second.\n\n- `plain` is the default and is what an application usually wants: the\n seams between items already say the items are one set, so a frame is a\n second statement of the same thing. Inside a card, a panel, a dialog or a\n sidebar, it is a line and no meaning.\n- `outlined` frames **each item**, for an accordion sitting directly on the\n page where nothing else says where the rows begin and end. A marketing\n page's FAQ is the case it is for. Per item rather than around the stack,\n because a frame around a set of hairline-separated rows repeats what the\n hairlines already said, where a frame around each one makes every item a\n thing that opens and leaves the set to be said by their alignment.\n\nBoth are writable, so a generated page can say which it means rather than\nrelying on the absence of an attribute.",
689
693
  "attribute": "separation",
690
694
  "reflects": true
691
695
  },
@@ -906,7 +910,7 @@
906
910
  "type": {
907
911
  "text": "'outlined' | 'plain' | undefined"
908
912
  },
909
- "description": "How the stack separates itself from the page.\n\nTwo of the axis's four values, which is what this surface has meaning for:\na stack of items is already told apart by its seams, so a lift would be a\nthird statement and a fill a second.\n\n- `plain` is the default and is what an application usually wants: the\n seams between items already say the items are one set, so a frame is a\n second statement of the same thing. Inside a card, a panel, a dialog or a\n sidebar, it is a line and no meaning.\n- `outlined` frames the stack, for an accordion sitting directly on the\n page where nothing else says where it starts and stops. A marketing\n page's FAQ is the case it is for.\n\nBoth are writable, so a generated page can say which it means rather than\nrelying on the absence of an attribute.",
913
+ "description": "How the stack separates itself from the page.\n\nTwo of the axis's four values, which is what this surface has meaning for:\na stack of items is already told apart by its seams, so a lift would be a\nthird statement and a fill a second.\n\n- `plain` is the default and is what an application usually wants: the\n seams between items already say the items are one set, so a frame is a\n second statement of the same thing. Inside a card, a panel, a dialog or a\n sidebar, it is a line and no meaning.\n- `outlined` frames **each item**, for an accordion sitting directly on the\n page where nothing else says where the rows begin and end. A marketing\n page's FAQ is the case it is for. Per item rather than around the stack,\n because a frame around a set of hairline-separated rows repeats what the\n hairlines already said, where a frame around each one makes every item a\n thing that opens and leaves the set to be said by their alignment.\n\nBoth are writable, so a generated page can say which it means rather than\nrelying on the absence of an attribute.",
910
914
  "fieldName": "separation"
911
915
  },
912
916
  {
@@ -4,6 +4,12 @@ display: block;
4
4
  }
5
5
 
6
6
  :host([separation="outlined"]) {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--accordion-gap, var(--helix-space-xs));
10
+ }
11
+
12
+ :host([separation="outlined"]) ::slotted(*) {
7
13
  border: var(--helix-border-thin) solid var(--accordion-border-color, var(--helix-color-border));
8
14
 
9
15
  border-radius: var(--accordion-radius, var(--helix-radii-sm));
@@ -11,7 +17,7 @@ border-radius: var(--accordion-radius, var(--helix-radii-sm));
11
17
  overflow: hidden;
12
18
  }
13
19
 
14
- ::slotted(* + *) {
20
+ :host(:not([separation="outlined"])) ::slotted(* + *) {
15
21
  border-block-start: var(--helix-border-thin) solid
16
22
  var(--accordion-border-color, var(--helix-color-border));
17
23
  }
@@ -17,8 +17,9 @@ import type { CSSResultGroup } from 'lit';
17
17
  *
18
18
  * @slot - The accordion's items.
19
19
  *
20
- * @cssproperty --accordion-border-color - Color of the seams, and of the frame when outlined.
21
- * @cssproperty --accordion-radius - Corner radius of the stack, when outlined.
20
+ * @cssproperty --accordion-border-color - Color of the seams, and of each item's frame when outlined.
21
+ * @cssproperty --accordion-gap - Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge.
22
+ * @cssproperty --accordion-radius - Corner radius of each item, when outlined.
22
23
  */
23
24
  export declare class HelixAccordion extends HelixHeadlessAccordion {
24
25
  /**
@@ -32,9 +33,12 @@ export declare class HelixAccordion extends HelixHeadlessAccordion {
32
33
  * seams between items already say the items are one set, so a frame is a
33
34
  * second statement of the same thing. Inside a card, a panel, a dialog or a
34
35
  * sidebar, it is a line and no meaning.
35
- * - `outlined` frames the stack, for an accordion sitting directly on the
36
- * page where nothing else says where it starts and stops. A marketing
37
- * page's FAQ is the case it is for.
36
+ * - `outlined` frames **each item**, for an accordion sitting directly on the
37
+ * page where nothing else says where the rows begin and end. A marketing
38
+ * page's FAQ is the case it is for. Per item rather than around the stack,
39
+ * because a frame around a set of hairline-separated rows repeats what the
40
+ * hairlines already said, where a frame around each one makes every item a
41
+ * thing that opens and leaves the set to be said by their alignment.
38
42
  *
39
43
  * Both are writable, so a generated page can say which it means rather than
40
44
  * relying on the absence of an attribute.
@@ -15,7 +15,7 @@ padding: var(--helix-space-xs);
15
15
 
16
16
  [part="composer"]:focus-within {
17
17
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
18
- outline-offset: var(--helix-size-focus-offset);
18
+ outline-offset: 0;
19
19
  }
20
20
 
21
21
  [part="field"] {
@@ -27,7 +27,7 @@ display: block;
27
27
 
28
28
  [part="field"]:has([part="control"]:focus-visible) {
29
29
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
30
- outline-offset: var(--helix-size-focus-offset);
30
+ outline-offset: 0;
31
31
  }
32
32
 
33
33
  [part="field"][data-dropping] {
@@ -25,7 +25,7 @@ border-color: var(--helix-color-foreground-muted);
25
25
  :host(:not(:disabled)) [part="field"]:focus-within {
26
26
  border-color: var(--helix-color-primary);
27
27
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
28
- outline-offset: var(--helix-size-focus-offset);
28
+ outline-offset: 0;
29
29
  }
30
30
 
31
31
  :host(:state(invalid)) [part="field"],
@@ -35,7 +35,7 @@ border-color: var(--helix-color-foreground-muted);
35
35
  [part="cell"]:focus-visible {
36
36
  border-color: var(--helix-color-primary);
37
37
  outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
38
- outline-offset: var(--helix-size-focus-offset);
38
+ outline-offset: 0;
39
39
  }
40
40
 
41
41
  :host(:state(invalid)) [part="cell"] {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.16.6",
4
+ "version": "0.17.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.16.6",
50
- "@fusion.dev/helix-headless": "0.16.6",
51
- "@fusion.dev/helix-styles": "0.16.6"
49
+ "@fusion.dev/helix-core": "0.17.0",
50
+ "@fusion.dev/helix-headless": "0.17.0",
51
+ "@fusion.dev/helix-styles": "0.17.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@custom-elements-manifest/analyzer": "^0.11.0",
55
- "@fusion.dev/helix-cem": "0.16.6",
56
- "@fusion.dev/helix-testing": "0.16.6",
55
+ "@fusion.dev/helix-cem": "0.17.0",
56
+ "@fusion.dev/helix-testing": "0.17.0",
57
57
  "@fusion.dev/scripts": "0.0.0-dev",
58
58
  "@happy-dom/global-registrator": "^20.0.0",
59
59
  "@lit-labs/ssr": "^3.3.0",
package/types/jsx.d.ts CHANGED
@@ -530,9 +530,12 @@ third statement and a fill a second.
530
530
  seams between items already say the items are one set, so a frame is a
531
531
  second statement of the same thing. Inside a card, a panel, a dialog or a
532
532
  sidebar, it is a line and no meaning.
533
- - `outlined` frames the stack, for an accordion sitting directly on the
534
- page where nothing else says where it starts and stops. A marketing
535
- page's FAQ is the case it is for.
533
+ - `outlined` frames **each item**, for an accordion sitting directly on the
534
+ page where nothing else says where the rows begin and end. A marketing
535
+ page's FAQ is the case it is for. Per item rather than around the stack,
536
+ because a frame around a set of hairline-separated rows repeats what the
537
+ hairlines already said, where a frame around each one makes every item a
538
+ thing that opens and leaves the set to be said by their alignment.
536
539
 
537
540
  Both are writable, so a generated page can say which it means rather than
538
541
  relying on the absence of an attribute. */
@@ -559,9 +562,12 @@ third statement and a fill a second.
559
562
  seams between items already say the items are one set, so a frame is a
560
563
  second statement of the same thing. Inside a card, a panel, a dialog or a
561
564
  sidebar, it is a line and no meaning.
562
- - `outlined` frames the stack, for an accordion sitting directly on the
563
- page where nothing else says where it starts and stops. A marketing
564
- page's FAQ is the case it is for.
565
+ - `outlined` frames **each item**, for an accordion sitting directly on the
566
+ page where nothing else says where the rows begin and end. A marketing
567
+ page's FAQ is the case it is for. Per item rather than around the stack,
568
+ because a frame around a set of hairline-separated rows repeats what the
569
+ hairlines already said, where a frame around each one makes every item a
570
+ thing that opens and leaves the set to be said by their alignment.
565
571
 
566
572
  Both are writable, so a generated page can say which it means rather than
567
573
  relying on the absence of an attribute. */
@@ -18452,9 +18458,12 @@ export type CustomElements = {
18452
18458
  * seams between items already say the items are one set, so a frame is a
18453
18459
  * second statement of the same thing. Inside a card, a panel, a dialog or a
18454
18460
  * sidebar, it is a line and no meaning.
18455
- * - `outlined` frames the stack, for an accordion sitting directly on the
18456
- * page where nothing else says where it starts and stops. A marketing
18457
- * page's FAQ is the case it is for.
18461
+ * - `outlined` frames **each item**, for an accordion sitting directly on the
18462
+ * page where nothing else says where the rows begin and end. A marketing
18463
+ * page's FAQ is the case it is for. Per item rather than around the stack,
18464
+ * because a frame around a set of hairline-separated rows repeats what the
18465
+ * hairlines already said, where a frame around each one makes every item a
18466
+ * thing that opens and leaves the set to be said by their alignment.
18458
18467
  *
18459
18468
  * Both are writable, so a generated page can say which it means rather than
18460
18469
  * relying on the absence of an attribute.
@@ -18496,8 +18505,9 @@ export type CustomElements = {
18496
18505
  *
18497
18506
  * CSS variables available for styling the component.
18498
18507
  *
18499
- * - `--accordion-border-color`: Color of the seams, and of the frame when outlined. (default: `undefined`)
18500
- * - `--accordion-radius`: Corner radius of the stack, when outlined. (default: `undefined`)
18508
+ * - `--accordion-border-color`: Color of the seams, and of each item's frame when outlined. (default: `undefined`)
18509
+ * - `--accordion-gap`: Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge. (default: `undefined`)
18510
+ * - `--accordion-radius`: Corner radius of each item, when outlined. (default: `undefined`)
18501
18511
  */
18502
18512
  "helix-accordion": Partial<
18503
18513
  HelixAccordionProps & BaseProps<HelixAccordion> & BaseEvents<HelixAccordion>
@@ -34410,9 +34420,12 @@ export type CustomElementsSolidJs = {
34410
34420
  * seams between items already say the items are one set, so a frame is a
34411
34421
  * second statement of the same thing. Inside a card, a panel, a dialog or a
34412
34422
  * sidebar, it is a line and no meaning.
34413
- * - `outlined` frames the stack, for an accordion sitting directly on the
34414
- * page where nothing else says where it starts and stops. A marketing
34415
- * page's FAQ is the case it is for.
34423
+ * - `outlined` frames **each item**, for an accordion sitting directly on the
34424
+ * page where nothing else says where the rows begin and end. A marketing
34425
+ * page's FAQ is the case it is for. Per item rather than around the stack,
34426
+ * because a frame around a set of hairline-separated rows repeats what the
34427
+ * hairlines already said, where a frame around each one makes every item a
34428
+ * thing that opens and leaves the set to be said by their alignment.
34416
34429
  *
34417
34430
  * Both are writable, so a generated page can say which it means rather than
34418
34431
  * relying on the absence of an attribute.
@@ -34454,8 +34467,9 @@ export type CustomElementsSolidJs = {
34454
34467
  *
34455
34468
  * CSS variables available for styling the component.
34456
34469
  *
34457
- * - `--accordion-border-color`: Color of the seams, and of the frame when outlined. (default: `undefined`)
34458
- * - `--accordion-radius`: Corner radius of the stack, when outlined. (default: `undefined`)
34470
+ * - `--accordion-border-color`: Color of the seams, and of each item's frame when outlined. (default: `undefined`)
34471
+ * - `--accordion-gap`: Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge. (default: `undefined`)
34472
+ * - `--accordion-radius`: Corner radius of each item, when outlined. (default: `undefined`)
34459
34473
  */
34460
34474
  "helix-accordion": Partial<
34461
34475
  HelixAccordionProps &
@@ -50611,9 +50625,11 @@ export type CustomElementsSolidJs = {
50611
50625
  export type CustomCssProperties = {
50612
50626
  /** Inset of the trigger and content. */
50613
50627
  "--accordion-item-padding"?: (string) | undefined;
50614
- /** Color of the seams, and of the frame when outlined. */
50628
+ /** Color of the seams, and of each item's frame when outlined. */
50615
50629
  "--accordion-border-color"?: (string) | undefined;
50616
- /** Corner radius of the stack, when outlined. */
50630
+ /** Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge. */
50631
+ "--accordion-gap"?: (string) | undefined;
50632
+ /** Corner radius of each item, when outlined. */
50617
50633
  "--accordion-radius"?: (string) | undefined;
50618
50634
  /** Inline padding, matched to the page. */
50619
50635
  "--announcement-inset"?: (string) | undefined;
package/types/vue.d.ts CHANGED
@@ -287,9 +287,12 @@ third statement and a fill a second.
287
287
  seams between items already say the items are one set, so a frame is a
288
288
  second statement of the same thing. Inside a card, a panel, a dialog or a
289
289
  sidebar, it is a line and no meaning.
290
- - `outlined` frames the stack, for an accordion sitting directly on the
291
- page where nothing else says where it starts and stops. A marketing
292
- page's FAQ is the case it is for.
290
+ - `outlined` frames **each item**, for an accordion sitting directly on the
291
+ page where nothing else says where the rows begin and end. A marketing
292
+ page's FAQ is the case it is for. Per item rather than around the stack,
293
+ because a frame around a set of hairline-separated rows repeats what the
294
+ hairlines already said, where a frame around each one makes every item a
295
+ thing that opens and leaves the set to be said by their alignment.
293
296
 
294
297
  Both are writable, so a generated page can say which it means rather than
295
298
  relying on the absence of an attribute. */
@@ -9368,9 +9371,11 @@ export type HelixVirtualListVueEvents = {};
9368
9371
  export type CustomCssProperties = {
9369
9372
  /** Inset of the trigger and content. */
9370
9373
  "--accordion-item-padding"?: (string) | undefined;
9371
- /** Color of the seams, and of the frame when outlined. */
9374
+ /** Color of the seams, and of each item's frame when outlined. */
9372
9375
  "--accordion-border-color"?: (string) | undefined;
9373
- /** Corner radius of the stack, when outlined. */
9376
+ /** Space between items, when outlined. Nothing separates them otherwise: a seam is a shared edge. */
9377
+ "--accordion-gap"?: (string) | undefined;
9378
+ /** Corner radius of each item, when outlined. */
9374
9379
  "--accordion-radius"?: (string) | undefined;
9375
9380
  /** Inline padding, matched to the page. */
9376
9381
  "--announcement-inset"?: (string) | undefined;