@bethinkpl/design-system 22.0.4 → 22.1.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 (75) hide show
  1. package/.eslintrc.js +1 -10
  2. package/dist/design-system.umd.js +282 -206
  3. package/dist/design-system.umd.js.map +1 -1
  4. package/dist/lib/js/components/Banner/Banner.vue.d.ts +8 -6
  5. package/dist/lib/js/components/Buttons/Button/Button.vue.d.ts +8 -6
  6. package/dist/lib/js/components/Buttons/IconButton/IconButton.vue.d.ts +8 -6
  7. package/dist/lib/js/components/Cards/CardExpandable/CardExpandable.vue.d.ts +8 -6
  8. package/dist/lib/js/components/Chip/Chip.vue.d.ts +8 -6
  9. package/dist/lib/js/components/Drawer/DrawerContent/DrawerContent.vue.d.ts +4 -3
  10. package/dist/lib/js/components/Drawer/DrawerDivider/DrawerDivider.vue.d.ts +20 -3
  11. package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +287 -3
  12. package/dist/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue.d.ts +233 -3
  13. package/dist/lib/js/components/Drawer/DrawerListItemGroup/DrawerListItemGroup.vue.d.ts +4 -3
  14. package/dist/lib/js/components/Drawer/DrawerSection/DrawerSection.vue.d.ts +292 -3
  15. package/dist/lib/js/components/Drawer/DrawerTile/DrawerTile.vue.d.ts +63 -3
  16. package/dist/lib/js/components/Form/Checkbox/Checkbox.vue.d.ts +8 -6
  17. package/dist/lib/js/components/Form/RadioButton/RadioButton.vue.d.ts +8 -6
  18. package/dist/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue.d.ts +8 -6
  19. package/dist/lib/js/components/Headers/SectionHeader/SectionHeader.vue.d.ts +8 -6
  20. package/dist/lib/js/components/Icons/Icon/Icon.consts.d.ts +8 -7
  21. package/dist/lib/js/components/Modal/Modal.vue.d.ts +8 -6
  22. package/dist/lib/js/components/Modals/Modal/Modal.vue.d.ts +8 -6
  23. package/dist/lib/js/components/Outline/OutlineItem/OutlineItem.vue.d.ts +8 -6
  24. package/dist/lib/js/components/Pagination/Pagination.vue.d.ts +8 -6
  25. package/dist/lib/js/components/ProgressBar/ProgressBar.vue.d.ts +8 -6
  26. package/dist/lib/js/components/ProgressDonutChart/ProgressDonutChart.vue.d.ts +8 -6
  27. package/dist/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue.d.ts +1 -1
  28. package/dist/lib/js/components/RichList/RichListItem/RichListItem.vue.d.ts +9 -7
  29. package/dist/lib/js/components/SelectList/SelectList.vue.d.ts +4 -3
  30. package/dist/lib/js/components/SelectList/SelectListItem/SelectListItem.vue.d.ts +263 -3
  31. package/dist/lib/js/components/SelectList/SelectListItemDivider/SelectListItemDivider.vue.d.ts +8 -3
  32. package/dist/lib/js/components/SelectList/SelectListItemTile/SelectListItemTile.vue.d.ts +62 -3
  33. package/dist/lib/js/components/SelectList/SelectListItemToggle/SelectListItemToggle.vue.d.ts +58 -3
  34. package/dist/lib/js/components/SelectList/SelectListSectionTitle/SelectListSectionTitle.vue.d.ts +14 -3
  35. package/dist/lib/js/components/SelectionTile/SelectionTile.vue.d.ts +10 -8
  36. package/dist/lib/js/components/Statuses/AccessStatus/AccessStatus.vue.d.ts +8 -6
  37. package/dist/lib/js/components/Statuses/BlockadeStatus/BlockadeStatus.vue.d.ts +8 -6
  38. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionOpenEnded/SurveyQuestionOpenEnded.vue.d.ts +8 -6
  39. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionScale/SurveyQuestionScale.vue.d.ts +8 -6
  40. package/dist/lib/js/components/Switch/Switch.vue.d.ts +10 -8
  41. package/dist/lib/js/components/Tile/Tile.sb.shared.d.ts +8 -6
  42. package/dist/lib/js/components/Tile/Tile.vue.d.ts +8 -6
  43. package/dist/lib/js/components/Toast/Toast.consts.d.ts +21 -0
  44. package/dist/lib/js/components/Toast/Toast.stories.d.ts +5 -0
  45. package/dist/lib/js/components/Toggles/ToggleButton/ToggleButton.vue.d.ts +11 -9
  46. package/dist/lib/js/icons/fontawesome.d.ts +2 -0
  47. package/dist/lib/js/styles/Borders/BorderSizes.stories.d.ts +4 -0
  48. package/docs/54.c8325f44.iframe.bundle.js +2 -0
  49. package/docs/iframe.html +1 -1
  50. package/docs/main.8dfbddcf.iframe.bundle.js +1 -0
  51. package/docs/project.json +1 -1
  52. package/lib/js/components/Cards/Card/Card.vue +3 -3
  53. package/lib/js/components/Drawer/DrawerSection/DrawerSection.vue +2 -2
  54. package/lib/js/components/Form/Checkbox/Checkbox.vue +2 -2
  55. package/lib/js/components/Form/RadioButton/RadioButton.vue +2 -2
  56. package/lib/js/components/Form/SelectionControl/SelectionControl.sb.shared.ts +1 -1
  57. package/lib/js/components/Form/SelectionControl/SelectionControl.vue +2 -2
  58. package/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue +1 -1
  59. package/lib/js/components/PopOver/PopOver.vue +42 -44
  60. package/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.stories.ts +2 -2
  61. package/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue +2 -2
  62. package/lib/js/components/RichList/RichListItem/RichListItem.stories.ts +2 -2
  63. package/lib/js/components/RichList/RichListItem/RichListItem.vue +2 -2
  64. package/lib/js/components/SelectionTile/SelectionTile.stories.ts +1 -1
  65. package/lib/js/components/SelectionTile/SelectionTile.vue +3 -3
  66. package/lib/js/components/Toast/Toast.consts.ts +27 -0
  67. package/lib/js/components/Toast/Toast.stories.ts +109 -0
  68. package/lib/js/components/Toast/Toast.vue +283 -0
  69. package/lib/js/icons/fontawesome.ts +4 -0
  70. package/lib/js/styles/Borders/BorderSizes.stories.ts +44 -0
  71. package/lib/js/typings.d.ts +4 -7
  72. package/package.json +1 -1
  73. package/docs/405.28e06a67.iframe.bundle.js +0 -2
  74. package/docs/main.c3efc488.iframe.bundle.js +0 -1
  75. /package/docs/{405.28e06a67.iframe.bundle.js.LICENSE.txt → 54.c8325f44.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -18,12 +18,12 @@ declare const _default: {
18
18
  validator(value: SwitchRadius): boolean;
19
19
  };
20
20
  iconLeft: {
21
- type: PropType<IconItem>;
21
+ type: PropType<any>;
22
22
  default: null;
23
23
  validator(icon: IconItem): boolean;
24
24
  };
25
25
  iconRight: {
26
- type: PropType<IconItem>;
26
+ type: PropType<any>;
27
27
  default: null;
28
28
  validator(icon: IconItem): boolean;
29
29
  };
@@ -49,12 +49,12 @@ declare const _default: {
49
49
  emits: string[];
50
50
  data(): {
51
51
  ICONS: Readonly<{
52
- readonly HEAD_WITH_QUESTION_MARK: import("vue").CompatVue;
53
- readonly RIBBON: import("vue").CompatVue;
54
- readonly SLIDERS_SEARCH: import("vue").CompatVue;
55
- readonly COMMENTS_CHECK: import("vue").CompatVue;
56
- readonly ANSWERS: import("vue").CompatVue;
57
- readonly HIDE_ANSWERS: import("vue").CompatVue;
52
+ readonly HEAD_WITH_QUESTION_MARK: VueConstructor<Vue>;
53
+ readonly RIBBON: VueConstructor<Vue>;
54
+ readonly SLIDERS_SEARCH: VueConstructor<Vue>;
55
+ readonly COMMENTS_CHECK: VueConstructor<Vue>;
56
+ readonly ANSWERS: VueConstructor<Vue>;
57
+ readonly HIDE_ANSWERS: VueConstructor<Vue>;
58
58
  readonly FA_ADDRESS_CARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
59
59
  readonly FA_ANGLE_DOWN: import("@fortawesome/fontawesome-common-types").IconDefinition;
60
60
  readonly FA_ANGLE_LEFT: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -170,6 +170,7 @@ declare const _default: {
170
170
  readonly FA_HOURGLASS_END: import("@fortawesome/fontawesome-common-types").IconDefinition;
171
171
  readonly FA_HOURGLASS_START: import("@fortawesome/fontawesome-common-types").IconDefinition;
172
172
  readonly FA_HOUSE: import("@fortawesome/fontawesome-common-types").IconDefinition;
173
+ readonly FA_IMAGES_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
173
174
  readonly FA_INFO_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
174
175
  readonly FA_KEY: import("@fortawesome/fontawesome-common-types").IconDefinition;
175
176
  readonly FA_KEYBOARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -204,6 +205,7 @@ declare const _default: {
204
205
  readonly FA_SHARE: import("@fortawesome/fontawesome-common-types").IconDefinition;
205
206
  readonly FA_SHARE_NODES: import("@fortawesome/fontawesome-common-types").IconDefinition;
206
207
  readonly FA_SHIELD_HALVED: import("@fortawesome/fontawesome-common-types").IconDefinition;
208
+ readonly FA_SIDEBAR: import("@fortawesome/fontawesome-common-types").IconDefinition;
207
209
  readonly FA_SIGNAL: import("@fortawesome/fontawesome-common-types").IconDefinition;
208
210
  readonly FA_SITEMAP: import("@fortawesome/fontawesome-common-types").IconDefinition;
209
211
  readonly FA_SITEMAP_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -2,12 +2,12 @@ import { Args, ArgTypes } from '@storybook/vue3';
2
2
  export declare const template: (componentTag: string) => string;
3
3
  export declare const data: () => {
4
4
  ICONS: Readonly<{
5
- readonly HEAD_WITH_QUESTION_MARK: import("vue").CompatVue;
6
- readonly RIBBON: import("vue").CompatVue;
7
- readonly SLIDERS_SEARCH: import("vue").CompatVue;
8
- readonly COMMENTS_CHECK: import("vue").CompatVue;
9
- readonly ANSWERS: import("vue").CompatVue;
10
- readonly HIDE_ANSWERS: import("vue").CompatVue;
5
+ readonly HEAD_WITH_QUESTION_MARK: VueConstructor<Vue>;
6
+ readonly RIBBON: VueConstructor<Vue>;
7
+ readonly SLIDERS_SEARCH: VueConstructor<Vue>;
8
+ readonly COMMENTS_CHECK: VueConstructor<Vue>;
9
+ readonly ANSWERS: VueConstructor<Vue>;
10
+ readonly HIDE_ANSWERS: VueConstructor<Vue>;
11
11
  readonly FA_ADDRESS_CARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
12
12
  readonly FA_ANGLE_DOWN: import("@fortawesome/fontawesome-common-types").IconDefinition;
13
13
  readonly FA_ANGLE_LEFT: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -123,6 +123,7 @@ export declare const data: () => {
123
123
  readonly FA_HOURGLASS_END: import("@fortawesome/fontawesome-common-types").IconDefinition;
124
124
  readonly FA_HOURGLASS_START: import("@fortawesome/fontawesome-common-types").IconDefinition;
125
125
  readonly FA_HOUSE: import("@fortawesome/fontawesome-common-types").IconDefinition;
126
+ readonly FA_IMAGES_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
126
127
  readonly FA_INFO_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
127
128
  readonly FA_KEY: import("@fortawesome/fontawesome-common-types").IconDefinition;
128
129
  readonly FA_KEYBOARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -157,6 +158,7 @@ export declare const data: () => {
157
158
  readonly FA_SHARE: import("@fortawesome/fontawesome-common-types").IconDefinition;
158
159
  readonly FA_SHARE_NODES: import("@fortawesome/fontawesome-common-types").IconDefinition;
159
160
  readonly FA_SHIELD_HALVED: import("@fortawesome/fontawesome-common-types").IconDefinition;
161
+ readonly FA_SIDEBAR: import("@fortawesome/fontawesome-common-types").IconDefinition;
160
162
  readonly FA_SIGNAL: import("@fortawesome/fontawesome-common-types").IconDefinition;
161
163
  readonly FA_SITEMAP: import("@fortawesome/fontawesome-common-types").IconDefinition;
162
164
  readonly FA_SITEMAP_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -60,12 +60,12 @@ declare const _default: {
60
60
  };
61
61
  data(): {
62
62
  ICONS: Readonly<{
63
- readonly HEAD_WITH_QUESTION_MARK: import("vue").CompatVue;
64
- readonly RIBBON: import("vue").CompatVue;
65
- readonly SLIDERS_SEARCH: import("vue").CompatVue;
66
- readonly COMMENTS_CHECK: import("vue").CompatVue;
67
- readonly ANSWERS: import("vue").CompatVue;
68
- readonly HIDE_ANSWERS: import("vue").CompatVue;
63
+ readonly HEAD_WITH_QUESTION_MARK: VueConstructor<Vue>;
64
+ readonly RIBBON: VueConstructor<Vue>;
65
+ readonly SLIDERS_SEARCH: VueConstructor<Vue>;
66
+ readonly COMMENTS_CHECK: VueConstructor<Vue>;
67
+ readonly ANSWERS: VueConstructor<Vue>;
68
+ readonly HIDE_ANSWERS: VueConstructor<Vue>;
69
69
  readonly FA_ADDRESS_CARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
70
70
  readonly FA_ANGLE_DOWN: import("@fortawesome/fontawesome-common-types").IconDefinition;
71
71
  readonly FA_ANGLE_LEFT: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -181,6 +181,7 @@ declare const _default: {
181
181
  readonly FA_HOURGLASS_END: import("@fortawesome/fontawesome-common-types").IconDefinition;
182
182
  readonly FA_HOURGLASS_START: import("@fortawesome/fontawesome-common-types").IconDefinition;
183
183
  readonly FA_HOUSE: import("@fortawesome/fontawesome-common-types").IconDefinition;
184
+ readonly FA_IMAGES_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
184
185
  readonly FA_INFO_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
185
186
  readonly FA_KEY: import("@fortawesome/fontawesome-common-types").IconDefinition;
186
187
  readonly FA_KEYBOARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -215,6 +216,7 @@ declare const _default: {
215
216
  readonly FA_SHARE: import("@fortawesome/fontawesome-common-types").IconDefinition;
216
217
  readonly FA_SHARE_NODES: import("@fortawesome/fontawesome-common-types").IconDefinition;
217
218
  readonly FA_SHIELD_HALVED: import("@fortawesome/fontawesome-common-types").IconDefinition;
219
+ readonly FA_SIDEBAR: import("@fortawesome/fontawesome-common-types").IconDefinition;
218
220
  readonly FA_SIGNAL: import("@fortawesome/fontawesome-common-types").IconDefinition;
219
221
  readonly FA_SITEMAP: import("@fortawesome/fontawesome-common-types").IconDefinition;
220
222
  readonly FA_SITEMAP_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -0,0 +1,21 @@
1
+ import { Value } from '../../utils/type.utils';
2
+ export declare const TOAST_SIZES: {
3
+ readonly SMALL: "small";
4
+ readonly MEDIUM: "medium";
5
+ };
6
+ export declare type ToastSizes = Value<typeof TOAST_SIZES>;
7
+ export declare const TOAST_COLORS: {
8
+ NEUTRAL_HEAVY: string;
9
+ NEUTRAL_STRONG: string;
10
+ SUCCESS: string;
11
+ WARNING: string;
12
+ DANGER: string;
13
+ INFO: string;
14
+ };
15
+ export declare type ToastColors = Value<typeof TOAST_COLORS>;
16
+ export declare const TOAST_POSITIONS: {
17
+ LEFT: string;
18
+ CENTER: string;
19
+ RIGHT: string;
20
+ };
21
+ export declare type ToastPositions = Value<typeof TOAST_POSITIONS>;
@@ -0,0 +1,5 @@
1
+ import { Meta, StoryFn } from '@storybook/vue3';
2
+ import DsToast from './Toast.vue';
3
+ declare const _default: Meta<typeof DsToast>;
4
+ export default _default;
5
+ export declare const Interactive: StoryFn<typeof DsToast>;
@@ -1,7 +1,7 @@
1
1
  import { Value } from '../../../utils/type.utils';
2
2
  import { PropType } from 'vue';
3
3
  import { TOGGLE_BUTTON_COLORS, TOGGLE_BUTTON_RADIUSES, TOGGLE_BUTTON_SIZES, TOGGLE_BUTTON_STATES, ToggleButtonColor, ToggleButtonLabelSize, ToggleButtonRadius, ToggleButtonSize, ToggleButtonState } from './ToggleButton.consts';
4
- import { IconItem, IconSize } from '../../Icons/Icon';
4
+ import { IconSize } from '../../Icons/Icon';
5
5
  import DsIcon from '../../Icons/Icon/Icon.vue';
6
6
  declare const _default: {
7
7
  name: string;
@@ -19,12 +19,12 @@ declare const _default: {
19
19
  default: boolean;
20
20
  };
21
21
  iconLeft: {
22
- type: PropType<IconItem>;
22
+ type: PropType<any>;
23
23
  default: null;
24
24
  validator(icon: any): boolean;
25
25
  };
26
26
  iconRight: {
27
- type: PropType<IconItem>;
27
+ type: PropType<any>;
28
28
  default: null;
29
29
  validator(icon: any): boolean;
30
30
  };
@@ -67,12 +67,12 @@ declare const _default: {
67
67
  emits: string[];
68
68
  data(): {
69
69
  ICONS: Readonly<{
70
- readonly HEAD_WITH_QUESTION_MARK: import("vue").CompatVue;
71
- readonly RIBBON: import("vue").CompatVue;
72
- readonly SLIDERS_SEARCH: import("vue").CompatVue;
73
- readonly COMMENTS_CHECK: import("vue").CompatVue;
74
- readonly ANSWERS: import("vue").CompatVue;
75
- readonly HIDE_ANSWERS: import("vue").CompatVue;
70
+ readonly HEAD_WITH_QUESTION_MARK: VueConstructor<Vue>;
71
+ readonly RIBBON: VueConstructor<Vue>;
72
+ readonly SLIDERS_SEARCH: VueConstructor<Vue>;
73
+ readonly COMMENTS_CHECK: VueConstructor<Vue>;
74
+ readonly ANSWERS: VueConstructor<Vue>;
75
+ readonly HIDE_ANSWERS: VueConstructor<Vue>;
76
76
  readonly FA_ADDRESS_CARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
77
77
  readonly FA_ANGLE_DOWN: import("@fortawesome/fontawesome-common-types").IconDefinition;
78
78
  readonly FA_ANGLE_LEFT: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -188,6 +188,7 @@ declare const _default: {
188
188
  readonly FA_HOURGLASS_END: import("@fortawesome/fontawesome-common-types").IconDefinition;
189
189
  readonly FA_HOURGLASS_START: import("@fortawesome/fontawesome-common-types").IconDefinition;
190
190
  readonly FA_HOUSE: import("@fortawesome/fontawesome-common-types").IconDefinition;
191
+ readonly FA_IMAGES_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
191
192
  readonly FA_INFO_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
192
193
  readonly FA_KEY: import("@fortawesome/fontawesome-common-types").IconDefinition;
193
194
  readonly FA_KEYBOARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -222,6 +223,7 @@ declare const _default: {
222
223
  readonly FA_SHARE: import("@fortawesome/fontawesome-common-types").IconDefinition;
223
224
  readonly FA_SHARE_NODES: import("@fortawesome/fontawesome-common-types").IconDefinition;
224
225
  readonly FA_SHIELD_HALVED: import("@fortawesome/fontawesome-common-types").IconDefinition;
226
+ readonly FA_SIDEBAR: import("@fortawesome/fontawesome-common-types").IconDefinition;
225
227
  readonly FA_SIGNAL: import("@fortawesome/fontawesome-common-types").IconDefinition;
226
228
  readonly FA_SITEMAP: import("@fortawesome/fontawesome-common-types").IconDefinition;
227
229
  readonly FA_SITEMAP_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -114,6 +114,7 @@ export declare const FONTAWESOME_ICONS: {
114
114
  readonly FA_HOURGLASS_END: import("@fortawesome/fontawesome-common-types").IconDefinition;
115
115
  readonly FA_HOURGLASS_START: import("@fortawesome/fontawesome-common-types").IconDefinition;
116
116
  readonly FA_HOUSE: import("@fortawesome/fontawesome-common-types").IconDefinition;
117
+ readonly FA_IMAGES_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
117
118
  readonly FA_INFO_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
118
119
  readonly FA_KEY: import("@fortawesome/fontawesome-common-types").IconDefinition;
119
120
  readonly FA_KEYBOARD: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -148,6 +149,7 @@ export declare const FONTAWESOME_ICONS: {
148
149
  readonly FA_SHARE: import("@fortawesome/fontawesome-common-types").IconDefinition;
149
150
  readonly FA_SHARE_NODES: import("@fortawesome/fontawesome-common-types").IconDefinition;
150
151
  readonly FA_SHIELD_HALVED: import("@fortawesome/fontawesome-common-types").IconDefinition;
152
+ readonly FA_SIDEBAR: import("@fortawesome/fontawesome-common-types").IconDefinition;
151
153
  readonly FA_SIGNAL: import("@fortawesome/fontawesome-common-types").IconDefinition;
152
154
  readonly FA_SITEMAP: import("@fortawesome/fontawesome-common-types").IconDefinition;
153
155
  readonly FA_SITEMAP_SOLID: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -0,0 +1,4 @@
1
+ import { Args, Meta, StoryFn } from '@storybook/vue3';
2
+ declare const _default: Meta<Args>;
3
+ export default _default;
4
+ export declare const Static: StoryFn<Args>;