1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { html, ifDefined } from "../vendor/lit.all.mjs";
// eslint-disable-next-line import/no-unassigned-import
import "./moz-button.mjs";
export default {
title: "UI Widgets/Moz Button",
component: "moz-button",
argTypes: {
l10nId: {
options: [
"moz-button-labelled",
"moz-button-titled",
"moz-button-aria-labelled",
],
control: { type: "select" },
},
size: {
options: ["default", "small"],
control: { type: "radio" },
},
type: {
options: ["default", "primary", "destructive", "icon", "icon ghost"],
control: { type: "select" },
},
},
parameters: {
actions: {
handles: ["click"],
},
status: "in-development",
fluent: `
moz-button-labelled = Button
moz-button-primary = Primary
moz-button-destructive = Destructive
moz-button-titled =
.title = View logins
moz-button-aria-labelled =
.aria-label = View logins
`,
},
};
const Template = ({ type, size, l10nId, iconSrc, disabled }) => html`
<moz-button
data-l10n-id=${l10nId}
type=${type}
size=${size}
?disabled=${disabled}
iconSrc=${ifDefined(iconSrc)}
></moz-button>
`;
export const Default = Template.bind({});
Default.args = {
type: "default",
size: "default",
l10nId: "moz-button-labelled",
iconSrc: "",
disabled: false,
};
export const DefaultSmall = Template.bind({});
DefaultSmall.args = {
type: "default",
size: "small",
l10nId: "moz-button-labelled",
iconSrc: "",
disabled: false,
};
export const Primary = Template.bind({});
Primary.args = {
...Default.args,
type: "primary",
l10nId: "moz-button-primary",
};
export const Destructive = Template.bind({});
Destructive.args = {
...Default.args,
type: "destructive",
l10nId: "moz-button-destructive",
};
export const Icon = Template.bind({});
Icon.args = {
...Default.args,
iconSrc: "chrome://global/skin/icons/more.svg",
l10nId: "moz-button-titled",
};
export const IconSmall = Template.bind({});
IconSmall.args = {
...Icon.args,
size: "small",
};
export const IconGhost = Template.bind({});
IconGhost.args = {
...Icon.args,
type: "ghost",
};
export const IconText = Template.bind({});
IconText.args = {
type: "default",
size: "default",
iconSrc: "chrome://global/skin/icons/edit-copy.svg",
l10nId: "moz-button-labelled",
};
|