@fusion.dev/helix 0.145.0 → 0.147.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 (291) hide show
  1. package/custom-elements.json +13218 -3717
  2. package/dist/accordion/item/accordion-item.css.js +4 -92
  3. package/dist/accordion/item/accordion-item.d.ts +8 -0
  4. package/dist/accordion/root/accordion-root.css.js +2 -28
  5. package/dist/announcement/root/announcement-root.css.js +10 -154
  6. package/dist/announcement/root/announcement-root.d.ts +3 -0
  7. package/dist/app-header/root/app-header-root.css.js +2 -118
  8. package/dist/area-chart/root/area-chart-root.css.js +4 -94
  9. package/dist/area-chart/root/area-chart-root.d.ts +1 -0
  10. package/dist/aura/root/aura-root.css.js +2 -54
  11. package/dist/aura/root/aura-root.d.ts +21 -9
  12. package/dist/aura/root/aura-root.js +23 -12
  13. package/dist/avatar/group/avatar-group.css.js +5 -36
  14. package/dist/avatar/group/avatar-group.d.ts +3 -0
  15. package/dist/avatar/root/avatar-root.css.js +1 -53
  16. package/dist/avatar/root/avatar-root.d.ts +2 -0
  17. package/dist/badge/root/badge-root.css.js +17 -142
  18. package/dist/badge/root/badge-root.d.ts +20 -0
  19. package/dist/badge/root/badge-root.js +6 -0
  20. package/dist/bar-chart/root/bar-chart-root.css.js +8 -292
  21. package/dist/blockquote/root/blockquote-root.css.js +1 -43
  22. package/dist/blockquote/root/blockquote-root.d.ts +2 -0
  23. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
  24. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +7 -21
  25. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +18 -0
  26. package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
  27. package/dist/button/root/button-root.css.js +16 -196
  28. package/dist/button/root/button-root.d.ts +3 -0
  29. package/dist/button-group/root/button-group-root.css.js +2 -52
  30. package/dist/callout/root/callout-root.css.js +5 -137
  31. package/dist/callout/root/callout-root.d.ts +8 -2
  32. package/dist/canvas/node/canvas-node.css.js +10 -367
  33. package/dist/canvas/root/canvas-root.css.js +7 -270
  34. package/dist/card/root/card-root.css.js +5 -134
  35. package/dist/card/root/card-root.d.ts +6 -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 -301
  39. package/dist/chat/message/chat-message.d.ts +5 -0
  40. package/dist/chat/message/chat-message.js +2 -1
  41. package/dist/chat/root/chat-root.css.js +5 -155
  42. package/dist/chat/root/chat-root.d.ts +2 -0
  43. package/dist/chat/root/chat-root.js +2 -1
  44. package/dist/chat/typing.css.d.ts +1 -0
  45. package/dist/chat/typing.css.js +25 -0
  46. package/dist/checkbox/root/checkbox-root.css.js +12 -162
  47. package/dist/checkbox/root/checkbox-root.d.ts +2 -1
  48. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
  49. package/dist/code/root/code-root.css.js +3 -25
  50. package/dist/code/root/code-root.d.ts +2 -0
  51. package/dist/code-block/root/code-block-root.css.js +9 -250
  52. package/dist/code-block/root/code-block-root.d.ts +2 -1
  53. package/dist/color-input/root/color-input-root.css.js +5 -104
  54. package/dist/color-picker/root/color-picker-root.css.js +39 -329
  55. package/dist/color-picker/root/color-picker-root.d.ts +3 -0
  56. package/dist/combobox/root/combobox-root.css.js +8 -147
  57. package/dist/command/root/command-root.css.js +3 -74
  58. package/dist/copy-button/root/copy-button-root.css.js +5 -36
  59. package/dist/copy-button/root/copy-button-root.d.ts +7 -0
  60. package/dist/data-table/root/data-table-root.css.js +24 -241
  61. package/dist/data-table/root/data-table-root.d.ts +12 -0
  62. package/dist/date-input/root/date-input-root.css.js +8 -93
  63. package/dist/date-picker/root/date-picker-root.css.js +16 -278
  64. package/dist/date-picker/root/date-picker-root.d.ts +1 -0
  65. package/dist/description-list/item/description-list-item.css.js +1 -41
  66. package/dist/description-list/item/description-list-item.d.ts +7 -0
  67. package/dist/description-list/root/description-list-root.css.js +1 -34
  68. package/dist/description-list/root/description-list-root.d.ts +1 -0
  69. package/dist/dialog/root/dialog-root.css.js +7 -221
  70. package/dist/dialog/root/dialog-root.d.ts +3 -0
  71. package/dist/divider/root/divider-root.css.js +6 -81
  72. package/dist/donut-chart/root/donut-chart-root.css.js +7 -174
  73. package/dist/donut-chart/root/donut-chart-root.d.ts +3 -0
  74. package/dist/drawer/root/drawer-root.css.js +14 -193
  75. package/dist/drawer/root/drawer-root.d.ts +5 -0
  76. package/dist/drilldown/item/drilldown-item.css.js +4 -51
  77. package/dist/drilldown/item/drilldown-item.d.ts +7 -0
  78. package/dist/drilldown/root/drilldown-root.css.js +8 -109
  79. package/dist/drilldown/root/drilldown-root.d.ts +10 -0
  80. package/dist/element-events.generated.js +19 -6
  81. package/dist/empty/root/empty-root.css.js +2 -42
  82. package/dist/file-input/root/file-input-root.css.js +7 -172
  83. package/dist/file-input/root/file-input-root.d.ts +15 -0
  84. package/dist/filter-input/chip/filter-chip.css.js +2 -84
  85. package/dist/filter-input/field/filter-field.css.js +1 -3
  86. package/dist/filter-input/menu/filter-menu.css.js +1 -3
  87. package/dist/filter-input/operator/filter-operator.css.js +1 -3
  88. package/dist/filter-input/root/filter-input-root.css.js +6 -112
  89. package/dist/filter-input/root/filter-input-root.d.ts +5 -0
  90. package/dist/flex/root/flex-root.css.js +4 -198
  91. package/dist/flex/root/flex-root.d.ts +19 -8
  92. package/dist/format-date/root/format-date-root.css.js +1 -13
  93. package/dist/graph/root/graph-root.css.js +12 -444
  94. package/dist/graph/root/graph-root.d.ts +8 -0
  95. package/dist/grid/root/grid-root.css.js +1 -171
  96. package/dist/grid/root/grid-root.d.ts +4 -1
  97. package/dist/heatmap/root/heatmap-root.css.js +8 -155
  98. package/dist/heatmap/root/heatmap-root.d.ts +2 -0
  99. package/dist/icon/index.d.ts +1 -1
  100. package/dist/icon/root/icon-root.css.js +1 -18
  101. package/dist/icon/root/index.d.ts +1 -1
  102. package/dist/icon-button/root/icon-button-root.css.js +63 -186
  103. package/dist/icon-button/root/icon-button-root.d.ts +5 -0
  104. package/dist/image/root/image-root.css.js +7 -65
  105. package/dist/image/root/image-root.d.ts +3 -0
  106. package/dist/input/root/input-root.css.js +6 -79
  107. package/dist/kbd/root/kbd-root.css.js +2 -44
  108. package/dist/kbd/root/kbd-root.d.ts +9 -0
  109. package/dist/legend/root/legend-root.css.js +9 -106
  110. package/dist/legend/root/legend-root.d.ts +2 -0
  111. package/dist/lightbox/item/lightbox-item.css.js +1 -33
  112. package/dist/lightbox/root/lightbox-root.css.js +40 -144
  113. package/dist/line-chart/root/line-chart-root.css.js +4 -154
  114. package/dist/line-chart/root/line-chart-root.d.ts +3 -0
  115. package/dist/list/item/list-item.css.js +2 -94
  116. package/dist/list/root/list-root.css.js +4 -88
  117. package/dist/listbox/root/listbox-root.css.js +4 -102
  118. package/dist/listbox/root/listbox-root.d.ts +1 -0
  119. package/dist/loader/root/loader-root.css.js +5 -171
  120. package/dist/loader/root/loader-root.d.ts +2 -0
  121. package/dist/map/area/map-area.css.js +1 -23
  122. package/dist/map/buildings/map-buildings.css.js +1 -26
  123. package/dist/map/contours/map-contours.css.js +2 -5
  124. package/dist/map/landcover/map-landcover.css.js +1 -4
  125. package/dist/map/marker/map-marker.css.js +14 -327
  126. package/dist/map/points/map-points.css.js +1 -86
  127. package/dist/map/position/map-position.css.js +8 -227
  128. package/dist/map/raster/map-raster.css.js +1 -3
  129. package/dist/map/root/map-root.css.js +10 -352
  130. package/dist/map/route/map-route.css.js +1 -24
  131. package/dist/map/terrain/map-terrain.css.js +3 -7
  132. package/dist/megamenu/root/megamenu-root.css.js +15 -163
  133. package/dist/megamenu/root/megamenu-root.d.ts +19 -0
  134. package/dist/menu/item/menu-item.css.js +9 -111
  135. package/dist/menu/item/menu-item.d.ts +1 -0
  136. package/dist/menu/root/menu-root.css.js +1 -110
  137. package/dist/menu/section/menu-section.css.js +1 -13
  138. package/dist/meter/root/meter-root.css.js +20 -207
  139. package/dist/meter/root/meter-root.d.ts +4 -0
  140. package/dist/navigation/root/navigation-root.css.js +2 -54
  141. package/dist/navigation/root/navigation-root.d.ts +7 -0
  142. package/dist/notifications/group/notification-group.css.js +1 -61
  143. package/dist/notifications/notification/notification.css.js +17 -264
  144. package/dist/notifications/root/notifications-root.css.js +7 -119
  145. package/dist/notifications/root/notifications-root.d.ts +3 -1
  146. package/dist/number-input/root/number-input-root.css.js +10 -100
  147. package/dist/number-input/root/number-input-root.d.ts +8 -0
  148. package/dist/object-inspector/root/object-inspector-root.css.js +11 -166
  149. package/dist/option/group/option-group.css.js +1 -22
  150. package/dist/option/index.d.ts +1 -0
  151. package/dist/option/index.js +1 -0
  152. package/dist/option/root/option-root.css.js +3 -85
  153. package/dist/option/separator/option-separator.css.d.ts +1 -0
  154. package/dist/option/separator/option-separator.css.js +3 -0
  155. package/dist/option/separator/option-separator.d.ts +26 -0
  156. package/dist/option/separator/option-separator.js +16 -0
  157. package/dist/orb/root/orb-root.css.js +1 -41
  158. package/dist/orb/root/orb-root.d.ts +14 -6
  159. package/dist/orb/root/orb-root.js +16 -27
  160. package/dist/outline/root/outline-root.css.js +24 -122
  161. package/dist/outline/root/outline-root.d.ts +17 -4
  162. package/dist/pagination/root/pagination-root.css.js +9 -105
  163. package/dist/pagination/size/pagination-size.css.js +1 -22
  164. package/dist/pagination/summary/pagination-summary.css.js +1 -7
  165. package/dist/pin-input/root/pin-input-root.css.js +2 -73
  166. package/dist/pin-input/root/pin-input-root.d.ts +12 -2
  167. package/dist/popover/root/popover-root.css.js +6 -127
  168. package/dist/progress/root/progress-root.css.js +7 -228
  169. package/dist/progress/root/progress-root.d.ts +5 -0
  170. package/dist/qr-code/root/qr-code-root.css.js +1 -57
  171. package/dist/quote/root/quote-root.css.js +1 -17
  172. package/dist/quote/root/quote-root.d.ts +2 -0
  173. package/dist/radio/group/radio-group.css.js +1 -21
  174. package/dist/radio/root/radio-root.css.js +5 -192
  175. package/dist/radio/root/radio-root.d.ts +2 -1
  176. package/dist/rating/root/rating-root.css.js +4 -117
  177. package/dist/sandbox/frame.d.ts +5 -3
  178. package/dist/sandbox/frame.js +20 -6
  179. package/dist/sandbox/index.d.ts +1 -0
  180. package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
  181. package/dist/sandbox/preview/sandbox-preview.d.ts +19 -3
  182. package/dist/sandbox/preview/sandbox-preview.js +17 -11
  183. package/dist/sandbox/root/sandbox-root.css.js +3 -70
  184. package/dist/sandbox/root/sandbox-root.d.ts +16 -4
  185. package/dist/sandbox/root/sandbox-root.js +29 -50
  186. package/dist/sandbox/source/sandbox-source.css.js +3 -25
  187. package/dist/sandbox/source/sandbox-source.d.ts +40 -0
  188. package/dist/sandbox/source/sandbox-source.js +22 -0
  189. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
  190. package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
  191. package/dist/sandbox/terminal/sandbox-terminal.d.ts +14 -2
  192. package/dist/sandbox/terminal/sandbox-terminal.js +20 -6
  193. package/dist/sandbox/tokens.d.ts +39 -0
  194. package/dist/sandbox/tokens.js +9 -0
  195. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
  196. package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -137
  197. package/dist/scatter-chart/root/scatter-chart-root.d.ts +3 -0
  198. package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
  199. package/dist/select/root/select-root.css.js +4 -124
  200. package/dist/shared/chart/series.css.js +1 -36
  201. package/dist/shared/chart/terminus.css.js +1 -47
  202. package/dist/shared/chart/tooltip.css.js +1 -68
  203. package/dist/shared/collection/state.css.js +1 -9
  204. package/dist/shared/field/field-frame.css.js +3 -33
  205. package/dist/shared/field/field-inline.css.js +1 -4
  206. package/dist/shared/field/field-segments.css.js +1 -39
  207. package/dist/shared/field/field-stacked.css.js +1 -5
  208. package/dist/shared/field/field.css.js +3 -57
  209. package/dist/shared/floating/entrance.css.js +3 -34
  210. package/dist/shared/floating/panel.css.js +2 -17
  211. package/dist/shared/glyph/glyph.css.js +1 -5
  212. package/dist/shared/live/live.css.js +1 -8
  213. package/dist/shared/tags/tags.css.js +1 -39
  214. package/dist/shared/viewport/viewport.css.js +8 -135
  215. package/dist/skeleton/root/skeleton-root.css.js +12 -120
  216. package/dist/skeleton/root/skeleton-root.d.ts +1 -0
  217. package/dist/skip-link/root/skip-link-root.css.js +2 -35
  218. package/dist/skip-link/root/skip-link-root.d.ts +3 -3
  219. package/dist/slider/root/slider-root.css.js +35 -320
  220. package/dist/slider/root/slider-root.d.ts +2 -0
  221. package/dist/sparkline/root/sparkline-root.css.js +10 -96
  222. package/dist/sparkline/root/sparkline-root.d.ts +8 -0
  223. package/dist/sparkline/root/sparkline-root.js +2 -1
  224. package/dist/speed-dial/item/speed-dial-item.css.js +6 -74
  225. package/dist/speed-dial/item/speed-dial-item.d.ts +3 -0
  226. package/dist/speed-dial/root/speed-dial-root.css.js +3 -144
  227. package/dist/speed-dial/root/speed-dial-root.d.ts +7 -1
  228. package/dist/speed-dial/root/speed-dial-root.js +0 -1
  229. package/dist/splitter/root/splitter-root.css.js +11 -176
  230. package/dist/stat/group/stat-group.css.js +1 -36
  231. package/dist/stat/root/stat-root.css.js +3 -58
  232. package/dist/steps/root/steps-root.css.js +13 -70
  233. package/dist/steps/root/steps-root.d.ts +5 -0
  234. package/dist/steps/step/step.css.js +5 -156
  235. package/dist/switch/root/switch-root.css.js +2 -110
  236. package/dist/table/cell/table-cell.css.js +1 -33
  237. package/dist/table/column/table-column.css.js +7 -105
  238. package/dist/table/root/table-root.css.js +1 -43
  239. package/dist/table/row/table-row.css.js +6 -18
  240. package/dist/table/row/table-row.d.ts +2 -0
  241. package/dist/tabs/panel/tab-panel.css.js +2 -17
  242. package/dist/tabs/root/tabs-root.css.js +6 -177
  243. package/dist/tabs/root/tabs-root.d.ts +4 -0
  244. package/dist/tabs/tab/tab.css.js +10 -51
  245. package/dist/tabs/tab/tab.d.ts +7 -0
  246. package/dist/tag/group/tag-group.css.js +1 -5
  247. package/dist/tag/root/tag-root.css.js +1 -166
  248. package/dist/tag/root/tag-root.d.ts +2 -0
  249. package/dist/text/clamp.d.ts +5 -2
  250. package/dist/text/clamp.js +3 -1
  251. package/dist/text/root/text-root.css.js +11 -206
  252. package/dist/text/root/text-root.d.ts +2 -1
  253. package/dist/textarea/root/textarea-root.css.js +3 -44
  254. package/dist/time-input/root/time-input-root.css.js +7 -106
  255. package/dist/time-picker/root/time-picker-root.css.js +10 -134
  256. package/dist/time-picker/root/time-picker-root.d.ts +1 -0
  257. package/dist/timeline/group/timeline-group.css.js +1 -31
  258. package/dist/timeline/item/timeline-item.css.js +3 -134
  259. package/dist/timeline/root/timeline-root.css.js +1 -66
  260. package/dist/toast/item/toast-item.css.js +8 -240
  261. package/dist/toast/root/toast-root.css.js +1 -85
  262. package/dist/toast/root/toast-root.d.ts +1 -0
  263. package/dist/toast/root/toast-root.js +3 -1
  264. package/dist/toggle/group/toggle-group.css.js +9 -125
  265. package/dist/toggle/group/toggle-group.d.ts +6 -1
  266. package/dist/toggle/root/toggle-root.css.js +1 -23
  267. package/dist/toggle/root/toggle-root.d.ts +6 -0
  268. package/dist/toolbar/root/toolbar-root.css.js +1 -35
  269. package/dist/toolbar/root/toolbar-root.d.ts +4 -0
  270. package/dist/tooltip/root/tooltip-root.css.js +5 -101
  271. package/dist/tooltip/root/tooltip-root.d.ts +6 -0
  272. package/dist/tour/root/tour-root.css.js +2 -28
  273. package/dist/tour/stop/tour-stop.css.js +2 -109
  274. package/dist/tree/item/tree-item.css.js +14 -230
  275. package/dist/tree/item/tree-item.d.ts +9 -0
  276. package/dist/tree/root/tree-root.css.js +1 -40
  277. package/dist/trend/root/trend-root.css.js +5 -55
  278. package/dist/trend/root/trend-root.d.ts +2 -2
  279. package/dist/video/root/video-root.css.js +16 -398
  280. package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
  281. package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
  282. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
  283. package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
  284. package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
  285. package/dist/virtual-list/root/virtual-list-root.css.js +5 -28
  286. package/dist/virtual-list/root/virtual-list-root.d.ts +7 -1
  287. package/lint.json +1 -1
  288. package/package.json +9 -9
  289. package/types/jsx.d.ts +6997 -1154
  290. package/types/svelte.d.ts +1 -0
  291. package/types/vue.d.ts +2081 -271
