@hashicorp/design-system-components 5.0.0 → 5.1.0-rc-20251125151324

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 (76) hide show
  1. package/declarations/components/hds/advanced-table/index.d.ts +10 -0
  2. package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -0
  3. package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -0
  4. package/declarations/components/hds/filter-bar/dropdown.d.ts +38 -0
  5. package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +21 -0
  6. package/declarations/components/hds/filter-bar/filter-group/date.d.ts +47 -0
  7. package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +24 -0
  8. package/declarations/components/hds/filter-bar/filter-group/index.d.ts +51 -0
  9. package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +45 -0
  10. package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +21 -0
  11. package/declarations/components/hds/filter-bar/index.d.ts +48 -0
  12. package/declarations/components/hds/filter-bar/tabs/index.d.ts +43 -0
  13. package/declarations/components/hds/filter-bar/tabs/panel.d.ts +28 -0
  14. package/declarations/components/hds/filter-bar/tabs/tab.d.ts +34 -0
  15. package/declarations/components/hds/filter-bar/types.d.ts +86 -0
  16. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  17. package/declarations/components.d.ts +12 -0
  18. package/declarations/template-registry.d.ts +33 -0
  19. package/dist/_app_/components/hds/filter-bar/dropdown.js +1 -0
  20. package/dist/_app_/components/hds/filter-bar/filter-group/checkbox.js +1 -0
  21. package/dist/_app_/components/hds/filter-bar/filter-group/date.js +1 -0
  22. package/dist/_app_/components/hds/filter-bar/filter-group/generic.js +1 -0
  23. package/dist/_app_/components/hds/filter-bar/filter-group/numerical.js +1 -0
  24. package/dist/_app_/components/hds/filter-bar/filter-group/radio.js +1 -0
  25. package/dist/_app_/components/hds/filter-bar/filter-group.js +1 -0
  26. package/dist/_app_/components/hds/filter-bar/tabs/panel.js +1 -0
  27. package/dist/_app_/components/hds/filter-bar/tabs/tab.js +1 -0
  28. package/dist/_app_/components/hds/filter-bar/tabs.js +1 -0
  29. package/dist/_app_/components/hds/filter-bar.js +1 -0
  30. package/dist/components/hds/advanced-table/index.js +10 -1
  31. package/dist/components/hds/advanced-table/index.js.map +1 -1
  32. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  33. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  34. package/dist/components/hds/filter-bar/dropdown.js +120 -0
  35. package/dist/components/hds/filter-bar/dropdown.js.map +1 -0
  36. package/dist/components/hds/filter-bar/filter-group/checkbox.js +40 -0
  37. package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -0
  38. package/dist/components/hds/filter-bar/filter-group/date.js +164 -0
  39. package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -0
  40. package/dist/components/hds/filter-bar/filter-group/generic.js +43 -0
  41. package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -0
  42. package/dist/components/hds/filter-bar/filter-group/index.js +226 -0
  43. package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -0
  44. package/dist/components/hds/filter-bar/filter-group/numerical.js +163 -0
  45. package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -0
  46. package/dist/components/hds/filter-bar/filter-group/radio.js +40 -0
  47. package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -0
  48. package/dist/components/hds/filter-bar/index.js +237 -0
  49. package/dist/components/hds/filter-bar/index.js.map +1 -0
  50. package/dist/components/hds/filter-bar/tabs/index.js +181 -0
  51. package/dist/components/hds/filter-bar/tabs/index.js.map +1 -0
  52. package/dist/components/hds/filter-bar/tabs/panel.js +67 -0
  53. package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -0
  54. package/dist/components/hds/filter-bar/tabs/tab.js +98 -0
  55. package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -0
  56. package/dist/components/hds/filter-bar/types.js +35 -0
  57. package/dist/components/hds/filter-bar/types.js.map +1 -0
  58. package/dist/components.js +12 -0
  59. package/dist/components.js.map +1 -1
  60. package/dist/helpers/hds-link-to-query.js +0 -1
  61. package/dist/helpers/hds-link-to-query.js.map +1 -1
  62. package/dist/styles/@hashicorp/design-system-components.css +319 -1555
  63. package/dist/styles/@hashicorp/design-system-components.scss +1 -0
  64. package/dist/styles/components/advanced-table.scss +67 -1
  65. package/dist/styles/components/app-header.scss +6 -9
  66. package/dist/styles/components/filter-bar.scss +164 -0
  67. package/dist/styles/components/side-nav/header.scss +4 -12
  68. package/dist/styles/mixins/_interactive-dark-theme.scss +7 -4
  69. package/package.json +12 -1
  70. package/translations/hds/components/advanced-table/en-us.yaml +3 -0
  71. package/translations/hds/components/filter-bar/date/en-us.yaml +18 -0
  72. package/translations/hds/components/filter-bar/en-us.yaml +9 -0
  73. package/translations/hds/components/filter-bar/filter-group/en-us.yaml +1 -0
  74. package/translations/hds/components/filter-bar/filter-group/numerical/en-us.yaml +15 -0
  75. package/translations/hds/components/filter-bar/filter-options/en-us.yaml +1 -0
  76. package/translations/hds/components/filter-bar/filters-dropdown/en-us.yaml +7 -0
