@fusion.dev/helix 0.146.0 → 0.148.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/custom-elements.json +10225 -1400
- package/dist/accordion/item/accordion-item.css.js +4 -96
- package/dist/accordion/root/accordion-root.css.js +2 -28
- package/dist/announcement/root/announcement-root.css.js +10 -154
- package/dist/announcement/root/announcement-root.d.ts +3 -0
- package/dist/app-header/root/app-header-root.css.js +2 -118
- package/dist/area-chart/root/area-chart-root.css.js +4 -94
- package/dist/area-chart/root/area-chart-root.d.ts +1 -0
- package/dist/aura/root/aura-root.css.js +2 -57
- package/dist/avatar/group/avatar-group.css.js +5 -36
- package/dist/avatar/group/avatar-group.d.ts +3 -0
- package/dist/avatar/root/avatar-root.css.js +1 -53
- package/dist/avatar/root/avatar-root.d.ts +2 -0
- package/dist/badge/root/badge-root.css.js +12 -207
- package/dist/badge/root/badge-root.d.ts +2 -0
- package/dist/bar-chart/root/bar-chart-root.css.js +8 -292
- package/dist/blockquote/root/blockquote-root.css.js +1 -43
- package/dist/blockquote/root/blockquote-root.d.ts +8 -2
- package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
- package/dist/breadcrumbs/root/breadcrumbs-root.css.js +5 -42
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +17 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
- package/dist/button/root/button-root.css.js +16 -197
- package/dist/button/root/button-root.d.ts +1 -0
- package/dist/button-group/root/button-group-root.css.js +11 -52
- package/dist/button-group/root/button-group-root.d.ts +29 -7
- package/dist/button-group/root/button-group-root.js +19 -0
- package/dist/callout/root/callout-root.css.js +5 -138
- package/dist/callout/root/callout-root.d.ts +4 -2
- package/dist/canvas/node/canvas-node.css.js +10 -367
- package/dist/canvas/node/canvas-node.d.ts +5 -0
- package/dist/canvas/root/canvas-root.css.js +11 -270
- package/dist/canvas/root/canvas-root.d.ts +6 -0
- package/dist/card/root/card-root.css.js +5 -134
- package/dist/card/root/card-root.d.ts +4 -0
- package/dist/carousel/root/carousel-root.css.js +20 -386
- package/dist/chat/composer/chat-composer.css.js +4 -105
- package/dist/chat/message/chat-message.css.js +5 -239
- package/dist/chat/message/chat-message.d.ts +5 -0
- package/dist/chat/root/chat-root.css.js +5 -162
- package/dist/chat/typing.css.js +9 -46
- package/dist/checkbox/root/checkbox-root.css.js +12 -177
- package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
- package/dist/code/root/code-root.css.js +3 -25
- package/dist/code-block/root/code-block-root.css.js +22 -279
- package/dist/code-block/root/code-block-root.d.ts +7 -0
- package/dist/color-input/root/color-input-root.css.js +5 -114
- package/dist/color-picker/root/color-picker-root.css.js +39 -337
- package/dist/color-picker/root/color-picker-root.d.ts +2 -0
- package/dist/combobox/root/combobox-root.css.js +8 -147
- package/dist/combobox/root/combobox-root.js +2 -0
- package/dist/command/root/command-root.css.js +3 -74
- package/dist/copy-button/root/copy-button-root.css.js +3 -43
- package/dist/data-table/root/data-table-root.css.js +21 -245
- package/dist/data-table/root/data-table-root.d.ts +7 -0
- package/dist/date-input/root/date-input-root.css.js +8 -103
- package/dist/date-picker/root/date-picker-root.css.js +16 -278
- package/dist/date-picker/root/date-picker-root.d.ts +1 -0
- package/dist/description-list/item/description-list-item.css.js +1 -41
- package/dist/description-list/item/description-list-item.d.ts +8 -0
- package/dist/description-list/root/description-list-root.css.js +2 -34
- package/dist/description-list/root/description-list-root.d.ts +13 -0
- package/dist/description-list/root/description-list-root.js +7 -0
- package/dist/dialog/root/dialog-root.css.js +7 -221
- package/dist/dialog/root/dialog-root.d.ts +3 -0
- package/dist/divider/root/divider-root.css.js +5 -81
- package/dist/divider/root/divider-root.d.ts +3 -0
- package/dist/donut-chart/root/donut-chart-root.css.js +7 -193
- package/dist/drawer/root/drawer-root.css.js +11 -237
- package/dist/drilldown/item/drilldown-item.css.js +4 -51
- package/dist/drilldown/item/drilldown-item.d.ts +1 -0
- package/dist/drilldown/root/drilldown-root.css.js +6 -120
- package/dist/element-events.generated.js +5 -1
- package/dist/empty/root/empty-root.css.js +2 -42
- package/dist/file-input/root/file-input-root.css.js +7 -173
- package/dist/file-input/root/file-input-root.d.ts +4 -0
- package/dist/filter-input/chip/filter-chip.css.js +2 -84
- package/dist/filter-input/field/filter-field.css.js +1 -3
- package/dist/filter-input/menu/filter-menu.css.js +1 -3
- package/dist/filter-input/operator/filter-operator.css.js +1 -3
- package/dist/filter-input/root/filter-input-root.css.js +6 -113
- package/dist/flex/root/flex-root.css.js +4 -207
- package/dist/flex/root/flex-root.d.ts +2 -2
- package/dist/format-date/root/format-date-root.css.js +1 -13
- package/dist/format-date/root/format-date-root.d.ts +0 -1
- package/dist/format-date/root/format-date-root.js +0 -1
- package/dist/graph/root/graph-root.css.js +9 -444
- package/dist/grid/root/grid-root.css.js +1 -171
- package/dist/heatmap/root/heatmap-root.css.js +8 -156
- package/dist/heatmap/root/heatmap-root.d.ts +2 -0
- package/dist/icon/index.d.ts +1 -1
- package/dist/icon/root/icon-root.css.js +1 -18
- package/dist/icon/root/index.d.ts +1 -1
- package/dist/icon-button/root/icon-button-root.css.js +25 -203
- package/dist/icon-button/root/icon-button-root.d.ts +1 -0
- package/dist/image/root/image-root.css.js +7 -65
- package/dist/image/root/image-root.d.ts +3 -0
- package/dist/input/root/input-root.css.js +6 -79
- package/dist/kbd/root/kbd-root.css.js +2 -71
- package/dist/kbd/root/kbd-root.d.ts +7 -0
- package/dist/legend/root/legend-root.css.js +9 -106
- package/dist/legend/root/legend-root.d.ts +2 -0
- package/dist/lightbox/item/lightbox-item.css.js +1 -37
- package/dist/lightbox/root/lightbox-root.css.js +38 -183
- package/dist/line-chart/root/line-chart-root.css.js +4 -170
- package/dist/line-chart/root/line-chart-root.d.ts +1 -0
- package/dist/list/item/list-item.css.js +2 -94
- package/dist/list/root/list-root.css.js +4 -88
- package/dist/listbox/root/listbox-root.css.js +7 -111
- package/dist/listbox/root/listbox-root.d.ts +2 -0
- package/dist/listbox/root/listbox-root.js +1 -0
- package/dist/loader/root/loader-root.css.js +5 -171
- package/dist/map/area/map-area.css.js +1 -23
- package/dist/map/buildings/map-buildings.css.js +1 -26
- package/dist/map/contours/map-contours.css.js +2 -5
- package/dist/map/landcover/map-landcover.css.js +1 -4
- package/dist/map/marker/map-marker.css.js +14 -327
- package/dist/map/points/map-points.css.js +1 -86
- package/dist/map/position/map-position.css.js +8 -227
- package/dist/map/raster/map-raster.css.js +1 -3
- package/dist/map/root/map-root.css.js +14 -352
- package/dist/map/root/map-root.d.ts +10 -0
- package/dist/map/route/map-route.css.js +1 -24
- package/dist/map/terrain/map-terrain.css.js +3 -7
- package/dist/megamenu/root/megamenu-root.css.js +11 -162
- package/dist/megamenu/root/megamenu-root.d.ts +8 -0
- package/dist/menu/item/menu-item.css.js +7 -130
- package/dist/menu/root/menu-root.css.js +1 -110
- package/dist/menu/section/menu-section.css.js +1 -13
- package/dist/meter/root/meter-root.css.js +17 -207
- package/dist/meter/root/meter-root.d.ts +3 -0
- package/dist/navigation/root/navigation-root.css.js +2 -54
- package/dist/notifications/group/notification-group.css.js +1 -61
- package/dist/notifications/notification/notification.css.js +17 -264
- package/dist/notifications/root/notifications-root.css.js +7 -125
- package/dist/notifications/root/notifications-root.d.ts +7 -2
- package/dist/number-input/root/number-input-root.css.js +10 -103
- package/dist/object-inspector/root/object-inspector-root.css.js +11 -162
- package/dist/option/group/option-group.css.js +1 -22
- package/dist/option/index.d.ts +1 -0
- package/dist/option/index.js +1 -0
- package/dist/option/root/option-root.css.js +3 -85
- package/dist/option/separator/option-separator.css.d.ts +1 -0
- package/dist/option/separator/option-separator.css.js +3 -0
- package/dist/option/separator/option-separator.d.ts +26 -0
- package/dist/option/separator/option-separator.js +16 -0
- package/dist/orb/root/orb-root.css.js +1 -41
- package/dist/outline/root/outline-root.css.js +24 -122
- package/dist/outline/root/outline-root.d.ts +17 -4
- package/dist/pagination/root/pagination-root.css.js +9 -105
- package/dist/pagination/root/pagination-root.d.ts +14 -0
- package/dist/pagination/size/pagination-size.css.js +1 -22
- package/dist/pagination/size/pagination-size.d.ts +3 -0
- package/dist/pagination/summary/pagination-summary.css.js +1 -7
- package/dist/pagination/summary/pagination-summary.d.ts +3 -0
- package/dist/pin-input/root/pin-input-root.css.js +2 -73
- package/dist/pin-input/root/pin-input-root.d.ts +9 -3
- package/dist/popover/root/popover-root.css.js +6 -127
- package/dist/progress/root/progress-root.css.js +7 -230
- package/dist/progress/root/progress-root.d.ts +4 -0
- package/dist/qr-code/root/qr-code-root.css.js +1 -68
- package/dist/qr-code/root/qr-code-root.d.ts +3 -0
- package/dist/quote/root/quote-root.css.js +1 -20
- package/dist/radio/group/radio-group.css.js +1 -21
- package/dist/radio/root/radio-root.css.js +5 -208
- package/dist/rating/root/rating-root.css.js +4 -117
- package/dist/sandbox/frame.d.ts +2 -1
- package/dist/sandbox/frame.js +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
- package/dist/sandbox/preview/sandbox-preview.d.ts +27 -3
- package/dist/sandbox/preview/sandbox-preview.js +17 -11
- package/dist/sandbox/root/sandbox-root.css.js +3 -70
- package/dist/sandbox/root/sandbox-root.d.ts +16 -4
- package/dist/sandbox/root/sandbox-root.js +29 -50
- package/dist/sandbox/source/sandbox-source.css.js +3 -95
- package/dist/sandbox/source/sandbox-source.d.ts +31 -25
- package/dist/sandbox/source/sandbox-source.js +12 -5
- package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
- package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
- package/dist/sandbox/terminal/sandbox-terminal.d.ts +4 -0
- package/dist/sandbox/terminal/sandbox-terminal.js +2 -1
- package/dist/sandbox/tokens.d.ts +2 -2
- package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
- package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -146
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +1 -0
- package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
- package/dist/select/root/select-root.css.js +7 -124
- package/dist/select/root/select-root.js +2 -0
- package/dist/shared/chart/series.css.js +1 -36
- package/dist/shared/chart/terminus.css.js +1 -47
- package/dist/shared/chart/tooltip.css.js +1 -68
- package/dist/shared/collection/state.css.js +1 -9
- package/dist/shared/field/field-frame.css.js +3 -33
- package/dist/shared/field/field-inline.css.js +1 -4
- package/dist/shared/field/field-segments.css.js +1 -39
- package/dist/shared/field/field-stacked.css.js +1 -5
- package/dist/shared/field/field.css.js +3 -57
- package/dist/shared/floating/entrance.css.js +3 -34
- package/dist/shared/floating/panel.css.js +2 -17
- package/dist/shared/glyph/glyph.css.js +1 -5
- package/dist/shared/live/live.css.js +1 -8
- package/dist/shared/tags/tags.css.js +1 -39
- package/dist/shared/viewport/viewport.css.js +8 -135
- package/dist/skeleton/root/skeleton-root.css.js +12 -120
- package/dist/skip-link/root/skip-link-root.css.js +2 -47
- package/dist/slider/root/slider-root.css.js +19 -330
- package/dist/slider/root/slider-root.d.ts +2 -0
- package/dist/sparkline/root/sparkline-root.css.js +8 -143
- package/dist/sparkline/root/sparkline-root.d.ts +2 -0
- package/dist/speed-dial/group/speed-dial-group.css.d.ts +1 -0
- package/dist/speed-dial/group/speed-dial-group.css.js +2 -0
- package/dist/speed-dial/group/speed-dial-group.d.ts +27 -0
- package/dist/speed-dial/group/speed-dial-group.js +16 -0
- package/dist/speed-dial/index.d.ts +1 -0
- package/dist/speed-dial/index.js +1 -0
- package/dist/speed-dial/item/speed-dial-item.css.js +4 -73
- package/dist/speed-dial/item/speed-dial-item.d.ts +1 -0
- package/dist/speed-dial/root/speed-dial-root.css.js +3 -149
- package/dist/splitter/root/splitter-root.css.js +19 -176
- package/dist/splitter/root/splitter-root.d.ts +4 -0
- package/dist/stat/group/stat-group.css.js +1 -36
- package/dist/stat/root/stat-root.css.js +3 -62
- package/dist/steps/root/steps-root.css.js +7 -92
- package/dist/steps/step/step.css.js +5 -156
- package/dist/switch/root/switch-root.css.js +2 -110
- package/dist/table/cell/table-cell.css.js +1 -33
- package/dist/table/column/table-column.css.js +7 -105
- package/dist/table/root/table-root.css.js +1 -43
- package/dist/table/row/table-row.css.js +6 -18
- package/dist/table/row/table-row.d.ts +2 -0
- package/dist/tabs/panel/tab-panel.css.js +2 -17
- package/dist/tabs/root/tabs-root.css.js +6 -177
- package/dist/tabs/tab/tab.css.js +6 -54
- package/dist/tag/group/tag-group.css.js +1 -11
- package/dist/tag/root/tag-root.css.js +1 -166
- package/dist/tag/root/tag-root.d.ts +2 -0
- package/dist/text/root/text-root.css.js +11 -200
- package/dist/textarea/root/textarea-root.css.js +3 -71
- package/dist/time-input/root/time-input-root.css.js +7 -118
- package/dist/time-picker/root/time-picker-root.css.js +15 -134
- package/dist/time-picker/root/time-picker-root.d.ts +7 -0
- package/dist/timeline/group/timeline-group.css.js +1 -31
- package/dist/timeline/item/timeline-item.css.js +3 -134
- package/dist/timeline/root/timeline-root.css.js +1 -66
- package/dist/toast/item/toast-item.css.js +11 -250
- package/dist/toast/item/toast-item.d.ts +10 -0
- package/dist/toast/root/toast-root.css.js +1 -85
- package/dist/toast/root/toast-root.js +2 -1
- package/dist/toggle/group/toggle-group.css.js +7 -126
- package/dist/toggle/root/toggle-root.css.js +1 -23
- package/dist/toolbar/root/toolbar-root.css.js +1 -36
- package/dist/toolbar/root/toolbar-root.d.ts +11 -0
- package/dist/toolbar/root/toolbar-root.js +4 -0
- package/dist/tooltip/root/tooltip-root.css.js +5 -101
- package/dist/tooltip/root/tooltip-root.d.ts +2 -0
- package/dist/tour/root/tour-root.css.js +2 -28
- package/dist/tour/stop/tour-stop.css.js +2 -109
- package/dist/tree/item/tree-item.css.js +12 -238
- package/dist/tree/root/tree-root.css.js +1 -40
- package/dist/trend/root/trend-root.css.js +5 -53
- package/dist/video/root/video-root.css.js +16 -398
- package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
- package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
- package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
- package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
- package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
- package/dist/virtual-list/root/virtual-list-root.css.js +3 -40
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +4595 -777
- package/types/svelte.d.ts +2 -0
- package/types/vue.d.ts +1312 -210
|
@@ -1,44 +1,2 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {
|
|
3
|
-
display: block;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
[part="figure"] {
|
|
7
|
-
margin: var(--helix-space-none);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
[part="blockquote"] {
|
|
11
|
-
display: block;
|
|
12
|
-
margin: var(--helix-space-none);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
slot:not([name]) {
|
|
16
|
-
|
|
17
|
-
color: var(--blockquote-color, var(--helix-color-foreground-muted));
|
|
18
|
-
font-family: var(--blockquote-font-family, var(--helix-font-display));
|
|
19
|
-
font-size: var(--blockquote-size, var(--helix-text-xl));
|
|
20
|
-
font-weight: var(--blockquote-font-weight, var(--helix-weight-medium));
|
|
21
|
-
letter-spacing: var(--helix-tracking-tight);
|
|
22
|
-
line-height: var(--blockquote-line-height, var(--helix-leading-tight));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
slot:not([name])::slotted(*) {
|
|
26
|
-
margin: var(--helix-space-none);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
[part="attribution"] {
|
|
30
|
-
color: var(--blockquote-attribution-color, var(--helix-color-foreground-muted));
|
|
31
|
-
font-size: var(--blockquote-attribution-size, var(--helix-text-sm));
|
|
32
|
-
|
|
33
|
-
margin-block-start: var(--blockquote-gap, var(--helix-space-sm));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
[part="attribution"][data-empty] {
|
|
37
|
-
display: none;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@media print {
|
|
41
|
-
:host {
|
|
42
|
-
print-color-adjust: economy;
|
|
43
|
-
}
|
|
44
|
-
}`);
|
|
2
|
+
export const styles = createSheet(`:host {display: block;}[part="figure"] {margin: var(--helix-space-none);}[part="blockquote"] {display: block;margin: var(--helix-space-none);}:host([marks]) [part="blockquote"]::before {color: var(--blockquote-mark-color, var(--helix-color-foreground-subtle));content: open-quote / "";float: inline-start;font-family: var(--blockquote-font-family, var(--helix-font-display));font-size: var(--blockquote-mark-size, var(--helix-text-3xl));line-height: 1;margin-inline-end: var(--helix-space-xs);}:host([marks]) [part="blockquote"]::after {content: no-close-quote;}slot:not([name]) {color: var(--blockquote-color, var(--helix-color-foreground-muted));font-family: var(--blockquote-font-family, var(--helix-font-display));font-size: var(--blockquote-size, var(--helix-text-xl));font-weight: var(--blockquote-font-weight, var(--helix-weight-medium));letter-spacing: var(--blockquote-letter-spacing, var(--helix-tracking-tight));line-height: var(--blockquote-line-height, var(--helix-leading-tight));}slot:not([name])::slotted(*) {margin: var(--helix-space-none);}[part="attribution"] {color: var(--blockquote-attribution-color, var(--helix-color-foreground-muted));font-family: var(--blockquote-attribution-font-family, inherit);font-size: var(--blockquote-attribution-size, var(--helix-text-sm));font-weight: var(--blockquote-attribution-font-weight, inherit);margin-block-start: var(--blockquote-gap, var(--helix-space-sm));}[part="attribution"][data-empty] {display: none;}@media print {:host {print-color-adjust: economy;}}`);
|
|
@@ -5,8 +5,9 @@ import type { CSSResultGroup } from 'lit';
|
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
7
|
* Set in the display face, larger than body text, to mark a change of voice. No
|
|
8
|
-
* quotation marks are drawn, because the size and spacing already
|
|
9
|
-
* passage apart.
|
|
8
|
+
* quotation marks are drawn by default, because the size and spacing already
|
|
9
|
+
* set the passage apart. `marks` draws one large opening mark over the passage,
|
|
10
|
+
* as a pull quote sets it, in the element's language.
|
|
10
11
|
*
|
|
11
12
|
* @since 0.1.0
|
|
12
13
|
* @status stable
|
|
@@ -15,12 +16,17 @@ import type { CSSResultGroup } from 'lit';
|
|
|
15
16
|
* @documentation https://fusion.dev/helix/components/blockquote
|
|
16
17
|
*
|
|
17
18
|
* @cssproperty --blockquote-attribution-color - The color of the attribution.
|
|
19
|
+
* @cssproperty --blockquote-attribution-font-family - The typeface of the attribution, the page's by default.
|
|
20
|
+
* @cssproperty --blockquote-attribution-font-weight - The weight of the attribution, the page's by default.
|
|
18
21
|
* @cssproperty --blockquote-attribution-size - The font size of the attribution.
|
|
19
22
|
* @cssproperty --blockquote-color - The color of the quoted passage.
|
|
20
23
|
* @cssproperty --blockquote-font-family - The typeface of the quoted passage, the display face by default.
|
|
21
24
|
* @cssproperty --blockquote-font-weight - The weight of the quoted passage, medium by default.
|
|
22
25
|
* @cssproperty --blockquote-gap - The space between the passage and its attribution.
|
|
26
|
+
* @cssproperty --blockquote-letter-spacing - The letter spacing of the quoted passage, the tight tracking by default.
|
|
23
27
|
* @cssproperty --blockquote-line-height - The line height of the quoted passage, the tight leading by default.
|
|
28
|
+
* @cssproperty --blockquote-mark-color - The color of the mark `marks` draws, the subtle foreground by default.
|
|
29
|
+
* @cssproperty --blockquote-mark-size - The font size of the mark `marks` draws.
|
|
24
30
|
* @cssproperty --blockquote-size - The font size of the quoted passage.
|
|
25
31
|
*/
|
|
26
32
|
export declare class HelixBlockquote extends HelixHeadlessBlockquote {
|
|
@@ -1,107 +1,22 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {
|
|
3
|
-
|
|
4
|
-
--icon-button-size: var(
|
|
2
|
+
export const styles = createSheet(`:host {--icon-button-size: var(
|
|
5
3
|
--breadcrumbs-control-size,
|
|
6
4
|
calc(var(--helix-text-control) * var(--helix-leading-normal) + var(--helix-space-2xs) * 2)
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
--button-size: var(
|
|
5
|
+
);--button-size: var(
|
|
10
6
|
--breadcrumbs-control-size,
|
|
11
7
|
calc(var(--helix-text-control) * var(--helix-leading-normal) + var(--helix-space-2xs) * 2)
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
--button-padding-inline: var(--breadcrumbs-control-padding-inline, var(--helix-space-xs));
|
|
15
|
-
|
|
16
|
-
--button-gap: var(--helix-space-2xs);
|
|
17
|
-
|
|
18
|
-
align-items: center;
|
|
19
|
-
display: inline-flex;
|
|
20
|
-
gap: var(--breadcrumbs-gap, var(--helix-space-xs));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
[part="separator"] {
|
|
24
|
-
color: var(--breadcrumbs-separator-color, var(--helix-color-foreground-subtle));
|
|
25
|
-
display: block;
|
|
26
|
-
user-select: none;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
[part="separator"] svg {
|
|
30
|
-
block-size: 1em;
|
|
31
|
-
inline-size: 1em;
|
|
32
|
-
vertical-align: calc(0.5cap - 0.5em);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
:host(:first-child) [part="separator"] {
|
|
36
|
-
display: none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
::slotted(a) {
|
|
40
|
-
background-color: transparent;
|
|
41
|
-
border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));
|
|
42
|
-
padding: var(--helix-space-2xs) var(--helix-space-xs);
|
|
43
|
-
transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
:host(:first-child) ::slotted(a) {
|
|
47
|
-
margin-inline-start: calc(var(--helix-space-xs) * -1);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
::slotted(a:hover) {
|
|
51
|
-
|
|
52
|
-
background-color: var(
|
|
8
|
+
);--button-padding-inline: var(--breadcrumbs-control-padding-inline, var(--helix-space-xs));--button-gap: var(--helix-space-2xs);align-items: center;display: inline-flex;gap: var(--breadcrumbs-gap, var(--helix-space-xs));}[part="separator"] {color: var(--breadcrumbs-separator-color, var(--helix-color-foreground-subtle));display: block;user-select: none;}[part="separator"] svg {block-size: 1em;inline-size: 1em;vertical-align: calc(0.5cap - 0.5em);}:host(:first-child) [part="separator"] {display: none;}::slotted(a) {background-color: transparent;border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));padding: var(--helix-space-2xs) var(--helix-space-xs);transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);}:host(:first-child) ::slotted(a) {margin-inline-start: calc(var(--helix-space-xs) * -1);}::slotted(a:hover) {background-color: var(
|
|
53
9
|
--breadcrumbs-hover-color,
|
|
54
10
|
color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
::slotted(a:focus-visible) {
|
|
59
|
-
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
60
|
-
outline-offset: var(--helix-size-focus-offset);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
:host {
|
|
64
|
-
font-weight: var(--breadcrumbs-font-weight, var(--helix-weight-medium));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
:host([current]) {
|
|
68
|
-
color: var(--breadcrumbs-current-color, var(--helix-color-foreground));
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
[part="link"] {
|
|
72
|
-
align-items: center;
|
|
73
|
-
border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));
|
|
74
|
-
color: var(--breadcrumbs-link-color, var(--helix-color-foreground-muted));
|
|
75
|
-
display: inline-flex;
|
|
76
|
-
gap: var(--helix-space-xs);
|
|
77
|
-
padding: var(--helix-space-2xs) var(--helix-space-xs);
|
|
78
|
-
text-decoration: none;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
:host(:first-child) a[part="link"] {
|
|
82
|
-
margin-inline-start: calc(var(--helix-space-xs) * -1);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
:host(:not([href])) [part="link"] {
|
|
86
|
-
padding-block: var(--helix-space-none);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
:host(:not([href]):not([current])) [part="link"] {
|
|
90
|
-
padding-inline: var(--helix-space-none);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
a[part="link"]:hover {
|
|
94
|
-
background-color: var(
|
|
11
|
+
);}::slotted(a:focus-visible) {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}:host {font-weight: var(--breadcrumbs-font-weight, var(--helix-weight-medium));}:host([current]) {color: var(--breadcrumbs-current-color, var(--helix-color-foreground));}[part="link"] {align-items: center;border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));color: var(--breadcrumbs-link-color, var(--helix-color-foreground-muted));display: inline-flex;gap: var(--helix-space-xs);padding: var(--helix-space-2xs) var(--helix-space-xs);text-decoration: none;}:host(:first-child) a[part="link"] {margin-inline-start: calc(var(--helix-space-xs) * -1);}:host(:not([href])) [part="link"] {padding-block: var(--helix-space-none);}:host(:not([href]):not([current])) [part="link"] {padding-inline: var(--helix-space-none);}a[part="link"]:hover {background-color: var(
|
|
95
12
|
--breadcrumbs-hover-color,
|
|
96
13
|
color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
:host(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
:host([hidden]) {
|
|
106
|
-
display: none;
|
|
107
|
-
}`);
|
|
14
|
+
);color: var(--breadcrumbs-current-color, var(--helix-color-foreground));}a[part="link"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}:host([current]) [part="link"] {color: var(--breadcrumbs-current-color, var(--helix-color-foreground));}:host(:state(end)) [part="link"],
|
|
15
|
+
:host(:state(end)) ::slotted(a) {border-end-end-radius: var(--helix-radii-none);border-start-end-radius: var(--helix-radii-none);padding-inline-end: var(--helix-space-2xs);}:host(:state(end)) slot[name="end"] {--button-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));--button-radius-start: var(--helix-radii-none);--helix-size-focus-offset: calc(var(--helix-size-focus-ring) * -1);--icon-button-background-color-hover: var(
|
|
16
|
+
--breadcrumbs-hover-color,
|
|
17
|
+
color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
|
|
18
|
+
);--icon-button-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));--icon-size: 1.15em;align-items: center;display: inline-flex;margin-inline-start: calc(var(--breadcrumbs-gap, var(--helix-space-xs)) * -1);}:host(:state(end)) a[part="link"]:focus-visible,
|
|
19
|
+
:host(:state(end)) ::slotted(a:focus-visible) {outline-offset: calc(var(--helix-size-focus-offset) * -1);}:host(:state(end)) [part="link"]:focus-visible,
|
|
20
|
+
:host(:state(end)) ::slotted(a:focus-visible),
|
|
21
|
+
:host(:state(end)) slot[name="end"]:focus-within {position: relative;z-index: var(--helix-layer-raised);}:host(:state(end)) [part="link"]:hover ~ slot[name="end"] {--icon-button-background-color: var(--_breadcrumbs-split-fill, transparent);}:host(:state(end)) [part="link"]:has(~ slot[name="end"]:hover),
|
|
22
|
+
:host(:state(end)) [part="link"]:has(~ slot[name="end"]:hover) ::slotted(a) {background-color: var(--_breadcrumbs-split-fill, transparent);}:host(:state(end)) [part="link"] {position: relative;}:host(:state(end)) [part="link"]::after {background-color: var(--_breadcrumbs-split-rule, transparent);content: "";inline-size: var(--helix-border-thin);inset-block: 20%;inset-inline-end: calc(var(--helix-border-thin) * -1);pointer-events: none;position: absolute;}:host([hidden]) {display: none;}`);
|
|
@@ -1,45 +1,8 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[part="list"] {
|
|
7
|
-
align-items: center;
|
|
8
|
-
display: flex;
|
|
9
|
-
flex-wrap: wrap;
|
|
10
|
-
font-size: var(--breadcrumbs-font-size, var(--helix-text-sm));
|
|
11
|
-
gap: var(--breadcrumbs-gap, var(--helix-space-xs));
|
|
12
|
-
|
|
13
|
-
list-style: none;
|
|
14
|
-
margin: var(--helix-space-none);
|
|
15
|
-
padding: var(--helix-space-none);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
[part="expand"] {
|
|
19
|
-
all: unset;
|
|
20
|
-
border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));
|
|
21
|
-
box-sizing: border-box;
|
|
22
|
-
color: var(--breadcrumbs-link-color, var(--helix-color-foreground-muted));
|
|
23
|
-
cursor: pointer;
|
|
24
|
-
line-height: var(--helix-leading-normal);
|
|
25
|
-
padding: var(--helix-space-2xs) var(--helix-space-xs);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
[part="expand"]:hover {
|
|
29
|
-
background-color: var(
|
|
2
|
+
export const styles = createSheet(`:host {--_breadcrumbs-split-fill: var(
|
|
3
|
+
--breadcrumbs-split-fill,
|
|
4
|
+
color-mix(in oklab, var(--helix-color-foreground) 4%, transparent)
|
|
5
|
+
);--_breadcrumbs-split-rule: transparent;display: block;}:host([separation="outlined"]) {--_breadcrumbs-split-fill: transparent;--_breadcrumbs-split-rule: var(--breadcrumbs-split-divider-color, var(--helix-color-border));}[part="list"] {align-items: center;display: flex;flex-wrap: wrap;font-size: var(--breadcrumbs-font-size, var(--helix-text-sm));gap: var(--breadcrumbs-gap, var(--helix-space-xs));list-style: none;margin: var(--helix-space-none);padding: var(--helix-space-none);}[part="expand"] {all: unset;border-radius: var(--breadcrumbs-radius, var(--helix-radii-sm));box-sizing: border-box;color: var(--breadcrumbs-link-color, var(--helix-color-foreground-muted));cursor: pointer;line-height: var(--helix-leading-normal);padding: var(--helix-space-2xs) var(--helix-space-xs);}[part="expand"]:hover {background-color: var(
|
|
30
6
|
--breadcrumbs-hover-color,
|
|
31
7
|
color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
|
|
32
|
-
);
|
|
33
|
-
color: var(--breadcrumbs-current-color, var(--helix-color-foreground));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
[part="expand"]:focus-visible {
|
|
37
|
-
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
38
|
-
outline-offset: var(--helix-size-focus-offset);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@media print {
|
|
42
|
-
:host {
|
|
43
|
-
print-color-adjust: economy;
|
|
44
|
-
}
|
|
45
|
-
}`);
|
|
8
|
+
);color: var(--breadcrumbs-current-color, var(--helix-color-foreground));}[part="expand"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}@media print {:host {print-color-adjust: economy;}}`);
|
|
@@ -21,9 +21,26 @@ import '../breadcrumb/breadcrumb.js';
|
|
|
21
21
|
*
|
|
22
22
|
* @cssproperty --breadcrumbs-font-size - Size of the trail's text.
|
|
23
23
|
* @cssproperty --breadcrumbs-gap - Space between items and separators.
|
|
24
|
+
* @cssproperty --breadcrumbs-split-divider-color - Color of the line between the two halves of a
|
|
25
|
+
* split crumb, under `separation="outlined"`.
|
|
26
|
+
* @cssproperty --breadcrumbs-split-fill - Fill across both halves of a split crumb while one of
|
|
27
|
+
* them is under the pointer, under the default `plain` separation.
|
|
24
28
|
*/
|
|
25
29
|
export declare class HelixBreadcrumbs extends HelixHeadlessBreadcrumbs {
|
|
26
30
|
static tier: string;
|
|
31
|
+
/**
|
|
32
|
+
* How the two halves of a split crumb are told apart. A split crumb is one
|
|
33
|
+
* with a control in its `end` slot, such as a switcher's menu trigger.
|
|
34
|
+
*
|
|
35
|
+
* - `plain` is the default. The halves are text at rest, like every other
|
|
36
|
+
* crumb. While one half is under the pointer, both halves take a light fill
|
|
37
|
+
* and that half takes the full hover fill.
|
|
38
|
+
* - `outlined` draws a hairline between the halves, at rest and under the
|
|
39
|
+
* pointer, the way an outlined surface keeps its edge at rest.
|
|
40
|
+
*
|
|
41
|
+
* The other crumbs look the same under either value.
|
|
42
|
+
*/
|
|
43
|
+
separation?: 'outlined' | 'plain';
|
|
27
44
|
static styles: CSSResultGroup;
|
|
28
45
|
}
|
|
29
46
|
declare global {
|
|
@@ -6,12 +6,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessBreadcrumbs } from '@fusion.dev/helix-headless/breadcrumbs';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
9
10
|
import { styles } from './breadcrumbs-root.css.js';
|
|
10
11
|
import '../breadcrumb/breadcrumb.js';
|
|
11
12
|
let HelixBreadcrumbs = class HelixBreadcrumbs extends HelixHeadlessBreadcrumbs {
|
|
12
13
|
static { this.tier = 'helix-'; }
|
|
13
14
|
static { this.styles = styles; }
|
|
14
15
|
};
|
|
16
|
+
__decorate([
|
|
17
|
+
property({ reflect: true })
|
|
18
|
+
], HelixBreadcrumbs.prototype, "separation", void 0);
|
|
15
19
|
HelixBreadcrumbs = __decorate([
|
|
16
20
|
customElement('helix-breadcrumbs')
|
|
17
21
|
], HelixBreadcrumbs);
|
|
@@ -1,228 +1,47 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
|
|
5
|
-
min-inline-size: var(--button-inline-size, auto);
|
|
6
|
-
max-inline-size: 100%;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
:host {
|
|
10
|
-
--_button-edge: var(--helix-color-border);
|
|
11
|
-
|
|
12
|
-
--_button-fill: var(--_button-tone);
|
|
13
|
-
--_button-fill-hover: var(--_button-tone-hover);
|
|
14
|
-
--_button-on-tone: var(--helix-color-background);
|
|
15
|
-
--_button-tone: var(--helix-color-foreground);
|
|
16
|
-
|
|
17
|
-
--_button-turn: 0.8s;
|
|
18
|
-
|
|
19
|
-
--_button-tone-hover: color-mix(
|
|
2
|
+
export const styles = createSheet(`:host {display: inline-flex;min-inline-size: var(--button-inline-size, auto);max-inline-size: 100%;}:host {--_button-edge: var(--helix-color-border);--_button-fill: var(--_button-tone);--_button-fill-hover: var(--_button-tone-hover);--_button-on-tone: var(--helix-color-background);--_button-tone: var(--helix-color-foreground);--_button-turn: 0.8s;--_button-tone-hover: color-mix(
|
|
20
3
|
in oklab,
|
|
21
4
|
var(--helix-color-foreground) 86%,
|
|
22
5
|
var(--helix-color-background)
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
:host([tone="primary"]) {
|
|
26
|
-
--_button-edge: var(--helix-color-primary);
|
|
27
|
-
--_button-fill: var(--helix-color-primary-surface);
|
|
28
|
-
--_button-fill-hover: var(--helix-color-primary-surface-hover);
|
|
29
|
-
--_button-on-tone: var(--helix-color-foreground-on-primary);
|
|
30
|
-
--_button-tone: var(--helix-color-primary);
|
|
31
|
-
--_button-tone-hover: var(--helix-color-primary-hover);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
:host([tone="accent"]) {
|
|
35
|
-
--_button-edge: var(--helix-color-accent);
|
|
36
|
-
--_button-fill: var(--helix-color-accent-surface);
|
|
37
|
-
--_button-fill-hover: var(--helix-color-accent-surface-hover);
|
|
38
|
-
--_button-on-tone: var(--helix-color-foreground-on-accent);
|
|
39
|
-
--_button-tone: var(--helix-color-accent);
|
|
40
|
-
--_button-tone-hover: var(--helix-color-accent-hover);
|
|
41
|
-
}
|
|
42
|
-
:host([tone="danger"]) {
|
|
43
|
-
--_button-edge: var(--helix-color-danger);
|
|
44
|
-
--_button-fill: var(--helix-color-danger-surface);
|
|
45
|
-
--_button-fill-hover: var(--helix-color-danger-surface-hover);
|
|
46
|
-
--_button-on-tone: var(--helix-color-foreground-on-status);
|
|
47
|
-
--_button-tone: var(--helix-color-danger);
|
|
48
|
-
|
|
49
|
-
--_button-tone-hover: color-mix(
|
|
6
|
+
);}:host([tone="primary"]) {--_button-edge: var(--helix-color-primary);--_button-fill: var(--helix-color-primary-surface);--_button-fill-hover: var(--helix-color-primary-surface-hover);--_button-on-tone: var(--helix-color-foreground-on-primary);--_button-tone: var(--helix-color-primary);--_button-tone-hover: var(--helix-color-primary-hover);}:host([tone="accent"]) {--_button-edge: var(--helix-color-accent);--_button-fill: var(--helix-color-accent-surface);--_button-fill-hover: var(--helix-color-accent-surface-hover);--_button-on-tone: var(--helix-color-foreground-on-accent);--_button-tone: var(--helix-color-accent);--_button-tone-hover: var(--helix-color-accent-hover);}:host([tone="danger"]) {--_button-edge: var(--helix-color-danger);--_button-fill: var(--helix-color-danger-surface);--_button-fill-hover: var(--helix-color-danger-surface-hover);--_button-on-tone: var(--helix-color-foreground-on-status);--_button-tone: var(--helix-color-danger);--_button-tone-hover: color-mix(
|
|
50
7
|
in oklab,
|
|
51
8
|
var(--helix-color-danger) 86%,
|
|
52
9
|
var(--helix-color-foreground)
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
[part="button"] {
|
|
57
|
-
all: unset;
|
|
58
|
-
align-items: center;
|
|
59
|
-
|
|
60
|
-
background-color: var(
|
|
10
|
+
);}[part="button"] {all: unset;align-items: center;background-color: var(
|
|
61
11
|
--button-background-color,
|
|
62
12
|
color-mix(in oklab, var(--_button-tone) 6%, transparent)
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
block-size: var(--button-size, var(--helix-size-control));
|
|
66
|
-
border: var(--helix-border-thin) solid var(--button-border-color, var(--_button-edge));
|
|
67
|
-
box-sizing: border-box;
|
|
68
|
-
color: var(--button-foreground-color, var(--_button-tone));
|
|
69
|
-
cursor: pointer;
|
|
70
|
-
display: inline-flex;
|
|
71
|
-
font-family: var(--helix-font-sans);
|
|
72
|
-
font-size: var(--helix-text-control);
|
|
73
|
-
font-weight: var(--helix-weight-medium);
|
|
74
|
-
gap: var(--button-gap, var(--helix-space-xs));
|
|
75
|
-
inline-size: 100%;
|
|
76
|
-
justify-content: center;
|
|
77
|
-
letter-spacing: var(--helix-tracking-normal);
|
|
78
|
-
line-height: var(--helix-leading-tight);
|
|
79
|
-
|
|
80
|
-
padding-inline: var(--button-padding-inline, var(--helix-space-control));
|
|
81
|
-
text-decoration: none;
|
|
82
|
-
transition:
|
|
13
|
+
);block-size: var(--button-size, var(--helix-size-control));border: var(--helix-border-thin) solid var(--button-border-color, var(--_button-edge));box-sizing: border-box;color: var(--button-foreground-color, var(--_button-tone));cursor: pointer;display: inline-flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-control);font-weight: var(--helix-weight-medium);gap: var(--button-gap, var(--helix-space-xs));inline-size: 100%;justify-content: center;letter-spacing: var(--helix-tracking-normal);line-height: var(--helix-leading-tight);padding-inline: var(--button-padding-inline, var(--helix-space-control));text-decoration: none;transition:
|
|
83
14
|
background-color var(--helix-duration-fast) var(--helix-easing-standard),
|
|
84
15
|
border-color var(--helix-duration-fast) var(--helix-easing-standard),
|
|
85
|
-
color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
86
|
-
white-space: nowrap;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
[part="button"] {
|
|
90
|
-
border-end-end-radius: var(
|
|
16
|
+
color var(--helix-duration-fast) var(--helix-easing-standard);white-space: nowrap;}[part="button"] {border-end-end-radius: var(
|
|
91
17
|
--button-radius-end-end,
|
|
92
18
|
var(--button-radius-end, var(--button-radius, var(--helix-radii-sm)))
|
|
93
|
-
);
|
|
94
|
-
border-end-start-radius: var(
|
|
19
|
+
);border-end-start-radius: var(
|
|
95
20
|
--button-radius-end-start,
|
|
96
21
|
var(--button-radius-start, var(--button-radius, var(--helix-radii-sm)))
|
|
97
|
-
);
|
|
98
|
-
border-start-end-radius: var(
|
|
22
|
+
);border-start-end-radius: var(
|
|
99
23
|
--button-radius-start-end,
|
|
100
24
|
var(--button-radius-end, var(--button-radius, var(--helix-radii-sm)))
|
|
101
|
-
);
|
|
102
|
-
border-start-start-radius: var(
|
|
25
|
+
);border-start-start-radius: var(
|
|
103
26
|
--button-radius-start-start,
|
|
104
27
|
var(--button-radius-start, var(--button-radius, var(--helix-radii-sm)))
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
:host(:not(:disabled)) [part="button"]:hover {
|
|
109
|
-
background-color: var(
|
|
28
|
+
);}:host(:not(:disabled)) [part="button"]:hover {background-color: var(
|
|
110
29
|
--button-background-color-hover,
|
|
111
30
|
var(--button-background-color, color-mix(in oklab, var(--_button-tone) 12%, transparent))
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
[part="button"]:focus-visible {
|
|
116
|
-
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
117
|
-
outline-offset: var(--helix-size-focus-offset);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
:host([emphasis="solid"]) [part="button"] {
|
|
121
|
-
background-color: var(--button-background-color, var(--_button-fill));
|
|
122
|
-
border-color: transparent;
|
|
123
|
-
color: var(--button-foreground-color, var(--_button-on-tone));
|
|
124
|
-
}
|
|
125
|
-
:host(:not(:disabled)[emphasis="solid"]) [part="button"]:hover {
|
|
126
|
-
background-color: var(
|
|
31
|
+
);}[part="button"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}:host([emphasis="solid"]) [part="button"] {background-color: var(--button-background-color, var(--_button-fill));border-color: transparent;color: var(--button-foreground-color, var(--_button-on-tone));}:host(:not(:disabled)[emphasis="solid"]) [part="button"]:hover {background-color: var(
|
|
127
32
|
--button-background-color-hover,
|
|
128
33
|
var(--button-background-color, var(--_button-fill-hover))
|
|
129
|
-
);
|
|
130
|
-
border-color: transparent;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
:host([emphasis="subtle"]) [part="button"] {
|
|
134
|
-
background-color: var(
|
|
34
|
+
);border-color: transparent;}:host([emphasis="subtle"]) [part="button"] {background-color: var(
|
|
135
35
|
--button-background-color,
|
|
136
36
|
color-mix(in oklab, var(--_button-tone) 14%, transparent)
|
|
137
|
-
);
|
|
138
|
-
border-color: transparent;
|
|
139
|
-
color: var(
|
|
37
|
+
);border-color: transparent;color: var(
|
|
140
38
|
--button-foreground-color,
|
|
141
39
|
color-mix(in oklab, var(--_button-tone) 78%, var(--helix-color-foreground))
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
:host(:not(:disabled)[emphasis="subtle"]) [part="button"]:hover {
|
|
146
|
-
background-color: var(
|
|
40
|
+
);}:host(:not(:disabled)[emphasis="subtle"]) [part="button"]:hover {background-color: var(
|
|
147
41
|
--button-background-color-hover,
|
|
148
42
|
var(--button-background-color, color-mix(in oklab, var(--_button-tone) 22%, transparent))
|
|
149
|
-
);
|
|
150
|
-
border-color: transparent;
|
|
151
|
-
}
|
|
152
|
-
:host([emphasis="ghost"]) [part="button"] {
|
|
153
|
-
background-color: var(--button-background-color, transparent);
|
|
154
|
-
border-color: transparent;
|
|
155
|
-
color: var(--button-foreground-color, var(--_button-tone));
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
:host(:not(:disabled)[emphasis="ghost"]) [part="button"]:hover {
|
|
159
|
-
background-color: var(
|
|
43
|
+
);border-color: transparent;}:host([emphasis="ghost"]) [part="button"] {background-color: var(--button-background-color, transparent);border-color: transparent;color: var(--button-foreground-color, var(--_button-tone));}:host(:not(:disabled)[emphasis="ghost"]) [part="button"]:hover {background-color: var(
|
|
160
44
|
--button-background-color-hover,
|
|
161
45
|
var(--button-background-color, color-mix(in oklab, var(--_button-tone) 8%, transparent))
|
|
162
|
-
);
|
|
163
|
-
border-color:
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
:host([width="full"]) {
|
|
167
|
-
display: flex;
|
|
168
|
-
inline-size: 100%;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
:host(:disabled) [part="button"] {
|
|
172
|
-
cursor: not-allowed;
|
|
173
|
-
opacity: 0.5;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
@supports (text-box: trim-both cap alphabetic) {
|
|
177
|
-
slot:not([name]) {
|
|
178
|
-
display: block;
|
|
179
|
-
padding-block: var(--helix-space-2xs);
|
|
180
|
-
text-box: trim-both cap alphabetic;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
[part="button"] ::slotted(helix-icon) {
|
|
185
|
-
--icon-size: 1.15em;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
:host(:state(pending)) [part="button"] {
|
|
189
|
-
cursor: progress;
|
|
190
|
-
position: relative;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
:host(:state(pending)) [part="button"] > slot {
|
|
194
|
-
visibility: hidden;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
:host(:state(pending)) [part="button"]::after {
|
|
198
|
-
animation: helix-button-turn var(--button-spinner-duration, var(--_button-turn)) linear infinite;
|
|
199
|
-
block-size: var(--button-spinner-size, 1.15em);
|
|
200
|
-
border: var(--helix-border-thick) solid
|
|
201
|
-
color-mix(in oklab, var(--button-spinner-color, currentColor) 30%, transparent);
|
|
202
|
-
border-block-start-color: var(--button-spinner-color, currentColor);
|
|
203
|
-
border-radius: var(--helix-radii-full);
|
|
204
|
-
box-sizing: border-box;
|
|
205
|
-
content: "";
|
|
206
|
-
inline-size: var(--button-spinner-size, 1.15em);
|
|
207
|
-
inset: 0;
|
|
208
|
-
margin: auto;
|
|
209
|
-
position: absolute;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
@keyframes helix-button-turn {
|
|
213
|
-
to {
|
|
214
|
-
rotate: 1turn;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
@media (prefers-reduced-motion: reduce) {
|
|
219
|
-
:host(:state(pending)) [part="button"]::after {
|
|
220
|
-
animation-duration: calc(var(--helix-duration-slow) * 12);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
@media print {
|
|
225
|
-
:host {
|
|
226
|
-
display: none;
|
|
227
|
-
}
|
|
228
|
-
}`);
|
|
46
|
+
);border-color: transparent;}:host([width="full"]) {display: flex;inline-size: 100%;}:host(:disabled) [part="button"] {cursor: not-allowed;opacity: 0.5;}@supports (text-box: trim-both cap alphabetic) {slot:not([name]) {display: block;padding-block: var(--helix-space-2xs);text-box: trim-both cap alphabetic;}}[part="button"] ::slotted(helix-icon) {--icon-size: 1.15em;}:host(:state(pending)) [part="button"] {cursor: progress;position: relative;}:host(:state(pending)) [part="button"] > slot {visibility: hidden;}[part="spinner"] {animation: helix-button-turn var(--button-spinner-duration, var(--_button-turn)) linear infinite;block-size: var(--button-spinner-size, 1.15em);border: var(--helix-border-thick) solid
|
|
47
|
+
color-mix(in oklab, var(--button-spinner-color, currentColor) 30%, transparent);border-block-start-color: var(--button-spinner-color, currentColor);border-radius: var(--helix-radii-full);box-sizing: border-box;inline-size: var(--button-spinner-size, 1.15em);inset: 0;margin: auto;position: absolute;}@keyframes helix-button-turn {to {rotate: 1turn;}}@media (prefers-reduced-motion: reduce) {[part="spinner"] {animation-duration: calc(var(--helix-duration-slow) * 12);}}@media print {:host {display: none;}}`);
|
|
@@ -27,6 +27,7 @@ declare const HelixButton_base: (new (...args: any[]) => import("../../shared/mi
|
|
|
27
27
|
*
|
|
28
28
|
* @csspart button - The inner control.
|
|
29
29
|
* @csspart live - The live region that says `pending-label` when the button becomes pending under focus. It is clipped out of view and still read.
|
|
30
|
+
* @csspart spinner - The ring a pending button turns over its words, sized and colored by the `--button-spinner-*` hooks.
|
|
30
31
|
*
|
|
31
32
|
* @cssproperty --button-background-color - Fill behind the button, in every state.
|
|
32
33
|
* @cssproperty --button-background-color-hover - Fill behind the button under the pointer. Without it, `--button-background-color` also applies on hover.
|
|
@@ -1,53 +1,12 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
--button-radius-start: 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
:host(:not([variant="spaced"])) ::slotted(*:not(:last-child)) {
|
|
15
|
-
--button-radius-end: 0;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
:host([orientation="vertical"]) {
|
|
19
|
-
align-items: stretch;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:first-child)) {
|
|
24
|
-
--button-radius-start-start: 0;
|
|
25
|
-
--button-radius-start-end: 0;
|
|
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
|
-
}
|
|
31
|
-
|
|
32
|
-
:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:last-child)) {
|
|
33
|
-
--button-radius-end-end: 0;
|
|
34
|
-
--button-radius-end-start: 0;
|
|
35
|
-
--button-radius-end: var(--button-radius, var(--helix-radii-sm));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
::slotted(*:hover),
|
|
39
|
-
::slotted(*:focus-within) {
|
|
40
|
-
position: relative;
|
|
41
|
-
|
|
42
|
-
z-index: var(--helix-layer-raised);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
:host([variant="spaced"]) {
|
|
46
|
-
gap: var(--button-group-gap, var(--helix-space-xs));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@media print {
|
|
50
|
-
:host {
|
|
51
|
-
display: none;
|
|
52
|
-
}
|
|
53
|
-
}`);
|
|
2
|
+
export const styles = createSheet(`:host {display: inline-flex;}:host([size="sm"]) {--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-control: var(--helix-size-control-sm);--helix-size-icon: var(--helix-size-icon-sm);--helix-space-control: var(--helix-space-sm);--helix-text-control: var(--helix-text-xs);}:host([size="md"]) {--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-control: var(--helix-size-control-md);--helix-size-icon: var(--helix-size-icon-md);--helix-space-control: var(--helix-space-md);--helix-text-control: var(--helix-text-sm);}:host([size="lg"]) {--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-control: var(--helix-size-control-lg);--helix-size-icon: var(--helix-size-icon-lg);--helix-space-control: var(--helix-space-lg);--helix-text-control: var(--helix-text-md);}:host([size]) ::slotted(button) {block-size: var(--helix-size-control);font-size: var(--helix-text-control);}:host([selection-mode]) {--_button-group-pressed-background: var(
|
|
3
|
+
--button-group-pressed-background-color,
|
|
4
|
+
var(--helix-color-foreground)
|
|
5
|
+
);--_button-group-pressed-border: var(
|
|
6
|
+
--button-group-pressed-border-color,
|
|
7
|
+
var(--_button-group-pressed-background)
|
|
8
|
+
);--_button-group-pressed-foreground: var(
|
|
9
|
+
--button-group-pressed-color,
|
|
10
|
+
var(--helix-color-background)
|
|
11
|
+
);}:host(:not([variant="spaced"])) ::slotted(*:not(:first-child)) {margin-inline-start: calc(var(--helix-border-thin) * -1);}:host(:not([variant="spaced"])) ::slotted(*:not(:first-child)) {--button-radius-start: 0;}:host(:not([variant="spaced"])) ::slotted(*:not(:last-child)) {--button-radius-end: 0;}:host([orientation="vertical"]) {align-items: stretch;flex-direction: column;}:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:first-child)) {--button-radius-start-start: 0;--button-radius-start-end: 0;--button-radius-start: var(--button-radius, var(--helix-radii-sm));margin-block-start: calc(var(--helix-border-thin) * -1);margin-inline-start: 0;}:host([orientation="vertical"]:not([variant="spaced"])) ::slotted(*:not(:last-child)) {--button-radius-end-end: 0;--button-radius-end-start: 0;--button-radius-end: var(--button-radius, var(--helix-radii-sm));}::slotted(*:hover),
|
|
12
|
+
::slotted(*:focus-within) {position: relative;z-index: var(--helix-layer-raised);}:host([variant="spaced"]) {gap: var(--button-group-gap, var(--helix-space-xs));}@media print {:host {display: none;}}`);
|