@fusion.dev/helix-headless 0.230.0 → 0.231.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 (31) hide show
  1. package/api.json +1 -1
  2. package/custom-elements.json +1 -1
  3. package/dist/data-table/events/before-column-toggle.d.ts +14 -0
  4. package/dist/data-table/events/before-column-toggle.js +11 -0
  5. package/dist/data-table/events/column-toggle.d.ts +11 -0
  6. package/dist/data-table/events/column-toggle.js +11 -0
  7. package/dist/data-table/events/details.d.ts +7 -0
  8. package/dist/data-table/events/index.d.ts +6 -2
  9. package/dist/data-table/events/index.js +5 -1
  10. package/dist/data-table/root/data-table-root.d.ts +102 -0
  11. package/dist/data-table/root/data-table-root.js +183 -3
  12. package/dist/element-events.generated.js +2 -0
  13. package/dist/spatial-bar-chart/root/spatial-bar-chart-root.js +9 -9
  14. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.d.ts +1 -0
  15. package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.js +3 -2
  16. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.d.ts +1 -0
  17. package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +3 -2
  18. package/dist/spatial-scatter-chart/view.d.ts +30 -1
  19. package/dist/spatial-scatter-chart/view.js +56 -9
  20. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.d.ts +1 -0
  21. package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +3 -2
  22. package/dist/spatial-treemap/root/spatial-treemap-root.d.ts +1 -0
  23. package/dist/spatial-treemap/root/spatial-treemap-root.js +3 -2
  24. package/dist/table/column/table-column.d.ts +23 -0
  25. package/dist/table/column/table-column.js +45 -6
  26. package/examples.json +1 -1
  27. package/lint.json +1 -1
  28. package/package.json +5 -5
  29. package/types/jsx.d.ts +139 -1
  30. package/types/vue.d.ts +68 -1
  31. package/types/words.d.ts +43 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-headless",
3
3
  "description": "Headless component tier. Structure, accessibility, state, and form participation. No styling.",
4
- "version": "0.230.0",
4
+ "version": "0.231.0",
5
5
  "license": "MIT",
6
6
  "author": "Fusion Development Group",
7
7
  "repository": {
@@ -58,14 +58,14 @@
58
58
  },
59
59
  "bugs": "https://github.com/project-fusion/fusion/issues",
60
60
  "dependencies": {
61
- "@fusion.dev/helix-core": "0.230.0",
62
- "@fusion.dev/helix-icons": "0.230.0",
61
+ "@fusion.dev/helix-core": "0.231.0",
62
+ "@fusion.dev/helix-icons": "0.231.0",
63
63
  "tslib": "^2.8.1",
64
64
  "uqr": "^0.1.3"
65
65
  },