@@ -1,170 +1,22 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: inline-flex;
4
- }
5
-
6
- [part="trigger"] {
7
- all: unset;
8
- box-sizing: border-box;
9
-
10
- align-items: center;
11
- border-radius: var(--helix-radii-sm);
12
- color: var(--helix-color-foreground-muted);
13
- cursor: pointer;
14
- display: inline-flex;
15
- font-family: var(--helix-font-sans);
16
- font-size: var(--helix-text-sm);
17
- font-weight: var(--helix-weight-medium);
18
- gap: var(--helix-space-2xs);
19
- min-block-size: var(--helix-size-control-tight);
20
- padding-inline: var(--helix-space-xs);
21
- transition:
2
+ export const styles = createSheet(`:host {display: inline-flex;position: relative;}[part="indicator"] {align-items: flex-end;display: flex;inset-block: 0;inset-inline: 0;justify-content: center;pointer-events: none;position: absolute;}[part="trigger"] {all: unset;box-sizing: border-box;align-items: center;border-radius: var(--megamenu-trigger-radius, var(--helix-radii-sm));color: var(--megamenu-trigger-color, var(--helix-color-foreground-muted));cursor: pointer;display: inline-flex;font-family: var(--helix-font-sans);font-size: var(--megamenu-trigger-font-size, var(--helix-text-sm));font-weight: var(--megamenu-trigger-font-weight, var(--helix-weight-medium));gap: var(--helix-space-2xs);min-block-size: var(--helix-size-control-tight);padding-inline: var(--megamenu-trigger-padding-inline, var(--helix-space-xs));transition:
22
3
  background-color var(--helix-duration-fast) var(--helix-easing-standard),
23
- color var(--helix-duration-fast) var(--helix-easing-standard);
24
- }
25
-
26
- [part="trigger"]:hover {
27
- color: var(--helix-color-foreground);
28
- }
29
-
30
- [part="trigger"]:focus-visible {
31
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
32
- outline-offset: var(--helix-size-focus-offset);
33
- }
34
-
35
- [part="trigger"][aria-expanded="true"] {
36
- background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
37
- color: var(--helix-color-foreground);
38
- }
39
-
40
- [part="surface"] {
41
-
42
- backdrop-filter: var(--megamenu-backdrop, none);
43
- background-color: var(--megamenu-background-color, var(--helix-color-background));
44
-
45
- border: var(--megamenu-border-width, var(--helix-border-thin)) solid
46
- light-dark(transparent, var(--helix-color-border));
47
-
48
- border-radius: var(--helix-radii-sm);
49
- box-shadow: var(--megamenu-shadow, var(--helix-shadow-floating));
50
- box-sizing: border-box;
51
-
52
- clip-path: inset(0 calc(var(--helix-space-xl) * -1) 100% calc(var(--helix-space-xl) * -1));
53
-
54
- display: grid;
55
- gap: var(--helix-space-xl);
56
- grid-auto-columns: minmax(var(--megamenu-column-size, 15rem), 1fr);
57
- grid-auto-flow: column;
58
-
59
- inline-size: max-content;
60
- margin: var(--helix-space-none);
61
-
62
- max-inline-size: min(var(--megamenu-size, 52rem), calc(100% - var(--helix-space-xl) * 2));
63
- padding: var(--helix-space-md);
64
-
65
- transition:
66
- clip-path var(--helix-duration-slow) var(--helix-easing-decelerate),
67
- display var(--helix-duration-slow) allow-discrete,
68
- overlay var(--helix-duration-slow) allow-discrete;
69
- }
70
-
71
- [part="surface"]:popover-open {
72
- clip-path: inset(
4
+ color var(--helix-duration-fast) var(--helix-easing-standard);}[part="trigger"]:hover {color: var(--megamenu-trigger-hover-color, var(--helix-color-foreground));}[part="trigger"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}[part="trigger"][aria-expanded="true"] {background-color: var(
5
+ --megamenu-trigger-open-background-color,
6
+ color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
7
+ );color: var(--megamenu-trigger-open-color, var(--helix-color-foreground));}[part="surface"] {backdrop-filter: var(--megamenu-backdrop, none);background-color: var(--megamenu-background-color, var(--helix-color-background));border: var(--megamenu-border-width, var(--helix-border-thin)) solid
8
+ light-dark(transparent, var(--helix-color-border));border-radius: var(--helix-radii-sm);box-shadow: var(--megamenu-shadow, var(--helix-shadow-floating));box-sizing: border-box;clip-path: inset(0 calc(var(--helix-space-xl) * -1) 100% calc(var(--helix-space-xl) * -1));display: grid;gap: var(--megamenu-gap, var(--helix-space-xl));grid-auto-columns: minmax(var(--megamenu-column-size, 15rem), 1fr);grid-auto-flow: column;inline-size: max-content;margin: var(--helix-space-none);max-inline-size: min(var(--megamenu-size, 52rem), calc(100% - var(--helix-space-xl) * 2));padding: var(--megamenu-padding, var(--helix-space-md));transition:
9
+ clip-path var(--megamenu-duration, var(--helix-duration-slow)) var(--helix-easing-decelerate),
10
+ display var(--megamenu-duration, var(--helix-duration-slow)) allow-discrete,
11
+ overlay var(--megamenu-duration, var(--helix-duration-slow)) allow-discrete;}[part="surface"]:popover-open {clip-path: inset(
73
12
  0 calc(var(--helix-space-xl) * -1) calc(var(--helix-space-xl) * -1)
74
13
  calc(var(--helix-space-xl) * -1)
75
- );
76
- }
77
-
78
- @starting-style {
79
- [part="surface"]:popover-open {
80
- clip-path: inset(0 calc(var(--helix-space-xl) * -1) 100% calc(var(--helix-space-xl) * -1));
81
- }
82
- }
83
-
84
- :host(:not([variant="band"])) [part="surface"] {
85
- clip-path: inset(0 100% 100% calc(var(--helix-space-xl) * -1));
86
- }
87
-
88
- :host(:not([variant="band"])) [part="surface"]:popover-open {
89
- clip-path: inset(
14
+ );}@starting-style {[part="surface"]:popover-open {clip-path: inset(0 calc(var(--helix-space-xl) * -1) 100% calc(var(--helix-space-xl) * -1));}}:host(:not([variant="band"])) [part="surface"] {clip-path: inset(0 100% 100% calc(var(--helix-space-xl) * -1));}:host(:not([variant="band"])) [part="surface"]:popover-open {clip-path: inset(
90
15
  0 calc(var(--helix-space-xl) * -1) calc(var(--helix-space-xl) * -1)
91
16
  calc(var(--helix-space-xl) * -1)
92
- );
93
- }
94
-
95
- @starting-style {
96
- :host(:not([variant="band"])) [part="surface"]:popover-open {
97
- clip-path: inset(0 100% 100% calc(var(--helix-space-xl) * -1));
98
- }
99
- }
100
-
101
- :host([variant="band"]) [part="surface"],
102
- :host(:state(narrow)) [part="surface"] {
103
-
104
- backdrop-filter: var(--megamenu-backdrop, none);
105
- background-color: var(--megamenu-background-color, var(--helix-color-background));
106
-
107
- border: none;
108
- border-radius: var(--helix-radii-none);
109
- box-shadow: var(--helix-shadow-md);
110
-
111
- clip-path: inset(0 0 100% 0);
112
-
113
- display: grid;
114
- grid-auto-flow: row;
115
- grid-template-columns: repeat(auto-fit, minmax(var(--megamenu-column-size, 15rem), 1fr));
116
- inline-size: auto;
117
- inset-block-start: var(--megamenu-top, 100%);
118
- inset-inline: 0;
119
- max-inline-size: none;
120
-
121
- padding-block: var(--helix-space-md) var(--helix-space-xl);
122
-
123
- padding-inline: max(var(--helix-space-xl), calc((100% - var(--megamenu-full-size, 80rem)) / 2));
124
- position: fixed;
125
- }
126
-
127
- :host([variant="band"]) [part="surface"]:popover-open,
128
- :host(:state(narrow)) [part="surface"]:popover-open {
129
- clip-path: inset(0 0 calc(var(--helix-space-xl) * -1) 0);
130
- }
131
-
132
- @starting-style {
133
- :host([variant="band"]) [part="surface"]:popover-open,
134
- :host(:state(narrow)) [part="surface"]:popover-open {
135
- clip-path: inset(0 0 100% 0);
136
- }
137
- }
138
-
139
- :host(:state(narrow)) [part="surface"] {
140
- grid-auto-flow: row;
141
- grid-template-columns: 1fr;
142
-
143
- max-block-size: calc(100dvh - var(--megamenu-top, 0px) - var(--helix-space-xl));
144
- overflow-y: auto;
145
- overscroll-behavior: contain;
146
- padding-inline: var(--helix-space-md);
147
- }
148
-
149
- :host [part="surface"][hidden] {
150
- display: none;
151
- }
152
-
153
- @media (prefers-reduced-motion: reduce) {
154
- [part="trigger"] {
155
- transition: none;
156
- }
157
-
158
- [part="surface"] {
159
- clip-path: none;
160
- transition:
17
+ );}@starting-style {:host(:not([variant="band"])) [part="surface"]:popover-open {clip-path: inset(0 100% 100% calc(var(--helix-space-xl) * -1));}}:host([variant="band"]) [part="surface"],
18
+ :host(:state(narrow)) [part="surface"] {backdrop-filter: var(--megamenu-backdrop, none);background-color: var(--megamenu-background-color, var(--helix-color-background));border: none;border-radius: var(--helix-radii-none);box-shadow: var(--helix-shadow-md);clip-path: inset(0 0 100% 0);display: grid;grid-auto-flow: row;grid-template-columns: repeat(auto-fit, minmax(var(--megamenu-column-size, 15rem), 1fr));inline-size: auto;inset-block-start: var(--megamenu-top, 100%);inset-inline: 0;max-inline-size: none;padding-block: var(--helix-space-md) var(--helix-space-xl);padding-inline: max(var(--helix-space-xl), calc((100% - var(--megamenu-full-size, 80rem)) / 2));position: fixed;}:host([variant="band"]) [part="surface"]:popover-open,
19
+ :host(:state(narrow)) [part="surface"]:popover-open {clip-path: inset(0 0 calc(var(--helix-space-xl) * -1) 0);}@starting-style {:host([variant="band"]) [part="surface"]:popover-open,
20
+ :host(:state(narrow)) [part="surface"]:popover-open {clip-path: inset(0 0 100% 0);}}:host(:state(narrow)) [part="surface"] {grid-auto-flow: row;grid-template-columns: 1fr;max-block-size: calc(100dvh - var(--megamenu-top, 0px) - var(--helix-space-xl));overflow-y: auto;overscroll-behavior: contain;padding-inline: var(--helix-space-md);}:host [part="surface"][hidden] {display: none;}@media (prefers-reduced-motion: reduce) {[part="trigger"] {transition: none;}[part="surface"] {clip-path: none;transition:
161
21
  display var(--helix-duration-instant) allow-discrete,
162
- overlay var(--helix-duration-instant) allow-discrete;
163
- }
164
- }
165
-
166
- @media print {
167
- :host {
168
- display: none;
169
- }
170
- }`);
22
+ overlay var(--helix-duration-instant) allow-discrete;}}@media print {:host {display: none;}}`);
@@ -7,6 +7,14 @@ import type { CSSResultGroup } from 'lit';
7
7
  * Styles the trigger and lays out the panel it opens as a grid of columns. What
8
8
  * opens and closes the panel comes from the base class.
9
9
  *
10
+ * **The panel's contents are laid out by `helix.css`**, through attributes you
11
+ * write on your own markup: `data-megamenu-group` on each column,
12
+ * `data-megamenu-heading` on a column's heading, and `data-megamenu-item` on a
13
+ * link that carries a title in `<strong>` and a line of description in `<span>`
14
+ * or `<p>`, with an icon before them. A plain `<a>` in a group is drawn as a
15
+ * navigation item. Without the attributes the panel holds your markup as you
16
+ * styled it.
17
+ *
10
18
  * @since 0.1.0
11
19
  * @status stable
12
20
  * @category navigation
@@ -20,10 +28,21 @@ import type { CSSResultGroup } from 'lit';
20
28
  * `--helix-border-floating`, which is `0` unless a theme changes it, so the panel stands out
21
29
  * by its shadow.
22
30
  * @cssproperty --megamenu-column-size - The minimum width of a column before the grid wraps.
31
+ * @cssproperty --megamenu-duration - How long the panel takes to open and close.
23
32
  * @cssproperty --megamenu-full-size - The maximum width of the band's contents, which are centered in it.
33
+ * @cssproperty --megamenu-gap - The space between the panel's columns.
34
+ * @cssproperty --megamenu-padding - The space inside the card's edge.
24
35
  * @cssproperty --megamenu-shadow - The shadow under the panel. Follows `--helix-shadow-floating`,
25
36
  * so the panel has a shadow by default, because it sits over content you cannot predict.
26
37
  * @cssproperty --megamenu-size - The maximum width of the panel.
38
+ * @cssproperty --megamenu-trigger-color - The trigger's text color at rest.
39
+ * @cssproperty --megamenu-trigger-font-size - The size of the trigger's text.
40
+ * @cssproperty --megamenu-trigger-font-weight - The weight of the trigger's text.
41
+ * @cssproperty --megamenu-trigger-hover-color - The trigger's text color under the pointer.
42
+ * @cssproperty --megamenu-trigger-open-background-color - The trigger's fill while its panel is open.
43
+ * @cssproperty --megamenu-trigger-open-color - The trigger's text color while its panel is open.
44
+ * @cssproperty --megamenu-trigger-padding-inline - The space either side of the trigger's text.
45
+ * @cssproperty --megamenu-trigger-radius - The trigger's corners.
27
46
  */
28
47
  export declare class HelixMegamenu extends HelixHeadlessMegamenu {
29
48
  static styles: CSSResultGroup;
@@ -1,117 +1,15 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: block;
4
- }
5
-
6
- [part="item"] {
7
- align-items: center;
8
-
9
- text-decoration: none;
10
-
11
- border-radius: var(--helix-radii-none);
12
- color: var(--helix-color-foreground);
13
- cursor: pointer;
14
- display: grid;
15
-
16
- font-size: var(--helix-text-xs);
17
-
18
- font-weight: var(--helix-weight-medium);
19
-
20
- grid-template-columns:
2
+ export const styles = createSheet(`:host {display: block;}[part="item"] {align-items: center;text-decoration: none;border-radius: var(--helix-radii-none);color: var(--helix-color-foreground);cursor: pointer;display: grid;font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);grid-template-columns:
21
3
  var(--menu-item-start, 0px)
