@moneyforward/mfui-components 3.34.0 → 3.36.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 (108) hide show
  1. package/dist/src/DataTable/DataTable.d.ts +50 -0
  2. package/dist/src/DataTable/DataTable.js +44 -0
  3. package/dist/src/DataTable/DataTableFilterButton/DataTableFilterButton.d.ts +6 -0
  4. package/dist/src/DataTable/DataTableFilterButton/DataTableFilterButton.js +63 -0
  5. package/dist/src/DataTable/DataTableFilterButton/DataTableFilterButton.types.d.ts +49 -0
  6. package/dist/src/DataTable/DataTableFilterButton/DataTableFilterButton.types.js +1 -0
  7. package/dist/src/DataTable/DataTableFilterButton/index.d.ts +2 -0
  8. package/dist/src/DataTable/DataTableFilterButton/index.js +1 -0
  9. package/dist/src/DataTable/DataTableHeaderCell/DataTableHeaderCell.js +6 -2
  10. package/dist/src/DataTable/DataTableHeaderCell/DataTableHeaderCell.types.d.ts +23 -1
  11. package/dist/src/DataTable/DataTableSortButton/DataTableSortButton.d.ts +4 -0
  12. package/dist/src/DataTable/DataTableSortButton/DataTableSortButton.js +17 -0
  13. package/dist/src/DataTable/DataTableSortButton/DataTableSortButton.types.d.ts +25 -0
  14. package/dist/src/DataTable/DataTableSortButton/DataTableSortButton.types.js +1 -0
  15. package/dist/src/DataTable/DataTableSortButton/index.d.ts +2 -0
  16. package/dist/src/DataTable/DataTableSortButton/index.js +1 -0
  17. package/dist/src/DataTable/index.d.ts +2 -0
  18. package/dist/src/DateTimeSelection/DatePicker/DatePickerDateCell/DatePickerDateCell.js +3 -0
  19. package/dist/src/DateTimeSelection/DateRangePicker/DateRangePickerPopover/DateRangePickerCalendar/DateRangePickerDateCell.d.ts +2 -2
  20. package/dist/src/DateTimeSelection/DateRangePicker/DateRangePickerPopover/DateRangePickerCalendar/DateRangePickerDateCell.js +5 -2
  21. package/dist/src/DateTimeSelection/DateRangePicker/DateRangePickerTrigger/DateRangePickerTrigger.js +3 -2
  22. package/dist/src/DateTimeSelection/DateRangePicker/DateRangePickerTrigger/DateRangePickerTrigger.types.d.ts +17 -0
  23. package/dist/src/DateTimeSelection/FilterDateRangePicker/DateRangePickerContent/DateRangePickerContent.js +3 -1
  24. package/dist/src/DateTimeSelection/FilterDateRangePicker/FilterDateRangePicker.types.d.ts +2 -1
  25. package/dist/src/DateTimeSelection/FilterMonthPicker/FilterMonthPicker.types.d.ts +2 -1
  26. package/dist/src/DateTimeSelection/FilterMonthPicker/MonthPickerPopover/MonthPickerPopover.js +2 -1
  27. package/dist/src/DateTimeSelection/MonthRangePicker/MonthRangePickerMonthCell/MonthRangePickerMonthCell.d.ts +1 -0
  28. package/dist/src/DateTimeSelection/MonthRangePicker/MonthRangePickerMonthCell/MonthRangePickerMonthCell.js +11 -8
  29. package/dist/src/DateTimeSelection/MonthRangePicker/MonthRangePickerMonthCell/constants.d.ts +7 -15
  30. package/dist/src/DateTimeSelection/MonthRangePicker/MonthRangePickerMonthCell/constants.js +26 -13
  31. package/dist/src/DateTimeSelection/TimePicker/TimePicker.d.ts +2 -0
  32. package/dist/src/DateTimeSelection/TimePicker/TimePicker.js +3 -2
  33. package/dist/src/DateTimeSelection/TimePicker/TimePicker.types.d.ts +27 -0
  34. package/dist/src/DateTimeSelection/shared/BasePicker/BasePicker.js +4 -1
  35. package/dist/src/DateTimeSelection/shared/BasePicker/constants.d.ts +1 -1
  36. package/dist/src/DateTimeSelection/shared/BasePicker/constants.js +2 -0
  37. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePicker.d.ts +1 -1
  38. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePicker.js +4 -4
  39. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePicker.types.d.ts +33 -1
  40. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/BaseRangePickerDateCell.d.ts +2 -2
  41. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/BaseRangePickerDateCell.js +15 -36
  42. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/index.d.ts +0 -1
  43. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/index.js +0 -1
  44. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerPopover.js +2 -1
  45. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerTrigger/BaseRangePickerTrigger.js +3 -2
  46. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerTrigger/BaseRangePickerTrigger.types.d.ts +17 -0
  47. package/dist/src/DateTimeSelection/shared/accessibility/constants.d.ts +7 -16
  48. package/dist/src/DateTimeSelection/shared/accessibility/constants.js +30 -14
  49. package/dist/src/DateTimeSelection/shared/accessibility/generateDateLabel.d.ts +6 -1
  50. package/dist/src/DateTimeSelection/shared/accessibility/generateDateLabel.js +14 -8
  51. package/dist/src/DeterminateProgressIndicator/DeterminateProgressIndicator.d.ts +18 -0
  52. package/dist/src/DeterminateProgressIndicator/DeterminateProgressIndicator.js +20 -0
  53. package/dist/src/DeterminateProgressIndicator/DeterminateProgressIndicator.types.d.ts +41 -0
  54. package/dist/src/DeterminateProgressIndicator/DeterminateProgressIndicator.types.js +1 -0
  55. package/dist/src/DeterminateProgressIndicator/index.d.ts +2 -0
  56. package/dist/src/DeterminateProgressIndicator/index.js +1 -0
  57. package/dist/src/FilterSelectBox/FilterSelectBox.types.d.ts +1 -1
  58. package/dist/src/IconButton/IconButton.d.ts +2 -0
  59. package/dist/src/IconButton/IconButton.js +2 -2
  60. package/dist/src/IconButton/IconButton.types.d.ts +7 -0
  61. package/dist/src/MultipleFilterSelectBox/MultipleFilterSelectBox.types.d.ts +1 -1
  62. package/dist/src/MultipleSelectBox/MultipleSelectBox.d.ts +1 -1
  63. package/dist/src/MultipleSelectBox/MultipleSelectBox.js +2 -2
  64. package/dist/src/MultipleSelectBox/MultipleSelectBox.types.d.ts +5 -1
  65. package/dist/src/MultipleSelectBox/MultipleSelectBoxTrigger/MultipleSelectBoxTrigger.js +2 -2
  66. package/dist/src/MultipleSelectBox/MultipleSelectBoxTrigger/MultipleSelectBoxTrigger.types.d.ts +39 -1
  67. package/dist/src/MultipleSelectBox/hooks/useSearchBox.js +14 -3
  68. package/dist/src/Popover/Popover.js +1 -1
  69. package/dist/src/Popover/Popover.types.d.ts +1 -1
  70. package/dist/src/SelectBox/SelectBox.d.ts +1 -1
  71. package/dist/src/SelectBox/SelectBox.js +11 -4
  72. package/dist/src/SelectBox/SelectBox.types.d.ts +38 -1
  73. package/dist/src/SelectBox/hooks/useSearchBox.d.ts +6 -1
  74. package/dist/src/SelectBox/hooks/useSearchBox.js +23 -4
  75. package/dist/src/SplitView/SplitView.js +16 -2
  76. package/dist/src/TextBox/TextBox.d.ts +2 -1
  77. package/dist/src/TextBox/TextBox.js +4 -3
  78. package/dist/src/TextBox/TextBox.types.d.ts +26 -0
  79. package/dist/src/Textarea/Textarea.d.ts +2 -1
  80. package/dist/src/Textarea/Textarea.js +11 -3
  81. package/dist/src/Textarea/Textarea.types.d.ts +26 -0
  82. package/dist/src/index.d.ts +1 -0
  83. package/dist/src/index.js +1 -0
  84. package/dist/styled-system/recipes/base-range-picker-trigger-slot-recipe.d.ts +1 -0
  85. package/dist/styled-system/recipes/base-range-picker-trigger-slot-recipe.js +5 -0
  86. package/dist/styled-system/recipes/data-table-filter-button-slot-recipe.d.ts +33 -0
  87. package/dist/styled-system/recipes/data-table-filter-button-slot-recipe.js +43 -0
  88. package/dist/styled-system/recipes/data-table-header-cell-slot-recipe.d.ts +3 -2
  89. package/dist/styled-system/recipes/data-table-header-cell-slot-recipe.js +69 -1
  90. package/dist/styled-system/recipes/data-table-sort-button-slot-recipe.d.ts +33 -0
  91. package/dist/styled-system/recipes/data-table-sort-button-slot-recipe.js +35 -0
  92. package/dist/styled-system/recipes/determinate-progress-indicator-slot-recipe.d.ts +36 -0
  93. package/dist/styled-system/recipes/determinate-progress-indicator-slot-recipe.js +61 -0
  94. package/dist/styled-system/recipes/icon-button-slot-recipe.d.ts +2 -1
  95. package/dist/styled-system/recipes/icon-button-slot-recipe.js +33 -2
  96. package/dist/styled-system/recipes/index.d.ts +3 -0
  97. package/dist/styled-system/recipes/index.js +3 -0
  98. package/dist/styled-system/recipes/text-box-slot-recipe.d.ts +4 -0
  99. package/dist/styled-system/recipes/text-box-slot-recipe.js +8 -2
  100. package/dist/styled-system/recipes/textarea-slot-recipe.d.ts +4 -0
  101. package/dist/styled-system/recipes/textarea-slot-recipe.js +6 -0
  102. package/dist/styled-system/recipes/time-picker-slot-recipe.d.ts +4 -0
  103. package/dist/styled-system/recipes/time-picker-slot-recipe.js +8 -2
  104. package/dist/styles.css +293 -14
  105. package/dist/tsconfig.build.tsbuildinfo +1 -1
  106. package/package.json +10 -10
  107. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/constants.d.ts +0 -18
  108. package/dist/src/DateTimeSelection/shared/BaseRangePicker/BaseRangePickerPopover/BaseRangePickerCalendar/constants.js +0 -18