@@ -5,8 +5,10 @@
5
5
  import Component from '@glimmer/component';
6
6
  import type Owner from '@ember/owner';
7
7
  import type { WithBoundArgs } from '@glint/template';
8
+ import type { ComponentLike } from '@glint/template';
8
9
  import { HdsAdvancedTableDensityValues, HdsAdvancedTableVerticalAlignmentValues } from './types.ts';
9
10
  import type { HdsAdvancedTableColumn, HdsAdvancedTableDensities, HdsAdvancedTableHorizontalAlignment, HdsAdvancedTableOnSelectionChangeSignature, HdsAdvancedTableThSortOrder, HdsAdvancedTableVerticalAlignment, HdsAdvancedTableModel, HdsAdvancedTableExpandState, HdsAdvancedTableColumnReorderCallback } from './types.ts';
11
+ import type { HdsFilterBarSignature } from '../filter-bar/index.ts';
10
12
  import type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.ts';
11
13
  import type HdsAdvancedTableTd from './td.ts';
12
14
  import type HdsAdvancedTableTh from './th.ts';
@@ -41,12 +43,18 @@ export interface HdsAdvancedTableSignature {
41
43
  hasStickyFirstColumn?: boolean;
42
44
  childrenKey?: string;
43
45
  maxHeight?: string;
46
+ isEmpty?: boolean;
44
47
  onColumnReorder?: HdsAdvancedTableColumnReorderCallback;
45
48
  onColumnResize?: (columnKey: string, newWidth?: string) => void;
46
49
  onSelectionChange?: (selection: HdsAdvancedTableOnSelectionChangeSignature) => void;
47
50
  onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;
48
51
  };
49
52
  Blocks: {
53
+ actions?: [
54
+ {
55
+ FilterBar?: ComponentLike<HdsFilterBarSignature>;
56
+ }
57
+ ];
50
58
  body?: [
51
59
  {
52
60
  Td?: WithBoundArgs<typeof HdsAdvancedTableTd, 'align'>;
@@ -57,6 +65,7 @@ export interface HdsAdvancedTableSignature {
57
65
  isOpen?: HdsAdvancedTableExpandState;
58
66
  }
59
67
  ];
68
+ emptyState?: [];
60
69
  };
61
70
  Element: HTMLDivElement;
62
71
  }
@@ -89,6 +98,7 @@ export default class HdsAdvancedTable extends Component<HdsAdvancedTableSignatur
89
98
  showScrollIndicatorBottom: boolean;
90
99
  stickyColumnOffset: string;
91
100
  constructor(owner: Owner, args: HdsAdvancedTableSignature['Args']);
101
+ get isEmpty(): boolean;
92
102
  get identityKey(): string | undefined;
93
103
  get childrenKey(): string;
94
104
  get hasStickyFirstColumn(): boolean | undefined;
