@canonical/react-components 0.59.0 → 0.60.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.
- package/dist/components/Accordion/Accordion.d.ts +5 -0
- package/dist/components/Accordion/Accordion.js +6 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +18 -0
- package/dist/components/Accordion/Accordion.stories.js +117 -0
- package/dist/components/ActionButton/ActionButton.d.ts +7 -0
- package/dist/components/ActionButton/ActionButton.js +7 -0
- package/dist/components/ActionButton/ActionButton.stories.d.ts +7 -0
- package/dist/components/ActionButton/ActionButton.stories.js +36 -0
- package/dist/components/ApplicationLayout/ApplicationLayout.d.ts +3 -3
- package/dist/components/ApplicationLayout/ApplicationLayout.js +4 -4
- package/dist/components/ApplicationLayout/ApplicationLayout.stories.d.ts +5 -0
- package/dist/components/ApplicationLayout/ApplicationLayout.stories.js +16 -2
- package/dist/components/ArticlePagination/ArticlePagination.d.ts +5 -0
- package/dist/components/ArticlePagination/ArticlePagination.js +5 -0
- package/dist/components/ArticlePagination/ArticlePagination.stories.d.ts +6 -0
- package/dist/components/ArticlePagination/ArticlePagination.stories.js +22 -0
- package/dist/components/Badge/Badge.d.ts +5 -0
- package/dist/components/Badge/Badge.js +6 -0
- package/dist/components/Badge/Badge.stories.d.ts +15 -0
- package/dist/components/Badge/Badge.stories.js +62 -0
- package/dist/components/Button/Button.d.ts +3 -1
- package/dist/components/Button/Button.js +3 -1
- package/dist/components/Button/Button.stories.d.ts +32 -0
- package/dist/components/Button/Button.stories.js +180 -0
- package/dist/components/Card/Card.stories.js +0 -1
- package/dist/components/CheckboxInput/CheckboxInput.d.ts +5 -0
- package/dist/components/CheckboxInput/CheckboxInput.js +5 -0
- package/dist/components/CheckboxInput/CheckboxInput.stories.d.ts +11 -0
- package/dist/components/CheckboxInput/CheckboxInput.stories.js +84 -0
- package/dist/components/Chip/Chip.d.ts +5 -0
- package/dist/components/Chip/Chip.js +5 -0
- package/dist/components/Chip/Chip.stories.d.ts +9 -0
- package/dist/components/Chip/Chip.stories.js +45 -0
- package/dist/components/CodeSnippet/CodeSnippet.d.ts +7 -0
- package/dist/components/CodeSnippet/CodeSnippet.js +7 -0
- package/dist/components/CodeSnippet/CodeSnippet.stories.d.ts +45 -0
- package/dist/components/CodeSnippet/CodeSnippet.stories.js +279 -0
- package/dist/components/Col/Col.d.ts +5 -0
- package/dist/components/Col/Col.js +5 -0
- package/dist/components/Col/Col.stories.d.ts +11 -0
- package/dist/components/Col/Col.stories.js +154 -0
- package/dist/components/ConfirmationButton/ConfirmationButton.d.ts +3 -0
- package/dist/components/ConfirmationButton/ConfirmationButton.js +13 -1
- package/dist/components/ConfirmationButton/ConfirmationButton.stories.d.ts +9 -0
- package/dist/components/ConfirmationButton/ConfirmationButton.stories.js +108 -0
- package/dist/components/ConfirmationModal/ConfirmationModal.d.ts +16 -4
- package/dist/components/ConfirmationModal/ConfirmationModal.js +8 -3
- package/dist/components/ConfirmationModal/ConfirmationModal.stories.d.ts +18 -0
- package/dist/components/ConfirmationModal/ConfirmationModal.stories.js +135 -0
- package/dist/components/ContextualMenu/ContextualMenu.d.ts +3 -20
- package/dist/components/ContextualMenu/ContextualMenu.js +3 -20
- package/dist/components/ContextualMenu/ContextualMenu.stories.d.ts +13 -0
- package/dist/components/ContextualMenu/ContextualMenu.stories.js +107 -0
- package/dist/components/EmptyState/EmptyState.d.ts +3 -0
- package/dist/components/EmptyState/EmptyState.js +3 -0
- package/dist/components/EmptyState/EmptyState.stories.d.ts +7 -0
- package/dist/components/EmptyState/EmptyState.stories.js +49 -0
- package/dist/components/Form/Form.d.ts +5 -0
- package/dist/components/Form/Form.js +5 -0
- package/dist/components/Form/Form.stories.d.ts +12 -0
- package/dist/components/Form/Form.stories.js +179 -0
- package/dist/components/FormikField/FormikField.stories.js +0 -1
- package/dist/components/Icon/Icon.d.ts +3 -1
- package/dist/components/Icon/Icon.js +3 -1
- package/dist/components/Icon/Icon.stories.d.ts +16 -0
- package/dist/components/Icon/Icon.stories.js +49 -0
- package/dist/components/Input/Input.d.ts +5 -0
- package/dist/components/Input/Input.js +5 -0
- package/dist/components/Input/Input.stories.d.ts +14 -0
- package/dist/components/Input/Input.stories.js +148 -0
- package/dist/components/Link/Link.d.ts +5 -0
- package/dist/components/Link/Link.js +5 -0
- package/dist/components/Link/Link.stories.d.ts +9 -0
- package/dist/components/Link/Link.stories.js +48 -0
- package/dist/components/List/List.d.ts +5 -0
- package/dist/components/List/List.js +6 -0
- package/dist/components/List/List.stories.d.ts +15 -0
- package/dist/components/List/List.stories.js +122 -0
- package/dist/components/LoginPageLayout/LoginPageLayout.d.ts +4 -0
- package/dist/components/LoginPageLayout/LoginPageLayout.js +4 -0
- package/dist/components/LoginPageLayout/LoginPageLayout.stories.d.ts +9 -0
- package/dist/components/LoginPageLayout/LoginPageLayout.stories.js +58 -0
- package/dist/components/MainTable/MainTable.d.ts +3 -0
- package/dist/components/MainTable/MainTable.js +4 -0
- package/dist/components/MainTable/MainTable.stories.d.ts +15 -0
- package/dist/components/MainTable/MainTable.stories.js +553 -0
- package/dist/components/Modal/Modal.d.ts +5 -0
- package/dist/components/Modal/Modal.js +5 -0
- package/dist/components/Modal/Modal.stories.d.ts +6 -0
- package/dist/components/Modal/Modal.stories.js +57 -0
- package/dist/components/ModularTable/ModularTable.d.ts +52 -0
- package/dist/components/ModularTable/ModularTable.js +53 -0
- package/dist/components/ModularTable/ModularTable.stories.d.ts +27 -0
- package/dist/components/ModularTable/ModularTable.stories.js +343 -0
- package/dist/components/MultiSelect/MultiSelect.stories.d.ts +5 -64
- package/dist/components/MultiSelect/MultiSelect.stories.js +0 -1
- package/dist/components/Navigation/Navigation.d.ts +8 -0
- package/dist/components/Navigation/Navigation.js +9 -0
- package/dist/components/Navigation/Navigation.stories.d.ts +43 -0
- package/dist/components/Navigation/Navigation.stories.js +232 -0
- package/dist/components/Notification/Notification.d.ts +25 -0
- package/dist/components/Notification/Notification.js +25 -0
- package/dist/components/Notification/Notification.stories.d.ts +45 -0
- package/dist/components/Notification/Notification.stories.js +201 -0
- package/dist/components/Pagination/Pagination.d.ts +12 -0
- package/dist/components/Pagination/Pagination.js +12 -0
- package/dist/components/Pagination/Pagination.stories.d.ts +14 -0
- package/dist/components/Pagination/Pagination.stories.js +94 -0
- package/dist/components/PasswordToggle/PasswordToggle.d.ts +5 -0
- package/dist/components/PasswordToggle/PasswordToggle.js +5 -0
- package/dist/components/PasswordToggle/PasswordToggle.stories.d.ts +12 -0
- package/dist/components/PasswordToggle/PasswordToggle.stories.js +74 -0
- package/dist/components/RadioInput/RadioInput.d.ts +5 -0
- package/dist/components/RadioInput/RadioInput.js +5 -0
- package/dist/components/RadioInput/RadioInput.stories.d.ts +10 -0
- package/dist/components/RadioInput/RadioInput.stories.js +83 -0
- package/dist/components/Row/Row.d.ts +5 -0
- package/dist/components/Row/Row.js +5 -0
- package/dist/components/Row/Row.stories.d.ts +9 -0
- package/dist/components/Row/Row.stories.js +29 -0
- package/dist/components/SearchAndFilter/SearchAndFilter.d.ts +3 -0
- package/dist/components/SearchAndFilter/SearchAndFilter.js +3 -0
- package/dist/components/SearchAndFilter/SearchAndFilter.stories.d.ts +8 -0
- package/dist/components/SearchAndFilter/SearchAndFilter.stories.js +218 -0
- package/dist/components/SearchBox/SearchBox.d.ts +5 -0
- package/dist/components/SearchBox/SearchBox.js +5 -0
- package/dist/components/SearchBox/SearchBox.stories.d.ts +14 -0
- package/dist/components/SearchBox/SearchBox.stories.js +106 -0
- package/dist/components/Select/Select.d.ts +5 -0
- package/dist/components/Select/Select.js +6 -0
- package/dist/components/Select/Select.stories.d.ts +7 -0
- package/dist/components/Select/Select.stories.js +97 -0
- package/dist/components/Slider/Slider.d.ts +6 -0
- package/dist/components/Slider/Slider.js +6 -0
- package/dist/components/Slider/Slider.stories.d.ts +10 -0
- package/dist/components/Slider/Slider.stories.js +74 -0
- package/dist/components/Spinner/Spinner.d.ts +3 -0
- package/dist/components/Spinner/Spinner.js +3 -0
- package/dist/components/Spinner/Spinner.stories.d.ts +8 -0
- package/dist/components/Spinner/Spinner.stories.js +28 -0
- package/dist/components/StatusLabel/StatusLabel.d.ts +3 -1
- package/dist/components/StatusLabel/StatusLabel.js +3 -1
- package/dist/components/StatusLabel/StatusLabel.stories.d.ts +10 -0
- package/dist/components/StatusLabel/StatusLabel.stories.js +61 -0
- package/dist/components/Strip/Strip.d.ts +5 -0
- package/dist/components/Strip/Strip.js +5 -0
- package/dist/components/Strip/Strip.stories.d.ts +12 -0
- package/dist/components/Strip/Strip.stories.js +130 -0
- package/dist/components/SummaryButton/SummaryButton.d.ts +3 -0
- package/dist/components/SummaryButton/SummaryButton.js +3 -0
- package/dist/components/SummaryButton/SummaryButton.stories.d.ts +18 -0
- package/dist/components/SummaryButton/SummaryButton.stories.js +59 -0
- package/dist/components/Switch/Switch.d.ts +3 -0
- package/dist/components/Switch/Switch.js +3 -0
- package/dist/components/Switch/Switch.stories.d.ts +7 -0
- package/dist/components/Switch/Switch.stories.js +26 -0
- package/dist/components/TablePagination/TablePagination.d.ts +21 -0
- package/dist/components/TablePagination/TablePagination.js +21 -0
- package/dist/components/TablePagination/TablePagination.stories.d.ts +10 -0
- package/dist/components/TablePagination/TablePagination.stories.js +302 -0
- package/dist/components/Tabs/Tabs.d.ts +5 -0
- package/dist/components/Tabs/Tabs.js +5 -0
- package/dist/components/Tabs/Tabs.stories.d.ts +11 -0
- package/dist/components/Tabs/Tabs.stories.js +56 -0
- package/dist/components/Textarea/Textarea.d.ts +5 -0
- package/dist/components/Textarea/Textarea.js +5 -0
- package/dist/components/Textarea/Textarea.stories.d.ts +7 -0
- package/dist/components/Textarea/Textarea.stories.js +62 -0
- package/dist/components/Tooltip/Tooltip.d.ts +7 -11
- package/dist/components/Tooltip/Tooltip.js +7 -11
- package/dist/components/Tooltip/Tooltip.stories.d.ts +12 -0
- package/dist/components/Tooltip/Tooltip.stories.js +71 -0
- package/package.json +14 -14
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.WrapLines = exports.Title = exports.MultipleBlocks = exports.JsxCodeElements = exports.DropdownsStacked = exports.Dropdowns = exports.Dropdown = exports.Default = exports.Content = exports.Appearance = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _CodeSnippet = _interopRequireDefault(require("./CodeSnippet"));
|
|
9
|
+
var _CodeSnippetBlock = require("./CodeSnippetBlock");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
const meta = {
|
|
14
|
+
component: _CodeSnippet.default,
|
|
15
|
+
tags: ["autodocs"],
|
|
16
|
+
argTypes: {
|
|
17
|
+
className: {
|
|
18
|
+
control: {
|
|
19
|
+
type: "text"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var _default = exports.default = meta;
|
|
25
|
+
const Default = exports.Default = {
|
|
26
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
27
|
+
blocks: [{
|
|
28
|
+
code: "Mode: all Settings: maas_url=http://192.168.122.1:5240/MAAS"
|
|
29
|
+
}]
|
|
30
|
+
}),
|
|
31
|
+
name: "Default"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Use the `title` prop to add a title to a code block.
|
|
36
|
+
*/
|
|
37
|
+
const Title = exports.Title = {
|
|
38
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
39
|
+
blocks: [{
|
|
40
|
+
title: "Output",
|
|
41
|
+
code: "Mode: all Settings: maas_url=http://192.168.122.1:5240/MAAS"
|
|
42
|
+
}]
|
|
43
|
+
}),
|
|
44
|
+
name: "Title"
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Pass an array of `blocks` to render multiple code blocks (for example input and output) within a single code snippet.
|
|
49
|
+
*/
|
|
50
|
+
const MultipleBlocks = exports.MultipleBlocks = {
|
|
51
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
52
|
+
blocks: [{
|
|
53
|
+
title: "JavaScript",
|
|
54
|
+
code: "console.log('Vanilla');"
|
|
55
|
+
}, {
|
|
56
|
+
title: "Output",
|
|
57
|
+
code: "Vanilla"
|
|
58
|
+
}]
|
|
59
|
+
}),
|
|
60
|
+
name: "Multiple blocks"
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Use `appearance` to control the visual aspects of the code block. `"numbered"` appearance will add line numbers in the code blocks.
|
|
65
|
+
* Values of `"linuxPrompt"`, `"windowsPrompt"`, `"url"` will add a relevant icon in the code block.
|
|
66
|
+
*/
|
|
67
|
+
const Appearance = exports.Appearance = {
|
|
68
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
69
|
+
blocks: [{
|
|
70
|
+
title: "Install on Linux",
|
|
71
|
+
appearance: _CodeSnippetBlock.CodeSnippetBlockAppearance.LINUX_PROMPT,
|
|
72
|
+
code: "snap install toto"
|
|
73
|
+
}, {
|
|
74
|
+
title: "Install on Windows",
|
|
75
|
+
appearance: _CodeSnippetBlock.CodeSnippetBlockAppearance.WINDOWS_PROMPT,
|
|
76
|
+
code: "snap install toto"
|
|
77
|
+
}, {
|
|
78
|
+
title: "Get from the Store",
|
|
79
|
+
appearance: _CodeSnippetBlock.CodeSnippetBlockAppearance.URL,
|
|
80
|
+
code: "http://snapcraft.io/toto"
|
|
81
|
+
}]
|
|
82
|
+
}),
|
|
83
|
+
name: "Appearance"
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Set `wrapLines` prop to `true` to enable line wrapping inside the code block.
|
|
88
|
+
*/
|
|
89
|
+
const WrapLines = exports.WrapLines = {
|
|
90
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
91
|
+
blocks: [{
|
|
92
|
+
appearance: _CodeSnippetBlock.CodeSnippetBlockAppearance.NUMBERED,
|
|
93
|
+
wrapLines: true,
|
|
94
|
+
code: "#!/bin/bash\nset -eu . $CONJURE_UP_SPELLSDIR/sdk/common.sh\nif [[ \"$JUJU_PROVIDERTYPE\" == \"lxd\" ]]; then\n debug \"Running pre-deploy for $CONJURE_UP_SPELL\"\n sed \"s/##MODEL##/$JUJU_MODEL/\" $(scriptPath)/lxd-profile.yaml | lxc profile edit \"juju-$JUJU_MODEL\" || exposeResult \"Failed to set profile\" $? \"false\"\nfi\nexposeResult \"Successful pre-deploy.\" 0 \"true\""
|
|
95
|
+
}]
|
|
96
|
+
}),
|
|
97
|
+
name: "Wrap lines"
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Dropdown select menus can be added to the headers of code blocks to allow users to choose one of the options. The dropdowns options are passed via `dropdowns` property in the block options object.
|
|
102
|
+
*
|
|
103
|
+
* With the `options` being an array of option properties compatible with the `Select` options (`[{ label: string, value: string | number }]`).
|
|
104
|
+
*/
|
|
105
|
+
const Dropdown = exports.Dropdown = {
|
|
106
|
+
render: () => {
|
|
107
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
108
|
+
const [lang, setLang] = (0, _react.useState)("html");
|
|
109
|
+
const code = {
|
|
110
|
+
js: "console.log(\"Example 1\");",
|
|
111
|
+
css: ".p-heading--2 { color: red; }",
|
|
112
|
+
html: "<h1 class=\"p-heading--2\">How to use code snippets</h1>"
|
|
113
|
+
};
|
|
114
|
+
return /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
115
|
+
blocks: [{
|
|
116
|
+
code: code[lang],
|
|
117
|
+
dropdowns: [{
|
|
118
|
+
options: [{
|
|
119
|
+
value: "js",
|
|
120
|
+
label: "JS"
|
|
121
|
+
}, {
|
|
122
|
+
value: "css",
|
|
123
|
+
label: "CSS"
|
|
124
|
+
}, {
|
|
125
|
+
value: "html",
|
|
126
|
+
label: "HTML"
|
|
127
|
+
}],
|
|
128
|
+
value: lang,
|
|
129
|
+
onChange: event => {
|
|
130
|
+
setLang(event.target.value);
|
|
131
|
+
}
|
|
132
|
+
}]
|
|
133
|
+
}]
|
|
134
|
+
});
|
|
135
|
+
},
|
|
136
|
+
name: "Dropdown"
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Multiple dropdowns can be passed in if needed.
|
|
141
|
+
*/
|
|
142
|
+
const Dropdowns = exports.Dropdowns = {
|
|
143
|
+
render: () => {
|
|
144
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
145
|
+
const [channel, setChannel] = (0, _react.useState)("stable");
|
|
146
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
147
|
+
const [snap, setSnap] = (0, _react.useState)("firefox");
|
|
148
|
+
const code = "sudo snap install ".concat(snap, " ").concat(channel === "stable" ? "" : "--" + channel);
|
|
149
|
+
return /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
150
|
+
blocks: [{
|
|
151
|
+
title: "Install snap",
|
|
152
|
+
code: code,
|
|
153
|
+
dropdowns: [{
|
|
154
|
+
options: [{
|
|
155
|
+
value: "stable",
|
|
156
|
+
label: "stable"
|
|
157
|
+
}, {
|
|
158
|
+
value: "candidate",
|
|
159
|
+
label: "candidate"
|
|
160
|
+
}, {
|
|
161
|
+
value: "beta",
|
|
162
|
+
label: "beta"
|
|
163
|
+
}, {
|
|
164
|
+
value: "edge",
|
|
165
|
+
label: "edge"
|
|
166
|
+
}],
|
|
167
|
+
value: channel,
|
|
168
|
+
onChange: event => {
|
|
169
|
+
setChannel(event.target.value);
|
|
170
|
+
}
|
|
171
|
+
}, {
|
|
172
|
+
options: [{
|
|
173
|
+
value: "firefox",
|
|
174
|
+
label: "Firefox"
|
|
175
|
+
}, {
|
|
176
|
+
value: "gimp",
|
|
177
|
+
label: "Gimp"
|
|
178
|
+
}, {
|
|
179
|
+
value: "vlc",
|
|
180
|
+
label: "VLC"
|
|
181
|
+
}],
|
|
182
|
+
value: snap,
|
|
183
|
+
onChange: event => {
|
|
184
|
+
setSnap(event.target.value);
|
|
185
|
+
}
|
|
186
|
+
}]
|
|
187
|
+
}]
|
|
188
|
+
});
|
|
189
|
+
},
|
|
190
|
+
name: "Dropdowns"
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* If multiple dropdowns may overlap with long title you can use `stacked` variant, by setting the relevant property on code block options.
|
|
195
|
+
*/
|
|
196
|
+
const DropdownsStacked = exports.DropdownsStacked = {
|
|
197
|
+
render: () => {
|
|
198
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
199
|
+
const [channel, setChannel] = (0, _react.useState)("stable");
|
|
200
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
201
|
+
const [snap, setSnap] = (0, _react.useState)("firefox");
|
|
202
|
+
const code = "sudo snap install ".concat(snap, " ").concat(channel === "stable" ? "" : "--" + channel);
|
|
203
|
+
return /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
204
|
+
blocks: [{
|
|
205
|
+
title: "Install Firefox, Gimp or VLC as a snap from different channels using command line",
|
|
206
|
+
code: code,
|
|
207
|
+
stacked: true,
|
|
208
|
+
dropdowns: [{
|
|
209
|
+
options: [{
|
|
210
|
+
value: "stable",
|
|
211
|
+
label: "stable"
|
|
212
|
+
}, {
|
|
213
|
+
value: "candidate",
|
|
214
|
+
label: "candidate"
|
|
215
|
+
}, {
|
|
216
|
+
value: "beta",
|
|
217
|
+
label: "beta"
|
|
218
|
+
}, {
|
|
219
|
+
value: "edge",
|
|
220
|
+
label: "edge"
|
|
221
|
+
}],
|
|
222
|
+
value: channel,
|
|
223
|
+
onChange: event => {
|
|
224
|
+
setChannel(event.target.value);
|
|
225
|
+
}
|
|
226
|
+
}, {
|
|
227
|
+
options: [{
|
|
228
|
+
value: "firefox",
|
|
229
|
+
label: "Firefox"
|
|
230
|
+
}, {
|
|
231
|
+
value: "gimp",
|
|
232
|
+
label: "Gimp"
|
|
233
|
+
}, {
|
|
234
|
+
value: "vlc",
|
|
235
|
+
label: "VLC"
|
|
236
|
+
}],
|
|
237
|
+
value: snap,
|
|
238
|
+
onChange: event => {
|
|
239
|
+
setSnap(event.target.value);
|
|
240
|
+
}
|
|
241
|
+
}]
|
|
242
|
+
}]
|
|
243
|
+
});
|
|
244
|
+
},
|
|
245
|
+
name: "DropdownsStacked"
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Custom elements can be passed to a CodeBlock via the `content` prop. In these cases, a border will be added around the entire code snippet to visually associate the content with the code block.
|
|
250
|
+
*/
|
|
251
|
+
const Content = exports.Content = {
|
|
252
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
253
|
+
blocks: [{
|
|
254
|
+
title: "With embedded iframe",
|
|
255
|
+
code: "<iframe src='./iframe.html?viewMode=story&id=components-button--default&args='></iframe>",
|
|
256
|
+
content: /*#__PURE__*/_react.default.createElement("iframe", {
|
|
257
|
+
title: "iframe",
|
|
258
|
+
src: "./iframe.html?viewMode=story&id=components-button--default&args="
|
|
259
|
+
})
|
|
260
|
+
}]
|
|
261
|
+
}),
|
|
262
|
+
name: "Content"
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* It's possible to pass JSX instead of strings to the `code` parameter, either as a single element or an array (e.g. if you want to display line numbers).
|
|
267
|
+
*/
|
|
268
|
+
const JsxCodeElements = exports.JsxCodeElements = {
|
|
269
|
+
render: () => /*#__PURE__*/_react.default.createElement(_CodeSnippet.default, {
|
|
270
|
+
blocks: [{
|
|
271
|
+
code: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("strong", null, "snap"), "install", /*#__PURE__*/_react.default.createElement("a", {
|
|
272
|
+
href: "#test"
|
|
273
|
+
}, "toto"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("strong", null, "apt"), "install", /*#__PURE__*/_react.default.createElement("a", {
|
|
274
|
+
href: "#test"
|
|
275
|
+
}, "toto"))
|
|
276
|
+
}]
|
|
277
|
+
}),
|
|
278
|
+
name: "JSX code elements"
|
|
279
|
+
};
|
|
@@ -44,5 +44,10 @@ export type Props = PropsWithSpread<{
|
|
|
44
44
|
*/
|
|
45
45
|
small?: ColSize;
|
|
46
46
|
}, HTMLProps<HTMLElement>>;
|
|
47
|
+
/**
|
|
48
|
+
* This is a [React](https://reactjs.org/) component for use within the Vanilla [Grid](https://docs.vanillaframework.io/patterns/grid/).
|
|
49
|
+
*
|
|
50
|
+
* Vanilla has a responsive grid using a combination of rows and columns.
|
|
51
|
+
*/
|
|
47
52
|
declare const Col: ({ children, className, element: Component, emptyLarge, emptyMedium, emptySmall, large, medium, size, small, ...props }: Props) => JSX.Element;
|
|
48
53
|
export default Col;
|
|
@@ -9,6 +9,11 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
10
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
11
|
const colSizes = exports.colSizes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
12
|
+
/**
|
|
13
|
+
* This is a [React](https://reactjs.org/) component for use within the Vanilla [Grid](https://docs.vanillaframework.io/patterns/grid/).
|
|
14
|
+
*
|
|
15
|
+
* Vanilla has a responsive grid using a combination of rows and columns.
|
|
16
|
+
*/
|
|
12
17
|
const Col = _ref => {
|
|
13
18
|
let {
|
|
14
19
|
children,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import Col from "./Col";
|
|
4
|
+
declare const Template: (args: any) => React.JSX.Element;
|
|
5
|
+
declare const meta: Meta<typeof Template>;
|
|
6
|
+
export default meta;
|
|
7
|
+
type Story = StoryObj<typeof Col>;
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
export declare const Grid: Story;
|
|
10
|
+
export declare const NestedColumns: Story;
|
|
11
|
+
export declare const EmptyColumns: Story;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.NestedColumns = exports.Grid = exports.EmptyColumns = exports.Default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _Col = _interopRequireDefault(require("./Col"));
|
|
9
|
+
var _Row = _interopRequireDefault(require("../Row"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const Template = args => {
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
13
|
+
className: "grid-demo"
|
|
14
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, args)));
|
|
15
|
+
};
|
|
16
|
+
const meta = {
|
|
17
|
+
component: _Col.default,
|
|
18
|
+
render: Template,
|
|
19
|
+
tags: ["autodocs"],
|
|
20
|
+
argTypes: {
|
|
21
|
+
children: {
|
|
22
|
+
control: {
|
|
23
|
+
type: "text"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
size: {
|
|
27
|
+
control: {
|
|
28
|
+
type: "range",
|
|
29
|
+
min: 1,
|
|
30
|
+
max: 12,
|
|
31
|
+
step: 1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var _default = exports.default = meta;
|
|
37
|
+
const Default = exports.Default = {
|
|
38
|
+
name: "Default",
|
|
39
|
+
args: {
|
|
40
|
+
children: "Hi, I'm Col.",
|
|
41
|
+
size: 12
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const Grid = exports.Grid = {
|
|
45
|
+
render: () => {
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
47
|
+
className: "grid-demo"
|
|
48
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
49
|
+
size: 12
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-12"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
51
|
+
size: 11
|
|
52
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-11")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
53
|
+
size: 1
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-1"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
55
|
+
size: 10
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-10")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
57
|
+
size: 2
|
|
58
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-2"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
59
|
+
size: 9
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-9")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
61
|
+
size: 3
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-3"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
63
|
+
size: 8
|
|
64
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-8")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
65
|
+
size: 4
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-4"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
67
|
+
size: 7
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-7")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
69
|
+
size: 5
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-5"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
71
|
+
size: 6
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-6")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
73
|
+
size: 6
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-6"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
75
|
+
size: 5
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-5")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
77
|
+
size: 7
|
|
78
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-7"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
79
|
+
size: 4
|
|
80
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-4")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
81
|
+
size: 8
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-8"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
83
|
+
size: 3
|
|
84
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-3")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
85
|
+
size: 9
|
|
86
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-9"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
87
|
+
size: 2
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-2")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
89
|
+
size: 10
|
|
90
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-10"))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
91
|
+
size: 1
|
|
92
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-1")), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
93
|
+
size: 11
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, ".col-11"))));
|
|
95
|
+
},
|
|
96
|
+
name: "Grid"
|
|
97
|
+
};
|
|
98
|
+
const NestedColumns = exports.NestedColumns = {
|
|
99
|
+
render: () => {
|
|
100
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
101
|
+
className: "grid-demo"
|
|
102
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
103
|
+
small: 4,
|
|
104
|
+
medium: 6,
|
|
105
|
+
size: 12
|
|
106
|
+
}, "col-small-4 .col-medium-6 .col-12", /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
107
|
+
small: 3,
|
|
108
|
+
medium: 3,
|
|
109
|
+
size: 9
|
|
110
|
+
}, "col-small-3 .col-medium-3 .col-9", /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
111
|
+
small: 1,
|
|
112
|
+
medium: 1,
|
|
113
|
+
size: 2
|
|
114
|
+
}, "col-small-1 col-medium-1 col-2"), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
115
|
+
small: 1,
|
|
116
|
+
medium: 1,
|
|
117
|
+
size: 3
|
|
118
|
+
}, "col-small-1 col-medium-1 col-2"), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
119
|
+
small: 1,
|
|
120
|
+
medium: 1,
|
|
121
|
+
size: 3
|
|
122
|
+
}, "col-small-1 col-medium-1 col-2"))), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
123
|
+
small: 1,
|
|
124
|
+
medium: 3,
|
|
125
|
+
size: 3
|
|
126
|
+
}, "col-small-2 col-medium-3 col-3")))));
|
|
127
|
+
},
|
|
128
|
+
name: "Nested columns"
|
|
129
|
+
};
|
|
130
|
+
const EmptyColumns = exports.EmptyColumns = {
|
|
131
|
+
render: () => {
|
|
132
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
133
|
+
className: "grid-demo"
|
|
134
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
135
|
+
size: 8
|
|
136
|
+
}, ".col-8"), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
137
|
+
size: 4
|
|
138
|
+
}, ".col-4")), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
139
|
+
size: 7
|
|
140
|
+
}, ".col-7"), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
141
|
+
size: 4
|
|
142
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
143
|
+
size: 3,
|
|
144
|
+
emptyLarge: 2
|
|
145
|
+
}, "col-3 col-start-large-2 inside col-4")))), /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
146
|
+
size: 7
|
|
147
|
+
}, ".col-7"), /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
148
|
+
size: 4
|
|
149
|
+
}, /*#__PURE__*/_react.default.createElement(_Row.default, null, /*#__PURE__*/_react.default.createElement(_Col.default, {
|
|
150
|
+
size: 3
|
|
151
|
+
}, "col-3 inside col-4")))));
|
|
152
|
+
},
|
|
153
|
+
name: "Empty columns"
|
|
154
|
+
};
|
|
@@ -21,5 +21,8 @@ export type Props = PropsWithSpread<{
|
|
|
21
21
|
*/
|
|
22
22
|
showShiftClickHint?: boolean;
|
|
23
23
|
}, ActionButtonProps>;
|
|
24
|
+
/**
|
|
25
|
+
* `ConfirmationButton` is a specialised version of the [ActionButton](?path=/docs/actionbutton--default-story) component that uses a [ConfirmationModal](?path=/docs/confirmationmodal--default-story) to prompt a confirmation from the user before executing an action.
|
|
26
|
+
*/
|
|
24
27
|
export declare const ConfirmationButton: ({ confirmationModalProps, onHoverText, shiftClickEnabled, showShiftClickHint, ...actionButtonProps }: Props) => ReactElement;
|
|
25
28
|
export default ConfirmationButton;
|
|
@@ -10,6 +10,18 @@ var _ConfirmationModal = _interopRequireDefault(require("../ConfirmationModal"))
|
|
|
10
10
|
var _reactUseportal = _interopRequireDefault(require("react-useportal"));
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
12
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
13
|
+
const generateTitle = title => {
|
|
14
|
+
if (typeof title === "string") {
|
|
15
|
+
return title;
|
|
16
|
+
}
|
|
17
|
+
if (typeof title === "number") {
|
|
18
|
+
return title.toString();
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* `ConfirmationButton` is a specialised version of the [ActionButton](?path=/docs/actionbutton--default-story) component that uses a [ConfirmationModal](?path=/docs/confirmationmodal--default-story) to prompt a confirmation from the user before executing an action.
|
|
24
|
+
*/
|
|
13
25
|
const ConfirmationButton = _ref => {
|
|
14
26
|
let {
|
|
15
27
|
confirmationModalProps,
|
|
@@ -49,7 +61,7 @@ const ConfirmationButton = _ref => {
|
|
|
49
61
|
className: "p-text--small u-text--muted u-hide--small"
|
|
50
62
|
}, "Next time, you can skip this confirmation by holding", " ", /*#__PURE__*/_react.default.createElement("code", null, "SHIFT"), " and clicking the action."))), /*#__PURE__*/_react.default.createElement(_ActionButton.default, _extends({}, actionButtonProps, {
|
|
51
63
|
onClick: shiftClickEnabled ? handleShiftClick : openPortal,
|
|
52
|
-
title: onHoverText !== null && onHoverText !== void 0 ? onHoverText : confirmationModalProps.confirmButtonLabel
|
|
64
|
+
title: generateTitle(onHoverText !== null && onHoverText !== void 0 ? onHoverText : confirmationModalProps.confirmButtonLabel)
|
|
53
65
|
}), actionButtonProps.children));
|
|
54
66
|
};
|
|
55
67
|
exports.ConfirmationButton = ConfirmationButton;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import ConfirmationButton from "./ConfirmationButton";
|
|
3
|
+
declare const meta: Meta<typeof ConfirmationButton>;
|
|
4
|
+
export declare const Default: Story;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof ConfirmationButton>;
|
|
7
|
+
export declare const IconAndLabel: Story;
|
|
8
|
+
export declare const IconOnly: Story;
|
|
9
|
+
export declare const BaseAppearance: Story;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.IconOnly = exports.IconAndLabel = exports.Default = exports.BaseAppearance = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _ConfirmationButton = _interopRequireDefault(require("./ConfirmationButton"));
|
|
9
|
+
var _Icon = _interopRequireWildcard(require("../Icon"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
const doNothing = () => {};
|
|
14
|
+
const meta = {
|
|
15
|
+
component: _ConfirmationButton.default,
|
|
16
|
+
tags: ["autodocs"]
|
|
17
|
+
};
|
|
18
|
+
const Default = exports.Default = {
|
|
19
|
+
render: () => /*#__PURE__*/_react.default.createElement(_ConfirmationButton.default, {
|
|
20
|
+
confirmationModalProps: {
|
|
21
|
+
title: "Confirm delete",
|
|
22
|
+
confirmButtonLabel: "Delete",
|
|
23
|
+
onConfirm: doNothing,
|
|
24
|
+
children: /*#__PURE__*/_react.default.createElement("p", null, "This will permanently delete the user \"Simon\".", /*#__PURE__*/_react.default.createElement("br", null), "You cannot undo this action.")
|
|
25
|
+
}
|
|
26
|
+
}, "Delete"),
|
|
27
|
+
name: "Default"
|
|
28
|
+
};
|
|
29
|
+
var _default = exports.default = meta;
|
|
30
|
+
const IconAndLabel = exports.IconAndLabel = {
|
|
31
|
+
render: () => {
|
|
32
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
33
|
+
const [isLoading, setLoading] = (0, _react.useState)(false);
|
|
34
|
+
const brieflyLoad = () => {
|
|
35
|
+
setLoading(true);
|
|
36
|
+
setTimeout(() => setLoading(false), 2000);
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_ConfirmationButton.default, {
|
|
39
|
+
confirmationModalProps: {
|
|
40
|
+
title: "Confirm delete",
|
|
41
|
+
confirmButtonLabel: "Delete",
|
|
42
|
+
onConfirm: brieflyLoad,
|
|
43
|
+
children: /*#__PURE__*/_react.default.createElement("p", null, "This will permanently delete the user \"Simon\".", /*#__PURE__*/_react.default.createElement("br", null), "You cannot undo this action.")
|
|
44
|
+
},
|
|
45
|
+
className: "has-icon",
|
|
46
|
+
disabled: isLoading,
|
|
47
|
+
loading: isLoading,
|
|
48
|
+
shiftClickEnabled: true,
|
|
49
|
+
showShiftClickHint: true
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
51
|
+
name: _Icon.ICONS.delete
|
|
52
|
+
}), /*#__PURE__*/_react.default.createElement("span", null, "Delete"));
|
|
53
|
+
},
|
|
54
|
+
name: "Icon and label"
|
|
55
|
+
};
|
|
56
|
+
const IconOnly = exports.IconOnly = {
|
|
57
|
+
render: () => {
|
|
58
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
59
|
+
const [isLoading, setLoading] = (0, _react.useState)(false);
|
|
60
|
+
const brieflyLoad = () => {
|
|
61
|
+
setLoading(true);
|
|
62
|
+
setTimeout(() => setLoading(false), 2000);
|
|
63
|
+
};
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_ConfirmationButton.default, {
|
|
65
|
+
confirmationModalProps: {
|
|
66
|
+
title: "Confirm delete",
|
|
67
|
+
confirmButtonLabel: "Delete",
|
|
68
|
+
onConfirm: brieflyLoad,
|
|
69
|
+
children: /*#__PURE__*/_react.default.createElement("p", null, "This will permanently delete the user \"Simon\".", /*#__PURE__*/_react.default.createElement("br", null), "You cannot undo this action.")
|
|
70
|
+
},
|
|
71
|
+
className: "has-icon",
|
|
72
|
+
disabled: isLoading,
|
|
73
|
+
loading: isLoading,
|
|
74
|
+
shiftClickEnabled: true,
|
|
75
|
+
showShiftClickHint: true
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
77
|
+
name: _Icon.ICONS.delete
|
|
78
|
+
}));
|
|
79
|
+
},
|
|
80
|
+
name: "Icon only"
|
|
81
|
+
};
|
|
82
|
+
const BaseAppearance = exports.BaseAppearance = {
|
|
83
|
+
render: () => {
|
|
84
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
85
|
+
const [isLoading, setLoading] = (0, _react.useState)(false);
|
|
86
|
+
const brieflyLoad = () => {
|
|
87
|
+
setLoading(true);
|
|
88
|
+
setTimeout(() => setLoading(false), 2000);
|
|
89
|
+
};
|
|
90
|
+
return /*#__PURE__*/_react.default.createElement(_ConfirmationButton.default, {
|
|
91
|
+
appearance: "base",
|
|
92
|
+
confirmationModalProps: {
|
|
93
|
+
title: "Confirm delete",
|
|
94
|
+
confirmButtonLabel: "Delete",
|
|
95
|
+
onConfirm: brieflyLoad,
|
|
96
|
+
children: /*#__PURE__*/_react.default.createElement("p", null, "This will permanently delete the user \"Simon\".", /*#__PURE__*/_react.default.createElement("br", null), "You cannot undo this action.")
|
|
97
|
+
},
|
|
98
|
+
className: "has-icon",
|
|
99
|
+
disabled: isLoading,
|
|
100
|
+
loading: isLoading,
|
|
101
|
+
shiftClickEnabled: true,
|
|
102
|
+
showShiftClickHint: true
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
104
|
+
name: _Icon.ICONS.delete
|
|
105
|
+
}));
|
|
106
|
+
},
|
|
107
|
+
name: "Base appearance"
|
|
108
|
+
};
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { MouseEvent, ReactElement } from "react";
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
3
|
import { PropsWithSpread, ValueOf } from "../../types";
|
|
4
|
-
import { ButtonAppearance } from "../Button";
|
|
4
|
+
import { ButtonAppearance, ButtonProps } from "../Button";
|
|
5
5
|
import { ModalProps } from "../Modal";
|
|
6
|
+
import { ActionButtonProps } from "../ActionButton";
|
|
6
7
|
export type Props = PropsWithSpread<{
|
|
7
8
|
/**
|
|
8
9
|
* Label for the cancel button.
|
|
9
10
|
*/
|
|
10
|
-
cancelButtonLabel?:
|
|
11
|
+
cancelButtonLabel?: ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Additional props to be spread on the cancel button.
|
|
14
|
+
*/
|
|
15
|
+
cancelButtonProps?: Partial<ButtonProps>;
|
|
11
16
|
/**
|
|
12
17
|
* The content of the modal.
|
|
13
18
|
*/
|
|
@@ -19,7 +24,11 @@ export type Props = PropsWithSpread<{
|
|
|
19
24
|
/**
|
|
20
25
|
* Label for the confirm button.
|
|
21
26
|
*/
|
|
22
|
-
confirmButtonLabel:
|
|
27
|
+
confirmButtonLabel: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Additional props to be spread on the confirm button.
|
|
30
|
+
*/
|
|
31
|
+
confirmButtonProps?: Partial<ActionButtonProps>;
|
|
23
32
|
/**
|
|
24
33
|
* Extra elements to be placed in the button row of the modal.
|
|
25
34
|
*/
|
|
@@ -37,5 +46,8 @@ export type Props = PropsWithSpread<{
|
|
|
37
46
|
*/
|
|
38
47
|
confirmButtonDisabled?: boolean;
|
|
39
48
|
}, Omit<ModalProps, "buttonRow">>;
|
|
40
|
-
|
|
49
|
+
/**
|
|
50
|
+
* `ConfirmationModal` is a specialised version of the [Modal](?path=/docs/modal--default-story) component to prompt a confirmation from the user before executing an action.
|
|
51
|
+
*/
|
|
52
|
+
export declare const ConfirmationModal: ({ cancelButtonLabel, cancelButtonProps, children, confirmButtonAppearance, confirmButtonLabel, confirmExtra, onConfirm, confirmButtonLoading, confirmButtonDisabled, confirmButtonProps, ...props }: Props) => ReactElement;
|
|
41
53
|
export default ConfirmationModal;
|