@@ -26,6 +26,32 @@ export type TextBoxProps = {
26
26
  * @default false
27
27
  */
28
28
  invalid?: TextBoxSlotRecipeVariant['invalid'];
29
+ /**
30
+ * Whether the text box needs the user's attention while still being submittable.
31
+ * Use it when the value passes validation but is worth double-checking.
32
+ *
33
+ * This changes the border color only, so you must also render an adjacent
34
+ * `<HelpMessage messageType="caution">` describing the concern — color alone does not
35
+ * convey the state (WCAG 2.2 1.4.1).
36
+ *
37
+ * Associate that `HelpMessage` with the text box via `aria-describedby` so screen readers
38
+ * announce it on focus, and give it `role="status"` so it is also announced the moment it
39
+ * appears while focus is already inside the text box.
40
+ *
41
+ * ```tsx
42
+ * const cautionMessageId = useId();
43
+ *
44
+ * <TextBox caution aria-describedby={cautionMessageId} />
45
+ * <HelpMessage id={cautionMessageId} role="status" messageType="caution">
46
+ * 過去の平均を大きく上回る金額です。
47
+ * </HelpMessage>
48
+ * ```
49
+ *
50
+ * Ignored while `invalid` is `true`, because the error state takes precedence.
51
+ *
52
+ * @default false
53
+ */
54
+ caution?: TextBoxSlotRecipeVariant['caution'];
29
55
  /**
30
56
  * The size of the text box.
31
57
  *
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The general-purpose Textarea component.
3
- * This component switches the variants of looks and behaviors depends on the props: size, invalid, disabled.
3
+ * This component switches the variants of looks and behaviors depends on the props: size, invalid, caution, disabled.
4
4
  *
5
5
  * Also extends the props of `<textarea>` element
6
6
  *
@@ -11,6 +11,7 @@
11
11
  */
12
12
  export declare const Textarea: import("react").ForwardRefExoticComponent<{
13
13
  invalid?: import("../../styled-system/recipes").TextBoxSlotRecipeVariant['invalid'];
14
+ caution?: import("../../styled-system/recipes").TextBoxSlotRecipeVariant['caution'];
14
15
  size?: import("../../styled-system/recipes").TextBoxSlotRecipeVariant['size'];
15
16
  disabled?: import("../../styled-system/recipes").TextBoxSlotRecipeVariant['disabled'];
16
17
  enableAutoResize?: boolean;
@@ -6,7 +6,7 @@ import { FocusIndicator } from '../FocusIndicator';
6
6
  import { mergeRefs } from '../utilities/dom/mergeRefs';
7
7
  /**
8
8
  * The general-purpose Textarea component.
9
- * This component switches the variants of looks and behaviors depends on the props: size, invalid, disabled.
9
+ * This component switches the variants of looks and behaviors depends on the props: size, invalid, caution, disabled.
10
10
  *
11
11
  * Also extends the props of `<textarea>` element
12
12
  *
@@ -15,11 +15,19 @@ import { mergeRefs } from '../utilities/dom/mergeRefs';
15
15
  *
16
16
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
17
17
  */
18
- export const Textarea = forwardRef(({ invalid = false, size = 'medium', disabled = false, rows = 1, enableAutoResize = false, resize = 'both', onChange, ...props }, ref) => {
18
+ export const Textarea = forwardRef(({ invalid = false, caution = false, size = 'medium', disabled = false, rows = 1, enableAutoResize = false, resize = 'both', onChange, ...props }, ref) => {
19
19
  const localRef = useRef(null);
20
20
  // When enableAutoResize is true, force resize to 'none' to prevent conflicts
21
21
  const effectiveResize = enableAutoResize ? 'none' : resize;
22
- const classes = textareaSlotRecipe({ size, disabled, invalid, enableAutoResize, resize: effectiveResize });
22
+ // The error state takes precedence over the caution state
23
+ const classes = textareaSlotRecipe({
24
+ size,
25
+ disabled,
26
+ invalid,
27
+ caution: caution && !invalid,
28
+ enableAutoResize,
29
+ resize: effectiveResize,
30
+ });
23
31
  const adjustHeight = useCallback(() => {
24
32
  if (!enableAutoResize || !localRef.current)
25
33
  return;
@@ -11,6 +11,32 @@ export type TextareaProps = {
11
11
  * @default false
12
12
  */
13
13
  invalid?: TextBoxSlotRecipeVariant['invalid'];
14
+ /**
15
+ * Whether the textarea needs the user's attention while still being submittable.
16
+ * Use it when the value passes validation but is worth double-checking.
17
+ *
18
+ * This changes the border color only, so you must also render an adjacent
19
+ * `<HelpMessage messageType="caution">` describing the concern — color alone does not
20
+ * convey the state (WCAG 2.2 1.4.1).
21
+ *
22
+ * Associate that `HelpMessage` with the textarea via `aria-describedby` so screen readers
23
+ * announce it on focus, and give it `role="status"` so it is also announced the moment it
24
+ * appears while focus is already inside the textarea.
25
+ *
26
+ * ```tsx
27
+ * const cautionMessageId = useId();
28
+ *
29
+ * <Textarea caution aria-describedby={cautionMessageId} />
30
+ * <HelpMessage id={cautionMessageId} role="status" messageType="caution">
31
+ * 送信先に社外メンバーが含まれています。内容をご確認ください。
32
+ * </HelpMessage>
33
+ * ```
34
+ *
35
+ * Ignored while `invalid` is `true`, because the error state takes precedence.
36
+ *
37
+ * @default false
38
+ */
39
+ caution?: TextBoxSlotRecipeVariant['caution'];
14
40
  /**
15
41
  * The size of the textarea.
16
42
  *
@@ -8,6 +8,7 @@ export * from './CheckboxGroup';
8
8
  export * from './DataGrid';
9
9
  export * from './DataTable';
10
10
  export * from './DateTimeSelection';
11
+ export * from './DeterminateProgressIndicator';
11
12
  export * from './Dialog';
12
13
  export * from './Disclosure';
13
14
  export * from './DisplayTable';
package/dist/src/index.js CHANGED
@@ -8,6 +8,7 @@ export * from './CheckboxGroup';
8
8
  export * from './DataGrid';
9
9
  export * from './DataTable';
10
10
  export * from './DateTimeSelection';
11
+ export * from './DeterminateProgressIndicator';
11
12
  export * from './Dialog';
12
13
  export * from './Disclosure';
13
14
  export * from './DisplayTable';
@@ -4,6 +4,7 @@ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
4
 
5
5
  interface BaseRangePickerTriggerSlotRecipeVariant {
6
6
  invalid: boolean
7
+ caution: boolean
7
8
  disabled: boolean
8
9
  size: "small" | "medium" | "large"
9
10
  }
@@ -30,6 +30,7 @@ const baseRangePickerTriggerSlotRecipeFn = memo((props = {}) => {
30
30
  });
31
31
  const baseRangePickerTriggerSlotRecipeVariantKeys = [
32
32
  "invalid",
33
+ "caution",
33
34
  "disabled",
34
35
  "size"
35
36
  ];
@@ -45,6 +46,10 @@ export const baseRangePickerTriggerSlotRecipe = /* @__PURE__ */ Object.assign(ba
45
46
  "true",
46
47
  "false"
47
48
  ],
49
+ "caution": [
50
+ "true",
51
+ "false"
52
+ ],
48
53
  "disabled": [
49
54
  "true",
50
55
  "false"
@@ -0,0 +1,33 @@
1
+ /* eslint-disable */
2
+ import type { ConditionalValue } from '../types/index';
3
+ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
+
5
+ interface DataTableFilterButtonSlotRecipeVariant {
6
+ filtered: boolean
7
+ }
8
+
9
+ type DataTableFilterButtonSlotRecipeVariantMap = {
10
+ [key in keyof DataTableFilterButtonSlotRecipeVariant]: Array<DataTableFilterButtonSlotRecipeVariant[key]>
11
+ }
12
+
13
+ type DataTableFilterButtonSlotRecipeSlot = "root" | "dialog" | "filteredDescription"
14
+
15
+ export type DataTableFilterButtonSlotRecipeVariantProps = {
16
+ [key in keyof DataTableFilterButtonSlotRecipeVariant]?: ConditionalValue<DataTableFilterButtonSlotRecipeVariant[key]> | undefined
17
+ }
18
+
19
+ export interface DataTableFilterButtonSlotRecipeRecipe {
20
+ __slot: DataTableFilterButtonSlotRecipeSlot
21
+ __type: DataTableFilterButtonSlotRecipeVariantProps
22
+ (props?: DataTableFilterButtonSlotRecipeVariantProps): Pretty<Record<DataTableFilterButtonSlotRecipeSlot, string>>
23
+ raw: (props?: DataTableFilterButtonSlotRecipeVariantProps) => DataTableFilterButtonSlotRecipeVariantProps
24
+ variantMap: DataTableFilterButtonSlotRecipeVariantMap
25
+ variantKeys: Array<keyof DataTableFilterButtonSlotRecipeVariant>
26
+ splitVariantProps<Props extends DataTableFilterButtonSlotRecipeVariantProps>(props: Props): [DataTableFilterButtonSlotRecipeVariantProps, Pretty<DistributiveOmit<Props, keyof DataTableFilterButtonSlotRecipeVariantProps>>]
27
+ getVariantProps: (props?: DataTableFilterButtonSlotRecipeVariantProps) => DataTableFilterButtonSlotRecipeVariantProps
28
+ }
29
+
30
+ /**
31
+ * Slot class created for the MFUI DataTable.FilterButton sub-component.
32
+ */
33
+ export declare const dataTableFilterButtonSlotRecipe: DataTableFilterButtonSlotRecipeRecipe
@@ -0,0 +1,43 @@
1
+ import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.js';
2
+ import { createRecipe } from './create-recipe.js';
3
+ const dataTableFilterButtonSlotRecipeDefaultVariants = {};
4
+ const dataTableFilterButtonSlotRecipeCompoundVariants = [];
5
+ const dataTableFilterButtonSlotRecipeSlotNames = [
6
+ [
7
+ "root",
8
+ "DataTableFilterButton__root"
9
+ ],
10
+ [
11
+ "dialog",
12
+ "DataTableFilterButton__dialog"
13
+ ],
14
+ [
15
+ "filteredDescription",
16
+ "DataTableFilterButton__filteredDescription"
17
+ ]
18
+ ];
19
+ const dataTableFilterButtonSlotRecipeSlotFns = /* @__PURE__ */ dataTableFilterButtonSlotRecipeSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, dataTableFilterButtonSlotRecipeDefaultVariants, getSlotCompoundVariant(dataTableFilterButtonSlotRecipeCompoundVariants, slotName))]);
20
+ const dataTableFilterButtonSlotRecipeFn = memo((props = {}) => {
21
+ return Object.fromEntries(dataTableFilterButtonSlotRecipeSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]));
22
+ });
23
+ const dataTableFilterButtonSlotRecipeVariantKeys = [
24
+ "filtered"
25
+ ];
26
+ const getVariantProps = (variants) => ({ ...dataTableFilterButtonSlotRecipeDefaultVariants, ...compact(variants) });
27
+ export const dataTableFilterButtonSlotRecipe = /* @__PURE__ */ Object.assign(dataTableFilterButtonSlotRecipeFn, {
28
+ __recipe__: false,
29
+ __name__: 'dataTableFilterButtonSlotRecipe',
30
+ raw: (props) => props,
31
+ classNameMap: {},
32
+ variantKeys: dataTableFilterButtonSlotRecipeVariantKeys,
33
+ variantMap: {
34
+ "filtered": [
35
+ "true",
36
+ "false"
37
+ ]
38
+ },
39
+ splitVariantProps(props) {
40
+ return splitProps(props, dataTableFilterButtonSlotRecipeVariantKeys);
41
+ },
42
+ getVariantProps
43
+ });
@@ -4,6 +4,7 @@ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
4
 
5
5
  interface DataTableHeaderCellSlotRecipeVariant {
6
6
  size: "small" | "medium"
7
+ hasActions: boolean
7
8
  fixedColumn: boolean
8
9
  verticalBorder: boolean
9
10
  edgeFixedColumn: "left" | "right"
@@ -15,10 +16,10 @@ type DataTableHeaderCellSlotRecipeVariantMap = {
15
16
  [key in keyof DataTableHeaderCellSlotRecipeVariant]: Array<DataTableHeaderCellSlotRecipeVariant[key]>
16
17
  }
17
18
 
18
- type DataTableHeaderCellSlotRecipeSlot = "root" | "headerCell" | "sortButton" | "sortIconContainer" | "sortIcon" | "unsortedIcon"
19
+ type DataTableHeaderCellSlotRecipeSlot = "root" | "headerCell" | "sortButton" | "sortIconContainer" | "sortIcon" | "unsortedIcon" | "container" | "actionsContainer"
19
20
 
20
21
  export type DataTableHeaderCellSlotRecipeVariantProps = {
21
- [key in keyof DataTableHeaderCellSlotRecipeVariant]?: ConditionalValue<DataTableHeaderCellSlotRecipeVariant[key]> | undefined
22
+ [key in keyof DataTableHeaderCellSlotRecipeVariant]?: DataTableHeaderCellSlotRecipeVariant[key] | undefined
22
23
  }
23
24
 
24
25
  export interface DataTableHeaderCellSlotRecipeRecipe {
@@ -1,7 +1,62 @@
1
1
  import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.js';
2
2
  import { createRecipe } from './create-recipe.js';
3
3
  const dataTableHeaderCellSlotRecipeDefaultVariants = {};
4
- const dataTableHeaderCellSlotRecipeCompoundVariants = [];
4
+ const dataTableHeaderCellSlotRecipeCompoundVariants = [
5
+ {
6
+ "size": "small",
7
+ "hasActions": false,
8
+ "css": {
9
+ "headerCell": {
10
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.condensed",
11
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.condensed",
12
+ "minHeight": "mfui.size.dimension.data-table-cell.height.condensed"
13
+ },
14
+ "sortButton": {
15
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.condensed",
16
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.condensed",
17
+ "minHeight": "mfui.size.dimension.data-table-cell.height.condensed"
18
+ }
19
+ }
20
+ },
21
+ {
22
+ "size": "small",
23
+ "hasActions": true,
24
+ "css": {
25
+ "container": {
26
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.condensed",
27
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.condensed",
28
+ "minHeight": "mfui.size.dimension.data-table-cell.height.condensed"
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "size": "medium",
34
+ "hasActions": false,
35
+ "css": {
36
+ "headerCell": {
37
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.comfort",
38
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.comfort",
39
+ "minHeight": "mfui.size.dimension.data-table-cell.height.comfort"
40
+ },
41
+ "sortButton": {
42
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.comfort",
43
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.comfort",
44
+ "minHeight": "mfui.size.dimension.data-table-cell.height.comfort"
45
+ }
46
+ }
47
+ },
48
+ {
49
+ "size": "medium",
50
+ "hasActions": true,
51
+ "css": {
52
+ "container": {
53
+ "paddingY": "mfui.size.padding.data-table-cell.vertical.comfort",
54
+ "paddingX": "mfui.size.padding.data-table-cell.horizontal.comfort",
55
+ "minHeight": "mfui.size.dimension.data-table-cell.height.comfort"
56
+ }
57
+ }
58
+ }
59
+ ];
5
60
  const dataTableHeaderCellSlotRecipeSlotNames = [
6
61
  [
7
62
  "root",
@@ -26,6 +81,14 @@ const dataTableHeaderCellSlotRecipeSlotNames = [
26
81
  [
27
82
  "unsortedIcon",
28
83
  "DataTableHeaderCell__unsortedIcon"
84
+ ],
85
+ [
86
+ "container",
87
+ "DataTableHeaderCell__container"
88
+ ],
89
+ [
90
+ "actionsContainer",
91
+ "DataTableHeaderCell__actionsContainer"
29
92
  ]
30
93
  ];
31
94
  const dataTableHeaderCellSlotRecipeSlotFns = /* @__PURE__ */ dataTableHeaderCellSlotRecipeSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, dataTableHeaderCellSlotRecipeDefaultVariants, getSlotCompoundVariant(dataTableHeaderCellSlotRecipeCompoundVariants, slotName))]);
@@ -34,6 +97,7 @@ const dataTableHeaderCellSlotRecipeFn = memo((props = {}) => {
34
97
  });
35
98
  const dataTableHeaderCellSlotRecipeVariantKeys = [
36
99
  "size",
100
+ "hasActions",
37
101
  "fixedColumn",
38
102
  "verticalBorder",
39
103
  "edgeFixedColumn",
@@ -52,6 +116,10 @@ export const dataTableHeaderCellSlotRecipe = /* @__PURE__ */ Object.assign(dataT
52
116
  "small",
53
117
  "medium"
54
118
  ],
119
+ "hasActions": [
120
+ "true",
121
+ "false"
122
+ ],
55
123
  "fixedColumn": [
56
124
  "true"
57
125
  ],
@@ -0,0 +1,33 @@
1
+ /* eslint-disable */
2
+ import type { ConditionalValue } from '../types/index';
3
+ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
+
5
+ interface DataTableSortButtonSlotRecipeVariant {
6
+ sorted: boolean
7
+ }
8
+
9
+ type DataTableSortButtonSlotRecipeVariantMap = {
10
+ [key in keyof DataTableSortButtonSlotRecipeVariant]: Array<DataTableSortButtonSlotRecipeVariant[key]>
11
+ }
12
+
13
+ type DataTableSortButtonSlotRecipeSlot = "root"
14
+
15
+ export type DataTableSortButtonSlotRecipeVariantProps = {
16
+ [key in keyof DataTableSortButtonSlotRecipeVariant]?: ConditionalValue<DataTableSortButtonSlotRecipeVariant[key]> | undefined
17
+ }
18
+
19
+ export interface DataTableSortButtonSlotRecipeRecipe {
20
+ __slot: DataTableSortButtonSlotRecipeSlot
21
+ __type: DataTableSortButtonSlotRecipeVariantProps
22
+ (props?: DataTableSortButtonSlotRecipeVariantProps): Pretty<Record<DataTableSortButtonSlotRecipeSlot, string>>
23
+ raw: (props?: DataTableSortButtonSlotRecipeVariantProps) => DataTableSortButtonSlotRecipeVariantProps
24
+ variantMap: DataTableSortButtonSlotRecipeVariantMap
25
+ variantKeys: Array<keyof DataTableSortButtonSlotRecipeVariant>
26
+ splitVariantProps<Props extends DataTableSortButtonSlotRecipeVariantProps>(props: Props): [DataTableSortButtonSlotRecipeVariantProps, Pretty<DistributiveOmit<Props, keyof DataTableSortButtonSlotRecipeVariantProps>>]
27
+ getVariantProps: (props?: DataTableSortButtonSlotRecipeVariantProps) => DataTableSortButtonSlotRecipeVariantProps
28
+ }
29
+
30
+ /**
31
+ * Slot class created for the MFUI DataTable.SortButton sub-component.
32
+ */
33
+ export declare const dataTableSortButtonSlotRecipe: DataTableSortButtonSlotRecipeRecipe
@@ -0,0 +1,35 @@
1
+ import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.js';
2
+ import { createRecipe } from './create-recipe.js';
3
+ const dataTableSortButtonSlotRecipeDefaultVariants = {};
4
+ const dataTableSortButtonSlotRecipeCompoundVariants = [];
5
+ const dataTableSortButtonSlotRecipeSlotNames = [
6
+ [
7
+ "root",
8
+ "DataTableSortButton__root"
9
+ ]
10
+ ];
11
+ const dataTableSortButtonSlotRecipeSlotFns = /* @__PURE__ */ dataTableSortButtonSlotRecipeSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, dataTableSortButtonSlotRecipeDefaultVariants, getSlotCompoundVariant(dataTableSortButtonSlotRecipeCompoundVariants, slotName))]);
12
+ const dataTableSortButtonSlotRecipeFn = memo((props = {}) => {
13
+ return Object.fromEntries(dataTableSortButtonSlotRecipeSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]));
14
+ });
15
+ const dataTableSortButtonSlotRecipeVariantKeys = [
16
+ "sorted"
17
+ ];
18
+ const getVariantProps = (variants) => ({ ...dataTableSortButtonSlotRecipeDefaultVariants, ...compact(variants) });
19
+ export const dataTableSortButtonSlotRecipe = /* @__PURE__ */ Object.assign(dataTableSortButtonSlotRecipeFn, {
20
+ __recipe__: false,
21
+ __name__: 'dataTableSortButtonSlotRecipe',
22
+ raw: (props) => props,
23
+ classNameMap: {},
24
+ variantKeys: dataTableSortButtonSlotRecipeVariantKeys,
25
+ variantMap: {
26
+ "sorted": [
27
+ "true",
28
+ "false"
29
+ ]
30
+ },
31
+ splitVariantProps(props) {
32
+ return splitProps(props, dataTableSortButtonSlotRecipeVariantKeys);
33
+ },
34
+ getVariantProps
35
+ });
@@ -0,0 +1,36 @@
1
+ /* eslint-disable */
2
+ import type { ConditionalValue } from '../types/index';
3
+ import type { DistributiveOmit, Pretty } from '../types/system-types';
4
+
5
+ interface DeterminateProgressIndicatorSlotRecipeVariant {
6
+ /**
7
+ * @default "right"
8
+ */
9
+ valueTextPosition: "right" | "top"
10
+ }
11
+
12
+ type DeterminateProgressIndicatorSlotRecipeVariantMap = {
13
+ [key in keyof DeterminateProgressIndicatorSlotRecipeVariant]: Array<DeterminateProgressIndicatorSlotRecipeVariant[key]>
14
+ }
15
+
16
+ type DeterminateProgressIndicatorSlotRecipeSlot = "root" | "progressIndicator" | "track" | "progress" | "valueText" | "value" | "unit"
17
+
18
+ export type DeterminateProgressIndicatorSlotRecipeVariantProps = {
19
+ [key in keyof DeterminateProgressIndicatorSlotRecipeVariant]?: ConditionalValue<DeterminateProgressIndicatorSlotRecipeVariant[key]> | undefined
20
+ }
21
+
22
+ export interface DeterminateProgressIndicatorSlotRecipeRecipe {
23
+ __slot: DeterminateProgressIndicatorSlotRecipeSlot
24
+ __type: DeterminateProgressIndicatorSlotRecipeVariantProps
25
+ (props?: DeterminateProgressIndicatorSlotRecipeVariantProps): Pretty<Record<DeterminateProgressIndicatorSlotRecipeSlot, string>>
26
+ raw: (props?: DeterminateProgressIndicatorSlotRecipeVariantProps) => DeterminateProgressIndicatorSlotRecipeVariantProps
27
+ variantMap: DeterminateProgressIndicatorSlotRecipeVariantMap
28
+ variantKeys: Array<keyof DeterminateProgressIndicatorSlotRecipeVariant>
29
+ splitVariantProps<Props extends DeterminateProgressIndicatorSlotRecipeVariantProps>(props: Props): [DeterminateProgressIndicatorSlotRecipeVariantProps, Pretty<DistributiveOmit<Props, keyof DeterminateProgressIndicatorSlotRecipeVariantProps>>]
30
+ getVariantProps: (props?: DeterminateProgressIndicatorSlotRecipeVariantProps) => DeterminateProgressIndicatorSlotRecipeVariantProps
31
+ }
32
+
33
+ /**
34
+ * Slot class created for the MFUI DeterminateProgressIndicator component.
35
+ */
36
+ export declare const determinateProgressIndicatorSlotRecipe: DeterminateProgressIndicatorSlotRecipeRecipe
@@ -0,0 +1,61 @@
1
+ import { compact, getSlotCompoundVariant, memo, splitProps } from '../helpers.js';
2
+ import { createRecipe } from './create-recipe.js';
3
+ const determinateProgressIndicatorSlotRecipeDefaultVariants = {
4
+ "valueTextPosition": "right"
5
+ };
6
+ const determinateProgressIndicatorSlotRecipeCompoundVariants = [];
7
+ const determinateProgressIndicatorSlotRecipeSlotNames = [
8
+ [
9
+ "root",
10
+ "DeterminateProgressIndicator__root"
11
+ ],
12
+ [
13
+ "progressIndicator",
14
+ "DeterminateProgressIndicator__progressIndicator"
15
+ ],
16
+ [
17
+ "track",
18
+ "DeterminateProgressIndicator__track"
19
+ ],
20
+ [
21
+ "progress",
22
+ "DeterminateProgressIndicator__progress"
23
+ ],
24
+ [
25
+ "valueText",
26
+ "DeterminateProgressIndicator__valueText"
27
+ ],
28
+ [
29
+ "value",
30
+ "DeterminateProgressIndicator__value"
31
+ ],
32
+ [
33
+ "unit",
34
+ "DeterminateProgressIndicator__unit"
35
+ ]
36
+ ];
37
+ const determinateProgressIndicatorSlotRecipeSlotFns = /* @__PURE__ */ determinateProgressIndicatorSlotRecipeSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, determinateProgressIndicatorSlotRecipeDefaultVariants, getSlotCompoundVariant(determinateProgressIndicatorSlotRecipeCompoundVariants, slotName))]);
38
+ const determinateProgressIndicatorSlotRecipeFn = memo((props = {}) => {
39
+ return Object.fromEntries(determinateProgressIndicatorSlotRecipeSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]));
40
+ });
41
+ const determinateProgressIndicatorSlotRecipeVariantKeys = [
42
+ "valueTextPosition"
43
+ ];
44
+ const getVariantProps = (variants) => ({ ...determinateProgressIndicatorSlotRecipeDefaultVariants, ...compact(variants) });
45
+ export const determinateProgressIndicatorSlotRecipe = /* @__PURE__ */ Object.assign(determinateProgressIndicatorSlotRecipeFn, {
46
+ __recipe__: false,
47
+ __name__: 'determinateProgressIndicatorSlotRecipe',
48
+ raw: (props) => props,
49
+ classNameMap: {},
50
+ variantKeys: determinateProgressIndicatorSlotRecipeVariantKeys,
51
+ variantMap: {
52
+ "valueTextPosition": [
53
+ "right",
54
+ "top"
55
+ ]
56
+ },
57
+ splitVariantProps(props) {
58
+ return splitProps(props, determinateProgressIndicatorSlotRecipeVariantKeys);
59
+ },
60
+ getVariantProps
61
+ });
@@ -8,6 +8,7 @@ interface IconButtonSlotRecipeVariant {
8
8
  */
9
9
  size: "small" | "default"
10
10
  outlined: boolean
11
+ destructive: boolean
11
12
  }
