@fusion.dev/helix 0.4.1 → 0.4.3
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/custom-elements.json +119 -119
- package/dist/aura/root/aura-root.d.ts +10 -31
- package/dist/badge/root/badge-root.css.js +3 -3
- package/dist/bar-chart/root/bar-chart-root.css.js +7 -9
- package/dist/button/root/button-root.d.ts +1 -1
- package/dist/button/root/button-root.js +1 -1
- package/dist/button-group/root/button-group-root.css.js +3 -3
- package/dist/callout/root/callout-root.css.js +1 -2
- package/dist/card/root/card-root.css.js +6 -8
- package/dist/carousel/root/carousel-root.css.js +2 -2
- package/dist/checkbox/root/checkbox-root.css.js +3 -4
- package/dist/copy-button/root/copy-button-root.d.ts +1 -1
- package/dist/copy-button/root/copy-button-root.js +1 -1
- package/dist/date-input/root/date-input-root.css.js +1 -1
- package/dist/date-picker/root/date-picker-root.css.js +1 -1
- package/dist/divider/root/divider-root.css.js +2 -2
- package/dist/drawer/root/drawer-root.css.js +1 -2
- package/dist/file-input/root/file-input-root.css.js +1 -1
- package/dist/heatmap/root/heatmap-root.css.js +3 -3
- package/dist/icon-button/root/icon-button-root.css.js +1 -2
- package/dist/icon-button/root/icon-button-root.d.ts +1 -1
- package/dist/icon-button/root/icon-button-root.js +1 -1
- package/dist/input/root/input-root.css.js +2 -3
- package/dist/kbd/root/kbd-root.css.js +4 -4
- package/dist/legend/root/legend-root.css.js +1 -2
- package/dist/loader/root/loader-root.css.js +2 -2
- package/dist/menu/root/menu-root.css.js +4 -4
- package/dist/meter/root/meter-root.css.js +9 -16
- package/dist/outline/root/outline-root.css.js +1 -1
- package/dist/popover/root/popover-root.css.js +1 -1
- package/dist/radio/root/radio-root.css.js +1 -2
- package/dist/sandbox/preview/sandbox-preview.d.ts +11 -31
- package/dist/sandbox/root/sandbox-root.d.ts +11 -32
- package/dist/select/root/select-root.css.js +1 -1
- package/dist/slider/root/slider-root.css.js +8 -8
- package/dist/sparkline/root/sparkline-root.css.js +1 -2
- package/dist/speed-dial/root/speed-dial-root.css.js +1 -1
- package/dist/steps/root/steps-root.css.js +4 -6
- package/dist/steps/step/step.css.js +2 -2
- package/dist/switch/root/switch-root.css.js +3 -4
- package/dist/tag/root/tag-root.css.js +9 -10
- package/dist/time-input/root/time-input-root.css.js +1 -1
- package/dist/toast/item/toast-item.css.js +5 -5
- package/dist/toast/root/toast-root.css.js +5 -8
- package/dist/toggle/group/toggle-group.css.js +9 -10
- package/dist/trend/root/trend-root.css.js +1 -1
- package/dist/video/root/video-root.css.js +2 -2
- package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -2
- package/package.json +16 -21
- package/{jsx.d.ts → types/jsx.d.ts} +66 -190
- package/{vue.d.ts → types/vue.d.ts} +3 -3
- package/elements.css +0 -286
- package/helix.css +0 -31
- /package/dist/{mixins → shared}/mixin-control-surface/mixin-control-surface.d.ts +0 -0
- /package/dist/{mixins → shared}/mixin-control-surface/mixin-control-surface.js +0 -0
- /package/{svelte.d.ts → types/svelte.d.ts} +0 -0
package/custom-elements.json
CHANGED
|
@@ -2102,7 +2102,7 @@
|
|
|
2102
2102
|
"declarations": [
|
|
2103
2103
|
{
|
|
2104
2104
|
"kind": "class",
|
|
2105
|
-
"description": "One fragment shader over a full-screen triangle, with the palette read from\nthe tokens rather than given as colors.
|
|
2105
|
+
"description": "One fragment shader over a full-screen triangle, with the palette read from\nthe tokens rather than given as colors. A background written with hex values\nis an asset that has to be re-cut when the brand moves; one written against\n`--helix-color-primary` is a consequence of it.\n\n**Every shape ramps through four token stops**, and the token layer inverts\neach: the page's background, `primary-subtle`, `primary`, then a peak. The\npeak is the foreground on a dark page and `primary-active` on a light one,\nbecause mixing a saturated hue toward near-black takes the chroma out of the\npixels carrying most of it. Which way the page runs is read off the ground's\nown luminance rather than asked of the mode, which is a private token.\n\n**No dependency, and no scene graph.** The geometry is three vertices derived\nfrom `gl_VertexID`, so there is no attribute, no buffer and no upload.\n\n**It stops when nobody is looking**, off screen and in a background tab, and\n`prefers-reduced-motion` gets one still frame rather than an empty box.",
|
|
2106
2106
|
"name": "HelixAura",
|
|
2107
2107
|
"cssParts": [
|
|
2108
2108
|
{
|
|
@@ -7318,7 +7318,7 @@
|
|
|
7318
7318
|
"reflects": true,
|
|
7319
7319
|
"inheritedFrom": {
|
|
7320
7320
|
"name": "MixinControlSurface",
|
|
7321
|
-
"module": "src/
|
|
7321
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
7322
7322
|
}
|
|
7323
7323
|
},
|
|
7324
7324
|
{
|
|
@@ -7332,7 +7332,7 @@
|
|
|
7332
7332
|
"reflects": true,
|
|
7333
7333
|
"inheritedFrom": {
|
|
7334
7334
|
"name": "MixinControlSurface",
|
|
7335
|
-
"module": "src/
|
|
7335
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
7336
7336
|
}
|
|
7337
7337
|
},
|
|
7338
7338
|
{
|
|
@@ -7949,7 +7949,7 @@
|
|
|
7949
7949
|
"fieldName": "emphasis",
|
|
7950
7950
|
"inheritedFrom": {
|
|
7951
7951
|
"name": "MixinControlSurface",
|
|
7952
|
-
"module": "src/
|
|
7952
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
7953
7953
|
}
|
|
7954
7954
|
},
|
|
7955
7955
|
{
|
|
@@ -7961,7 +7961,7 @@
|
|
|
7961
7961
|
"fieldName": "tone",
|
|
7962
7962
|
"inheritedFrom": {
|
|
7963
7963
|
"name": "MixinControlSurface",
|
|
7964
|
-
"module": "src/
|
|
7964
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
7965
7965
|
}
|
|
7966
7966
|
},
|
|
7967
7967
|
{
|
|
@@ -8124,7 +8124,7 @@
|
|
|
8124
8124
|
"mixins": [
|
|
8125
8125
|
{
|
|
8126
8126
|
"name": "MixinControlSurface",
|
|
8127
|
-
"module": "/src/
|
|
8127
|
+
"module": "/src/shared/mixin-control-surface/mixin-control-surface.js"
|
|
8128
8128
|
}
|
|
8129
8129
|
],
|
|
8130
8130
|
"superclass": {
|
|
@@ -21761,7 +21761,7 @@
|
|
|
21761
21761
|
"reflects": true,
|
|
21762
21762
|
"inheritedFrom": {
|
|
21763
21763
|
"name": "MixinControlSurface",
|
|
21764
|
-
"module": "src/
|
|
21764
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
21765
21765
|
}
|
|
21766
21766
|
},
|
|
21767
21767
|
{
|
|
@@ -21775,7 +21775,7 @@
|
|
|
21775
21775
|
"reflects": true,
|
|
21776
21776
|
"inheritedFrom": {
|
|
21777
21777
|
"name": "MixinControlSurface",
|
|
21778
|
-
"module": "src/
|
|
21778
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
21779
21779
|
}
|
|
21780
21780
|
},
|
|
21781
21781
|
{
|
|
@@ -22503,7 +22503,7 @@
|
|
|
22503
22503
|
"mixins": [
|
|
22504
22504
|
{
|
|
22505
22505
|
"name": "MixinControlSurface",
|
|
22506
|
-
"module": "/src/
|
|
22506
|
+
"module": "/src/shared/mixin-control-surface/mixin-control-surface.js"
|
|
22507
22507
|
}
|
|
22508
22508
|
],
|
|
22509
22509
|
"superclass": {
|
|
@@ -22543,7 +22543,7 @@
|
|
|
22543
22543
|
"fieldName": "emphasis",
|
|
22544
22544
|
"inheritedFrom": {
|
|
22545
22545
|
"name": "MixinControlSurface",
|
|
22546
|
-
"module": "src/
|
|
22546
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
22547
22547
|
}
|
|
22548
22548
|
},
|
|
22549
22549
|
{
|
|
@@ -22555,7 +22555,7 @@
|
|
|
22555
22555
|
"fieldName": "tone",
|
|
22556
22556
|
"inheritedFrom": {
|
|
22557
22557
|
"name": "MixinControlSurface",
|
|
22558
|
-
"module": "src/
|
|
22558
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
22559
22559
|
}
|
|
22560
22560
|
},
|
|
22561
22561
|
{
|
|
@@ -36737,7 +36737,7 @@
|
|
|
36737
36737
|
"reflects": true,
|
|
36738
36738
|
"inheritedFrom": {
|
|
36739
36739
|
"name": "MixinControlSurface",
|
|
36740
|
-
"module": "src/
|
|
36740
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
36741
36741
|
}
|
|
36742
36742
|
},
|
|
36743
36743
|
{
|
|
@@ -36751,7 +36751,7 @@
|
|
|
36751
36751
|
"reflects": true,
|
|
36752
36752
|
"inheritedFrom": {
|
|
36753
36753
|
"name": "MixinControlSurface",
|
|
36754
|
-
"module": "src/
|
|
36754
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
36755
36755
|
}
|
|
36756
36756
|
},
|
|
36757
36757
|
{
|
|
@@ -37377,7 +37377,7 @@
|
|
|
37377
37377
|
"fieldName": "emphasis",
|
|
37378
37378
|
"inheritedFrom": {
|
|
37379
37379
|
"name": "MixinControlSurface",
|
|
37380
|
-
"module": "src/
|
|
37380
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
37381
37381
|
}
|
|
37382
37382
|
},
|
|
37383
37383
|
{
|
|
@@ -37389,7 +37389,7 @@
|
|
|
37389
37389
|
"fieldName": "tone",
|
|
37390
37390
|
"inheritedFrom": {
|
|
37391
37391
|
"name": "MixinControlSurface",
|
|
37392
|
-
"module": "src/
|
|
37392
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
37393
37393
|
}
|
|
37394
37394
|
},
|
|
37395
37395
|
{
|
|
@@ -37552,7 +37552,7 @@
|
|
|
37552
37552
|
"mixins": [
|
|
37553
37553
|
{
|
|
37554
37554
|
"name": "MixinControlSurface",
|
|
37555
|
-
"module": "/src/
|
|
37555
|
+
"module": "/src/shared/mixin-control-surface/mixin-control-surface.js"
|
|
37556
37556
|
}
|
|
37557
37557
|
],
|
|
37558
37558
|
"superclass": {
|
|
@@ -49853,107 +49853,6 @@
|
|
|
49853
49853
|
}
|
|
49854
49854
|
]
|
|
49855
49855
|
},
|
|
49856
|
-
{
|
|
49857
|
-
"kind": "javascript-module",
|
|
49858
|
-
"path": "src/mixins/mixin-control-surface/mixin-control-surface.ts",
|
|
49859
|
-
"declarations": [
|
|
49860
|
-
{
|
|
49861
|
-
"kind": "class",
|
|
49862
|
-
"description": "How much ink a control claims and what it means, for the three that are buttons.\n\n**It belongs here rather than in `core`.**\n`helix/core` is consumed by the headless tier, which must never take styling,\nand these two properties are purely presentational: they carry no behavior,\nno ARIA and no form participation, only which rules a stylesheet applies.\nDeclaring them in core would put a treatment on the tier whose whole purpose\nis not having one.\n\n**Why a mixin rather than inheritance.** `Button`, `IconButton` and\n`CopyButton` all want this pair, and the styled tier cannot get it by\nextending: each styled class extends its own base, which is what keeps a\ncontrol's behavior and its presentation in one branch. `CopyButton` already\ncomposes `IconButton`'s stylesheet, `[HelixIconButton.styles, styles]`, which\nis the same move for CSS; this is that move for API. Redeclared instead, the\nthree drift the first time one gains a value.",
|
|
49863
|
-
"name": "MixinControlSurfaceInterface",
|
|
49864
|
-
"members": [
|
|
49865
|
-
{
|
|
49866
|
-
"kind": "field",
|
|
49867
|
-
"name": "emphasis",
|
|
49868
|
-
"type": {
|
|
49869
|
-
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
49870
|
-
},
|
|
49871
|
-
"description": "How filled it is drawn. Absent is the control's own resting treatment."
|
|
49872
|
-
},
|
|
49873
|
-
{
|
|
49874
|
-
"kind": "field",
|
|
49875
|
-
"name": "tone",
|
|
49876
|
-
"type": {
|
|
49877
|
-
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
49878
|
-
},
|
|
49879
|
-
"description": "What it means. Absent is `neutral`, which is the resting case."
|
|
49880
|
-
}
|
|
49881
|
-
],
|
|
49882
|
-
"helix": {}
|
|
49883
|
-
},
|
|
49884
|
-
{
|
|
49885
|
-
"kind": "mixin",
|
|
49886
|
-
"description": "",
|
|
49887
|
-
"name": "MixinControlSurface",
|
|
49888
|
-
"members": [
|
|
49889
|
-
{
|
|
49890
|
-
"kind": "field",
|
|
49891
|
-
"name": "emphasis",
|
|
49892
|
-
"type": {
|
|
49893
|
-
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
49894
|
-
},
|
|
49895
|
-
"description": "How filled it is drawn.\n\nNot `separation`: a Card's `outlined` says where a surface ends, and this\none says how much ink a control claims. One word cannot say both.\n\nReflected because the stylesheet selects on it, and undefaulted because\nit reflects: a reflected property with a default writes its attribute\nonto every host anybody renders. The resting treatment is the attribute's\nabsence, which each control names for itself, `outlined` on `Button` and\n`ghost` on `IconButton`.",
|
|
49896
|
-
"attribute": "emphasis",
|
|
49897
|
-
"reflects": true
|
|
49898
|
-
},
|
|
49899
|
-
{
|
|
49900
|
-
"kind": "field",
|
|
49901
|
-
"name": "tone",
|
|
49902
|
-
"type": {
|
|
49903
|
-
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
49904
|
-
},
|
|
49905
|
-
"description": "What it means.\n\nThree and an accent, not the full status set. A tag reports a state and a\nbutton performs an action: a success button and a warning button are not\nthings anybody writes, and offering them invites a page where the color\nof a control means nothing in particular. `accent` is the second\nemphasis, a rotation off the brand seed rather than a color of its own,\nso it stays in relation when somebody rethemes.",
|
|
49906
|
-
"attribute": "tone",
|
|
49907
|
-
"reflects": true
|
|
49908
|
-
}
|
|
49909
|
-
],
|
|
49910
|
-
"attributes": [
|
|
49911
|
-
{
|
|
49912
|
-
"name": "emphasis",
|
|
49913
|
-
"type": {
|
|
49914
|
-
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
49915
|
-
},
|
|
49916
|
-
"description": "How filled it is drawn.\n\nNot `separation`: a Card's `outlined` says where a surface ends, and this\none says how much ink a control claims. One word cannot say both.\n\nReflected because the stylesheet selects on it, and undefaulted because\nit reflects: a reflected property with a default writes its attribute\nonto every host anybody renders. The resting treatment is the attribute's\nabsence, which each control names for itself, `outlined` on `Button` and\n`ghost` on `IconButton`.",
|
|
49917
|
-
"fieldName": "emphasis"
|
|
49918
|
-
},
|
|
49919
|
-
{
|
|
49920
|
-
"name": "tone",
|
|
49921
|
-
"type": {
|
|
49922
|
-
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
49923
|
-
},
|
|
49924
|
-
"description": "What it means.\n\nThree and an accent, not the full status set. A tag reports a state and a\nbutton performs an action: a success button and a warning button are not\nthings anybody writes, and offering them invites a page where the color\nof a control means nothing in particular. `accent` is the second\nemphasis, a rotation off the brand seed rather than a color of its own,\nso it stays in relation when somebody rethemes.",
|
|
49925
|
-
"fieldName": "tone"
|
|
49926
|
-
}
|
|
49927
|
-
],
|
|
49928
|
-
"parameters": [
|
|
49929
|
-
{
|
|
49930
|
-
"name": "Base",
|
|
49931
|
-
"type": {
|
|
49932
|
-
"text": "T"
|
|
49933
|
-
}
|
|
49934
|
-
}
|
|
49935
|
-
]
|
|
49936
|
-
}
|
|
49937
|
-
],
|
|
49938
|
-
"exports": [
|
|
49939
|
-
{
|
|
49940
|
-
"kind": "js",
|
|
49941
|
-
"name": "MixinControlSurfaceInterface",
|
|
49942
|
-
"declaration": {
|
|
49943
|
-
"name": "MixinControlSurfaceInterface",
|
|
49944
|
-
"module": "src/mixins/mixin-control-surface/mixin-control-surface.ts"
|
|
49945
|
-
}
|
|
49946
|
-
},
|
|
49947
|
-
{
|
|
49948
|
-
"kind": "js",
|
|
49949
|
-
"name": "MixinControlSurface",
|
|
49950
|
-
"declaration": {
|
|
49951
|
-
"name": "MixinControlSurface",
|
|
49952
|
-
"module": "src/mixins/mixin-control-surface/mixin-control-surface.ts"
|
|
49953
|
-
}
|
|
49954
|
-
}
|
|
49955
|
-
]
|
|
49956
|
-
},
|
|
49957
49856
|
{
|
|
49958
49857
|
"kind": "javascript-module",
|
|
49959
49858
|
"path": "src/navigation/index.ts",
|
|
@@ -64090,7 +63989,7 @@
|
|
|
64090
63989
|
"declarations": [
|
|
64091
63990
|
{
|
|
64092
63991
|
"kind": "class",
|
|
64093
|
-
"description": "A sandboxed `<iframe>` pointed at `src`,
|
|
63992
|
+
"description": "A sandboxed `<iframe>` pointed at `src`, a document the consumer provides.\nThat document imports whatever the examples need, listens for a render\nmessage, and writes the markup into itself.\n\n**A frame rather than the page.** Rendering into the page meant an example\nwas styled by whatever surrounded it: an example restyling `helix-card`\nrestyled the sandbox too, a script ran against the real document, and a stray\n`position: fixed` escaped the pane. The cost is that the frame starts empty,\na document having its own stylesheets and a window its own registry, so `src`\nhas to load them.\n\n**The source is not trusted, and the frame is what makes that safe.**\n`sandbox=\"allow-scripts\"` and never `allow-same-origin`: the two together are\nthe same as no sandbox at all, a document on its own origin being able to\nreach up and remove the attribute.",
|
|
64094
63993
|
"name": "HelixSandboxPreview",
|
|
64095
63994
|
"cssParts": [
|
|
64096
63995
|
{
|
|
@@ -64569,7 +64468,7 @@
|
|
|
64569
64468
|
"declarations": [
|
|
64570
64469
|
{
|
|
64571
64470
|
"kind": "class",
|
|
64572
|
-
"description": "Coordination is by event
|
|
64471
|
+
"description": "Coordination is by event: a source pane dispatches `helix-before-edit`, which\nbubbles, and the sandbox hands the value to whatever preview is slotted into\nit. Neither child knows the other exists, so either can be replaced or used\nalone.\n\nThe event carries the pane's `name`, which is what lets one sandbox hold\nseveral panes: `html` is the preview's markup and `css` its stylesheet. A\npane named anything else is showing something rather than driving it, and is\nignored.\n\n**The dividers are two nested `helix-splitter`s**, not a grid this element\ndrags itself, so the pointer handling, the keyboard handling and the corner\nare all the splitter's. The panes are the inner splitter and the panel is the\nouter one, which is the order that makes the panel span the full width.",
|
|
64573
64472
|
"name": "HelixSandbox",
|
|
64574
64473
|
"cssProperties": [
|
|
64575
64474
|
{
|
|
@@ -68888,6 +68787,107 @@
|
|
|
68888
68787
|
}
|
|
68889
68788
|
]
|
|
68890
68789
|
},
|
|
68790
|
+
{
|
|
68791
|
+
"kind": "javascript-module",
|
|
68792
|
+
"path": "src/shared/mixin-control-surface/mixin-control-surface.ts",
|
|
68793
|
+
"declarations": [
|
|
68794
|
+
{
|
|
68795
|
+
"kind": "class",
|
|
68796
|
+
"description": "How much ink a control claims and what it means, for the three that are buttons.\n\n**It belongs here rather than in `core`.**\n`helix/core` is consumed by the headless tier, which must never take styling,\nand these two properties are purely presentational: they carry no behavior,\nno ARIA and no form participation, only which rules a stylesheet applies.\nDeclaring them in core would put a treatment on the tier whose whole purpose\nis not having one.\n\n**Why a mixin rather than inheritance.** `Button`, `IconButton` and\n`CopyButton` all want this pair, and the styled tier cannot get it by\nextending: each styled class extends its own base, which is what keeps a\ncontrol's behavior and its presentation in one branch. `CopyButton` already\ncomposes `IconButton`'s stylesheet, `[HelixIconButton.styles, styles]`, which\nis the same move for CSS; this is that move for API. Redeclared instead, the\nthree drift the first time one gains a value.",
|
|
68797
|
+
"name": "MixinControlSurfaceInterface",
|
|
68798
|
+
"members": [
|
|
68799
|
+
{
|
|
68800
|
+
"kind": "field",
|
|
68801
|
+
"name": "emphasis",
|
|
68802
|
+
"type": {
|
|
68803
|
+
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
68804
|
+
},
|
|
68805
|
+
"description": "How filled it is drawn. Absent is the control's own resting treatment."
|
|
68806
|
+
},
|
|
68807
|
+
{
|
|
68808
|
+
"kind": "field",
|
|
68809
|
+
"name": "tone",
|
|
68810
|
+
"type": {
|
|
68811
|
+
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
68812
|
+
},
|
|
68813
|
+
"description": "What it means. Absent is `neutral`, which is the resting case."
|
|
68814
|
+
}
|
|
68815
|
+
],
|
|
68816
|
+
"helix": {}
|
|
68817
|
+
},
|
|
68818
|
+
{
|
|
68819
|
+
"kind": "mixin",
|
|
68820
|
+
"description": "",
|
|
68821
|
+
"name": "MixinControlSurface",
|
|
68822
|
+
"members": [
|
|
68823
|
+
{
|
|
68824
|
+
"kind": "field",
|
|
68825
|
+
"name": "emphasis",
|
|
68826
|
+
"type": {
|
|
68827
|
+
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
68828
|
+
},
|
|
68829
|
+
"description": "How filled it is drawn.\n\nNot `separation`: a Card's `outlined` says where a surface ends, and this\none says how much ink a control claims. One word cannot say both.\n\nReflected because the stylesheet selects on it, and undefaulted because\nit reflects: a reflected property with a default writes its attribute\nonto every host anybody renders. The resting treatment is the attribute's\nabsence, which each control names for itself, `outlined` on `Button` and\n`ghost` on `IconButton`.",
|
|
68830
|
+
"attribute": "emphasis",
|
|
68831
|
+
"reflects": true
|
|
68832
|
+
},
|
|
68833
|
+
{
|
|
68834
|
+
"kind": "field",
|
|
68835
|
+
"name": "tone",
|
|
68836
|
+
"type": {
|
|
68837
|
+
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
68838
|
+
},
|
|
68839
|
+
"description": "What it means.\n\nThree and an accent, not the full status set. A tag reports a state and a\nbutton performs an action: a success button and a warning button are not\nthings anybody writes, and offering them invites a page where the color\nof a control means nothing in particular. `accent` is the second\nemphasis, a rotation off the brand seed rather than a color of its own,\nso it stays in relation when somebody rethemes.",
|
|
68840
|
+
"attribute": "tone",
|
|
68841
|
+
"reflects": true
|
|
68842
|
+
}
|
|
68843
|
+
],
|
|
68844
|
+
"attributes": [
|
|
68845
|
+
{
|
|
68846
|
+
"name": "emphasis",
|
|
68847
|
+
"type": {
|
|
68848
|
+
"text": "'ghost' | 'outlined' | 'solid' | 'subtle' | undefined"
|
|
68849
|
+
},
|
|
68850
|
+
"description": "How filled it is drawn.\n\nNot `separation`: a Card's `outlined` says where a surface ends, and this\none says how much ink a control claims. One word cannot say both.\n\nReflected because the stylesheet selects on it, and undefaulted because\nit reflects: a reflected property with a default writes its attribute\nonto every host anybody renders. The resting treatment is the attribute's\nabsence, which each control names for itself, `outlined` on `Button` and\n`ghost` on `IconButton`.",
|
|
68851
|
+
"fieldName": "emphasis"
|
|
68852
|
+
},
|
|
68853
|
+
{
|
|
68854
|
+
"name": "tone",
|
|
68855
|
+
"type": {
|
|
68856
|
+
"text": "'accent' | 'danger' | 'neutral' | 'primary' | undefined"
|
|
68857
|
+
},
|
|
68858
|
+
"description": "What it means.\n\nThree and an accent, not the full status set. A tag reports a state and a\nbutton performs an action: a success button and a warning button are not\nthings anybody writes, and offering them invites a page where the color\nof a control means nothing in particular. `accent` is the second\nemphasis, a rotation off the brand seed rather than a color of its own,\nso it stays in relation when somebody rethemes.",
|
|
68859
|
+
"fieldName": "tone"
|
|
68860
|
+
}
|
|
68861
|
+
],
|
|
68862
|
+
"parameters": [
|
|
68863
|
+
{
|
|
68864
|
+
"name": "Base",
|
|
68865
|
+
"type": {
|
|
68866
|
+
"text": "T"
|
|
68867
|
+
}
|
|
68868
|
+
}
|
|
68869
|
+
]
|
|
68870
|
+
}
|
|
68871
|
+
],
|
|
68872
|
+
"exports": [
|
|
68873
|
+
{
|
|
68874
|
+
"kind": "js",
|
|
68875
|
+
"name": "MixinControlSurfaceInterface",
|
|
68876
|
+
"declaration": {
|
|
68877
|
+
"name": "MixinControlSurfaceInterface",
|
|
68878
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
68879
|
+
}
|
|
68880
|
+
},
|
|
68881
|
+
{
|
|
68882
|
+
"kind": "js",
|
|
68883
|
+
"name": "MixinControlSurface",
|
|
68884
|
+
"declaration": {
|
|
68885
|
+
"name": "MixinControlSurface",
|
|
68886
|
+
"module": "src/shared/mixin-control-surface/mixin-control-surface.ts"
|
|
68887
|
+
}
|
|
68888
|
+
}
|
|
68889
|
+
]
|
|
68890
|
+
},
|
|
68891
68891
|
{
|
|
68892
68892
|
"kind": "javascript-module",
|
|
68893
68893
|
"path": "src/skeleton/index.ts",
|
|
@@ -5,43 +5,22 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
7
|
* One fragment shader over a full-screen triangle, with the palette read from
|
|
8
|
-
* the tokens rather than given as colors.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* against `--helix-color-primary` is a consequence of it.
|
|
8
|
+
* the tokens rather than given as colors. A background written with hex values
|
|
9
|
+
* is an asset that has to be re-cut when the brand moves; one written against
|
|
10
|
+
* `--helix-color-primary` is a consequence of it.
|
|
12
11
|
*
|
|
13
12
|
* **Every shape ramps through four token stops**, and the token layer inverts
|
|
14
|
-
* each
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* ground's own luminance, which the shader already has.
|
|
13
|
+
* each: the page's background, `primary-subtle`, `primary`, then a peak. The
|
|
14
|
+
* peak is the foreground on a dark page and `primary-active` on a light one,
|
|
15
|
+
* because mixing a saturated hue toward near-black takes the chroma out of the
|
|
16
|
+
* pixels carrying most of it. Which way the page runs is read off the ground's
|
|
17
|
+
* own luminance rather than asked of the mode, which is a private token.
|
|
20
18
|
*
|
|
21
19
|
* **No dependency, and no scene graph.** The geometry is three vertices derived
|
|
22
|
-
* from `gl_VertexID`, so there is no attribute, no buffer and no upload.
|
|
23
|
-
* common implementations of this reach for a 3D library to draw one quad, which
|
|
24
|
-
* is a camera and a material system for four vertices that never move.
|
|
20
|
+
* from `gl_VertexID`, so there is no attribute, no buffer and no upload.
|
|
25
21
|
*
|
|
26
22
|
* **It stops when nobody is looking**, off screen and in a background tab, and
|
|
27
|
-
* `prefers-reduced-motion` gets one still frame rather than an empty box
|
|
28
|
-
* composition is the point and the drift is a garnish.
|
|
29
|
-
*
|
|
30
|
-
* **A layer over an interactive aura has to let the pointer through.** The
|
|
31
|
-
* element is hit-testable only when `interactive` is set, because a background
|
|
32
|
-
* that swallows clicks is worse than one that does nothing, but a scrim or an
|
|
33
|
-
* overlay a consumer paints on top will absorb the move before it arrives. Any
|
|
34
|
-
* decorative layer above this wants `pointer-events: none`. It has already
|
|
35
|
-
* caught this repository's own bench once.
|
|
36
|
-
*
|
|
37
|
-
* **The fallback needs no detection.** Where WebGL is refused the canvas never
|
|
38
|
-
* paints and is transparent, and the host carries a gradient of the same tokens
|
|
39
|
-
* underneath. Nothing has to ask whether it worked.
|
|
40
|
-
*
|
|
41
|
-
* Presentation only, so there is no headless tier: the split exists to keep
|
|
42
|
-
* behavior separate from styling, and there is no structure or semantics here
|
|
43
|
-
* to separate. Decorative, so the host is hidden from assistive technology and
|
|
44
|
-
* takes no pointer events.
|
|
23
|
+
* `prefers-reduced-motion` gets one still frame rather than an empty box.
|
|
45
24
|
*
|
|
46
25
|
* @since 0.1.0
|
|
47
26
|
* @status experimental
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
position: relative;
|
|
5
|
-
vertical-align: middle;
|
|
6
3
|
|
|
7
4
|
--_badge-size: var(--helix-size-badge);
|
|
8
5
|
--_badge-text: var(--helix-text-xs);
|
|
9
6
|
--_badge-inset: var(--helix-space-2xs);
|
|
10
7
|
--_badge-dot: var(--helix-space-xs);
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
position: relative;
|
|
10
|
+
vertical-align: middle;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
[part="indicator"] {
|
|
@@ -25,11 +25,10 @@ vector-effect: non-scaling-stroke;
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
[part="bar"] {
|
|
28
|
-
clip-path: inset(var(--_bar-chart-foot, 0) round var(--_bar-chart-corners));
|
|
29
|
-
fill: var(--_bar-chart-series);
|
|
30
|
-
|
|
31
28
|
--_bar-chart-corners: var(--bar-chart-bar-radius, 2px) var(--bar-chart-bar-radius, 2px) 0 0;
|
|
32
29
|
--_bar-chart-base: 0 0 calc(var(--bar-chart-bar-stroke, var(--helix-border-thick)) / 2) 0;
|
|
30
|
+
clip-path: inset(var(--_bar-chart-foot, 0) round var(--_bar-chart-corners));
|
|
31
|
+
fill: var(--_bar-chart-series);
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
:host([direction="horizontal"]) [part="bar"] {
|
|
@@ -373,23 +372,22 @@ stroke-opacity: var(--_bar-chart-through, 1);
|
|
|
373
372
|
|
|
374
373
|
[part="bar"][data-emphasis="outlined"],
|
|
375
374
|
:host([emphasis="outlined"]) [part="bar"]:not([data-emphasis]) {
|
|
375
|
+
|
|
376
|
+
--_bar-chart-foot: var(--_bar-chart-base);
|
|
376
377
|
fill: var(--_bar-chart-shade);
|
|
377
378
|
stroke: var(--_bar-chart-series);
|
|
378
379
|
stroke-width: var(--bar-chart-bar-stroke, var(--helix-border-thick));
|
|
379
380
|
vector-effect: non-scaling-stroke;
|
|
380
|
-
|
|
381
|
-
--_bar-chart-foot: var(--_bar-chart-base);
|
|
382
381
|
}
|
|
383
382
|
|
|
384
383
|
[part="bar"][data-emphasis="subtle"],
|
|
385
384
|
:host([emphasis="subtle"]) [part="bar"]:not([data-emphasis]) {
|
|
386
|
-
stroke: var(--_bar-chart-series);
|
|
387
|
-
stroke-width: var(--bar-chart-bar-stroke, var(--helix-border-thick));
|
|
388
|
-
vector-effect: non-scaling-stroke;
|
|
389
|
-
|
|
390
385
|
--_bar-chart-area: 0.2;
|
|
391
386
|
|
|
392
387
|
--_bar-chart-foot: var(--_bar-chart-base);
|
|
388
|
+
stroke: var(--_bar-chart-series);
|
|
389
|
+
stroke-width: var(--bar-chart-bar-stroke, var(--helix-border-thick));
|
|
390
|
+
vector-effect: non-scaling-stroke;
|
|
393
391
|
}
|
|
394
392
|
|
|
395
393
|
[part="bar"] {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HelixHeadlessButton } from '@fusion.dev/helix-headless/button';
|
|
2
2
|
import type { CSSResultGroup } from 'lit';
|
|
3
|
-
declare const HelixButton_base: (new (...args: any[]) => import("../../
|
|
3
|
+
declare const HelixButton_base: (new (...args: any[]) => import("../../shared/mixin-control-surface/mixin-control-surface.js").MixinControlSurfaceInterface) & typeof HelixHeadlessButton;
|
|
4
4
|
/**
|
|
5
5
|
* @summary Triggers an action, submits a form, or navigates.
|
|
6
6
|
*
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessButton } from '@fusion.dev/helix-headless/button';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
|
-
import { MixinControlSurface } from '../../
|
|
10
|
+
import { MixinControlSurface } from '../../shared/mixin-control-surface/mixin-control-surface.js';
|
|
11
11
|
import { styles } from './button-root.css.js';
|
|
12
12
|
let HelixButton = class HelixButton extends MixinControlSurface(HelixHeadlessButton) {
|
|
13
13
|
static { this.styles = styles; }
|
|
@@ -21,12 +21,12 @@ flex-direction: column;
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:first-child)) {
|
|
24
|
-
margin-block-start: calc(var(--helix-border-thin) * -1);
|
|
25
|
-
|
|
26
|
-
margin-inline-start: 0;
|
|
27
24
|
--button-radius-start-start: 0;
|
|
28
25
|
--button-radius-start-end: 0;
|
|
29
26
|
--button-radius-start: var(--button-radius, var(--helix-radii-sm));
|
|
27
|
+
margin-block-start: calc(var(--helix-border-thin) * -1);
|
|
28
|
+
|
|
29
|
+
margin-inline-start: 0;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:last-child)) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
--_callout-color: var(--helix-color-info);
|
|
3
4
|
|
|
4
5
|
font-size: var(--helix-text-sm);
|
|
5
6
|
background-color: var(
|
|
@@ -16,8 +17,6 @@ gap: var(--helix-space-sm);
|
|
|
16
17
|
|
|
17
18
|
padding: var(--helix-space-md);
|
|
18
19
|
padding-inline-start: calc(var(--helix-space-md) + var(--helix-border-thick));
|
|
19
|
-
|
|
20
|
-
--_callout-color: var(--helix-color-info);
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
:host::before {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
+
|
|
4
|
+
--_card-inset: var(--card-padding, var(--helix-space-control));
|
|
5
|
+
|
|
6
|
+
--_card-media: var(--card-media-size, 12rem);
|
|
3
7
|
background-color: var(--card-background-color, var(--helix-color-surface));
|
|
4
8
|
border: var(--card-border-width, var(--helix-border-surface)) solid
|
|
5
9
|
var(--card-border-color, var(--helix-color-border));
|
|
@@ -20,22 +24,16 @@ padding: var(--_card-inset);
|
|
|
20
24
|
transition:
|
|
21
25
|
border-color var(--helix-duration-fast) var(--helix-easing-standard),
|
|
22
26
|
box-shadow var(--helix-duration-fast) var(--helix-easing-standard);
|
|
23
|
-
|
|
24
|
-
--_card-inset: var(--card-padding, var(--helix-space-control));
|
|
25
|
-
|
|
26
|
-
--_card-media: var(--card-media-size, 12rem);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
:host([separation="elevated"]) {
|
|
30
|
-
border-color: light-dark(transparent, var(--helix-color-border));
|
|
31
|
-
|
|
32
30
|
--card-shadow: var(--helix-shadow-md);
|
|
31
|
+
border-color: light-dark(transparent, var(--helix-color-border));
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
:host([separation="filled"]) {
|
|
36
|
-
border-color: transparent;
|
|
37
|
-
|
|
38
35
|
--card-shadow: none;
|
|
36
|
+
border-color: transparent;
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
:host([separation="plain"]) {
|
|
@@ -238,6 +238,8 @@ var(--_carousel-per-view)
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
[part="indicator"] {
|
|
241
|
+
|
|
242
|
+
--_carousel-indicator-motion: var(--helix-duration-slow) var(--helix-easing-emphasized);
|
|
241
243
|
all: unset;
|
|
242
244
|
background-color: var(--helix-color-border);
|
|
243
245
|
block-size: var(--helix-space-xs);
|
|
@@ -248,8 +250,6 @@ inline-size: var(--helix-space-xs);
|
|
|
248
250
|
transition:
|
|
249
251
|
background-color var(--_carousel-indicator-motion),
|
|
250
252
|
inline-size var(--_carousel-indicator-motion);
|
|
251
|
-
|
|
252
|
-
--_carousel-indicator-motion: var(--helix-duration-slow) var(--helix-easing-emphasized);
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
[part="indicator"][data-current] {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
gap: var(--helix-space-2xs);
|
|
6
|
-
|
|
7
3
|
--_checkbox-size: var(--checkbox-size, var(--helix-size-checkbox));
|
|
8
4
|
|
|
9
5
|
--_field-control-inline-size: var(--_checkbox-size);
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
gap: var(--helix-space-2xs);
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
[part="field"] {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HelixHeadlessCopyButton } from '@fusion.dev/helix-headless/copy-button';
|
|
2
2
|
import type { CSSResultGroup } from 'lit';
|
|
3
3
|
import '../../tooltip/index.js';
|
|
4
|
-
declare const HelixCopyButton_base: (new (...args: any[]) => import("../../
|
|
4
|
+
declare const HelixCopyButton_base: (new (...args: any[]) => import("../../shared/mixin-control-surface/mixin-control-surface.js").MixinControlSurfaceInterface) & typeof HelixHeadlessCopyButton;
|
|
5
5
|
/**
|
|
6
6
|
* @summary A button that puts a string on the clipboard and says it did.
|
|
7
7
|
*
|