22
4
  minmax(0, 1fr)
23
5
  auto
24
- var(--menu-item-end, 0px);
25
-
26
- min-block-size: var(--helix-size-control);
27
-
28
- padding-inline: var(--helix-space-sm);
29
- transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
30
- user-select: none;
31
- }
32
-
33
- [part="item"]:hover {
34
- background-color: var(
6
+ var(--menu-item-end, 0px);min-block-size: var(--helix-size-control);padding-inline: var(--helix-space-sm);transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);user-select: none;}[part="item"]:hover {background-color: var(
35
7
  --menu-item-hover-color,
36
8
  color-mix(in oklab, var(--helix-color-foreground) 8%, transparent)
37
- );
38
- }
39
-
40
- [part="item"]:focus-visible {
41
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
42
- outline-offset: calc(var(--helix-size-focus-offset) * -1);
43
- }
44
-
45
- [part="item"][aria-disabled="true"] {
46
- cursor: not-allowed;
47
- opacity: 0.5;
48
- }
49
-
50
- [part="start"] {
51
-
52
- --icon-size: var(--helix-size-icon);
53
-
54
- align-items: center;
55
-
56
- box-sizing: border-box;
57
- color: var(--helix-color-foreground-subtle);
58
- display: flex;
59
- justify-content: center;
60
- padding-inline-end: var(--helix-space-xs);
61
-
62
- min-block-size: var(--helix-size-icon);
63
- }
64
-
65
- [part="start"] {
66
- grid-column: 1;
67
- }
68
-
69
- [part="item"] > slot:not([name]) {
70
- display: block;
71
- grid-column: 2;
72
-
73
- min-inline-size: 0;
74
- }
75
-
76
- [part="end"] {
77
- align-items: center;
78
- color: var(--menu-item-detail-color, var(--helix-color-foreground-subtle));
79
- display: flex;
80
- gap: var(--helix-space-2xs);
81
- grid-column: 3;
82
- padding-inline-start: var(--helix-space-sm);
83
- }
84
-
85
- [part="end"][data-empty] {
86
- display: none;
87
- }
88
-
89
- [part="mark"] {
90
- grid-column: 4;
91
- }
92
-
93
- [part="start"][data-empty] {
94
- display: none;
95
- }
96
-
97
- [part="mark"] {
98
- block-size: var(--helix-size-icon);
99
- inline-size: var(--helix-size-icon);
100
- justify-self: end;
101
- }
102
-
103
- svg[part="mark"] {
104
- color: var(--helix-color-foreground-subtle);
105
- }
106
-
107
- :host(:state(checked)) svg[part="mark"] {
108
- color: var(--helix-color-foreground);
109
- }
110
-
111
- slot[name="submenu"] {
112
- display: contents;
113
- }
114
-
115
- slot[name="submenu"]::slotted(helix-divider) {
116
- margin-block: var(--helix-space-2xs);
117
- }`);
9
+ );}[part="item"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part="item"][aria-disabled="true"] {cursor: not-allowed;opacity: 0.5;}[part="start"] {--icon-size: var(--helix-size-icon);align-items: center;box-sizing: border-box;color: var(--helix-color-foreground-subtle);display: flex;justify-content: center;padding-inline-end: var(--helix-space-xs);min-block-size: var(--helix-size-icon);}[part="start"] {grid-column: 1;}[part="item"] > slot:not([name]) {display: block;grid-column: 2;min-inline-size: 0;}slot[name="description"] {color: var(--menu-item-description-color, var(--helix-color-foreground-subtle));display: block;font-weight: var(--helix-weight-regular);grid-column: 2;grid-row: 2;min-inline-size: 0;padding-block-end: var(--helix-space-2xs);}slot[name="description"][data-empty] {display: none;}[part="end"] {align-items: center;color: var(--menu-item-detail-color, var(--helix-color-foreground-subtle));display: flex;gap: var(--helix-space-2xs);grid-column: 3;padding-inline-start: var(--helix-space-sm);}[part="end"][data-empty] {display: none;}[part="mark"],
10
+ slot[name="check"]::slotted(*),
11
+ slot[name="chevron"]::slotted(*) {grid-column: 4;grid-row: 1;}[part="start"][data-empty] {display: none;}[part="mark"],
12
+ slot[name="check"]::slotted(*),
13
+ slot[name="chevron"]::slotted(*) {block-size: var(--helix-size-icon);inline-size: var(--helix-size-icon);justify-self: end;}svg[part="mark"],
14
+ slot[name="chevron"]::slotted(*) {color: var(--helix-color-foreground-subtle);}:host(:state(checked)) svg[part="mark"],
15
+ slot[name="check"]::slotted(*) {color: var(--helix-color-foreground);}slot[name="submenu"] {display: contents;}slot[name="submenu"]::slotted(helix-divider) {margin-block: var(--helix-space-2xs);}`);
@@ -17,6 +17,7 @@ import '../../kbd/index.js';
17
17
  * @aliases Menu option, Menu row