12
13
 
13
14
  type IconButtonSlotRecipeVariantMap = {
@@ -17,7 +18,7 @@ type IconButtonSlotRecipeVariantMap = {
17
18
  type IconButtonSlotRecipeSlot = "root"
18
19
 
19
20
  export type IconButtonSlotRecipeVariantProps = {
20
- [key in keyof IconButtonSlotRecipeVariant]?: ConditionalValue<IconButtonSlotRecipeVariant[key]> | undefined
21
+ [key in keyof IconButtonSlotRecipeVariant]?: IconButtonSlotRecipeVariant[key] | undefined
21
22
  }
22
23
 
23
24
  export interface IconButtonSlotRecipeRecipe {
@@ -3,7 +3,33 @@ import { createRecipe } from './create-recipe.js';
3
3
  const iconButtonSlotRecipeDefaultVariants = {
4
4
  "size": "default"
5
5
  };
6
- const iconButtonSlotRecipeCompoundVariants = [];
6
+ const iconButtonSlotRecipeCompoundVariants = [
7
+ {
8
+ "destructive": true,
9
+ "outlined": true,
10
+ "css": {
11
+ "root": {
12
+ "borderColor": "mfui.color.signal-red.border.none",
13
+ "_hover": {
14
+ "_notDisabled": {
15
+ "borderColor": "mfui.color.signal-red.border.hovered"
16
+ }
17
+ },
18
+ "_focusVisible": {
19
+ "borderColor": "mfui.color.signal-red.border.hovered"
20
+ },
21
+ "_active": {
22
+ "_notDisabled": {
23
+ "borderColor": "mfui.color.signal-red.border.pressed"
24
+ }
25
+ },
26
+ "_disabled": {
27
+ "borderColor": "mfui.color.disabled.border"
28
+ }
29
+ }
30
+ }
31
+ }
32
+ ];
7
33
  const iconButtonSlotRecipeSlotNames = [
8
34
  [
9
35
  "root",
@@ -16,7 +42,8 @@ const iconButtonSlotRecipeFn = memo((props = {}) => {
16
42
  });
17
43
  const iconButtonSlotRecipeVariantKeys = [
18
44
  "size",
19
- "outlined"
45
+ "outlined",
46
+ "destructive"
20
47
  ];
21
48
  const getVariantProps = (variants) => ({ ...iconButtonSlotRecipeDefaultVariants, ...compact(variants) });
22
49
  export const iconButtonSlotRecipe = /* @__PURE__ */ Object.assign(iconButtonSlotRecipeFn, {
@@ -32,6 +59,10 @@ export const iconButtonSlotRecipe = /* @__PURE__ */ Object.assign(iconButtonSlot
32
59
  ],
33
60
  "outlined": [
34
61
  "true"
62
+ ],
63
+ "destructive": [
64
+ "true",
65
+ "false"
35
66
  ]
36
67
  },
37
68
  splitVariantProps(props) {
@@ -48,11 +48,14 @@ export * from './data-table-body-slot-recipe';
48
48
  export * from './data-table-cell-slot-recipe';
49
49
  export * from './data-table-slot-recipe';
50
50
  export * from './data-table-header-cell-slot-recipe';
51
+ export * from './data-table-filter-button-slot-recipe';
52
+ export * from './data-table-sort-button-slot-recipe';
51
53
  export * from './data-table-header-row-slot-recipe';
52
54
  export * from './data-table-header-slot-recipe';
53
55
  export * from './data-table-row-slot-recipe';
54
56
  export * from './sub-navigation-slot-recipe';
55
57
  export * from './progress-indicator-slot-recipe';
58
+ export * from './determinate-progress-indicator-slot-recipe';
56
59
  export * from './stack-slot-recipe';
57
60
  export * from './stepper-slot-recipe';
58
61
  export * from './multiple-select-box-slot-recipe';
@@ -47,11 +47,14 @@ export * from './data-table-body-slot-recipe.js';
47
47
  export * from './data-table-cell-slot-recipe.js';
48
48
  export * from './data-table-slot-recipe.js';
49
49
  export * from './data-table-header-cell-slot-recipe.js';
50
+ export * from './data-table-filter-button-slot-recipe.js';
51
+ export * from './data-table-sort-button-slot-recipe.js';
50
52
  export * from './data-table-header-row-slot-recipe.js';
51
53
  export * from './data-table-header-slot-recipe.js';
52
54
  export * from './data-table-row-slot-recipe.js';
53
55
  export * from './sub-navigation-slot-recipe.js';
54
56
  export * from './progress-indicator-slot-recipe.js';
57
+ export * from './determinate-progress-indicator-slot-recipe.js';
55
58
  export * from './stack-slot-recipe.js';
56
59
  export * from './stepper-slot-recipe.js';
57
60
  export * from './multiple-select-box-slot-recipe.js';
@@ -15,6 +15,10 @@ disabled: boolean
15
15
  * @default false
16
16
  */
17
17
  invalid: boolean
18
+ /**
19
+ * @default false
20
+ */
21
+ caution: boolean
18
22
  }
19
23
 
20
24
  type TextBoxSlotRecipeVariantMap = {