@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.
Files changed (273) hide show
  1. package/custom-elements.json +10225 -1400
  2. package/dist/accordion/item/accordion-item.css.js +4 -96
  3. package/dist/accordion/root/accordion-root.css.js +2 -28
  4. package/dist/announcement/root/announcement-root.css.js +10 -154
  5. package/dist/announcement/root/announcement-root.d.ts +3 -0
  6. package/dist/app-header/root/app-header-root.css.js +2 -118
  7. package/dist/area-chart/root/area-chart-root.css.js +4 -94
  8. package/dist/area-chart/root/area-chart-root.d.ts +1 -0
  9. package/dist/aura/root/aura-root.css.js +2 -57
  10. package/dist/avatar/group/avatar-group.css.js +5 -36
  11. package/dist/avatar/group/avatar-group.d.ts +3 -0
  12. package/dist/avatar/root/avatar-root.css.js +1 -53
  13. package/dist/avatar/root/avatar-root.d.ts +2 -0
  14. package/dist/badge/root/badge-root.css.js +12 -207
  15. package/dist/badge/root/badge-root.d.ts +2 -0
  16. package/dist/bar-chart/root/bar-chart-root.css.js +8 -292
  17. package/dist/blockquote/root/blockquote-root.css.js +1 -43
  18. package/dist/blockquote/root/blockquote-root.d.ts +8 -2
  19. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
  20. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +5 -42
  21. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +17 -0
  22. package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
  23. package/dist/button/root/button-root.css.js +16 -197
  24. package/dist/button/root/button-root.d.ts +1 -0
  25. package/dist/button-group/root/button-group-root.css.js +11 -52
  26. package/dist/button-group/root/button-group-root.d.ts +29 -7
  27. package/dist/button-group/root/button-group-root.js +19 -0
  28. package/dist/callout/root/callout-root.css.js +5 -138
  29. package/dist/callout/root/callout-root.d.ts +4 -2
  30. package/dist/canvas/node/canvas-node.css.js +10 -367
  31. package/dist/canvas/node/canvas-node.d.ts +5 -0
  32. package/dist/canvas/root/canvas-root.css.js +11 -270
  33. package/dist/canvas/root/canvas-root.d.ts +6 -0
  34. package/dist/card/root/card-root.css.js +5 -134
  35. package/dist/card/root/card-root.d.ts +4 -0
  36. package/dist/carousel/root/carousel-root.css.js +20 -386
  37. package/dist/chat/composer/chat-composer.css.js +4 -105
  38. package/dist/chat/message/chat-message.css.js +5 -239
  39. package/dist/chat/message/chat-message.d.ts +5 -0
  40. package/dist/chat/root/chat-root.css.js +5 -162
  41. package/dist/chat/typing.css.js +9 -46
  42. package/dist/checkbox/root/checkbox-root.css.js +12 -177
  43. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
  44. package/dist/code/root/code-root.css.js +3 -25
  45. package/dist/code-block/root/code-block-root.css.js +22 -279
  46. package/dist/code-block/root/code-block-root.d.ts +7 -0
  47. package/dist/color-input/root/color-input-root.css.js +5 -114
  48. package/dist/color-picker/root/color-picker-root.css.js +39 -337
  49. package/dist/color-picker/root/color-picker-root.d.ts +2 -0
  50. package/dist/combobox/root/combobox-root.css.js +8 -147
  51. package/dist/combobox/root/combobox-root.js +2 -0
  52. package/dist/command/root/command-root.css.js +3 -74
  53. package/dist/copy-button/root/copy-button-root.css.js +3 -43
  54. package/dist/data-table/root/data-table-root.css.js +21 -245
  55. package/dist/data-table/root/data-table-root.d.ts +7 -0
  56. package/dist/date-input/root/date-input-root.css.js +8 -103
  57. package/dist/date-picker/root/date-picker-root.css.js +16 -278
  58. package/dist/date-picker/root/date-picker-root.d.ts +1 -0
  59. package/dist/description-list/item/description-list-item.css.js +1 -41
  60. package/dist/description-list/item/description-list-item.d.ts +8 -0
  61. package/dist/description-list/root/description-list-root.css.js +2 -34
  62. package/dist/description-list/root/description-list-root.d.ts +13 -0
  63. package/dist/description-list/root/description-list-root.js +7 -0
  64. package/dist/dialog/root/dialog-root.css.js +7 -221
  65. package/dist/dialog/root/dialog-root.d.ts +3 -0
  66. package/dist/divider/root/divider-root.css.js +5 -81
  67. package/dist/divider/root/divider-root.d.ts +3 -0
  68. package/dist/donut-chart/root/donut-chart-root.css.js +7 -193
  69. package/dist/drawer/root/drawer-root.css.js +11 -237
  70. package/dist/drilldown/item/drilldown-item.css.js +4 -51
  71. package/dist/drilldown/item/drilldown-item.d.ts +1 -0
  72. package/dist/drilldown/root/drilldown-root.css.js +6 -120
  73. package/dist/element-events.generated.js +5 -1
  74. package/dist/empty/root/empty-root.css.js +2 -42
  75. package/dist/file-input/root/file-input-root.css.js +7 -173
  76. package/dist/file-input/root/file-input-root.d.ts +4 -0
  77. package/dist/filter-input/chip/filter-chip.css.js +2 -84
  78. package/dist/filter-input/field/filter-field.css.js +1 -3
  79. package/dist/filter-input/menu/filter-menu.css.js +1 -3
  80. package/dist/filter-input/operator/filter-operator.css.js +1 -3
  81. package/dist/filter-input/root/filter-input-root.css.js +6 -113
  82. package/dist/flex/root/flex-root.css.js +4 -207
  83. package/dist/flex/root/flex-root.d.ts +2 -2
  84. package/dist/format-date/root/format-date-root.css.js +1 -13
  85. package/dist/format-date/root/format-date-root.d.ts +0 -1
  86. package/dist/format-date/root/format-date-root.js +0 -1
  87. package/dist/graph/root/graph-root.css.js +9 -444
  88. package/dist/grid/root/grid-root.css.js +1 -171
  89. package/dist/heatmap/root/heatmap-root.css.js +8 -156
  90. package/dist/heatmap/root/heatmap-root.d.ts +2 -0
  91. package/dist/icon/index.d.ts +1 -1
  92. package/dist/icon/root/icon-root.css.js +1 -18
  93. package/dist/icon/root/index.d.ts +1 -1
  94. package/dist/icon-button/root/icon-button-root.css.js +25 -203
  95. package/dist/icon-button/root/icon-button-root.d.ts +1 -0
  96. package/dist/image/root/image-root.css.js +7 -65
  97. package/dist/image/root/image-root.d.ts +3 -0
  98. package/dist/input/root/input-root.css.js +6 -79
  99. package/dist/kbd/root/kbd-root.css.js +2 -71
  100. package/dist/kbd/root/kbd-root.d.ts +7 -0
  101. package/dist/legend/root/legend-root.css.js +9 -106
  102. package/dist/legend/root/legend-root.d.ts +2 -0
  103. package/dist/lightbox/item/lightbox-item.css.js +1 -37
  104. package/dist/lightbox/root/lightbox-root.css.js +38 -183
  105. package/dist/line-chart/root/line-chart-root.css.js +4 -170
  106. package/dist/line-chart/root/line-chart-root.d.ts +1 -0
  107. package/dist/list/item/list-item.css.js +2 -94
  108. package/dist/list/root/list-root.css.js +4 -88
  109. package/dist/listbox/root/listbox-root.css.js +7 -111
  110. package/dist/listbox/root/listbox-root.d.ts +2 -0
  111. package/dist/listbox/root/listbox-root.js +1 -0
  112. package/dist/loader/root/loader-root.css.js +5 -171
  113. package/dist/map/area/map-area.css.js +1 -23
  114. package/dist/map/buildings/map-buildings.css.js +1 -26
  115. package/dist/map/contours/map-contours.css.js +2 -5
  116. package/dist/map/landcover/map-landcover.css.js +1 -4
  117. package/dist/map/marker/map-marker.css.js +14 -327
  118. package/dist/map/points/map-points.css.js +1 -86
  119. package/dist/map/position/map-position.css.js +8 -227
  120. package/dist/map/raster/map-raster.css.js +1 -3
  121. package/dist/map/root/map-root.css.js +14 -352
  122. package/dist/map/root/map-root.d.ts +10 -0
  123. package/dist/map/route/map-route.css.js +1 -24
  124. package/dist/map/terrain/map-terrain.css.js +3 -7
  125. package/dist/megamenu/root/megamenu-root.css.js +11 -162
  126. package/dist/megamenu/root/megamenu-root.d.ts +8 -0
  127. package/dist/menu/item/menu-item.css.js +7 -130
  128. package/dist/menu/root/menu-root.css.js +1 -110
  129. package/dist/menu/section/menu-section.css.js +1 -13
  130. package/dist/meter/root/meter-root.css.js +17 -207
  131. package/dist/meter/root/meter-root.d.ts +3 -0
  132. package/dist/navigation/root/navigation-root.css.js +2 -54
  133. package/dist/notifications/group/notification-group.css.js +1 -61
  134. package/dist/notifications/notification/notification.css.js +17 -264
  135. package/dist/notifications/root/notifications-root.css.js +7 -125
  136. package/dist/notifications/root/notifications-root.d.ts +7 -2
  137. package/dist/number-input/root/number-input-root.css.js +10 -103
  138. package/dist/object-inspector/root/object-inspector-root.css.js +11 -162
  139. package/dist/option/group/option-group.css.js +1 -22
  140. package/dist/option/index.d.ts +1 -0
  141. package/dist/option/index.js +1 -0
  142. package/dist/option/root/option-root.css.js +3 -85
  143. package/dist/option/separator/option-separator.css.d.ts +1 -0
  144. package/dist/option/separator/option-separator.css.js +3 -0
  145. package/dist/option/separator/option-separator.d.ts +26 -0
  146. package/dist/option/separator/option-separator.js +16 -0
  147. package/dist/orb/root/orb-root.css.js +1 -41
  148. package/dist/outline/root/outline-root.css.js +24 -122
  149. package/dist/outline/root/outline-root.d.ts +17 -4
  150. package/dist/pagination/root/pagination-root.css.js +9 -105
  151. package/dist/pagination/root/pagination-root.d.ts +14 -0
  152. package/dist/pagination/size/pagination-size.css.js +1 -22
  153. package/dist/pagination/size/pagination-size.d.ts +3 -0
  154. package/dist/pagination/summary/pagination-summary.css.js +1 -7
  155. package/dist/pagination/summary/pagination-summary.d.ts +3 -0
  156. package/dist/pin-input/root/pin-input-root.css.js +2 -73
  157. package/dist/pin-input/root/pin-input-root.d.ts +9 -3
  158. package/dist/popover/root/popover-root.css.js +6 -127
  159. package/dist/progress/root/progress-root.css.js +7 -230
  160. package/dist/progress/root/progress-root.d.ts +4 -0
  161. package/dist/qr-code/root/qr-code-root.css.js +1 -68
  162. package/dist/qr-code/root/qr-code-root.d.ts +3 -0
  163. package/dist/quote/root/quote-root.css.js +1 -20
  164. package/dist/radio/group/radio-group.css.js +1 -21
  165. package/dist/radio/root/radio-root.css.js +5 -208
  166. package/dist/rating/root/rating-root.css.js +4 -117
  167. package/dist/sandbox/frame.d.ts +2 -1
  168. package/dist/sandbox/frame.js +1 -1
  169. package/dist/sandbox/index.d.ts +1 -1
  170. package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
  171. package/dist/sandbox/preview/sandbox-preview.d.ts +27 -3
  172. package/dist/sandbox/preview/sandbox-preview.js +17 -11
  173. package/dist/sandbox/root/sandbox-root.css.js +3 -70
  174. package/dist/sandbox/root/sandbox-root.d.ts +16 -4
  175. package/dist/sandbox/root/sandbox-root.js +29 -50
  176. package/dist/sandbox/source/sandbox-source.css.js +3 -95
  177. package/dist/sandbox/source/sandbox-source.d.ts +31 -25
  178. package/dist/sandbox/source/sandbox-source.js +12 -5
  179. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
  180. package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
  181. package/dist/sandbox/terminal/sandbox-terminal.d.ts +4 -0
  182. package/dist/sandbox/terminal/sandbox-terminal.js +2 -1
  183. package/dist/sandbox/tokens.d.ts +2 -2
  184. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
  185. package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -146
  186. package/dist/scatter-chart/root/scatter-chart-root.d.ts +1 -0
  187. package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
  188. package/dist/select/root/select-root.css.js +7 -124
  189. package/dist/select/root/select-root.js +2 -0
  190. package/dist/shared/chart/series.css.js +1 -36
  191. package/dist/shared/chart/terminus.css.js +1 -47
  192. package/dist/shared/chart/tooltip.css.js +1 -68
  193. package/dist/shared/collection/state.css.js +1 -9
  194. package/dist/shared/field/field-frame.css.js +3 -33
  195. package/dist/shared/field/field-inline.css.js +1 -4
  196. package/dist/shared/field/field-segments.css.js +1 -39
  197. package/dist/shared/field/field-stacked.css.js +1 -5
  198. package/dist/shared/field/field.css.js +3 -57
  199. package/dist/shared/floating/entrance.css.js +3 -34
  200. package/dist/shared/floating/panel.css.js +2 -17
  201. package/dist/shared/glyph/glyph.css.js +1 -5
  202. package/dist/shared/live/live.css.js +1 -8
  203. package/dist/shared/tags/tags.css.js +1 -39
  204. package/dist/shared/viewport/viewport.css.js +8 -135
  205. package/dist/skeleton/root/skeleton-root.css.js +12 -120
  206. package/dist/skip-link/root/skip-link-root.css.js +2 -47
  207. package/dist/slider/root/slider-root.css.js +19 -330
  208. package/dist/slider/root/slider-root.d.ts +2 -0
  209. package/dist/sparkline/root/sparkline-root.css.js +8 -143
  210. package/dist/sparkline/root/sparkline-root.d.ts +2 -0
  211. package/dist/speed-dial/group/speed-dial-group.css.d.ts +1 -0
  212. package/dist/speed-dial/group/speed-dial-group.css.js +2 -0
  213. package/dist/speed-dial/group/speed-dial-group.d.ts +27 -0
  214. package/dist/speed-dial/group/speed-dial-group.js +16 -0
  215. package/dist/speed-dial/index.d.ts +1 -0
  216. package/dist/speed-dial/index.js +1 -0
  217. package/dist/speed-dial/item/speed-dial-item.css.js +4 -73
  218. package/dist/speed-dial/item/speed-dial-item.d.ts +1 -0
  219. package/dist/speed-dial/root/speed-dial-root.css.js +3 -149
  220. package/dist/splitter/root/splitter-root.css.js +19 -176
  221. package/dist/splitter/root/splitter-root.d.ts +4 -0
  222. package/dist/stat/group/stat-group.css.js +1 -36
  223. package/dist/stat/root/stat-root.css.js +3 -62
  224. package/dist/steps/root/steps-root.css.js +7 -92
  225. package/dist/steps/step/step.css.js +5 -156
  226. package/dist/switch/root/switch-root.css.js +2 -110
  227. package/dist/table/cell/table-cell.css.js +1 -33
  228. package/dist/table/column/table-column.css.js +7 -105
  229. package/dist/table/root/table-root.css.js +1 -43
  230. package/dist/table/row/table-row.css.js +6 -18
  231. package/dist/table/row/table-row.d.ts +2 -0
  232. package/dist/tabs/panel/tab-panel.css.js +2 -17
  233. package/dist/tabs/root/tabs-root.css.js +6 -177
  234. package/dist/tabs/tab/tab.css.js +6 -54
  235. package/dist/tag/group/tag-group.css.js +1 -11
  236. package/dist/tag/root/tag-root.css.js +1 -166
  237. package/dist/tag/root/tag-root.d.ts +2 -0
  238. package/dist/text/root/text-root.css.js +11 -200
  239. package/dist/textarea/root/textarea-root.css.js +3 -71
  240. package/dist/time-input/root/time-input-root.css.js +7 -118
  241. package/dist/time-picker/root/time-picker-root.css.js +15 -134
  242. package/dist/time-picker/root/time-picker-root.d.ts +7 -0
  243. package/dist/timeline/group/timeline-group.css.js +1 -31
  244. package/dist/timeline/item/timeline-item.css.js +3 -134
  245. package/dist/timeline/root/timeline-root.css.js +1 -66
  246. package/dist/toast/item/toast-item.css.js +11 -250
  247. package/dist/toast/item/toast-item.d.ts +10 -0
  248. package/dist/toast/root/toast-root.css.js +1 -85
  249. package/dist/toast/root/toast-root.js +2 -1
  250. package/dist/toggle/group/toggle-group.css.js +7 -126
  251. package/dist/toggle/root/toggle-root.css.js +1 -23
  252. package/dist/toolbar/root/toolbar-root.css.js +1 -36
  253. package/dist/toolbar/root/toolbar-root.d.ts +11 -0
  254. package/dist/toolbar/root/toolbar-root.js +4 -0
  255. package/dist/tooltip/root/tooltip-root.css.js +5 -101
  256. package/dist/tooltip/root/tooltip-root.d.ts +2 -0
  257. package/dist/tour/root/tour-root.css.js +2 -28
  258. package/dist/tour/stop/tour-stop.css.js +2 -109
  259. package/dist/tree/item/tree-item.css.js +12 -238
  260. package/dist/tree/root/tree-root.css.js +1 -40
  261. package/dist/trend/root/trend-root.css.js +5 -53
  262. package/dist/video/root/video-root.css.js +16 -398
  263. package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
  264. package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
  265. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
  266. package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
  267. package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
  268. package/dist/virtual-list/root/virtual-list-root.css.js +3 -40
  269. package/lint.json +1 -1
  270. package/package.json +6 -6
  271. package/types/jsx.d.ts +4595 -777
  272. package/types/svelte.d.ts +2 -0
  273. 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 set the
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
- color: var(--breadcrumbs-current-color, var(--helix-color-foreground));
99
- }
100
-
101
- :host([current]) [part="link"] {
102
- color: var(--breadcrumbs-current-color, var(--helix-color-foreground));
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
- display: block;
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: transparent;
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
- display: inline-flex;
4
- }
5
-
6
- :host(:not([variant="spaced"])) ::slotted(*:not(:first-child)) {
7
- margin-inline-start: calc(var(--helix-border-thin) * -1);
8
- }
9
-
10
- :host(:not([variant="spaced"])) ::slotted(*:not(:first-child)) {
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;}}`);