18
18
  * @documentation https://fusion.dev/helix/components/menu
19
19
  *
20
+ * @cssproperty --menu-item-description-color - Color of the line under the label.
20
21
  * @cssproperty --menu-item-detail-color - Color of the shortcut and the words in the `end` slot.
21
22
  * @cssproperty --menu-item-end - Width of the trailing column, including the gap before it, which holds a check mark or a submenu caret.
22
23
  * @cssproperty --menu-item-hover-color - Fill under the pointer.
@@ -1,111 +1,2 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
-
4
- display: contents;
5
- }
6
-
7
- [part="surface"] {
8
-
9
- --helix-size-control: var(--helix-size-control-sm);
10
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
11
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
12
- --helix-size-icon: var(--helix-size-icon-sm);
13
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
14
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
15
-
16
- --menu-item-start: 0px;
17
- --menu-item-end: 0px;
18
-
19
- max-block-size: var(--menu-max-block-size, var(--floating-available-block-size, none));
20
- overflow-y: auto;
21
-
22
- --_floating-background-color: var(--menu-background-color, var(--helix-color-surface-overlay));
23
- --_floating-border-color: var(--menu-border-color, var(--helix-color-border));
24
- --_floating-border-width: var(--menu-border-width, var(--helix-border-floating));
25
- --_floating-shadow: var(--menu-shadow, var(--helix-shadow-floating));
26
-
27
- min-inline-size: var(--menu-min-inline-size, 12rem);
28
-
29
- padding-block: var(--helix-space-xs);
30
- padding-inline: var(--helix-space-none);
31
- }
32
-
33
- :host(:state(start)) [part="surface"] {
34
- --menu-item-start: calc(var(--helix-size-icon) + var(--helix-space-xs));
35
- }
36
-
37
- :host(:state(mark)) [part="surface"] {
38
- --menu-item-end: calc(var(--helix-size-icon) + var(--helix-space-xs));
39
- }
40
-
41
- [part="surface"][data-placement^="left"] {
42
- transform-origin: 100% var(--floating-arrow-y, 50%);
43
- }
44
-
45
- [part="surface"][data-placement^="right"] {
46
- transform-origin: 0 var(--floating-arrow-y, 50%);
47
- }
48
-
49
- [part="header"] {
50
- align-items: center;
51
- border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
52
- display: flex;
53
- gap: var(--helix-space-2xs);
54
- margin-block-end: var(--helix-space-2xs);
55
-
56
- padding: var(--helix-space-2xs) var(--helix-space-xs) var(--helix-space-xs);
57
- }
58
-
59
- [part="back"] {
60
- align-items: center;
61
- background: none;
62
- border: none;
63
- border-radius: var(--helix-radii-sm);
64
- color: var(--helix-color-foreground-muted);
65
- cursor: pointer;
66
- display: inline-flex;
67
- justify-content: center;
68
-
69
- block-size: calc(var(--helix-size-icon) + var(--helix-space-xs));
70
- inline-size: calc(var(--helix-size-icon) + var(--helix-space-xs));
71
- padding: var(--helix-space-none);
72
- }
73
-
74
- [part="back"] svg {
75
- block-size: var(--helix-size-icon);
76
- inline-size: var(--helix-size-icon);
77
- }
78
-
79
- [part="back"]:hover {
80
- background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
81
- color: var(--helix-color-foreground);
82
- }
83
-
84
- [part="back"]:focus-visible {
85
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
86
- outline-offset: calc(var(--helix-size-focus-offset) * -1);
87
- }
88
-
89
- [part="title"] {
90
- color: var(--helix-color-foreground);
91
- font-size: var(--helix-text-xs);
92
- font-weight: var(--helix-weight-medium);
93
- }
94
-
95
- ::slotted(helix-divider) {
96
- margin-block: var(--helix-space-2xs);
97
- }
98
-
99
- [part="surface"][data-drilled] slot::slotted(:not(helix-menu-item)) {
100
- display: none;
101
- }
102
-
103
- :host([loading]) [part="surface"] {
104
- opacity: 0.5;
105
- }
106
-
107
- @media print {
108
- :host {
109
- display: none;
110
- }
111
- }`);
2
+ export const styles = createSheet(`:host {display: contents;}[part="surface"] {--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);--menu-item-start: 0px;--menu-item-end: 0px;max-block-size: var(--menu-max-block-size, var(--floating-available-block-size, none));overflow-y: auto;--_floating-background-color: var(--menu-background-color, var(--helix-color-surface-overlay));--_floating-border-color: var(--menu-border-color, var(--helix-color-border));--_floating-border-width: var(--menu-border-width, var(--helix-border-floating));--_floating-shadow: var(--menu-shadow, var(--helix-shadow-floating));min-inline-size: var(--menu-min-inline-size, 12rem);padding-block: var(--helix-space-xs);padding-inline: var(--helix-space-none);}:host(:state(start)) [part="surface"] {--menu-item-start: calc(var(--helix-size-icon) + var(--helix-space-xs));}:host(:state(mark)) [part="surface"] {--menu-item-end: calc(var(--helix-size-icon) + var(--helix-space-xs));}[part="surface"][data-placement^="left"] {transform-origin: 100% var(--floating-arrow-y, 50%);}[part="surface"][data-placement^="right"] {transform-origin: 0 var(--floating-arrow-y, 50%);}[part="header"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);display: flex;gap: var(--helix-space-2xs);margin-block-end: var(--helix-space-2xs);padding: var(--helix-space-2xs) var(--helix-space-xs) var(--helix-space-xs);}[part="back"] {align-items: center;background: none;border: none;border-radius: var(--helix-radii-sm);color: var(--helix-color-foreground-muted);cursor: pointer;display: inline-flex;justify-content: center;block-size: calc(var(--helix-size-icon) + var(--helix-space-xs));inline-size: calc(var(--helix-size-icon) + var(--helix-space-xs));padding: var(--helix-space-none);}[part="back"] svg {block-size: var(--helix-size-icon);inline-size: var(--helix-size-icon);}[part="back"]:hover {background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);color: var(--helix-color-foreground);}[part="back"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part="title"] {color: var(--helix-color-foreground);font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);}::slotted(helix-divider) {margin-block: var(--helix-space-2xs);}[part="surface"][data-drilled] slot::slotted(:not(helix-menu-item)) {display: none;}:host([loading]) [part="surface"] {opacity: 0.5;}@media print {:host {display: none;}}`);
@@ -1,14 +1,2 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: block;
4
- }
5
-
6
- [part="heading"] {
7
- color: var(--menu-section-heading-color, var(--helix-color-foreground-subtle));
8
- font-size: var(--helix-text-xs);
9
- font-weight: var(--helix-weight-medium);
10
- line-height: var(--helix-leading-normal);
11
- padding-block: var(--helix-space-xs) var(--helix-space-2xs);
12
- padding-inline: var(--helix-space-sm);
13
- user-select: none;
14
- }`);
2
+ export const styles = createSheet(`:host {display: block;}[part="heading"] {color: var(--menu-section-heading-color, var(--helix-color-foreground-subtle));font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);line-height: var(--helix-leading-normal);padding-block: var(--helix-space-xs) var(--helix-space-2xs);padding-inline: var(--helix-space-sm);user-select: none;}`);