@@ -9,6 +9,7 @@ export interface HdsDropdownListItemCheckboxSignature {
9
9
  Args: HdsFormCheckboxBaseSignature['Args'] & {
10
10
  count?: string | number;
11
11
  icon?: HdsIconSignature['Args']['name'];
12
+ id?: string;
12
13
  };
13
14
  Blocks: {
14
15
  default: [];
@@ -9,6 +9,7 @@ export interface HdsDropdownListItemRadioSignature {
9
9
  Args: HdsFormRadioBaseSignature['Args'] & {
10
10
  count?: string | number;
11
11
  icon?: HdsIconSignature['Args']['name'];
12
+ id?: string;
12
13
  };
13
14
  Blocks: {
14
15
  default: [];
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type Owner from '@ember/owner';
7
+ import type { WithBoundArgs } from '@glint/template';
8
+ import HdsFilterBarFilterGroup from './filter-group/index.ts';
9
+ import type { HdsFilterBarFilters, HdsFilterBarFilter } from './types.ts';
10
+ import type { HdsDropdownSignature } from '../dropdown/index.ts';
11
+ export interface HdsFilterBarDropdownSignature {
12
+ Args: HdsDropdownSignature['Args'] & {
13
+ filters: HdsFilterBarFilters;
14
+ isLiveFilter: boolean;
15
+ onFilter?: (filters: HdsFilterBarFilters) => void;
16
+ };
17
+ Blocks: {
18
+ default: [
19
+ {
20
+ FilterGroup?: WithBoundArgs<typeof HdsFilterBarFilterGroup, 'tab' | 'panel' | 'filters' | 'onChange'>;
21
+ }
22
+ ];
23
+ };
24
+ Element: HTMLDivElement;
25
+ }
26
+ export default class HdsFilterBarDropdown extends Component<HdsDropdownSignature & HdsFilterBarDropdownSignature> {
27
+ internalFilters: HdsFilterBarFilters;
28
+ constructor(owner: Owner, args: HdsFilterBarDropdownSignature['Args']);
29
+ private _syncFilters;
30
+ get isLiveFilter(): boolean;
31
+ onFilter(key: string, keyFilter?: HdsFilterBarFilter): void;
32
+ onApply(closeDropdown?: () => void): void;
33
+ onClear(closeDropdown?: () => void): void;
34
+ get classNames(): string;
35
+ private _updateFilter;
36
+ private _applyFilters;
37
+ private _onClose;
38
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { HdsFilterBarFilter } from '../types.ts';
7
+ export interface HdsFilterBarFilterGroupCheckboxSignature {
8
+ Args: {
9
+ value?: string;
10
+ keyFilter: HdsFilterBarFilter | undefined;
11
+ onChange?: (event: Event) => void;
12
+ };
13
+ Blocks: {
14
+ default: [];
15
+ };
16
+ Element: HTMLDivElement;
17
+ }
18
+ export default class HdsFilterBarFilterGroupCheckbox extends Component<HdsFilterBarFilterGroupCheckboxSignature> {
19
+ onChange(event: Event): void;
20
+ get isChecked(): boolean;
21
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type Owner from '@ember/owner';
7
+ import type HdsIntlService from '../../../../services/hds-intl';
8
+ import type { HdsFormTextInputTypes } from '../../form/text-input/types.ts';
9
+ import type { HdsFilterBarFilter, HdsFilterBarDateFilterSelector, HdsFilterBarDateFilterValue } from '../types.ts';
10
+ export declare const DATE_SELECTORS: HdsFilterBarDateFilterSelector[];
11
+ export declare const DATE_SELECTORS_TEXT: Record<HdsFilterBarDateFilterSelector, string>;
12
+ export declare const DATE_SELECTORS_INPUT_TEXT: Record<HdsFilterBarDateFilterSelector, string>;
13
+ export interface HdsFilterBarFilterGroupDateSignature {
14
+ Args: {
15
+ keyFilter: HdsFilterBarFilter | undefined;
16
+ type?: 'date' | 'time' | 'datetime';
17
+ onChange?: (selector?: HdsFilterBarDateFilterSelector, value?: HdsFilterBarDateFilterValue) => void;
18
+ };
19
+ Blocks: {
20
+ default: [];
21
+ };
22
+ Element: HTMLDivElement;
23
+ }
24
+ export default class HdsFilterBarFilterGroupDate extends Component<HdsFilterBarFilterGroupDateSignature> {
25
+ hdsIntl: HdsIntlService;
26
+ private _selector;
27
+ private _value;
28
+ private _betweenValueStart;
29
+ private _betweenValueEnd;
30
+ private _selectorValues;
31
+ private _selectorInputId;
32
+ private _valueInputId;
33
+ private _betweenValueStartInputId;
34
+ private _betweenValueEndInputId;
35
+ constructor(owner: Owner, args: HdsFilterBarFilterGroupDateSignature['Args']);
36
+ get type(): 'date' | 'time' | 'datetime';
37
+ get inputType(): HdsFormTextInputTypes;
38
+ get selectorLabelText(): string;
39
+ onSelectorChange(event: Event): void;
40
+ onValueChange(event: Event): void;
41
+ onBetweenValueStartChange(event: Event): void;
42
+ onBetweenValueEndChange(event: Event): void;
43
+ onClear(): void;
44
+ private _onChange;
45
+ private _selectorText;
46
+ private _resetInputValues;
47
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { HdsFilterBarFilter, HdsFilterBarGenericFilter } from '../types.ts';
7
+ export interface HdsFilterBarFilterGroupGenericSignature {
8
+ Args: {
9
+ keyFilter: HdsFilterBarFilter | undefined;
10
+ onChange?: (filter?: HdsFilterBarGenericFilter) => void;
11
+ };
12
+ Blocks: {
13
+ default: [
14
+ {
15
+ updateFilter: (filter: HdsFilterBarGenericFilter) => void;
16
+ }
17
+ ];
18
+ };
19
+ Element: HTMLDivElement;
20
+ }
21
+ export default class HdsFilterBarFilterGroupGeneric extends Component<HdsFilterBarFilterGroupGenericSignature> {
22
+ updateFilter(filter: HdsFilterBarGenericFilter): void;
23
+ onClear(): void;
24
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { WithBoundArgs } from '@glint/template';
7
+ import HdsFilterBarTabsTab from '../tabs/tab.ts';
8
+ import HdsFilterBarTabsPanel from '../tabs/panel.ts';
9
+ import type { HdsTabsPanelSignature } from '../../tabs/panel.ts';
10
+ import HdsFilterBarFilterGroupGeneric from './generic.ts';
11
+ import HdsFilterBarFilterGroupCheckbox from './checkbox.ts';
12
+ import HdsFilterBarFilterGroupRadio from './radio.ts';
13
+ import type { HdsFilterBarFilter, HdsFilterBarFilters, HdsFilterBarFilterType, HdsFilterBarData, HdsFilterBarGenericFilter, HdsFilterBarNumericalFilterSelector, HdsFilterBarNumericalFilterValue, HdsFilterBarDateFilterSelector, HdsFilterBarDateFilterValue } from '../types.ts';
14
+ export interface HdsFilterBarFilterGroupSignature {
15
+ Args: {
16
+ tab?: WithBoundArgs<typeof HdsFilterBarTabsTab, never>;
17
+ panel?: WithBoundArgs<typeof HdsFilterBarTabsPanel, never>;
18
+ key: string;
19
+ text: string;
20
+ type?: HdsFilterBarFilterType;
21
+ filters: HdsFilterBarFilters;
22
+ searchEnabled?: boolean;
23
+ onChange: (key: string, keyFilter?: HdsFilterBarFilter) => void;
24
+ };
25
+ Blocks: {
26
+ default: [
27
+ {
28
+ Generic?: WithBoundArgs<typeof HdsFilterBarFilterGroupGeneric, 'keyFilter'>;
29
+ Checkbox?: WithBoundArgs<typeof HdsFilterBarFilterGroupCheckbox, 'keyFilter' | 'onChange'>;
30
+ Radio?: WithBoundArgs<typeof HdsFilterBarFilterGroupRadio, 'keyFilter' | 'onChange'>;
31
+ }
32
+ ];
33
+ };
34
+ Element: HdsTabsPanelSignature['Element'];
35
+ }
36
+ export default class HdsFilterBarFilterGroup extends Component<HdsFilterBarFilterGroupSignature> {
37
+ internalFilters: HdsFilterBarData | undefined;
38
+ private _panelElement;
39
+ private _setUpFilterPanel;
40
+ get type(): HdsFilterBarFilterType;
41
+ get keyFilter(): HdsFilterBarFilter | undefined;
42
+ get numFilters(): number;
43
+ onSelectionChange(event: Event): void;
44
+ onNumericalChange(selector?: HdsFilterBarNumericalFilterSelector, value?: HdsFilterBarNumericalFilterValue): void;
45
+ onDateChange(selector?: HdsFilterBarDateFilterSelector, value?: HdsFilterBarDateFilterValue): void;
46
+ onGenericChange(filter?: HdsFilterBarGenericFilter): void;
47
+ onClear(): void;
48
+ get formattedFilters(): HdsFilterBarFilter | undefined;
49
+ get classNames(): string;
50
+ private onSearch;
51
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type Owner from '@ember/owner';
7
+ import type HdsIntlService from '../../../../services/hds-intl';
8
+ import type { HdsFilterBarFilter, HdsFilterBarNumericalFilterSelector, HdsFilterBarNumericalFilterValue } from '../types.ts';
9
+ export declare const NUMERICAL_SELECTORS: HdsFilterBarNumericalFilterSelector[];
10
+ export declare const NUMERICAL_SELECTORS_TEXT: Record<HdsFilterBarNumericalFilterSelector, string>;
11
+ export declare const NUMERICAL_SELECTORS_INPUT_TEXT: Record<HdsFilterBarNumericalFilterSelector, string>;
12
+ export interface HdsFilterBarFilterGroupNumericalSignature {
13
+ Args: {
14
+ keyFilter: HdsFilterBarFilter | undefined;
15
+ onChange?: (selector?: HdsFilterBarNumericalFilterSelector, value?: HdsFilterBarNumericalFilterValue) => void;
16
+ };
17
+ Blocks: {
18
+ default: [];
19
+ };
20
+ Element: HTMLDivElement;
21
+ }
22
+ export default class HdsFilterBarFilterGroupNumerical extends Component<HdsFilterBarFilterGroupNumericalSignature> {
23
+ hdsIntl: HdsIntlService;
24
+ private _selector;
25
+ private _value;
26
+ private _betweenValueStart;
27
+ private _betweenValueEnd;
28
+ private _selectorValues;
29
+ private _selectorInputId;
30
+ private _valueInputId;
31
+ private _betweenValueStartInputId;
32
+ private _betweenValueEndInputId;
33
+ constructor(owner: Owner, args: HdsFilterBarFilterGroupNumericalSignature['Args']);
34
+ get stringValue(): string | undefined;
35
+ get stringBetweenValueStart(): string | undefined;
36
+ get stringBetweenValueEnd(): string | undefined;
37
+ onSelectorChange(event: Event): void;
38
+ onValueChange(event: Event): void;
39
+ onBetweenValueStartChange(event: Event): void;
40
+ onBetweenValueEndChange(event: Event): void;
41
+ onClear(): void;
42
+ private _onChange;
43
+ private _selectorText;
44
+ private _resetInputValues;
45
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { HdsFilterBarFilter } from '../types.ts';
7
+ export interface HdsFilterBarFilterGroupRadioSignature {
8
+ Args: {
9
+ value?: string;
10
+ keyFilter: HdsFilterBarFilter | undefined;
11
+ onChange?: (event: Event) => void;
12
+ };
13
+ Blocks: {
14
+ default: [];
15
+ };
16
+ Element: HTMLDivElement;
17
+ }
18
+ export default class HdsFilterBarFilterGroupRadio extends Component<HdsFilterBarFilterGroupRadioSignature> {
19
+ onChange(event: Event): void;
20
+ get isChecked(): boolean;
21
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { WithBoundArgs } from '@glint/template';
7
+ import type HdsIntlService from '../../../services/hds-intl';
8
+ import type { HdsFilterBarFilters } from './types.ts';
9
+ import HdsDropdown from '../dropdown/index.ts';
10
+ import HdsYield from '../yield/index.ts';
11
+ import HdsFilterBarDropdown from './dropdown.ts';
12
+ export interface HdsFilterBarSignature {
13
+ Args: {
14
+ filters: HdsFilterBarFilters;
15
+ isLiveFilter?: boolean;
16
+ hasSearch?: boolean;
17
+ onFilter?: (filters: HdsFilterBarFilters) => void;
18
+ };
19
+ Blocks: {
20
+ default?: [
21
+ {
22
+ ActionsDropdown?: WithBoundArgs<typeof HdsDropdown, never>;
23
+ ActionsGeneric?: WithBoundArgs<typeof HdsYield, never>;
24
+ Dropdown?: WithBoundArgs<typeof HdsFilterBarDropdown, 'filters' | 'isLiveFilter' | 'onFilter'>;
25
+ }
26
+ ];
27
+ };
28
+ Element: HTMLDivElement;
29
+ }
30
+ export default class HdsFilterBar extends Component<HdsFilterBarSignature> {
31
+ hdsIntl: HdsIntlService;
32
+ _isExpanded: boolean;
33
+ get searchValue(): string;
34
+ onFilter(filters: HdsFilterBarFilters): void;
35
+ clearFilters(): void;
36
+ onSearch(event: Event): void;
37
+ toggleExpand(): void;
38
+ get hasActiveFilters(): boolean;
39
+ private onFilterDismiss;
40
+ private _filterData;
41
+ private _filterText;
42
+ private _filterArrayData;
43
+ private _filterKeyText;
44
+ private _numericalFilterText;
45
+ private _dateFilterText;
46
+ private _dateDisplayText;
47
+ private _genericFilterText;
48
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { WithBoundArgs } from '@glint/template';
7
+ import HdsFilterBarTabsTabComponent from './tab.ts';
8
+ import HdsFilterBarTabsPanelComponent from './panel.ts';
9
+ export interface HdsFilterBarTabsSignature {
10
+ Args: {
11
+ selectedTabIndex?: number;
12
+ ariaLabel: string;
13
+ onClickTab?: (event: MouseEvent, tabIndex: number) => void;
14
+ };
15
+ Blocks: {
16
+ default: [
17
+ {
18
+ Tab?: WithBoundArgs<typeof HdsFilterBarTabsTabComponent, 'selectedTabIndex' | 'tabIds' | 'panelIds' | 'didInsertNode' | 'willDestroyNode' | 'onClick' | 'onKeyUp'>;
19
+ Panel?: WithBoundArgs<typeof HdsFilterBarTabsPanelComponent, 'selectedTabIndex' | 'tabIds' | 'panelIds' | 'didInsertNode' | 'willDestroyNode'>;
20
+ }
21
+ ];
22
+ };
23
+ Element: HTMLDivElement;
24
+ }
25
+ export default class HdsFilterBarTabs extends Component<HdsFilterBarTabsSignature> {
26
+ private _tabIds;
27
+ private _tabNodes;
28
+ private _panelNodes;
29
+ private _panelIds;
30
+ private _selectedTabIndex;
31
+ private _selectedTabId?;
32
+ private _element;
33
+ private _setUpFilterBarTabs;
34
+ didInsertTab(): void;
35
+ willDestroyTab(element: HTMLElement): void;
36
+ didInsertPanel(): void;
37
+ willDestroyPanel(element: HTMLElement): void;
38
+ onClick(event: MouseEvent, tabIndex: number): void;
39
+ onKeyUp(event: KeyboardEvent, tabIndex: number): void;
40
+ focusTab(tabIndex: number, event: KeyboardEvent): void;
41
+ private updateTabs;
42
+ private updatePanels;
43
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ export interface HdsFilterBarTabsPanelSignature {
7
+ Args: {
8
+ selectedTabIndex?: number;
9
+ tabIds?: string[];
10
+ panelIds?: string[];
11
+ didInsertNode?: () => void;
12
+ willDestroyNode?: (element: HTMLElement) => void;
13
+ };
14
+ Blocks: {
15
+ default: [];
16
+ };
17
+ Element: HTMLElement;
18
+ }
19
+ export default class HdsFilterBarTabsPanel extends Component<HdsFilterBarTabsPanelSignature> {
20
+ private _panelId;
21
+ private _elementId?;
22
+ private _setUpPanel;
23
+ get nodeIndex(): number | undefined;
24
+ get coupledTabId(): string | undefined;
25
+ get isVisible(): boolean;
26
+ didInsertNode(element: HTMLElement): void;
27
+ willDestroyNode(element: HTMLElement): void;
28
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ export interface HdsFilterBarTabsTabSignature {
7
+ Args: {
8
+ selectedTabIndex?: number;
9
+ tabIds?: string[];
10
+ panelIds?: string[];
11
+ numFilters?: number;
12
+ didInsertNode?: () => void;
13
+ willDestroyNode?: (element: HTMLButtonElement) => void;
14
+ onClick?: (event: MouseEvent, nodeIndex: number) => void;
15
+ onKeyUp?: (event: KeyboardEvent, nodeIndex: number) => void;
16
+ };
17
+ Blocks: {
18
+ default: [];
19
+ };
20
+ Element: HTMLElement;
21
+ }
22
+ export default class HdsFilterBarTabsTab extends Component<HdsFilterBarTabsTabSignature> {
23
+ private _tabId;
24
+ private _elementId?;
25
+ private _setUpTab;
26
+ get nodeIndex(): number | undefined;
27
+ get coupledPanelId(): string | undefined;
28
+ get isSelected(): boolean;
29
+ didInsertNode(element: HTMLButtonElement): void;
30
+ willDestroyNode(element: HTMLButtonElement): void;
31
+ onClick(event: MouseEvent): false | undefined;
32
+ onKeyUp(event: KeyboardEvent): void;
33
+ get classNames(): string;
34
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ export declare enum HdsFilterBarFilterTypeValues {
6
+ multiSelect = "multi-select",
7
+ singleSelect = "single-select",
8
+ numerical = "numerical",
9
+ date = "date",
10
+ time = "time",
11
+ datetime = "datetime",
12
+ generic = "generic",
13
+ search = "search"
14
+ }
15
+ export type HdsFilterBarFilterType = `${HdsFilterBarFilterTypeValues}`;
16
+ export interface HdsFilterBarGenericFilterData {
17
+ value: unknown;
18
+ }
19
+ export interface HdsFilterBarNumericalFilterData {
20
+ selector: HdsFilterBarNumericalFilterSelector;
21
+ value: HdsFilterBarNumericalFilterValue;
22
+ }
23
+ export interface HdsFilterBarDateFilterData {
24
+ selector: HdsFilterBarDateFilterSelector;
25
+ value: HdsFilterBarDateFilterValue;
26
+ }
27
+ export type HdsFilterBarData = HdsFilterBarGenericFilterData[] | HdsFilterBarGenericFilterData | HdsFilterBarNumericalFilterData | HdsFilterBarDateFilterData;
28
+ export interface HdsFilterBarGenericFilter {
29
+ type: 'generic';
30
+ text?: string;
31
+ dismissTagText?: string;
32
+ data: HdsFilterBarGenericFilterData | HdsFilterBarGenericFilterData[];
33
+ }
34
+ export interface HdsFilterBarSingleSelectFilter {
35
+ type: 'single-select';
36
+ text?: string;
37
+ data: HdsFilterBarGenericFilterData;
38
+ }
39
+ export interface HdsFilterBarMultiSelectFilter {
40
+ type: 'multi-select';
41
+ text?: string;
42
+ data: HdsFilterBarGenericFilterData[];
43
+ }
44
+ export interface HdsFilterBarNumericalFilter {
45
+ type: 'numerical';
46
+ text?: string;
47
+ data: HdsFilterBarNumericalFilterData;
48
+ }
49
+ export interface HdsFilterBarDateFilter {
50
+ type: 'date' | 'time' | 'datetime';
51
+ text?: string;
52
+ data: HdsFilterBarDateFilterData;
53
+ }
54
+ export interface HdsFilterBarSearchFilter {
55
+ type: 'search';
56
+ text?: string;
57
+ data: HdsFilterBarGenericFilterData;
58
+ }
59
+ export type HdsFilterBarFilter = HdsFilterBarSingleSelectFilter | HdsFilterBarMultiSelectFilter | HdsFilterBarNumericalFilter | HdsFilterBarDateFilter | HdsFilterBarSearchFilter | HdsFilterBarGenericFilter;
60
+ export interface HdsFilterBarFilters {
61
+ [name: string]: HdsFilterBarFilter;
62
+ }
63
+ export declare enum HdsFilterBarNumericalFilterSelectorValues {
64
+ lessThan = "less-than",
65
+ lessThanOrEqualTo = "less-than-or-equal-to",
66
+ equalTo = "equal-to",
67
+ greaterThanOrEqualTo = "greater-than-or-equal-to",
68
+ greaterThan = "greater-than",
69
+ between = "between"
70
+ }
71
+ export type HdsFilterBarNumericalFilterSelector = `${HdsFilterBarNumericalFilterSelectorValues}`;
72
+ export declare enum HdsFilterBarDateFilterSelectorValues {
73
+ before = "before",
74
+ exactly = "exactly",
75
+ after = "after",
76
+ between = "between"
77
+ }
78
+ export type HdsFilterBarDateFilterSelector = `${HdsFilterBarDateFilterSelectorValues}`;
79
+ export type HdsFilterBarNumericalFilterValue = number | {
80
+ start?: number;
81
+ end?: number;
82
+ };
83
+ export type HdsFilterBarDateFilterValue = string | {
84
+ start?: string;
85
+ end?: string;
86
+ };
@@ -31,7 +31,7 @@ export interface HdsFormTextInputFieldSignature {
31
31
  }
32
32
  export default class HdsFormTextInputField extends Component<HdsFormTextInputFieldSignature> {
33
33
  private _isPasswordMasked;
34
- type: "search" | "time" | "text" | "month" | "week" | "email" | "tel" | "password" | "url" | "date" | "datetime-local";
34
+ type: "search" | "time" | "text" | "month" | "week" | "date" | "email" | "tel" | "password" | "url" | "datetime-local";
35
35
  constructor(owner: Owner, args: HdsFormTextInputFieldSignature['Args']);
36
36
  get hasVisibilityToggle(): boolean;
37
37
  get showVisibilityToggle(): boolean;
@@ -87,6 +87,18 @@ export { default as HdsDropdownToggleIcon } from './components/hds/dropdown/togg
87
87
  export * from './components/hds/dropdown/list-item/types.ts';
88
88
  export * from './components/hds/dropdown/toggle/types.ts';
89
89
  export * from './components/hds/dropdown/types.ts';
90
+ export { default as HdsFilterBar } from './components/hds/filter-bar/index.ts';
91
+ export { default as HdsFilterBarDropdown } from './components/hds/filter-bar/dropdown.ts';
92
+ export { default as HdsFilterBarFilterGroup } from './components/hds/filter-bar/filter-group/index.ts';
93
+ export { default as HdsFilterBarFilterGroupCheckbox } from './components/hds/filter-bar/filter-group/checkbox.ts';
94
+ export { default as HdsFilterBarFilterGroupDate } from './components/hds/filter-bar/filter-group/date.ts';
95
+ export { default as HdsFilterBarFilterGroupGeneric } from './components/hds/filter-bar/filter-group/generic.ts';
96
+ export { default as HdsFilterBarFilterGroupRadio } from './components/hds/filter-bar/filter-group/radio.ts';
97
+ export { default as HdsFilterBarFilterGroupNumerical } from './components/hds/filter-bar/filter-group/numerical.ts';
98
+ export { default as HdsFilterBarTabs } from './components/hds/filter-bar/tabs/index.ts';
99
+ export { default as HdsFilterBarTabsPanel } from './components/hds/filter-bar/tabs/panel.ts';
100
+ export { default as HdsFilterBarTabsTab } from './components/hds/filter-bar/tabs/tab.ts';
101
+ export * from './components/hds/filter-bar/types.ts';
90
102
  export { default as HdsFlyout } from './components/hds/flyout/index.ts';
91
103
  export * from './components/hds/flyout/types.ts';
92
104
  export { default as HdsForm } from './components/hds/form/index.ts';
@@ -93,6 +93,17 @@ import type HdsDropdownListItemTitleComponent from './components/hds/dropdown/li
93
93
  import type HdsDropdownToggleButtonComponent from './components/hds/dropdown/toggle/button';
94
94
  import type HdsDropdownToggleChevronComponent from './components/hds/dropdown/toggle/chevron';
95
95
  import type HdsDropdownToggleIconComponent from './components/hds/dropdown/toggle/icon';
96
+ import type HdsFilterBarComponent from './components/hds/filter-bar';
97
+ import type HdsFilterBarDropdownComponent from './components/hds/filter-bar/dropdown';
98
+ import type HdsFilterBarFilterGroupComponent from './components/hds/filter-bar/filter-group/index.ts';
99
+ import type HdsFilterBarFilterGroupCheckboxComponent from './components/hds/filter-bar/filter-group/checkbox';
100
+ import type HdsFilterBarFilterGroupDateComponent from './components/hds/filter-bar/filter-group/date';
101
+ import type HdsFilterBarFilterGroupGenericComponent from './components/hds/filter-bar/filter-group/generic';
102
+ import type HdsFilterBarFilterGroupRadioComponent from './components/hds/filter-bar/filter-group/radio';
103
+ import type HdsFilterBarFilterGroupNumericalComponent from './components/hds/filter-bar/filter-group/numerical';
104
+ import type HdsFilterBarTabsComponent from './components/hds/filter-bar/tabs';
105
+ import type HdsFilterBarTabsPanelComponent from './components/hds/filter-bar/tabs/panel';
106
+ import type HdsFilterBarTabsTabComponent from './components/hds/filter-bar/tabs/tab';
96
107
  import type HdsFlyoutComponent from './components/hds/flyout';
97
108
  import type HdsFormComponent from './components/hds/form';
98
109
  import type HdsFormCharacterCountComponent from './components/hds/form/character-count';
@@ -424,6 +435,28 @@ export default interface HdsComponentsRegistry {
424
435
  'hds/dropdown/toggle/chevron': typeof HdsDropdownToggleChevronComponent;
425
436
  'Hds::Dropdown::Toggle::Icon': typeof HdsDropdownToggleIconComponent;
426
437
  'hds/dropdown/toggle/icon': typeof HdsDropdownToggleIconComponent;
438
+ 'Hds::FilterBar': typeof HdsFilterBarComponent;
439
+ 'hds/filter-bar': typeof HdsFilterBarComponent;
440
+ 'Hds::FilterBar::Dropdown': typeof HdsFilterBarDropdownComponent;
441
+ 'hds/filter-bar/dropdown': typeof HdsFilterBarDropdownComponent;
442
+ 'Hds::FilterBar::FilterGroup': typeof HdsFilterBarFilterGroupComponent;
443
+ 'hds/filter-bar/filter-group': typeof HdsFilterBarFilterGroupComponent;
444
+ 'Hds::FilterBar::FilterGroup::Checkbox': typeof HdsFilterBarFilterGroupCheckboxComponent;
445
+ 'hds/filter-bar/filter-group/checkbox': typeof HdsFilterBarFilterGroupCheckboxComponent;
446
+ 'Hds::FilterBar::FilterGroup::Date': typeof HdsFilterBarFilterGroupDateComponent;
447
+ 'hds/filter-bar/filter-group/date': typeof HdsFilterBarFilterGroupDateComponent;
448
+ 'Hds::FilterBar::FilterGroup::Generic': typeof HdsFilterBarFilterGroupGenericComponent;
449
+ 'hds/filter-bar/filter-group/generic': typeof HdsFilterBarFilterGroupGenericComponent;
450
+ 'Hds::FilterBar::FilterGroup::Radio': typeof HdsFilterBarFilterGroupRadioComponent;
451
+ 'hds/filter-bar/filter-group/radio': typeof HdsFilterBarFilterGroupRadioComponent;
452
+ 'Hds::FilterBar::FilterGroup::Numerical': typeof HdsFilterBarFilterGroupNumericalComponent;
453
+ 'hds/filter-bar/filter-group/numerical': typeof HdsFilterBarFilterGroupNumericalComponent;
454
+ 'Hds::FilterBar::Tabs': typeof HdsFilterBarTabsComponent;
455
+ 'hds/filter-bar/tabs': typeof HdsFilterBarTabsComponent;
456
+ 'Hds::FilterBar::Tabs::Panel': typeof HdsFilterBarTabsPanelComponent;
457
+ 'hds/filter-bar/tabs/panel': typeof HdsFilterBarTabsPanelComponent;
458
+ 'Hds::FilterBar::Tabs::Tab': typeof HdsFilterBarTabsTabComponent;
459
+ 'hds/filter-bar/tabs/tab': typeof HdsFilterBarTabsTabComponent;
427
460
  'Hds::Flyout': typeof HdsFlyoutComponent;
428
461
  'hds/flyout': typeof HdsFlyoutComponent;
429
462
  'Hds::Form': typeof HdsFormComponent;
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/filter-bar/dropdown";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/filter-bar/filter-group/checkbox";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/filter-bar/filter-group/date";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/filter-bar/filter-group/generic";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/filter-bar/filter-group/numerical";