66
66
  "devDependencies": {
67
- "@fusion.dev/helix-cem": "0.230.0",
68
- "@fusion.dev/helix-testing": "0.230.0",
67
+ "@fusion.dev/helix-cem": "0.231.0",
68
+ "@fusion.dev/helix-testing": "0.231.0",
69
69
  "@fusion.dev/scripts": "0.0.0-dev",
70
70
  "@happy-dom/global-registrator": "^21.0.4",
71
71
  "@lit-labs/ssr": "^4.1.0",
package/types/jsx.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // Generated by `helix-cem` from this package's manifest. Do not edit.
2
2
 
3
- import type { HelixActionEvent, HelixActivateEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCheckEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeExpandEvent, HelixBeforeFacetEvent, HelixBeforeFilterEvent, HelixBeforeFollowEvent, HelixBeforeGraphFilterEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeNavigateEvent, HelixBeforeOpenEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReadEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSelectEvent, HelixBeforeSortEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCheckEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFollowEvent, HelixFoundEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHeadlessAccordion, HelixHeadlessAccordionItem, HelixHeadlessAnnouncement, HelixHeadlessAppHeader, HelixHeadlessAreaChart, HelixHeadlessAvatar, HelixHeadlessAvatarGroup, HelixHeadlessBadge, HelixHeadlessBarChart, HelixHeadlessBlockquote, HelixHeadlessBreadcrumb, HelixHeadlessBreadcrumbs, HelixHeadlessButton, HelixHeadlessButtonGroup, HelixHeadlessCallout, HelixHeadlessCanvas, HelixHeadlessCanvasEdge, HelixHeadlessCanvasNode, HelixHeadlessCard, HelixHeadlessCarousel, HelixHeadlessChat, HelixHeadlessChatComposer, HelixHeadlessChatMessage, HelixHeadlessCheckbox, HelixHeadlessCheckboxGroup, HelixHeadlessCode, HelixHeadlessCodeBlock, HelixHeadlessCodeEditor, HelixHeadlessCodeInput, HelixHeadlessColorInput, HelixHeadlessColorPicker, HelixHeadlessCombobox, HelixHeadlessCommand, HelixHeadlessCopyButton, HelixHeadlessDataTable, HelixHeadlessDateInput, HelixHeadlessDatePicker, HelixHeadlessDescriptionList, HelixHeadlessDescriptionListItem, HelixHeadlessDeviceScreen, HelixHeadlessDialog, HelixHeadlessDivider, HelixHeadlessDonutChart, HelixHeadlessDrawer, HelixHeadlessDrilldown, HelixHeadlessDrilldownItem, HelixHeadlessEditor, HelixHeadlessEmpty, HelixHeadlessFileInput, HelixHeadlessFilterChip, HelixHeadlessFilterField, HelixHeadlessFilterInput, HelixHeadlessFilterMenu, HelixHeadlessFilterOperator, HelixHeadlessFind, HelixHeadlessFormatDate, HelixHeadlessGraph, HelixHeadlessHeatmap, HelixHeadlessIcon, HelixHeadlessIconButton, HelixHeadlessImage, HelixHeadlessInput, HelixHeadlessKbd, HelixHeadlessLegend, HelixHeadlessLightbox, HelixHeadlessLightboxItem, HelixHeadlessLineChart, HelixHeadlessList, HelixHeadlessListItem, HelixHeadlessListbox, HelixHeadlessLoader, HelixHeadlessLog, HelixHeadlessLogGroup, HelixHeadlessLogLine, HelixHeadlessMap, HelixHeadlessMapArea, HelixHeadlessMapBuildings, HelixHeadlessMapContours, HelixHeadlessMapLandcover, HelixHeadlessMapMarker, HelixHeadlessMapPoints, HelixHeadlessMapPosition, HelixHeadlessMapRaster, HelixHeadlessMapRoute, HelixHeadlessMapTerrain, HelixHeadlessMarkdown, HelixHeadlessMegamenu, HelixHeadlessMenu, HelixHeadlessMenuItem, HelixHeadlessMenuSection, HelixHeadlessMeter, HelixHeadlessMeterSegment, HelixHeadlessMotionToggle, HelixHeadlessNavigation, HelixHeadlessNotification, HelixHeadlessNotificationGroup, HelixHeadlessNotifications, HelixHeadlessNumberInput, HelixHeadlessObjectInspector, HelixHeadlessOption, HelixHeadlessOptionGroup, HelixHeadlessOptionSeparator, HelixHeadlessOutline, HelixHeadlessPagination, HelixHeadlessPaginationSize, HelixHeadlessPaginationSummary, HelixHeadlessPinInput, HelixHeadlessPopover, HelixHeadlessProgress, HelixHeadlessQrCode, HelixHeadlessQuote, HelixHeadlessRadio, HelixHeadlessRadioGroup, HelixHeadlessRating, HelixHeadlessScatterChart, HelixHeadlessScrollArea, HelixHeadlessSelect, HelixHeadlessShortcutOverlay, HelixHeadlessSkeleton, HelixHeadlessSkipLink, HelixHeadlessSlider, HelixHeadlessSparkline, HelixHeadlessSpatialBarChart, HelixHeadlessSpatialHeatmap, HelixHeadlessSpatialRibbonChart, HelixHeadlessSpatialScatterChart, HelixHeadlessSpatialSurfaceChart, HelixHeadlessSpatialTreemap, HelixHeadlessSpeedDial, HelixHeadlessSpeedDialGroup, HelixHeadlessSpeedDialItem, HelixHeadlessSplitter, HelixHeadlessStat, HelixHeadlessStatGroup, HelixHeadlessStep, HelixHeadlessSteps, HelixHeadlessSwitch, HelixHeadlessTab, HelixHeadlessTabPanel, HelixHeadlessTable, HelixHeadlessTableCell, HelixHeadlessTableColumn, HelixHeadlessTableRow, HelixHeadlessTabs, HelixHeadlessTag, HelixHeadlessTagGroup, HelixHeadlessTerminal, HelixHeadlessTextarea, HelixHeadlessTimeInput, HelixHeadlessTimePicker, HelixHeadlessTimeline, HelixHeadlessTimelineGroup, HelixHeadlessTimelineItem, HelixHeadlessToast, HelixHeadlessToastItem, HelixHeadlessToggle, HelixHeadlessToggleGroup, HelixHeadlessToolbar, HelixHeadlessTooltip, HelixHeadlessTour, HelixHeadlessTourStop, HelixHeadlessTree, HelixHeadlessTreeItem, HelixHeadlessTrend, HelixHeadlessVideo, HelixHeadlessVideoPlaylist, HelixHeadlessVideoPlaylistItem, HelixHeadlessVideoPlaylistMenu, HelixHeadlessVirtualList, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixResizeEvent, HelixResizedEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixStopEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent } from "@fusion.dev/helix-headless";
3
+ import type { HelixActionEvent, HelixActivateEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCheckEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeColumnToggleEvent, HelixBeforeExpandEvent, HelixBeforeFacetEvent, HelixBeforeFilterEvent, HelixBeforeFollowEvent, HelixBeforeGraphFilterEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeNavigateEvent, HelixBeforeOpenEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReadEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSelectEvent, HelixBeforeSortEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCheckEvent, HelixClearEvent, HelixCollapseEvent, HelixColumnToggleEvent, HelixCompleteEvent, HelixConnectEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFollowEvent, HelixFoundEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHeadlessAccordion, HelixHeadlessAccordionItem, HelixHeadlessAnnouncement, HelixHeadlessAppHeader, HelixHeadlessAreaChart, HelixHeadlessAvatar, HelixHeadlessAvatarGroup, HelixHeadlessBadge, HelixHeadlessBarChart, HelixHeadlessBlockquote, HelixHeadlessBreadcrumb, HelixHeadlessBreadcrumbs, HelixHeadlessButton, HelixHeadlessButtonGroup, HelixHeadlessCallout, HelixHeadlessCanvas, HelixHeadlessCanvasEdge, HelixHeadlessCanvasNode, HelixHeadlessCard, HelixHeadlessCarousel, HelixHeadlessChat, HelixHeadlessChatComposer, HelixHeadlessChatMessage, HelixHeadlessCheckbox, HelixHeadlessCheckboxGroup, HelixHeadlessCode, HelixHeadlessCodeBlock, HelixHeadlessCodeEditor, HelixHeadlessCodeInput, HelixHeadlessColorInput, HelixHeadlessColorPicker, HelixHeadlessCombobox, HelixHeadlessCommand, HelixHeadlessCopyButton, HelixHeadlessDataTable, HelixHeadlessDateInput, HelixHeadlessDatePicker, HelixHeadlessDescriptionList, HelixHeadlessDescriptionListItem, HelixHeadlessDeviceScreen, HelixHeadlessDialog, HelixHeadlessDivider, HelixHeadlessDonutChart, HelixHeadlessDrawer, HelixHeadlessDrilldown, HelixHeadlessDrilldownItem, HelixHeadlessEditor, HelixHeadlessEmpty, HelixHeadlessFileInput, HelixHeadlessFilterChip, HelixHeadlessFilterField, HelixHeadlessFilterInput, HelixHeadlessFilterMenu, HelixHeadlessFilterOperator, HelixHeadlessFind, HelixHeadlessFormatDate, HelixHeadlessGraph, HelixHeadlessHeatmap, HelixHeadlessIcon, HelixHeadlessIconButton, HelixHeadlessImage, HelixHeadlessInput, HelixHeadlessKbd, HelixHeadlessLegend, HelixHeadlessLightbox, HelixHeadlessLightboxItem, HelixHeadlessLineChart, HelixHeadlessList, HelixHeadlessListItem, HelixHeadlessListbox, HelixHeadlessLoader, HelixHeadlessLog, HelixHeadlessLogGroup, HelixHeadlessLogLine, HelixHeadlessMap, HelixHeadlessMapArea, HelixHeadlessMapBuildings, HelixHeadlessMapContours, HelixHeadlessMapLandcover, HelixHeadlessMapMarker, HelixHeadlessMapPoints, HelixHeadlessMapPosition, HelixHeadlessMapRaster, HelixHeadlessMapRoute, HelixHeadlessMapTerrain, HelixHeadlessMarkdown, HelixHeadlessMegamenu, HelixHeadlessMenu, HelixHeadlessMenuItem, HelixHeadlessMenuSection, HelixHeadlessMeter, HelixHeadlessMeterSegment, HelixHeadlessMotionToggle, HelixHeadlessNavigation, HelixHeadlessNotification, HelixHeadlessNotificationGroup, HelixHeadlessNotifications, HelixHeadlessNumberInput, HelixHeadlessObjectInspector, HelixHeadlessOption, HelixHeadlessOptionGroup, HelixHeadlessOptionSeparator, HelixHeadlessOutline, HelixHeadlessPagination, HelixHeadlessPaginationSize, HelixHeadlessPaginationSummary, HelixHeadlessPinInput, HelixHeadlessPopover, HelixHeadlessProgress, HelixHeadlessQrCode, HelixHeadlessQuote, HelixHeadlessRadio, HelixHeadlessRadioGroup, HelixHeadlessRating, HelixHeadlessScatterChart, HelixHeadlessScrollArea, HelixHeadlessSelect, HelixHeadlessShortcutOverlay, HelixHeadlessSkeleton, HelixHeadlessSkipLink, HelixHeadlessSlider, HelixHeadlessSparkline, HelixHeadlessSpatialBarChart, HelixHeadlessSpatialHeatmap, HelixHeadlessSpatialRibbonChart, HelixHeadlessSpatialScatterChart, HelixHeadlessSpatialSurfaceChart, HelixHeadlessSpatialTreemap, HelixHeadlessSpeedDial, HelixHeadlessSpeedDialGroup, HelixHeadlessSpeedDialItem, HelixHeadlessSplitter, HelixHeadlessStat, HelixHeadlessStatGroup, HelixHeadlessStep, HelixHeadlessSteps, HelixHeadlessSwitch, HelixHeadlessTab, HelixHeadlessTabPanel, HelixHeadlessTable, HelixHeadlessTableCell, HelixHeadlessTableColumn, HelixHeadlessTableRow, HelixHeadlessTabs, HelixHeadlessTag, HelixHeadlessTagGroup, HelixHeadlessTerminal, HelixHeadlessTextarea, HelixHeadlessTimeInput, HelixHeadlessTimePicker, HelixHeadlessTimeline, HelixHeadlessTimelineGroup, HelixHeadlessTimelineItem, HelixHeadlessToast, HelixHeadlessToastItem, HelixHeadlessToggle, HelixHeadlessToggleGroup, HelixHeadlessToolbar, HelixHeadlessTooltip, HelixHeadlessTour, HelixHeadlessTourStop, HelixHeadlessTree, HelixHeadlessTreeItem, HelixHeadlessTrend, HelixHeadlessVideo, HelixHeadlessVideoPlaylist, HelixHeadlessVideoPlaylistItem, HelixHeadlessVideoPlaylistMenu, HelixHeadlessVirtualList, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixResizeEvent, HelixResizedEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixStopEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent } from "@fusion.dev/helix-headless";
4
4
 
5
5
  /**
6
6
  * This type can be used to create scoped tags for your components.
@@ -6815,6 +6815,8 @@ export type HelixHeadlessCopyButtonSolidJsProps = {
6815
6815
 
6816
6816
  /** `HelixHeadlessDataTable` component event */
6817
6817
  export type HelixHeadlessDataTableElementEvent<E = Event> = TypedEvent<HelixHeadlessDataTable, E>;
6818
+ /** `helix-before-column-toggle` event type */
6819
+ export type HelixHeadlessDataTableHelixBeforeColumnToggleElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeColumnToggleEvent>;
6818
6820
  /** `helix-before-filter` event type */
6819
6821
  export type HelixHeadlessDataTableHelixBeforeFilterElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeFilterEvent>;
6820
6822
  /** `helix-before-follow` event type */
@@ -6827,6 +6829,8 @@ export type HelixHeadlessDataTableHelixBeforeReorderElementEvent = HelixHeadless
6827
6829
  export type HelixHeadlessDataTableHelixBeforeSelectElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeSelectEvent>;
6828
6830
  /** `helix-before-sort` event type */
6829
6831
  export type HelixHeadlessDataTableHelixBeforeSortElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeSortEvent>;
6832
+ /** `helix-column-toggle` event type */
6833
+ export type HelixHeadlessDataTableHelixColumnToggleElementEvent = HelixHeadlessDataTableElementEvent<HelixColumnToggleEvent>;
6830
6834
  /** `helix-expand` event type */
6831
6835
  export type HelixHeadlessDataTableHelixExpandElementEvent = HelixHeadlessDataTableElementEvent<HelixExpandEvent>;
6832
6836
  /** `helix-filter` event type */
@@ -6942,6 +6946,10 @@ replaced with the page it jumps to. */
6942
6946
  "gap-label"?: HelixHeadlessDataTable["gapLabel"] | undefined;
6943
6947
  /** The built-in pagination's name for a gap in its run of pages. `{page}` is replaced with the page it jumps to. */
6944
6948
  "gapLabel"?: HelixHeadlessDataTable["gapLabel"] | undefined;
6949
+ /** The name of the row in a column's menu that hides the column. */
6950
+ "hide-column-label"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
6951
+ /** The name of the row in a column's menu that hides the column. */
6952
+ "hideColumnLabel"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
6945
6953
  /** The grid's name, read by screen readers. */
6946
6954
  "label"?: HelixHeadlessDataTable["label"] | undefined;
6947
6955
  /** Draws a row after the last one with a button that asks for more rows.
@@ -6976,6 +6984,14 @@ would go, counting from 1, and `{count}` the number of rows on the page. */
6976
6984
  "moved-label"?: HelixHeadlessDataTable["movedLabel"] | undefined;
6977
6985
  /** What screen readers hear each time a key moves a held row, with `reorderable-rows`. `{name}` is the row's name, `{position}` the place it would go, counting from 1, and `{count}` the number of rows on the page. */
6978
6986
  "movedLabel"?: HelixHeadlessDataTable["movedLabel"] | undefined;
6987
+ /** The name of the row in a column's menu that moves the column left. */
6988
+ "move-left-label"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
6989
+ /** The name of the row in a column's menu that moves the column left. */
6990
+ "moveLeftLabel"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
6991
+ /** The name of the row in a column's menu that moves the column right. */
6992
+ "move-right-label"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
6993
+ /** The name of the row in a column's menu that moves the column right. */
6994
+ "moveRightLabel"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
6979
6995
  /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with
6980
6996
  the row's name. */
6981
6997
  "move-row-label"?: HelixHeadlessDataTable["moveRowLabel"] | undefined;
@@ -7121,6 +7137,10 @@ the first column that has a field, or with its key. */
7121
7137
  "select-row-label"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
7122
7138
  /** The name of a row's checkbox. `{row}` is replaced with the row's value in the first column that has a field, or with its key. */
7123
7139
  "selectRowLabel"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
7140
+ /** The name of the row in a column's menu that brings back the columns it hid. */
7141
+ "show-columns-label"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
7142
+ /** The name of the row in a column's menu that brings back the columns it hid. */
7143
+ "showColumnsLabel"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
7124
7144
  /** The sort order, as `field:direction`.
7125
7145
 
7126
7146
  A reader's click on a sortable heading fires `helix-before-sort` first, and
@@ -7128,6 +7148,14 @@ refusing it leaves the order as it was. To own the order yourself, refuse
7128
7148
  the event and set this to the order you chose. `default-sort` seeds an
7129
7149
  order this element then owns. */
7130
7150
  "sort"?: HelixHeadlessDataTable["sort"] | undefined;
7151
+ /** The name of the row in a column's menu that sorts smallest first. */
7152
+ "sort-ascending-label"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
7153
+ /** The name of the row in a column's menu that sorts smallest first. */
7154
+ "sortAscendingLabel"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
7155
+ /** The name of the row in a column's menu that sorts largest first. */
7156
+ "sort-descending-label"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
7157
+ /** The name of the row in a column's menu that sorts largest first. */
7158
+ "sortDescendingLabel"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
7131
7159
  /** What screen readers hear when the table is sorted. `{column}` is the
7132
7160
  column's heading and `{direction}` is `ascending` or `descending`, so each
7133
7161
  order has its whole sentence. `{order}` is the deprecated
@@ -7209,6 +7237,8 @@ already fetched and none of the three is applied.
7209
7237
  this one, because a consumer's array may be the same object their own state
7210
7238
  holds and reordering it under them is a mutation they did not ask for. */
7211
7239
  "rows"?: HelixHeadlessDataTable["rows"] | undefined;
7240
+ /** A column is about to be hidden or shown, with its `field` and `hidden`. Cancelable: cancel it to keep the column as it is. */
7241
+ "onhelix-before-column-toggle"?: ((e: HelixHeadlessDataTableHelixBeforeColumnToggleElementEvent) => void) | undefined;
7212
7242
  /** The search query is about to change. Cancelable: cancel it to keep the current query. */
7213
7243
  "onhelix-before-filter"?: ((e: HelixHeadlessDataTableHelixBeforeFilterElementEvent) => void) | undefined;
7214
7244
  /** A press on a link in a cell is about to load its page, in this tab and on this site. Cancelable: cancel it to keep the page, and hand `detail.href` to your router. */
@@ -7221,6 +7251,8 @@ holds and reordering it under them is a mutation they did not ask for. */
7221
7251
  "onhelix-before-select"?: ((e: HelixHeadlessDataTableHelixBeforeSelectElementEvent) => void) | undefined;
7222
7252
  /** A different sort order was requested. Cancelable: cancel it to keep the current order. */
7223
7253
  "onhelix-before-sort"?: ((e: HelixHeadlessDataTableHelixBeforeSortElementEvent) => void) | undefined;
7254
+ /** Fired after a column is hidden or shown, with its `field` and `hidden`. */
7255
+ "onhelix-column-toggle"?: ((e: HelixHeadlessDataTableHelixColumnToggleElementEvent) => void) | undefined;
7224
7256
  /** Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds. */
7225
7257
  "onhelix-expand"?: ((e: HelixHeadlessDataTableHelixExpandElementEvent) => void) | undefined;
7226
7258
  /** Fired after the search query changes, with the new query. */
@@ -7304,6 +7336,10 @@ export type HelixHeadlessDataTableSolidJsProps = {
7304
7336
  "attr:gap-label"?: HelixHeadlessDataTable["gapLabel"] | undefined;
7305
7337
  /** The built-in pagination's name for a gap in its run of pages. `{page}` is replaced with the page it jumps to. */
7306
7338
  "prop:gapLabel"?: HelixHeadlessDataTable["gapLabel"] | undefined;
7339
+ /** The name of the row in a column's menu that hides the column. */
7340
+ "attr:hide-column-label"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
7341
+ /** The name of the row in a column's menu that hides the column. */
7342
+ "prop:hideColumnLabel"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
7307
7343
  /** The grid's name, read by screen readers. */
7308
7344
  "prop:label"?: HelixHeadlessDataTable["label"] | undefined;
7309
7345
  /** Draws a row after the last one with a button that asks for more rows. */
@@ -7322,6 +7358,14 @@ export type HelixHeadlessDataTableSolidJsProps = {
7322
7358
  "attr:moved-label"?: HelixHeadlessDataTable["movedLabel"] | undefined;
7323
7359
  /** What screen readers hear each time a key moves a held row, with `reorderable-rows`. `{name}` is the row's name, `{position}` the place it would go, counting from 1, and `{count}` the number of rows on the page. */
7324
7360
  "prop:movedLabel"?: HelixHeadlessDataTable["movedLabel"] | undefined;
7361
+ /** The name of the row in a column's menu that moves the column left. */
7362
+ "attr:move-left-label"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
7363
+ /** The name of the row in a column's menu that moves the column left. */
7364
+ "prop:moveLeftLabel"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
7365
+ /** The name of the row in a column's menu that moves the column right. */
7366
+ "attr:move-right-label"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
7367
+ /** The name of the row in a column's menu that moves the column right. */
7368
+ "prop:moveRightLabel"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
7325
7369
  /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with the row's name. */
7326
7370
  "attr:move-row-label"?: HelixHeadlessDataTable["moveRowLabel"] | undefined;
7327
7371
  /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with the row's name. */
@@ -7402,8 +7446,20 @@ export type HelixHeadlessDataTableSolidJsProps = {
7402
7446
  "attr:select-row-label"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
7403
7447
  /** The name of a row's checkbox. `{row}` is replaced with the row's value in the first column that has a field, or with its key. */
7404
7448
  "prop:selectRowLabel"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
7449
+ /** The name of the row in a column's menu that brings back the columns it hid. */
7450
+ "attr:show-columns-label"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
7451
+ /** The name of the row in a column's menu that brings back the columns it hid. */
7452
+ "prop:showColumnsLabel"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
7405
7453
  /** The sort order, as `field:direction`. */
7406
7454
  "prop:sort"?: HelixHeadlessDataTable["sort"] | undefined;
7455
+ /** The name of the row in a column's menu that sorts smallest first. */
7456
+ "attr:sort-ascending-label"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
7457
+ /** The name of the row in a column's menu that sorts smallest first. */
7458
+ "prop:sortAscendingLabel"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
7459
+ /** The name of the row in a column's menu that sorts largest first. */
7460
+ "attr:sort-descending-label"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
7461
+ /** The name of the row in a column's menu that sorts largest first. */
7462
+ "prop:sortDescendingLabel"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
7407
7463
  /** What screen readers hear when the table is sorted. `{column}` is the column's heading and `{direction}` is `ascending` or `descending`, so each order has its whole sentence. `{order}` is the deprecated `ascending-label` or `descending-label`. */
7408
7464
  "attr:sorted-label"?: HelixHeadlessDataTable["sortedLabel"] | undefined;
7409
7465
  /** What screen readers hear when the table is sorted. `{column}` is the column's heading and `{direction}` is `ascending` or `descending`, so each order has its whole sentence. `{order}` is the deprecated `ascending-label` or `descending-label`. */
@@ -7432,6 +7488,8 @@ export type HelixHeadlessDataTableSolidJsProps = {
7432
7488
  "prop:rowParts"?: HelixHeadlessDataTable["rowParts"] | undefined;
7433
7489
  /** Every row of the result, in the order it arrived. */
7434
7490
  "prop:rows"?: HelixHeadlessDataTable["rows"] | undefined;
7491
+ /** A column is about to be hidden or shown, with its `field` and `hidden`. Cancelable: cancel it to keep the column as it is. */
7492
+ "on:helix-before-column-toggle"?: ((e: HelixHeadlessDataTableHelixBeforeColumnToggleElementEvent) => void) | undefined;
7435
7493
  /** The search query is about to change. Cancelable: cancel it to keep the current query. */
7436
7494
  "on:helix-before-filter"?: ((e: HelixHeadlessDataTableHelixBeforeFilterElementEvent) => void) | undefined;
7437
7495
  /** A press on a link in a cell is about to load its page, in this tab and on this site. Cancelable: cancel it to keep the page, and hand `detail.href` to your router. */
@@ -7444,6 +7502,8 @@ export type HelixHeadlessDataTableSolidJsProps = {
7444
7502
  "on:helix-before-select"?: ((e: HelixHeadlessDataTableHelixBeforeSelectElementEvent) => void) | undefined;
7445
7503
  /** A different sort order was requested. Cancelable: cancel it to keep the current order. */
7446
7504
  "on:helix-before-sort"?: ((e: HelixHeadlessDataTableHelixBeforeSortElementEvent) => void) | undefined;
7505
+ /** Fired after a column is hidden or shown, with its `field` and `hidden`. */
7506
+ "on:helix-column-toggle"?: ((e: HelixHeadlessDataTableHelixColumnToggleElementEvent) => void) | undefined;
7447
7507
  /** Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds. */
7448
7508
  "on:helix-expand"?: ((e: HelixHeadlessDataTableHelixExpandElementEvent) => void) | undefined;
7449
7509
  /** Fired after the search query changes, with the new query. */
@@ -23472,6 +23532,18 @@ after a column moves is a sort a consumer cannot store in a URL.
23472
23532
  Empty on a column that is purely presentational, an actions column say, and
23473
23533
  such a column is never sortable however it is marked. */
23474
23534
  "field"?: HelixHeadlessTableColumn["field"] | undefined;
23535
+ /** Draws a button in the heading that opens a menu of what you can do with the
23536
+ column, in a `DataTable`.
23537
+
23538
+ The menu offers sorting where the column is `sortable`, moving where the
23539
+ table is `reorderable`, and hiding. It needs a `field`, and a `Table` ignores
23540
+ it. */
23541
+ "menu"?: HelixHeadlessTableColumn["menu"] | undefined;
23542
+ /** The accessible name of the menu button. `{name}` is the heading text, and
23543
+ `{named}` is `no` for a column without one. */
23544
+ "menu-label"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
23545
+ /** The accessible name of the menu button. `{name}` is the heading text, and `{named}` is `no` for a column without one. */
23546
+ "menuLabel"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
23475
23547
  /** The accessible name of the grip that moves the column. `{name}` is the
23476
23548
  heading text, and `{named}` is `no` for a column without one, so the
23477
23549
  sentence for it can name the column another way.
@@ -23608,6 +23680,12 @@ correct default: the raw value is what an API sorted by. */
23608
23680
  export type HelixHeadlessTableColumnSolidJsProps = {
23609
23681
  /** The key this column reads out of a row. */
23610
23682
  "prop:field"?: HelixHeadlessTableColumn["field"] | undefined;
23683
+ /** Draws a button in the heading that opens a menu of what you can do with the column, in a `DataTable`. */
23684
+ "prop:menu"?: HelixHeadlessTableColumn["menu"] | undefined;
23685
+ /** The accessible name of the menu button. `{name}` is the heading text, and `{named}` is `no` for a column without one. */
23686
+ "attr:menu-label"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
23687
+ /** The accessible name of the menu button. `{name}` is the heading text, and `{named}` is `no` for a column without one. */
23688
+ "prop:menuLabel"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
23611
23689
  /** The accessible name of the grip that moves the column. `{name}` is the heading text, and `{named}` is `no` for a column without one, so the sentence for it can name the column another way. */
23612
23690
  "attr:move-label"?: HelixHeadlessTableColumn["moveLabel"] | undefined;
23613
23691
  /** The accessible name of the grip that moves the column. `{name}` is the heading text, and `{named}` is `no` for a column without one, so the sentence for it can name the column another way. */
@@ -32739,6 +32817,25 @@ interface Tags {
32739
32817
  * is written to `order` as a list of fields. Your markup is not rewritten: the
32740
32818
  * table assigns the headings to its header in that order.
32741
32819
  *
32820
+ * **`menu` on a column adds a menu to its heading.** A small button after the
32821
+ * sort chevrons opens it, and a press anywhere else on the heading still sorts.
32822
+ * The rows depend on the column:
32823
+ *
32824
+ * - Sort ascending and Sort descending, where the column is `sortable`.
32825
+ * - Move left and Move right, where the table is `reorderable`.
32826
+ * - Hide column, which is disabled on the last column showing.
32827
+ * - Show hidden columns, once the menu has hidden a column.
32828
+ *
32829
+ * Sorting and moving ask first with `helix-before-sort` and
32830
+ * `helix-before-reorder`, as a press on the heading or a drag of the grip does.
32831
+ * Hiding asks with `helix-before-column-toggle`, then sets `hidden` on the column
32832
+ * and fires `helix-column-toggle`. Your own column picker can call `hideColumn`
32833
+ * and `showColumn`. Show hidden columns restores only the columns that went
32834
+ * through them, so a column you hid with `hidden` stays hidden.
32835
+ *
32836
+ * In the grid, Alt+Down on a heading opens its menu, and F2 and Tab reach the
32837
+ * button.
32838
+ *
32742
32839
  * **`reorderable-rows` lets people move rows.** A column of grips leads each
32743
32840
  * row, named by `move-row-label`. Drag a grip to move its row, and the table
32744
32841
  * scrolls near an edge. Or press Space or Enter on a grip, or click it, to pick
@@ -32794,12 +32891,15 @@ interface Tags {
32794
32891
  * - `expanded`: The keys of the open rows in a tree grid, separated by commas, the shape of `selected`. A reader's press writes it and then sends `helix-expand`.
32795
32892
  * - `filter`: The search query. A row is shown when the query matches any of its columns.
32796
32893
  * - `gap-label`/`gapLabel`: The built-in pagination's name for a gap in its run of pages. `{page}` is replaced with the page it jumps to.
32894
+ * - `hide-column-label`/`hideColumnLabel`: The name of the row in a column's menu that hides the column.
32797
32895
  * - `label`: The grid's name, read by screen readers.
32798
32896
  * - `load-more`/`loadMore`: Draws a row after the last one with a button that asks for more rows.
32799
32897
  * - `load-more-label`/`loadMoreLabel`: The words on the button in the `more` row.
32800
32898
  * - `locale`: The locale the words, plural forms, and numbers are in, as a BCP 47 tag such as `pl`. Empty reads the nearest `lang`, then the browser's language. The built-in pagination speaks it too.
32801
32899
  * - `mode`: Where filtering, sorting, and paging happen. `client` does them in the table, and `server` leaves them to your code.
32802
32900
  * - `moved-label`/`movedLabel`: What screen readers hear each time a key moves a held row, with `reorderable-rows`. `{name}` is the row's name, `{position}` the place it would go, counting from 1, and `{count}` the number of rows on the page.
32901
+ * - `move-left-label`/`moveLeftLabel`: The name of the row in a column's menu that moves the column left.
32902
+ * - `move-right-label`/`moveRightLabel`: The name of the row in a column's menu that moves the column right.
32803
32903
  * - `move-row-label`/`moveRowLabel`: The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with the row's name.
32804
32904
  * - `next-label`/`nextLabel`: The built-in pagination's name for the button that moves forward a page.
32805
32905
  * - `order`: The column order, as field names separated by spaces.
@@ -32823,7 +32923,10 @@ interface Tags {
32823
32923
  * - `selected-label`/`selectedLabel`: What screen readers hear when the chosen rows change. `{count}` is how many rows are chosen, written in the locale, and a language that needs plural forms writes them: `{count, plural, one {# wybrany} few {# wybrane} many {# wybranych} other {# wybranego}}`.
32824
32924
  * - `selection-behavior`/`selectionBehavior`: What a key or a press on a row does to the rows already selected, in a `selectable` table. `toggle`, the default, keeps them: Space adds or takes out the row. `replace` selects the row alone, as a file list does: Down and Up carry the selection with them, and a press on a row selects it. Control or Command with a press or Space adds or takes out one row, and with a move goes without selecting. The checkboxes add or take out one row either way.
32825
32925
  * - `select-row-label`/`selectRowLabel`: The name of a row's checkbox. `{row}` is replaced with the row's value in the first column that has a field, or with its key.
32926
+ * - `show-columns-label`/`showColumnsLabel`: The name of the row in a column's menu that brings back the columns it hid.
32826
32927
  * - `sort`: The sort order, as `field:direction`.
32928
+ * - `sort-ascending-label`/`sortAscendingLabel`: The name of the row in a column's menu that sorts smallest first.
32929
+ * - `sort-descending-label`/`sortDescendingLabel`: The name of the row in a column's menu that sorts largest first.
32827
32930
  * - `sorted-label`/`sortedLabel`: What screen readers hear when the table is sorted. `{column}` is the column's heading and `{direction}` is `ascending` or `descending`, so each order has its whole sentence. `{order}` is the deprecated `ascending-label` or `descending-label`.
32828
32931
  * - `total`: The number of rows in the whole result, for when the table cannot count them.
32829
32932
  * - `unsorted-label`/`unsortedLabel`: What screen readers hear when the table stops being sorted.
@@ -32837,12 +32940,14 @@ interface Tags {
32837
32940
  *
32838
32941
  * ## Events
32839
32942
  *
32943
+ * - `helix-before-column-toggle`: A column is about to be hidden or shown, with its `field` and `hidden`. Cancelable: cancel it to keep the column as it is.
32840
32944
  * - `helix-before-filter`: The search query is about to change. Cancelable: cancel it to keep the current query.
32841
32945
  * - `helix-before-follow`: A press on a link in a cell is about to load its page, in this tab and on this site. Cancelable: cancel it to keep the page, and hand `detail.href` to your router.
32842
32946
  * - `helix-before-navigate`: Another page was requested. Cancelable: cancel it to stay on the current page.
32843
32947
  * - `helix-before-reorder`: A row or a column is about to move. For a row, with `reorderable-rows`, the event carries every row's key in the new order; for a column, `kind` is `column` and `value` holds every field in the new order. Cancelable: cancel it to keep the row or the column where it is.
32844
32948
  * - `helix-before-select`: The selection is about to change. The event carries every selected key, separated by commas. Cancelable: cancel it to keep the current selection.
32845
32949
  * - `helix-before-sort`: A different sort order was requested. Cancelable: cancel it to keep the current order.
32950
+ * - `helix-column-toggle`: Fired after a column is hidden or shown, with its `field` and `hidden`.
32846
32951
  * - `helix-expand`: Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds.
32847
32952
  * - `helix-filter`: Fired after the search query changes, with the new query.
32848
32953
  * - `helix-follow`: Fired as the browser loads the page a link in a cell names, with its path.
@@ -32866,6 +32971,8 @@ interface Tags {
32866
32971
  * - `csv() => string`: Returns the result as CSV: every row that matches the filter, in the order and columns shown, under a line of the column headings.
32867
32972
  * - `search(query: string) => boolean`: Filters the rows by a query from your own search field.
32868
32973
  * - `toggleSort(field: string) => boolean`: Cycles the sort order of one column, as a click on its heading does.
32974
+ * - `hideColumn(field: string) => boolean`: Hides a column, as Hide column in its menu does.
32975
+ * - `showColumn(field: string) => boolean`: Shows a hidden column. Asks with `helix-before-column-toggle`, and returns whether the column was shown.
32869
32976
  *
32870
32977
  * ## CSS Custom Properties
32871
32978
  *
@@ -32899,6 +33006,28 @@ interface Tags {
32899
33006
  * - `head`: The row that holds the column headings. It is `display: contents`, so it takes no space.
32900
33007
  * - `live`: A copy of the empty and loading messages, which screen readers announce when they change. Visually hidden in the styled tier.
32901
33008
  * - `loading`: Shown while the rows are loading.
33009
+ * - `menu-back`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu has no submenu.
33010
+ * - `menu-back-mark`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu has no submenu.
33011
+ * - `menu-divider`: The line between groups of rows in a column's menu, on the column.
33012
+ * - `menu-divider-content`: Forwarded from the divider, on the column. Not shown in the table.
33013
+ * - `menu-divider-line`: The line inside `menu-divider`, on the column.
33014
+ * - `menu-empty`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu always has a row.
33015
+ * - `menu-entry`: One row of a column's menu, on the column.
33016
+ * - `menu-entry-end`: The trailing column of a row in a column's menu, on the column.
33017
+ * - `menu-entry-item`: The row inside `menu-entry`, on the column.
33018
+ * - `menu-entry-mark`: The check mark on the sort row that is current, on the column.
33019
+ * - `menu-entry-shortcut`: Forwarded from the row, on the column. Not shown in the table.
33020
+ * - `menu-entry-shortcut-kbd`: Forwarded from the row, on the column. Not shown in the table.
33021
+ * - `menu-entry-shortcut-key`: Forwarded from the row, on the column. Not shown in the table.
33022
+ * - `menu-entry-shortcut-separator`: Forwarded from the row, on the column. Not shown in the table.
33023
+ * - `menu-entry-start`: The leading column of a row in a column's menu, on the column.
33024
+ * - `menu-entry-surface`: Forwarded from the row, on the column. Not shown in the table.
33025
+ * - `menu-header`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu has no submenu.
33026
+ * - `menu-live`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu has no loading or empty text.
33027
+ * - `menu-loading`: Forwarded from the column's menu, on the column. Not shown in the table.
33028
+ * - `menu-search-field`: Forwarded from the column's menu, on the column. Not shown in the table.
33029
+ * - `menu-surface`: The panel a column's menu opens in, on the column: `helix-table-column::part(menu-surface)`.
33030
+ * - `menu-title`: Forwarded from the column's menu, on the column. Not shown in the table, whose menu has no submenu.
32902
33031
  * - `more`: The row after the last one that holds the button for more rows, while `load-more` is set.
32903
33032
  * - `more-button`: The button that asks for more rows.
32904
33033
  * - `more-cell`: The cell of the `more` row, which spans every column.
@@ -43120,9 +43249,15 @@ interface Tags {
43120
43249
  * current direction takes the heading's ink, so you can see which columns sort
43121
43250
  * and which way the table is sorted.
43122
43251
  *
43252
+ * `menu` adds a small button after the chevrons, in a `DataTable`. The button
43253
+ * opens a menu of what you can do with the column, and a press anywhere else on
43254
+ * the heading still sorts. `DataTable` describes the rows.
43255
+ *
43123
43256
  * ## Attributes & Properties
43124
43257
  *
43125
43258
  * - `field`: The key this column reads out of a row.
43259
+ * - `menu`: Draws a button in the heading that opens a menu of what you can do with the column, in a `DataTable`.
43260
+ * - `menu-label`/`menuLabel`: The accessible name of the menu button. `{name}` is the heading text, and `{named}` is `no` for a column without one.
43126
43261
  * - `move-label`/`moveLabel`: The accessible name of the grip that moves the column. `{name}` is the heading text, and `{named}` is `no` for a column without one, so the sentence for it can name the column another way.
43127
43262
  * - `resizable`: Whether the column can be resized.
43128
43263
  * - `resize-label`/`resizeLabel`: The accessible name of the separator that resizes the column. `{name}` is the heading text, and `{named}` is `no` for a column without one.
@@ -43153,6 +43288,8 @@ interface Tags {
43153
43288
  * - `column`: The heading cell.
43154
43289
  * - `grip`: The handle for moving the column, when the table allows it.
43155
43290
  * - `grip-mark`: The icon on the grip.
43291
+ * - `menu-button`: The button that opens the column's menu, with `menu` in a `DataTable`.
43292
+ * - `menu-mark`: The icon on the menu button.
43156
43293
  * - `resizer`: The edge that is dragged to change the width, when the column is resizable.
43157
43294
  * - `sort`: The button that a sortable heading renders as.
43158
43295
  * - `sort-down`: The lower chevron of `sort-mark`, which shows a descending sort.
@@ -43161,6 +43298,7 @@ interface Tags {
43161
43298
  *
43162
43299
  * ## CSS States
43163
43300
  *
43301
+ * - `has-menu`: While the heading draws its menu button.
43164
43302
  * - `sorted-ascending`: While the table is sorted by this column, smallest first.
43165
43303
  * - `sorted-descending`: While the table is sorted by this column, largest first.
43166
43304
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
package/types/vue.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // Generated by `helix-cem` from this package's manifest. Do not edit.
2
2
 
3
- import type { HelixActionEvent, HelixActivateEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCheckEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeExpandEvent, HelixBeforeFacetEvent, HelixBeforeFilterEvent, HelixBeforeFollowEvent, HelixBeforeGraphFilterEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeNavigateEvent, HelixBeforeOpenEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReadEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSelectEvent, HelixBeforeSortEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCheckEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFollowEvent, HelixFoundEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHeadlessAccordion, HelixHeadlessAccordionItem, HelixHeadlessAnnouncement, HelixHeadlessAppHeader, HelixHeadlessAreaChart, HelixHeadlessAvatar, HelixHeadlessAvatarGroup, HelixHeadlessBadge, HelixHeadlessBarChart, HelixHeadlessBlockquote, HelixHeadlessBreadcrumb, HelixHeadlessBreadcrumbs, HelixHeadlessButton, HelixHeadlessButtonGroup, HelixHeadlessCallout, HelixHeadlessCanvas, HelixHeadlessCanvasEdge, HelixHeadlessCanvasNode, HelixHeadlessCard, HelixHeadlessCarousel, HelixHeadlessChat, HelixHeadlessChatComposer, HelixHeadlessChatMessage, HelixHeadlessCheckbox, HelixHeadlessCheckboxGroup, HelixHeadlessCode, HelixHeadlessCodeBlock, HelixHeadlessCodeEditor, HelixHeadlessCodeInput, HelixHeadlessColorInput, HelixHeadlessColorPicker, HelixHeadlessCombobox, HelixHeadlessCommand, HelixHeadlessCopyButton, HelixHeadlessDataTable, HelixHeadlessDateInput, HelixHeadlessDatePicker, HelixHeadlessDescriptionList, HelixHeadlessDescriptionListItem, HelixHeadlessDeviceScreen, HelixHeadlessDialog, HelixHeadlessDivider, HelixHeadlessDonutChart, HelixHeadlessDrawer, HelixHeadlessDrilldown, HelixHeadlessDrilldownItem, HelixHeadlessEditor, HelixHeadlessEmpty, HelixHeadlessFileInput, HelixHeadlessFilterChip, HelixHeadlessFilterField, HelixHeadlessFilterInput, HelixHeadlessFilterMenu, HelixHeadlessFilterOperator, HelixHeadlessFind, HelixHeadlessFormatDate, HelixHeadlessGraph, HelixHeadlessHeatmap, HelixHeadlessIcon, HelixHeadlessIconButton, HelixHeadlessImage, HelixHeadlessInput, HelixHeadlessKbd, HelixHeadlessLegend, HelixHeadlessLightbox, HelixHeadlessLightboxItem, HelixHeadlessLineChart, HelixHeadlessList, HelixHeadlessListItem, HelixHeadlessListbox, HelixHeadlessLoader, HelixHeadlessLog, HelixHeadlessLogGroup, HelixHeadlessLogLine, HelixHeadlessMap, HelixHeadlessMapArea, HelixHeadlessMapBuildings, HelixHeadlessMapContours, HelixHeadlessMapLandcover, HelixHeadlessMapMarker, HelixHeadlessMapPoints, HelixHeadlessMapPosition, HelixHeadlessMapRaster, HelixHeadlessMapRoute, HelixHeadlessMapTerrain, HelixHeadlessMarkdown, HelixHeadlessMegamenu, HelixHeadlessMenu, HelixHeadlessMenuItem, HelixHeadlessMenuSection, HelixHeadlessMeter, HelixHeadlessMeterSegment, HelixHeadlessMotionToggle, HelixHeadlessNavigation, HelixHeadlessNotification, HelixHeadlessNotificationGroup, HelixHeadlessNotifications, HelixHeadlessNumberInput, HelixHeadlessObjectInspector, HelixHeadlessOption, HelixHeadlessOptionGroup, HelixHeadlessOptionSeparator, HelixHeadlessOutline, HelixHeadlessPagination, HelixHeadlessPaginationSize, HelixHeadlessPaginationSummary, HelixHeadlessPinInput, HelixHeadlessPopover, HelixHeadlessProgress, HelixHeadlessQrCode, HelixHeadlessQuote, HelixHeadlessRadio, HelixHeadlessRadioGroup, HelixHeadlessRating, HelixHeadlessScatterChart, HelixHeadlessScrollArea, HelixHeadlessSelect, HelixHeadlessShortcutOverlay, HelixHeadlessSkeleton, HelixHeadlessSkipLink, HelixHeadlessSlider, HelixHeadlessSparkline, HelixHeadlessSpatialBarChart, HelixHeadlessSpatialHeatmap, HelixHeadlessSpatialRibbonChart, HelixHeadlessSpatialScatterChart, HelixHeadlessSpatialSurfaceChart, HelixHeadlessSpatialTreemap, HelixHeadlessSpeedDial, HelixHeadlessSpeedDialGroup, HelixHeadlessSpeedDialItem, HelixHeadlessSplitter, HelixHeadlessStat, HelixHeadlessStatGroup, HelixHeadlessStep, HelixHeadlessSteps, HelixHeadlessSwitch, HelixHeadlessTab, HelixHeadlessTabPanel, HelixHeadlessTable, HelixHeadlessTableCell, HelixHeadlessTableColumn, HelixHeadlessTableRow, HelixHeadlessTabs, HelixHeadlessTag, HelixHeadlessTagGroup, HelixHeadlessTerminal, HelixHeadlessTextarea, HelixHeadlessTimeInput, HelixHeadlessTimePicker, HelixHeadlessTimeline, HelixHeadlessTimelineGroup, HelixHeadlessTimelineItem, HelixHeadlessToast, HelixHeadlessToastItem, HelixHeadlessToggle, HelixHeadlessToggleGroup, HelixHeadlessToolbar, HelixHeadlessTooltip, HelixHeadlessTour, HelixHeadlessTourStop, HelixHeadlessTree, HelixHeadlessTreeItem, HelixHeadlessTrend, HelixHeadlessVideo, HelixHeadlessVideoPlaylist, HelixHeadlessVideoPlaylistItem, HelixHeadlessVideoPlaylistMenu, HelixHeadlessVirtualList, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixResizeEvent, HelixResizedEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixStopEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent } from "@fusion.dev/helix-headless";
3
+ import type { HelixActionEvent, HelixActivateEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCheckEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeColumnToggleEvent, HelixBeforeExpandEvent, HelixBeforeFacetEvent, HelixBeforeFilterEvent, HelixBeforeFollowEvent, HelixBeforeGraphFilterEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeNavigateEvent, HelixBeforeOpenEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReadEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSelectEvent, HelixBeforeSortEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCheckEvent, HelixClearEvent, HelixCollapseEvent, HelixColumnToggleEvent, HelixCompleteEvent, HelixConnectEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFollowEvent, HelixFoundEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHeadlessAccordion, HelixHeadlessAccordionItem, HelixHeadlessAnnouncement, HelixHeadlessAppHeader, HelixHeadlessAreaChart, HelixHeadlessAvatar, HelixHeadlessAvatarGroup, HelixHeadlessBadge, HelixHeadlessBarChart, HelixHeadlessBlockquote, HelixHeadlessBreadcrumb, HelixHeadlessBreadcrumbs, HelixHeadlessButton, HelixHeadlessButtonGroup, HelixHeadlessCallout, HelixHeadlessCanvas, HelixHeadlessCanvasEdge, HelixHeadlessCanvasNode, HelixHeadlessCard, HelixHeadlessCarousel, HelixHeadlessChat, HelixHeadlessChatComposer, HelixHeadlessChatMessage, HelixHeadlessCheckbox, HelixHeadlessCheckboxGroup, HelixHeadlessCode, HelixHeadlessCodeBlock, HelixHeadlessCodeEditor, HelixHeadlessCodeInput, HelixHeadlessColorInput, HelixHeadlessColorPicker, HelixHeadlessCombobox, HelixHeadlessCommand, HelixHeadlessCopyButton, HelixHeadlessDataTable, HelixHeadlessDateInput, HelixHeadlessDatePicker, HelixHeadlessDescriptionList, HelixHeadlessDescriptionListItem, HelixHeadlessDeviceScreen, HelixHeadlessDialog, HelixHeadlessDivider, HelixHeadlessDonutChart, HelixHeadlessDrawer, HelixHeadlessDrilldown, HelixHeadlessDrilldownItem, HelixHeadlessEditor, HelixHeadlessEmpty, HelixHeadlessFileInput, HelixHeadlessFilterChip, HelixHeadlessFilterField, HelixHeadlessFilterInput, HelixHeadlessFilterMenu, HelixHeadlessFilterOperator, HelixHeadlessFind, HelixHeadlessFormatDate, HelixHeadlessGraph, HelixHeadlessHeatmap, HelixHeadlessIcon, HelixHeadlessIconButton, HelixHeadlessImage, HelixHeadlessInput, HelixHeadlessKbd, HelixHeadlessLegend, HelixHeadlessLightbox, HelixHeadlessLightboxItem, HelixHeadlessLineChart, HelixHeadlessList, HelixHeadlessListItem, HelixHeadlessListbox, HelixHeadlessLoader, HelixHeadlessLog, HelixHeadlessLogGroup, HelixHeadlessLogLine, HelixHeadlessMap, HelixHeadlessMapArea, HelixHeadlessMapBuildings, HelixHeadlessMapContours, HelixHeadlessMapLandcover, HelixHeadlessMapMarker, HelixHeadlessMapPoints, HelixHeadlessMapPosition, HelixHeadlessMapRaster, HelixHeadlessMapRoute, HelixHeadlessMapTerrain, HelixHeadlessMarkdown, HelixHeadlessMegamenu, HelixHeadlessMenu, HelixHeadlessMenuItem, HelixHeadlessMenuSection, HelixHeadlessMeter, HelixHeadlessMeterSegment, HelixHeadlessMotionToggle, HelixHeadlessNavigation, HelixHeadlessNotification, HelixHeadlessNotificationGroup, HelixHeadlessNotifications, HelixHeadlessNumberInput, HelixHeadlessObjectInspector, HelixHeadlessOption, HelixHeadlessOptionGroup, HelixHeadlessOptionSeparator, HelixHeadlessOutline, HelixHeadlessPagination, HelixHeadlessPaginationSize, HelixHeadlessPaginationSummary, HelixHeadlessPinInput, HelixHeadlessPopover, HelixHeadlessProgress, HelixHeadlessQrCode, HelixHeadlessQuote, HelixHeadlessRadio, HelixHeadlessRadioGroup, HelixHeadlessRating, HelixHeadlessScatterChart, HelixHeadlessScrollArea, HelixHeadlessSelect, HelixHeadlessShortcutOverlay, HelixHeadlessSkeleton, HelixHeadlessSkipLink, HelixHeadlessSlider, HelixHeadlessSparkline, HelixHeadlessSpatialBarChart, HelixHeadlessSpatialHeatmap, HelixHeadlessSpatialRibbonChart, HelixHeadlessSpatialScatterChart, HelixHeadlessSpatialSurfaceChart, HelixHeadlessSpatialTreemap, HelixHeadlessSpeedDial, HelixHeadlessSpeedDialGroup, HelixHeadlessSpeedDialItem, HelixHeadlessSplitter, HelixHeadlessStat, HelixHeadlessStatGroup, HelixHeadlessStep, HelixHeadlessSteps, HelixHeadlessSwitch, HelixHeadlessTab, HelixHeadlessTabPanel, HelixHeadlessTable, HelixHeadlessTableCell, HelixHeadlessTableColumn, HelixHeadlessTableRow, HelixHeadlessTabs, HelixHeadlessTag, HelixHeadlessTagGroup, HelixHeadlessTerminal, HelixHeadlessTextarea, HelixHeadlessTimeInput, HelixHeadlessTimePicker, HelixHeadlessTimeline, HelixHeadlessTimelineGroup, HelixHeadlessTimelineItem, HelixHeadlessToast, HelixHeadlessToastItem, HelixHeadlessToggle, HelixHeadlessToggleGroup, HelixHeadlessToolbar, HelixHeadlessTooltip, HelixHeadlessTour, HelixHeadlessTourStop, HelixHeadlessTree, HelixHeadlessTreeItem, HelixHeadlessTrend, HelixHeadlessVideo, HelixHeadlessVideoPlaylist, HelixHeadlessVideoPlaylistItem, HelixHeadlessVideoPlaylistMenu, HelixHeadlessVirtualList, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixResizeEvent, HelixResizedEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixStopEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent } from "@fusion.dev/helix-headless";
4
4
 
5
5
  import type { HTMLAttributes, PublicProps, EmitFn, EmitsToProps } from "vue";
6
6
 
@@ -4539,6 +4539,8 @@ export type HelixHeadlessCopyButtonVueEvents = {
4539
4539
 
4540
4540
  /** `HelixHeadlessDataTable` component event */
4541
4541
  export type HelixHeadlessDataTableElementEvent<E = Event> = TypedEvent<HelixHeadlessDataTable, E>;
4542
+ /** `helix-before-column-toggle` event type */
4543
+ export type HelixHeadlessDataTableHelixBeforeColumnToggleElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeColumnToggleEvent>;
4542
4544
  /** `helix-before-filter` event type */
4543
4545
  export type HelixHeadlessDataTableHelixBeforeFilterElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeFilterEvent>;
4544
4546
  /** `helix-before-follow` event type */
@@ -4551,6 +4553,8 @@ export type HelixHeadlessDataTableHelixBeforeReorderElementEvent = HelixHeadless
4551
4553
  export type HelixHeadlessDataTableHelixBeforeSelectElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeSelectEvent>;
4552
4554
  /** `helix-before-sort` event type */
4553
4555
  export type HelixHeadlessDataTableHelixBeforeSortElementEvent = HelixHeadlessDataTableElementEvent<HelixBeforeSortEvent>;
4556
+ /** `helix-column-toggle` event type */
4557
+ export type HelixHeadlessDataTableHelixColumnToggleElementEvent = HelixHeadlessDataTableElementEvent<HelixColumnToggleEvent>;
4554
4558
  /** `helix-expand` event type */
4555
4559
  export type HelixHeadlessDataTableHelixExpandElementEvent = HelixHeadlessDataTableElementEvent<HelixExpandEvent>;
4556
4560
  /** `helix-filter` event type */
@@ -4666,6 +4670,10 @@ replaced with the page it jumps to. */
4666
4670
  "gap-label"?: HelixHeadlessDataTable["gapLabel"] | undefined;
4667
4671
  /** The built-in pagination's name for a gap in its run of pages. `{page}` is replaced with the page it jumps to. */
4668
4672
  "gapLabel"?: HelixHeadlessDataTable["gapLabel"] | undefined;
4673
+ /** The name of the row in a column's menu that hides the column. */
4674
+ "hide-column-label"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
4675
+ /** The name of the row in a column's menu that hides the column. */
4676
+ "hideColumnLabel"?: HelixHeadlessDataTable["hideColumnLabel"] | undefined;
4669
4677
  /** The grid's name, read by screen readers. */
4670
4678
  "label"?: HelixHeadlessDataTable["label"] | undefined;
4671
4679
  /** Draws a row after the last one with a button that asks for more rows.
@@ -4700,6 +4708,14 @@ would go, counting from 1, and `{count}` the number of rows on the page. */
4700
4708
  "moved-label"?: HelixHeadlessDataTable["movedLabel"] | undefined;
4701
4709
  /** What screen readers hear each time a key moves a held row, with `reorderable-rows`. `{name}` is the row's name, `{position}` the place it would go, counting from 1, and `{count}` the number of rows on the page. */
4702
4710
  "movedLabel"?: HelixHeadlessDataTable["movedLabel"] | undefined;
4711
+ /** The name of the row in a column's menu that moves the column left. */
4712
+ "move-left-label"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
4713
+ /** The name of the row in a column's menu that moves the column left. */
4714
+ "moveLeftLabel"?: HelixHeadlessDataTable["moveLeftLabel"] | undefined;
4715
+ /** The name of the row in a column's menu that moves the column right. */
4716
+ "move-right-label"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
4717
+ /** The name of the row in a column's menu that moves the column right. */
4718
+ "moveRightLabel"?: HelixHeadlessDataTable["moveRightLabel"] | undefined;
4703
4719
  /** The name of a row's grip, with `reorderable-rows`. `{row}` is replaced with
4704
4720
  the row's name. */
4705
4721
  "move-row-label"?: HelixHeadlessDataTable["moveRowLabel"] | undefined;
@@ -4845,6 +4861,10 @@ the first column that has a field, or with its key. */
4845
4861
  "select-row-label"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
4846
4862
  /** The name of a row's checkbox. `{row}` is replaced with the row's value in the first column that has a field, or with its key. */
4847
4863
  "selectRowLabel"?: HelixHeadlessDataTable["selectRowLabel"] | undefined;
4864
+ /** The name of the row in a column's menu that brings back the columns it hid. */
4865
+ "show-columns-label"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
4866
+ /** The name of the row in a column's menu that brings back the columns it hid. */
4867
+ "showColumnsLabel"?: HelixHeadlessDataTable["showColumnsLabel"] | undefined;
4848
4868
  /** The sort order, as `field:direction`.
4849
4869
 
4850
4870
  A reader's click on a sortable heading fires `helix-before-sort` first, and
@@ -4852,6 +4872,14 @@ refusing it leaves the order as it was. To own the order yourself, refuse
4852
4872
  the event and set this to the order you chose. `default-sort` seeds an
4853
4873
  order this element then owns. */
4854
4874
  "sort"?: HelixHeadlessDataTable["sort"] | undefined;
4875
+ /** The name of the row in a column's menu that sorts smallest first. */
4876
+ "sort-ascending-label"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
4877
+ /** The name of the row in a column's menu that sorts smallest first. */
4878
+ "sortAscendingLabel"?: HelixHeadlessDataTable["sortAscendingLabel"] | undefined;
4879
+ /** The name of the row in a column's menu that sorts largest first. */
4880
+ "sort-descending-label"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
4881
+ /** The name of the row in a column's menu that sorts largest first. */
4882
+ "sortDescendingLabel"?: HelixHeadlessDataTable["sortDescendingLabel"] | undefined;
4855
4883
  /** What screen readers hear when the table is sorted. `{column}` is the
4856
4884
  column's heading and `{direction}` is `ascending` or `descending`, so each
4857
4885
  order has its whole sentence. `{order}` is the deprecated
@@ -4936,6 +4964,8 @@ holds and reordering it under them is a mutation they did not ask for. */
4936
4964
  };
4937
4965
 
4938
4966
  export type HelixHeadlessDataTableVueEvents = {
4967
+ /** A column is about to be hidden or shown, with its `field` and `hidden`. Cancelable: cancel it to keep the column as it is. */
4968
+ "helix-before-column-toggle": HelixHeadlessDataTableHelixBeforeColumnToggleElementEvent;
4939
4969
  /** The search query is about to change. Cancelable: cancel it to keep the current query. */
4940
4970
  "helix-before-filter": HelixHeadlessDataTableHelixBeforeFilterElementEvent;
4941
4971
  /** A press on a link in a cell is about to load its page, in this tab and on this site. Cancelable: cancel it to keep the page, and hand `detail.href` to your router. */
@@ -4948,6 +4978,8 @@ export type HelixHeadlessDataTableVueEvents = {
4948
4978
  "helix-before-select": HelixHeadlessDataTableHelixBeforeSelectElementEvent;
4949
4979
  /** A different sort order was requested. Cancelable: cancel it to keep the current order. */
4950
4980
  "helix-before-sort": HelixHeadlessDataTableHelixBeforeSortElementEvent;
4981
+ /** Fired after a column is hidden or shown, with its `field` and `hidden`. */
4982
+ "helix-column-toggle": HelixHeadlessDataTableHelixColumnToggleElementEvent;
4951
4983
  /** Fired after a row opens or closes, with every open row's key, separated by commas, which `expanded` also holds. */
4952
4984
  "helix-expand": HelixHeadlessDataTableHelixExpandElementEvent;
4953
4985
  /** Fired after the search query changes, with the new query. */
@@ -15818,6 +15850,18 @@ after a column moves is a sort a consumer cannot store in a URL.
15818
15850
  Empty on a column that is purely presentational, an actions column say, and
15819
15851
  such a column is never sortable however it is marked. */
15820
15852
  "field"?: HelixHeadlessTableColumn["field"] | undefined;
15853
+ /** Draws a button in the heading that opens a menu of what you can do with the
15854
+ column, in a `DataTable`.
15855
+
15856
+ The menu offers sorting where the column is `sortable`, moving where the
15857
+ table is `reorderable`, and hiding. It needs a `field`, and a `Table` ignores
15858
+ it. */
15859
+ "menu"?: HelixHeadlessTableColumn["menu"] | undefined;
15860
+ /** The accessible name of the menu button. `{name}` is the heading text, and
15861
+ `{named}` is `no` for a column without one. */
15862
+ "menu-label"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
15863
+ /** The accessible name of the menu button. `{name}` is the heading text, and `{named}` is `no` for a column without one. */
15864
+ "menuLabel"?: HelixHeadlessTableColumn["menuLabel"] | undefined;
15821
15865
  /** The accessible name of the grip that moves the column. `{name}` is the
15822
15866
  heading text, and `{named}` is `no` for a column without one, so the
15823
15867
  sentence for it can name the column another way.
@@ -21347,6 +21391,25 @@ export interface HelixVueGlobalComponents {
21347
21391
  * is written to `order` as a list of fields. Your markup is not rewritten: the
21348
21392
  * table assigns the headings to its header in that order.
21349
21393
  *
21394
+ * **`menu` on a column adds a menu to its heading.** A small button after the
21395
+ * sort chevrons opens it, and a press anywhere else on the heading still sorts.
21396
+ * The rows depend on the column:
21397
+ *
21398
+ * - Sort ascending and Sort descending, where the column is `sortable`.
21399
+ * - Move left and Move right, where the table is `reorderable`.
21400
+ * - Hide column, which is disabled on the last column showing.
21401
+ * - Show hidden columns, once the menu has hidden a column.
21402
+ *
21403
+ * Sorting and moving ask first with `helix-before-sort` and
21404
+ * `helix-before-reorder`, as a press on the heading or a drag of the grip does.
21405
+ * Hiding asks with `helix-before-column-toggle`, then sets `hidden` on the column
21406
+ * and fires `helix-column-toggle`. Your own column picker can call `hideColumn`
21407
+ * and `showColumn`. Show hidden columns restores only the columns that went
21408
+ * through them, so a column you hid with `hidden` stays hidden.
21409
+ *
21410
+ * In the grid, Alt+Down on a heading opens its menu, and F2 and Tab reach the
21411
+ * button.
21412
+ *
21350
21413
  * **`reorderable-rows` lets people move rows.** A column of grips leads each
21351
21414
  * row, named by `move-row-label`. Drag a grip to move its row, and the table
21352
21415
  * scrolls near an edge. Or press Space or Enter on a grip, or click it, to pick
@@ -25456,6 +25519,10 @@ export interface HelixVueGlobalComponents {
25456
25519
  * A sortable heading draws two chevrons after its words. The chevron for the
25457
25520
  * current direction takes the heading's ink, so you can see which columns sort
25458
25521
  * and which way the table is sorted.
25522
+ *
25523
+ * `menu` adds a small button after the chevrons, in a `DataTable`. The button
25524
+ * opens a menu of what you can do with the column, and a press anywhere else on
25525
+ * the heading still sorts. `DataTable` describes the rows.
25459
25526
  */
25460
25527
  "helix-headless-table-column": DefineCustomElement<HelixHeadlessTableColumn, HelixHeadlessTableColumnVueProps, HelixHeadlessTableColumnVueEvents>;
25461
25528
  /**