@sula-tech/webcomponents 0.2.0 → 0.2.2

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 (113) hide show
  1. package/dist/cjs/{index-3eac14f6.js → index-87eec792.js} +26 -3
  2. package/dist/cjs/index-87eec792.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{sula-avatar_4.cjs.entry.js → sula-avatar_9.cjs.entry.js} +526 -9
  5. package/dist/cjs/sula-avatar_9.cjs.entry.js.map +1 -0
  6. package/dist/cjs/webcomponents.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +5 -0
  8. package/dist/collection/components/sula-badge/model/sula-badge.model.js +23 -0
  9. package/dist/collection/components/sula-badge/model/sula-badge.model.js.map +1 -0
  10. package/dist/collection/components/sula-badge/sula-badge.css +1 -0
  11. package/dist/collection/components/sula-badge/sula-badge.js +230 -0
  12. package/dist/collection/components/sula-badge/sula-badge.js.map +1 -0
  13. package/dist/collection/components/sula-badge/sula-badge.stories.js +148 -0
  14. package/dist/collection/components/sula-badge/sula-badge.stories.js.map +1 -0
  15. package/dist/collection/components/sula-button/sula-button.css +1 -1
  16. package/dist/collection/components/sula-button/sula-button.js +1 -1
  17. package/dist/collection/components/sula-checkbox/model/sula-checkbox.model.js +6 -0
  18. package/dist/collection/components/sula-checkbox/model/sula-checkbox.model.js.map +1 -0
  19. package/dist/collection/components/sula-checkbox/sula-checkbox.css +1 -0
  20. package/dist/collection/components/sula-checkbox/sula-checkbox.js +233 -0
  21. package/dist/collection/components/sula-checkbox/sula-checkbox.js.map +1 -0
  22. package/dist/collection/components/sula-checkbox/sula-checkbox.stories.js +113 -0
  23. package/dist/collection/components/sula-checkbox/sula-checkbox.stories.js.map +1 -0
  24. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  25. package/dist/collection/components/sula-icon/sula-icon.js +1 -1
  26. package/dist/collection/components/sula-icon/sula-icon.stories.js +1 -1
  27. package/dist/collection/components/sula-icon/sula-icon.stories.js.map +1 -1
  28. package/dist/collection/components/sula-switch/model/sula-switch.model.js +6 -0
  29. package/dist/collection/components/sula-switch/model/sula-switch.model.js.map +1 -0
  30. package/dist/collection/components/sula-switch/sula-switch.css +1 -0
  31. package/dist/collection/components/sula-switch/sula-switch.js +235 -0
  32. package/dist/collection/components/sula-switch/sula-switch.js.map +1 -0
  33. package/dist/collection/components/sula-switch/sula-switch.stories.js +111 -0
  34. package/dist/collection/components/sula-switch/sula-switch.stories.js.map +1 -0
  35. package/dist/collection/components/sula-tag/model/sula-tag.model.js +28 -0
  36. package/dist/collection/components/sula-tag/model/sula-tag.model.js.map +1 -0
  37. package/dist/collection/components/sula-tag/sula-tag.css +1 -0
  38. package/dist/collection/components/sula-tag/sula-tag.js +249 -0
  39. package/dist/collection/components/sula-tag/sula-tag.js.map +1 -0
  40. package/dist/collection/components/sula-tag/sula-tag.stories.js +201 -0
  41. package/dist/collection/components/sula-tag/sula-tag.stories.js.map +1 -0
  42. package/dist/collection/components/sula-textarea/model/sula-textarea.model.js +6 -0
  43. package/dist/collection/components/sula-textarea/model/sula-textarea.model.js.map +1 -0
  44. package/dist/collection/components/sula-textarea/sula-textarea.css +1 -0
  45. package/dist/collection/components/sula-textarea/sula-textarea.js +358 -0
  46. package/dist/collection/components/sula-textarea/sula-textarea.js.map +1 -0
  47. package/dist/collection/components/sula-textarea/sula-textarea.stories.js +138 -0
  48. package/dist/collection/components/sula-textarea/sula-textarea.stories.js.map +1 -0
  49. package/dist/collection/components/sula-textfield/sula-textfield.css +1 -1
  50. package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
  51. package/dist/collection/components/sula-textfield/sula-textfield.js.map +1 -1
  52. package/dist/components/index.js +1 -1
  53. package/dist/components/{p-a07ff261.js → p-5066cf94.js} +4 -4
  54. package/dist/components/{p-a07ff261.js.map → p-5066cf94.js.map} +1 -1
  55. package/dist/components/{p-ca146b16.js → p-881c6b35.js} +25 -3
  56. package/dist/components/p-881c6b35.js.map +1 -0
  57. package/dist/components/sula-avatar.js +2 -2
  58. package/dist/components/sula-badge.d.ts +11 -0
  59. package/dist/components/sula-badge.js +154 -0
  60. package/dist/components/sula-badge.js.map +1 -0
  61. package/dist/components/sula-button.js +4 -4
  62. package/dist/components/sula-button.js.map +1 -1
  63. package/dist/components/sula-checkbox.d.ts +11 -0
  64. package/dist/components/sula-checkbox.js +109 -0
  65. package/dist/components/sula-checkbox.js.map +1 -0
  66. package/dist/components/sula-icon.js +1 -1
  67. package/dist/components/sula-switch.d.ts +11 -0
  68. package/dist/components/sula-switch.js +105 -0
  69. package/dist/components/sula-switch.js.map +1 -0
  70. package/dist/components/sula-tag.d.ts +11 -0
  71. package/dist/components/sula-tag.js +157 -0
  72. package/dist/components/sula-tag.js.map +1 -0
  73. package/dist/components/sula-textarea.d.ts +11 -0
  74. package/dist/components/sula-textarea.js +166 -0
  75. package/dist/components/sula-textarea.js.map +1 -0
  76. package/dist/components/sula-textfield.js +5 -5
  77. package/dist/components/sula-textfield.js.map +1 -1
  78. package/dist/esm/{index-1dc4ae53.js → index-aa1c5f36.js} +26 -4
  79. package/dist/esm/index-aa1c5f36.js.map +1 -0
  80. package/dist/esm/loader.js +3 -3
  81. package/dist/esm/{sula-avatar_4.entry.js → sula-avatar_9.entry.js} +522 -10
  82. package/dist/esm/sula-avatar_9.entry.js.map +1 -0
  83. package/dist/esm/webcomponents.js +3 -3
  84. package/dist/types/components/sula-badge/model/sula-badge.model.d.ts +19 -0
  85. package/dist/types/components/sula-badge/sula-badge.d.ts +33 -0
  86. package/dist/types/components/sula-badge/sula-badge.stories.d.ts +65 -0
  87. package/dist/types/components/sula-checkbox/model/sula-checkbox.model.d.ts +4 -0
  88. package/dist/types/components/sula-checkbox/sula-checkbox.d.ts +42 -0
  89. package/dist/types/components/sula-checkbox/sula-checkbox.stories.d.ts +73 -0
  90. package/dist/types/components/sula-switch/model/sula-switch.model.d.ts +4 -0
  91. package/dist/types/components/sula-switch/sula-switch.d.ts +41 -0
  92. package/dist/types/components/sula-switch/sula-switch.stories.d.ts +72 -0
  93. package/dist/types/components/sula-tag/model/sula-tag.model.d.ts +23 -0
  94. package/dist/types/components/sula-tag/sula-tag.d.ts +33 -0
  95. package/dist/types/components/sula-tag/sula-tag.stories.d.ts +82 -0
  96. package/dist/types/components/sula-textarea/model/sula-textarea.model.d.ts +4 -0
  97. package/dist/types/components/sula-textarea/sula-textarea.d.ts +65 -0
  98. package/dist/types/components/sula-textarea/sula-textarea.stories.d.ts +98 -0
  99. package/dist/types/components.d.ts +394 -0
  100. package/dist/webcomponents/{p-fbee9d79.js → p-5a36af0f.js} +272 -250
  101. package/dist/{esm/index-1dc4ae53.js.map → webcomponents/p-5a36af0f.js.map} +1 -1
  102. package/dist/webcomponents/{p-77709b3c.entry.js → p-d60ee44a.entry.js} +761 -100
  103. package/dist/webcomponents/p-d60ee44a.entry.js.map +1 -0
  104. package/dist/webcomponents/webcomponents.esm.js +44 -3
  105. package/dist/webcomponents/webcomponents.esm.js.map +1 -1
  106. package/package.json +2 -2
  107. package/readme.md +36 -18
  108. package/dist/cjs/index-3eac14f6.js.map +0 -1
  109. package/dist/cjs/sula-avatar_4.cjs.entry.js.map +0 -1
  110. package/dist/components/p-ca146b16.js.map +0 -1
  111. package/dist/esm/sula-avatar_4.entry.js.map +0 -1
  112. package/dist/webcomponents/p-77709b3c.entry.js.map +0 -1
  113. package/dist/webcomponents/p-fbee9d79.js.map +0 -1
@@ -0,0 +1,233 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { SulaCheckboxType } from "./model/sula-checkbox.model";
3
+ export class SulaCheckbox {
4
+ constructor() {
5
+ /**
6
+ * Checkbox type
7
+ */
8
+ this.type = SulaCheckboxType.Default;
9
+ /**
10
+ * Is checbox disabled
11
+ */
12
+ this.disabled = false;
13
+ /**
14
+ * Is checkbox checked
15
+ */
16
+ this.checked = false;
17
+ this.isFocus = false;
18
+ this.toggle = () => {
19
+ if (!this.disabled) {
20
+ this.checked = !this.checked;
21
+ this.valueChanged.emit(this.checked);
22
+ }
23
+ };
24
+ this.handleFocus = () => {
25
+ if (!this.disabled) {
26
+ this.isFocus = true;
27
+ this.focusedOn.emit();
28
+ }
29
+ };
30
+ this.handleBlur = () => {
31
+ if (!this.disabled) {
32
+ this.focusedOut.emit();
33
+ this.isFocus = false;
34
+ }
35
+ };
36
+ }
37
+ getIconColor() {
38
+ if (this.disabled) {
39
+ return 'text-icon-disabled';
40
+ }
41
+ return 'text-negative-negative-1';
42
+ }
43
+ render() {
44
+ return (h(Host, { key: '56a8c43bf6e8cdd4a687f5730b86485522486ded' }, h("div", { key: '924f574fecc6e3a92cfc82cd63b9e8345afbe11a', class: {
45
+ 'outline-none': true,
46
+ 'flex items-center space-x-12': !!this.label && this.type === SulaCheckboxType.Default,
47
+ 'flex items-center justify-between bg-surface-on-body rounded-md w-[280px] min-h-[85px] px-24 py-16': this.type === SulaCheckboxType.List,
48
+ 'hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed cursor-pointer': this.type === SulaCheckboxType.List && !this.disabled,
49
+ 'container-focus': this.isFocus && this.type === SulaCheckboxType.List,
50
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.toggle, tabIndex: 0 }, this.type === SulaCheckboxType.List && (h("div", { key: '7b0ba9c45a7a6733fba4520e8fffe5e9cc1f775e', class: "flex flex-col flex-1 mr-16 overflow-hidden" }, !!this.label && h("label", { key: '61b673e866c72a33ab623f656fe882e3df4f04a3', class: "text-text-primary font-bold text-base cursor-pointer break-words" }, this.label), !!this.subTitle && h("span", { key: '3b3a40d2a4fd14b943722a13c06e2478d19337c9', class: "text-text-secondary text-base break-words" }, this.subTitle))), h("div", { key: '03b6d405c2b7aadd113f1314bc12c99103bc72ac', tabIndex: 0, class: {
51
+ 'flex justify-center items-center rounded-xs w-[27px] h-[27px] border outline-none flex-shrink-0': true,
52
+ 'checkbox-focus': this.isFocus && this.type === SulaCheckboxType.Default,
53
+ 'cursor-pointer active:bg-states-empty-bg-pressed': !this.disabled,
54
+ 'bg-states-bg-disabled border-states-bg-disabled': this.disabled,
55
+ 'bg-brand-primary border-brand-primary': this.checked,
56
+ 'bg-surface-body border-line-input': !this.checked,
57
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.checked && (h("div", { key: 'ede285c57a75d7a12a4477b31b9c195cd42efca1', class: "flex justify-center items-center" }, h("sula-icon", { key: '5546613a4121659fadb2061e4701ab831dd3bbc6', icon: "ph-bold ph-check", customClass: `${this.getIconColor()} text-xl` })))), !!this.label && this.type === SulaCheckboxType.Default && h("label", { key: '5f1fa7508c159f4b486dad0d4392706e2ca704f1', class: "text-text-secondary text-base cursor-pointer break-words" }, this.label))));
58
+ }
59
+ static get is() { return "sula-checkbox"; }
60
+ static get encapsulation() { return "shadow"; }
61
+ static get originalStyleUrls() {
62
+ return {
63
+ "$": ["sula-checkbox.scss"]
64
+ };
65
+ }
66
+ static get styleUrls() {
67
+ return {
68
+ "$": ["sula-checkbox.css"]
69
+ };
70
+ }
71
+ static get properties() {
72
+ return {
73
+ "type": {
74
+ "type": "string",
75
+ "mutable": true,
76
+ "complexType": {
77
+ "original": "SulaCheckboxType",
78
+ "resolved": "SulaCheckboxType.Default | SulaCheckboxType.List",
79
+ "references": {
80
+ "SulaCheckboxType": {
81
+ "location": "import",
82
+ "path": "./model/sula-checkbox.model",
83
+ "id": "src/components/sula-checkbox/model/sula-checkbox.model.ts::SulaCheckboxType"
84
+ }
85
+ }
86
+ },
87
+ "required": false,
88
+ "optional": false,
89
+ "docs": {
90
+ "tags": [],
91
+ "text": "Checkbox type"
92
+ },
93
+ "getter": false,
94
+ "setter": false,
95
+ "attribute": "type",
96
+ "reflect": false,
97
+ "defaultValue": "SulaCheckboxType.Default"
98
+ },
99
+ "label": {
100
+ "type": "string",
101
+ "mutable": true,
102
+ "complexType": {
103
+ "original": "string",
104
+ "resolved": "string",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": true,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "Checkbox label"
112
+ },
113
+ "getter": false,
114
+ "setter": false,
115
+ "attribute": "label",
116
+ "reflect": false
117
+ },
118
+ "subTitle": {
119
+ "type": "string",
120
+ "mutable": true,
121
+ "complexType": {
122
+ "original": "string",
123
+ "resolved": "string",
124
+ "references": {}
125
+ },
126
+ "required": false,
127
+ "optional": true,
128
+ "docs": {
129
+ "tags": [],
130
+ "text": "Checkbox sub title (avaible when is `list` type)"
131
+ },
132
+ "getter": false,
133
+ "setter": false,
134
+ "attribute": "sub-title",
135
+ "reflect": false
136
+ },
137
+ "disabled": {
138
+ "type": "boolean",
139
+ "mutable": true,
140
+ "complexType": {
141
+ "original": "boolean",
142
+ "resolved": "boolean",
143
+ "references": {}
144
+ },
145
+ "required": false,
146
+ "optional": false,
147
+ "docs": {
148
+ "tags": [],
149
+ "text": "Is checbox disabled"
150
+ },
151
+ "getter": false,
152
+ "setter": false,
153
+ "attribute": "disabled",
154
+ "reflect": false,
155
+ "defaultValue": "false"
156
+ },
157
+ "checked": {
158
+ "type": "boolean",
159
+ "mutable": true,
160
+ "complexType": {
161
+ "original": "boolean",
162
+ "resolved": "boolean",
163
+ "references": {}
164
+ },
165
+ "required": false,
166
+ "optional": false,
167
+ "docs": {
168
+ "tags": [],
169
+ "text": "Is checkbox checked"
170
+ },
171
+ "getter": false,
172
+ "setter": false,
173
+ "attribute": "checked",
174
+ "reflect": false,
175
+ "defaultValue": "false"
176
+ }
177
+ };
178
+ }
179
+ static get states() {
180
+ return {
181
+ "isFocus": {}
182
+ };
183
+ }
184
+ static get events() {
185
+ return [{
186
+ "method": "valueChanged",
187
+ "name": "valueChanged",
188
+ "bubbles": true,
189
+ "cancelable": true,
190
+ "composed": true,
191
+ "docs": {
192
+ "tags": [],
193
+ "text": "Event emitted when checkbox value changes."
194
+ },
195
+ "complexType": {
196
+ "original": "boolean",
197
+ "resolved": "boolean",
198
+ "references": {}
199
+ }
200
+ }, {
201
+ "method": "focusedOn",
202
+ "name": "focusedOn",
203
+ "bubbles": true,
204
+ "cancelable": true,
205
+ "composed": true,
206
+ "docs": {
207
+ "tags": [],
208
+ "text": "Event emitted when checkbox is focused."
209
+ },
210
+ "complexType": {
211
+ "original": "void",
212
+ "resolved": "void",
213
+ "references": {}
214
+ }
215
+ }, {
216
+ "method": "focusedOut",
217
+ "name": "focusedOut",
218
+ "bubbles": true,
219
+ "cancelable": true,
220
+ "composed": true,
221
+ "docs": {
222
+ "tags": [],
223
+ "text": "Event emitted when checkbox is focused out."
224
+ },
225
+ "complexType": {
226
+ "original": "void",
227
+ "resolved": "void",
228
+ "references": {}
229
+ }
230
+ }];
231
+ }
232
+ }
233
+ //# sourceMappingURL=sula-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sula-checkbox.js","sourceRoot":"","sources":["../../../src/components/sula-checkbox/sula-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { SulaCheckboxType } from './model/sula-checkbox.model';\n\n@Component({\n tag: 'sula-checkbox',\n styleUrl: 'sula-checkbox.scss',\n shadow: true,\n})\nexport class SulaCheckbox {\n /**\n * Checkbox type\n */\n @Prop({ mutable: true }) type: SulaCheckboxType = SulaCheckboxType.Default;\n\n /**\n * Checkbox label\n */\n @Prop({ mutable: true }) label?: string;\n\n /**\n * Checkbox sub title (avaible when is `list` type)\n */\n @Prop({ mutable: true }) subTitle?: string;\n\n /**\n * Is checbox disabled\n */\n @Prop({ mutable: true }) disabled: boolean = false;\n\n /**\n * Is checkbox checked\n */\n @Prop({ mutable: true }) checked: boolean = false;\n\n /**\n * Event emitted when checkbox value changes.\n */\n @Event()\n valueChanged: EventEmitter<boolean>;\n\n /**\n * Event emitted when checkbox is focused.\n */\n @Event()\n focusedOn: EventEmitter<void>;\n\n /**\n * Event emitted when checkbox is focused out.\n */\n @Event()\n focusedOut: EventEmitter<void>;\n\n @State()\n isFocus: boolean = false;\n\n toggle = () => {\n if (!this.disabled) {\n this.checked = !this.checked;\n this.valueChanged.emit(this.checked);\n }\n };\n\n handleFocus = () => {\n if (!this.disabled) {\n this.isFocus = true;\n this.focusedOn.emit();\n }\n };\n\n handleBlur = () => {\n if (!this.disabled) {\n this.focusedOut.emit();\n this.isFocus = false;\n }\n };\n\n getIconColor() {\n if (this.disabled) {\n return 'text-icon-disabled';\n }\n\n return 'text-negative-negative-1';\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'outline-none': true,\n 'flex items-center space-x-12': !!this.label && this.type === SulaCheckboxType.Default,\n 'flex items-center justify-between bg-surface-on-body rounded-md w-[280px] min-h-[85px] px-24 py-16': this.type === SulaCheckboxType.List,\n 'hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed cursor-pointer': this.type === SulaCheckboxType.List && !this.disabled,\n 'container-focus': this.isFocus && this.type === SulaCheckboxType.List,\n }}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.toggle}\n tabIndex={0}\n >\n {this.type === SulaCheckboxType.List && (\n <div class=\"flex flex-col flex-1 mr-16 overflow-hidden\">\n {!!this.label && <label class=\"text-text-primary font-bold text-base cursor-pointer break-words\">{this.label}</label>}\n {!!this.subTitle && <span class=\"text-text-secondary text-base break-words\">{this.subTitle}</span>}\n </div>\n )}\n\n <div\n tabIndex={0}\n class={{\n 'flex justify-center items-center rounded-xs w-[27px] h-[27px] border outline-none flex-shrink-0': true,\n 'checkbox-focus': this.isFocus && this.type === SulaCheckboxType.Default,\n 'cursor-pointer active:bg-states-empty-bg-pressed': !this.disabled,\n 'bg-states-bg-disabled border-states-bg-disabled': this.disabled,\n 'bg-brand-primary border-brand-primary': this.checked,\n 'bg-surface-body border-line-input': !this.checked,\n }}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n >\n {this.checked && (\n <div class=\"flex justify-center items-center\">\n <sula-icon icon=\"ph-bold ph-check\" customClass={`${this.getIconColor()} text-xl`}></sula-icon>\n </div>\n )}\n </div>\n {!!this.label && this.type === SulaCheckboxType.Default && <label class=\"text-text-secondary text-base cursor-pointer break-words\">{this.label}</label>}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,113 @@
1
+ import { SulaCheckboxType } from "./model/sula-checkbox.model";
2
+ export default {
3
+ title: 'Components/sula-checkbox',
4
+ tags: ['autodocs'],
5
+ argTypes: {
6
+ type: {
7
+ control: { type: 'select' },
8
+ options: Object.values(SulaCheckboxType),
9
+ defaultValue: SulaCheckboxType.Default,
10
+ description: 'The checkbox type',
11
+ type: {
12
+ required: false,
13
+ },
14
+ },
15
+ label: {
16
+ control: 'text',
17
+ defaultValue: 'Label',
18
+ description: 'The checkbox label',
19
+ type: {
20
+ required: false,
21
+ },
22
+ },
23
+ subTitle: {
24
+ control: 'text',
25
+ defaultValue: '',
26
+ description: 'The checkbox subtitle (available when type is List)',
27
+ type: {
28
+ required: false,
29
+ },
30
+ },
31
+ disabled: {
32
+ control: 'boolean',
33
+ defaultValue: false,
34
+ description: 'Whether the checkbox is disabled',
35
+ type: {
36
+ required: false,
37
+ },
38
+ },
39
+ checked: {
40
+ control: 'boolean',
41
+ defaultValue: false,
42
+ description: 'Whether the checkbox is checked',
43
+ type: {
44
+ required: false,
45
+ },
46
+ },
47
+ valueChanged: {
48
+ action: 'valueChanged',
49
+ description: 'Event emitted when checkbox value changes',
50
+ },
51
+ focusedOn: {
52
+ action: 'focusedOn',
53
+ description: 'Event emitted when checkbox is focused',
54
+ },
55
+ focusedOut: {
56
+ action: 'focusedOut',
57
+ description: 'Event emitted when checkbox loses focus',
58
+ },
59
+ },
60
+ };
61
+ const Template = args => {
62
+ const container = document.createElement('div');
63
+ container.style.margin = '20px';
64
+ container.style.display = 'flex';
65
+ container.style.flexDirection = 'column';
66
+ container.style.gap = '20px';
67
+ const el = document.createElement('sula-checkbox');
68
+ el.setAttribute('type', args.type);
69
+ if (args.label)
70
+ el.setAttribute('label', args.label);
71
+ if (args.subTitle)
72
+ el.setAttribute('sub-title', args.subTitle);
73
+ el.setAttribute('disabled', args.disabled.toString());
74
+ el.setAttribute('checked', args.checked.toString());
75
+ el.addEventListener('valueChanged', args.valueChanged);
76
+ el.addEventListener('focusedOn', args.focusedOn);
77
+ el.addEventListener('focusedOut', args.focusedOut);
78
+ container.appendChild(el);
79
+ return container;
80
+ };
81
+ export const Default = Template.bind({});
82
+ Default.args = {
83
+ type: SulaCheckboxType.Default,
84
+ label: 'Aceitar termos e condições',
85
+ subTitle: '',
86
+ disabled: false,
87
+ checked: false,
88
+ };
89
+ export const DefaultChecked = Template.bind({});
90
+ DefaultChecked.args = Object.assign(Object.assign({}, Default.args), { checked: true });
91
+ export const DefaultDisabled = Template.bind({});
92
+ DefaultDisabled.args = Object.assign(Object.assign({}, Default.args), { disabled: true });
93
+ export const DefaultCheckedDisabled = Template.bind({});
94
+ DefaultCheckedDisabled.args = Object.assign(Object.assign({}, Default.args), { checked: true, disabled: true });
95
+ export const DefaultWithoutLabel = Template.bind({});
96
+ DefaultWithoutLabel.args = Object.assign(Object.assign({}, Default.args), { label: '' });
97
+ export const List = Template.bind({});
98
+ List.args = {
99
+ type: SulaCheckboxType.List,
100
+ label: 'Opção de lista',
101
+ subTitle: 'Descrição adicional para esta opção',
102
+ disabled: false,
103
+ checked: false,
104
+ };
105
+ export const ListChecked = Template.bind({});
106
+ ListChecked.args = Object.assign(Object.assign({}, List.args), { checked: true });
107
+ export const ListDisabled = Template.bind({});
108
+ ListDisabled.args = Object.assign(Object.assign({}, List.args), { disabled: true });
109
+ export const ListCheckedDisabled = Template.bind({});
110
+ ListCheckedDisabled.args = Object.assign(Object.assign({}, List.args), { checked: true, disabled: true });
111
+ export const ListWithoutSubtitle = Template.bind({});
112
+ ListWithoutSubtitle.args = Object.assign(Object.assign({}, List.args), { subTitle: '' });
113
+ //# sourceMappingURL=sula-checkbox.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sula-checkbox.stories.js","sourceRoot":"","sources":["../../../src/components/sula-checkbox/sula-checkbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,eAAe;IACb,KAAK,EAAE,0BAA0B;IACjC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACxC,YAAY,EAAE,gBAAgB,CAAC,OAAO;YACtC,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,OAAO;YACrB,WAAW,EAAE,oBAAoB;YACjC,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,qDAAqD;YAClE,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,kCAAkC;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,2CAA2C;SACzD;QACD,SAAS,EAAE;YACT,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,wCAAwC;SACtD;QACD,UAAU,EAAE;YACV,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,yCAAyC;SACvD;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;IACtB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;IACzC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;IAE7B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAEnD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK;QAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,QAAQ;QAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpD,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnD,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE1B,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,IAAI,EAAE,gBAAgB,CAAC,OAAO;IAC9B,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,cAAc,CAAC,IAAI,mCACd,OAAO,CAAC,IAAI,KACf,OAAO,EAAE,IAAI,GACd,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,eAAe,CAAC,IAAI,mCACf,OAAO,CAAC,IAAI,KACf,QAAQ,EAAE,IAAI,GACf,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,sBAAsB,CAAC,IAAI,mCACtB,OAAO,CAAC,IAAI,KACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,IAAI,GACf,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrD,mBAAmB,CAAC,IAAI,mCACnB,OAAO,CAAC,IAAI,KACf,KAAK,EAAE,EAAE,GACV,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtC,IAAI,CAAC,IAAI,GAAG;IACV,IAAI,EAAE,gBAAgB,CAAC,IAAI;IAC3B,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,qCAAqC;IAC/C,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,WAAW,CAAC,IAAI,mCACX,IAAI,CAAC,IAAI,KACZ,OAAO,EAAE,IAAI,GACd,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAY,CAAC,IAAI,mCACZ,IAAI,CAAC,IAAI,KACZ,QAAQ,EAAE,IAAI,GACf,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrD,mBAAmB,CAAC,IAAI,mCACnB,IAAI,CAAC,IAAI,KACZ,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,IAAI,GACf,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrD,mBAAmB,CAAC,IAAI,mCACnB,IAAI,CAAC,IAAI,KACZ,QAAQ,EAAE,EAAE,GACb,CAAC","sourcesContent":["import { SulaCheckboxType } from './model/sula-checkbox.model';\n\nexport default {\n title: 'Components/sula-checkbox',\n tags: ['autodocs'],\n argTypes: {\n type: {\n control: { type: 'select' },\n options: Object.values(SulaCheckboxType),\n defaultValue: SulaCheckboxType.Default,\n description: 'The checkbox type',\n type: {\n required: false,\n },\n },\n label: {\n control: 'text',\n defaultValue: 'Label',\n description: 'The checkbox label',\n type: {\n required: false,\n },\n },\n subTitle: {\n control: 'text',\n defaultValue: '',\n description: 'The checkbox subtitle (available when type is List)',\n type: {\n required: false,\n },\n },\n disabled: {\n control: 'boolean',\n defaultValue: false,\n description: 'Whether the checkbox is disabled',\n type: {\n required: false,\n },\n },\n checked: {\n control: 'boolean',\n defaultValue: false,\n description: 'Whether the checkbox is checked',\n type: {\n required: false,\n },\n },\n valueChanged: {\n action: 'valueChanged',\n description: 'Event emitted when checkbox value changes',\n },\n focusedOn: {\n action: 'focusedOn',\n description: 'Event emitted when checkbox is focused',\n },\n focusedOut: {\n action: 'focusedOut',\n description: 'Event emitted when checkbox loses focus',\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.margin = '20px';\n container.style.display = 'flex';\n container.style.flexDirection = 'column';\n container.style.gap = '20px';\n\n const el = document.createElement('sula-checkbox');\n\n el.setAttribute('type', args.type);\n if (args.label) el.setAttribute('label', args.label);\n if (args.subTitle) el.setAttribute('sub-title', args.subTitle);\n el.setAttribute('disabled', args.disabled.toString());\n el.setAttribute('checked', args.checked.toString());\n\n el.addEventListener('valueChanged', args.valueChanged);\n el.addEventListener('focusedOn', args.focusedOn);\n el.addEventListener('focusedOut', args.focusedOut);\n\n container.appendChild(el);\n\n return container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n type: SulaCheckboxType.Default,\n label: 'Aceitar termos e condições',\n subTitle: '',\n disabled: false,\n checked: false,\n};\n\nexport const DefaultChecked = Template.bind({});\nDefaultChecked.args = {\n ...Default.args,\n checked: true,\n};\n\nexport const DefaultDisabled = Template.bind({});\nDefaultDisabled.args = {\n ...Default.args,\n disabled: true,\n};\n\nexport const DefaultCheckedDisabled = Template.bind({});\nDefaultCheckedDisabled.args = {\n ...Default.args,\n checked: true,\n disabled: true,\n};\n\nexport const DefaultWithoutLabel = Template.bind({});\nDefaultWithoutLabel.args = {\n ...Default.args,\n label: '',\n};\n\nexport const List = Template.bind({});\nList.args = {\n type: SulaCheckboxType.List,\n label: 'Opção de lista',\n subTitle: 'Descrição adicional para esta opção',\n disabled: false,\n checked: false,\n};\n\nexport const ListChecked = Template.bind({});\nListChecked.args = {\n ...List.args,\n checked: true,\n};\n\nexport const ListDisabled = Template.bind({});\nListDisabled.args = {\n ...List.args,\n disabled: true,\n};\n\nexport const ListCheckedDisabled = Template.bind({});\nListCheckedDisabled.args = {\n ...List.args,\n checked: true,\n disabled: true,\n};\n\nexport const ListWithoutSubtitle = Template.bind({});\nListWithoutSubtitle.args = {\n ...List.args,\n subTitle: '',\n};\n"]}