@sula-tech/webcomponents 0.5.0 → 0.7.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 (93) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{sula-avatar_16.cjs.entry.js → sula-avatar_18.cjs.entry.js} +224 -50
  3. package/dist/cjs/sula-avatar_18.cjs.entry.js.map +1 -0
  4. package/dist/cjs/webcomponents.cjs.js +1 -1
  5. package/dist/collection/collection-manifest.json +2 -0
  6. package/dist/collection/components/sula-button/sula-button.css +1 -1
  7. package/dist/collection/components/sula-button/sula-button.js +90 -6
  8. package/dist/collection/components/sula-button/sula-button.js.map +1 -1
  9. package/dist/collection/components/sula-button/sula-button.stories.js +283 -96
  10. package/dist/collection/components/sula-button/sula-button.stories.js.map +1 -1
  11. package/dist/collection/components/sula-checkbox/sula-checkbox.js +3 -3
  12. package/dist/collection/components/sula-chip/sula-chip.js +3 -3
  13. package/dist/collection/components/sula-dropdown/sula-dropdown.js +4 -4
  14. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  15. package/dist/collection/components/sula-icon/sula-icon.js +1 -1
  16. package/dist/collection/components/sula-loader/sula-loader.css +1 -1
  17. package/dist/collection/components/sula-loader/sula-loader.js +1 -1
  18. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +1 -1
  19. package/dist/collection/components/sula-progress-bar/model/sula-progress-bar.model.js +15 -0
  20. package/dist/collection/components/sula-progress-bar/model/sula-progress-bar.model.js.map +1 -0
  21. package/dist/collection/components/sula-progress-bar/sula-progress-bar.css +1 -0
  22. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +213 -0
  23. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js.map +1 -0
  24. package/dist/collection/components/sula-progress-bar/sula-progress.stories.js +172 -0
  25. package/dist/collection/components/sula-progress-bar/sula-progress.stories.js.map +1 -0
  26. package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
  27. package/dist/collection/components/sula-search-bar/model/sula-search.bar-model.js +6 -0
  28. package/dist/collection/components/sula-search-bar/model/sula-search.bar-model.js.map +1 -0
  29. package/dist/collection/components/sula-search-bar/sula-search-bar.css +1 -0
  30. package/dist/collection/components/sula-search-bar/sula-search-bar.js +240 -0
  31. package/dist/collection/components/sula-search-bar/sula-search-bar.js.map +1 -0
  32. package/dist/collection/components/sula-search-bar/sula-search-bar.stories.js +119 -0
  33. package/dist/collection/components/sula-search-bar/sula-search-bar.stories.js.map +1 -0
  34. package/dist/collection/components/sula-switch/sula-switch.js +4 -4
  35. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  36. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  37. package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
  38. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  39. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  40. package/dist/components/{p-CYhL1fU6.js → p-5IbiLIg7.js} +4 -4
  41. package/dist/components/{p-CYhL1fU6.js.map → p-5IbiLIg7.js.map} +1 -1
  42. package/dist/components/{p-CjYWDIHR.js → p-BNtk_d_S.js} +3 -3
  43. package/dist/components/{p-CjYWDIHR.js.map → p-BNtk_d_S.js.map} +1 -1
  44. package/dist/components/p-D4nvaSNA.js +27129 -0
  45. package/dist/components/p-D4nvaSNA.js.map +1 -0
  46. package/dist/components/sula-avatar.js +1 -1
  47. package/dist/components/sula-badge.js +1 -1
  48. package/dist/components/sula-button.js +44 -10
  49. package/dist/components/sula-button.js.map +1 -1
  50. package/dist/components/sula-checkbox.js +4 -4
  51. package/dist/components/sula-chip.js +5 -5
  52. package/dist/components/sula-dropdown.js +6 -6
  53. package/dist/components/sula-icon.js +1 -1
  54. package/dist/components/sula-loader.js +1 -27124
  55. package/dist/components/sula-loader.js.map +1 -1
  56. package/dist/components/sula-menu-select-list.js +1 -1
  57. package/dist/components/sula-progress-bar.d.ts +11 -0
  58. package/dist/components/sula-progress-bar.js +122 -0
  59. package/dist/components/sula-progress-bar.js.map +1 -0
  60. package/dist/components/sula-radio-button.js +2 -2
  61. package/dist/components/sula-search-bar.d.ts +11 -0
  62. package/dist/components/sula-search-bar.js +104 -0
  63. package/dist/components/sula-search-bar.js.map +1 -0
  64. package/dist/components/sula-switch.js +4 -4
  65. package/dist/components/sula-tag.js +4 -4
  66. package/dist/components/sula-textarea.js +6 -6
  67. package/dist/components/sula-textfield.js +3 -3
  68. package/dist/components/sula-tiles.js +2 -2
  69. package/dist/components/sula-timeline-list.js +2 -2
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/{sula-avatar_16.entry.js → sula-avatar_18.entry.js} +223 -51
  72. package/dist/esm/sula-avatar_18.entry.js.map +1 -0
  73. package/dist/esm/webcomponents.js +1 -1
  74. package/dist/types/components/sula-button/sula-button.d.ts +15 -1
  75. package/dist/types/components/sula-button/sula-button.stories.d.ts +137 -33
  76. package/dist/types/components/sula-progress-bar/model/sula-progress-bar.model.d.ts +12 -0
  77. package/dist/types/components/sula-progress-bar/sula-progress-bar.d.ts +33 -0
  78. package/dist/types/components/sula-progress-bar/sula-progress.stories.d.ts +84 -0
  79. package/dist/types/components/sula-search-bar/model/sula-search.bar-model.d.ts +4 -0
  80. package/dist/types/components/sula-search-bar/sula-search-bar.d.ts +50 -0
  81. package/dist/types/components/sula-search-bar/sula-search-bar.stories.d.ts +84 -0
  82. package/dist/types/components.d.ts +186 -0
  83. package/dist/webcomponents/{p-51f9d6a5.entry.js → p-da741505.entry.js} +2792 -2538
  84. package/dist/webcomponents/p-da741505.entry.js.map +1 -0
  85. package/dist/webcomponents/webcomponents.esm.js +34 -14
  86. package/package.json +1 -1
  87. package/readme.md +79 -19
  88. package/dist/cjs/sula-avatar.sula-badge.sula-button.sula-checkbox.sula-chip.sula-dropdown.sula-icon.sula-loader.sula-menu-select-list.sula-radio-button.sula-switch.sula-tag.sula-textarea.sula-textfield.sula-tiles.sula-timeline-list.entry.cjs.js.map +0 -1
  89. package/dist/cjs/sula-avatar_16.cjs.entry.js.map +0 -1
  90. package/dist/esm/sula-avatar.sula-badge.sula-button.sula-checkbox.sula-chip.sula-dropdown.sula-icon.sula-loader.sula-menu-select-list.sula-radio-button.sula-switch.sula-tag.sula-textarea.sula-textfield.sula-tiles.sula-timeline-list.entry.js.map +0 -1
  91. package/dist/esm/sula-avatar_16.entry.js.map +0 -1
  92. package/dist/webcomponents/p-51f9d6a5.entry.js.map +0 -1
  93. package/dist/webcomponents/sula-avatar.sula-badge.sula-button.sula-checkbox.sula-chip.sula-dropdown.sula-icon.sula-loader.sula-menu-select-list.sula-radio-button.sula-switch.sula-tag.sula-textarea.sula-textfield.sula-tiles.sula-timeline-list.entry.esm.js.map +0 -1
@@ -5,81 +5,119 @@ export default {
5
5
  argTypes: {
6
6
  text: {
7
7
  control: 'text',
8
- defaultValue: 'Button Text',
9
- description: 'Button text when is text type',
10
- type: {
11
- required: false,
8
+ description: 'Texto do botão quando é do tipo texto',
9
+ table: {
10
+ type: { summary: 'string' },
11
+ defaultValue: { summary: 'undefined' },
12
12
  },
13
13
  },
14
14
  icon: {
15
15
  control: 'text',
16
- defaultValue: 'ph ph-house',
17
- description: 'Button icon when is Icon type',
18
- type: {
19
- required: false,
16
+ description: 'Ícone do botão quando é do tipo ícone',
17
+ table: {
18
+ type: { summary: 'string' },
19
+ defaultValue: { summary: 'undefined' },
20
+ },
21
+ },
22
+ leftIcon: {
23
+ control: 'text',
24
+ description: 'Ícone à esquerda do texto',
25
+ table: {
26
+ type: { summary: 'string' },
27
+ defaultValue: { summary: 'undefined' },
28
+ },
29
+ },
30
+ rightIcon: {
31
+ control: 'text',
32
+ description: 'Ícone à direita do texto',
33
+ table: {
34
+ type: { summary: 'string' },
35
+ defaultValue: { summary: 'undefined' },
20
36
  },
21
37
  },
22
38
  appearance: {
23
39
  control: { type: 'select' },
24
40
  options: Object.values(SulaButtonAppearance),
25
- defaultValue: SulaButtonAppearance.Default,
26
- description: 'Button appearance',
27
- type: {
28
- required: false,
41
+ description: 'Aparência visual do botão',
42
+ table: {
43
+ type: { summary: 'SulaButtonAppearance' },
44
+ defaultValue: { summary: 'SulaButtonAppearance.Default' },
29
45
  },
30
46
  },
31
47
  type: {
32
48
  control: { type: 'select' },
33
49
  options: Object.values(SulaButtonType),
34
- defaultValue: SulaButtonType.Text,
35
- description: 'Button type',
36
- type: {
37
- required: false,
50
+ description: 'Tipo do botão (texto ou ícone)',
51
+ table: {
52
+ type: { summary: 'SulaButtonType' },
53
+ defaultValue: { summary: 'SulaButtonType.Text' },
38
54
  },
39
55
  },
40
56
  size: {
41
57
  control: { type: 'select' },
42
58
  options: Object.values(SulaButtonSize),
43
- defaultValue: SulaButtonSize.Default,
44
- description: 'Button size',
45
- type: {
46
- required: false,
59
+ description: 'Tamanho do botão',
60
+ table: {
61
+ type: { summary: 'SulaButtonSize' },
62
+ defaultValue: { summary: 'SulaButtonSize.Default' },
47
63
  },
48
64
  },
49
65
  status: {
50
66
  control: { type: 'select' },
51
67
  options: Object.values(SulaButtonStatus),
52
- defaultValue: SulaButtonStatus.Primary,
53
- description: 'Button status',
54
- type: {
55
- required: false,
68
+ description: 'Status/cor do botão',
69
+ table: {
70
+ type: { summary: 'SulaButtonStatus' },
71
+ defaultValue: { summary: 'SulaButtonStatus.Primary' },
56
72
  },
57
73
  },
58
74
  loading: {
59
75
  control: 'boolean',
60
- defaultValue: false,
61
- description: 'Is button loading',
62
- type: {
63
- required: false,
76
+ description: 'Estado de carregamento do botão',
77
+ table: {
78
+ type: { summary: 'boolean' },
79
+ defaultValue: { summary: 'false' },
80
+ },
81
+ },
82
+ fullWidth: {
83
+ control: 'boolean',
84
+ description: 'Aplica o full width no botão',
85
+ table: {
86
+ type: { summary: 'boolean' },
87
+ defaultValue: { summary: 'false' },
64
88
  },
65
89
  },
66
90
  buttonDisabled: {
67
91
  control: 'boolean',
68
- defaultValue: false,
69
- description: 'Is button disabled',
70
- type: {
71
- required: false,
92
+ description: 'Estado desabilitado do botão',
93
+ table: {
94
+ type: { summary: 'boolean' },
95
+ defaultValue: { summary: 'false' },
72
96
  },
73
97
  },
74
98
  buttonClicked: {
75
99
  action: 'buttonClicked',
76
100
  description: 'Evento emitido quando o botão é clicado',
101
+ table: {
102
+ type: { summary: 'CustomEvent<void>' },
103
+ },
77
104
  },
78
105
  },
79
106
  parameters: {
80
107
  docs: {
81
108
  description: {
82
- component: 'O componente Icon Button Sula Design System é utilizado como a representação visual para ações de clique. Eles serão utilizados para comunicar ações que os usuários podem tomar e permitir que eles interajam com a página de várias maneiras.',
109
+ component: `
110
+ O componente **Sula Button** é utilizado como representação visual para ações de clique.
111
+ Ele permite que os usuários interajam com a interface de diferentes maneiras, comunicando
112
+ ações disponíveis através de variações visuais e estados.
113
+
114
+ ### Características principais:
115
+ - Suporte a diferentes aparências (Default, Secondary, Text)
116
+ - Tipos de botão (Texto e Ícone)
117
+ - Estados de carregamento e desabilitado
118
+ - Diferentes tamanhos e status de cor
119
+ - Suporte a ícones laterais
120
+ `,
83
121
  },
84
122
  },
85
123
  },
@@ -87,129 +125,278 @@ export default {
87
125
  const Template = args => {
88
126
  const container = document.createElement('div');
89
127
  container.style.margin = '20px';
128
+ if (!args.fullWidth)
129
+ container.style.display = 'flex';
130
+ container.style.alignItems = 'center';
131
+ container.style.justifyContent = 'center';
132
+ container.style.minHeight = '80px';
90
133
  const el = document.createElement('sula-button');
91
134
  if (args.text)
92
135
  el.setAttribute('text', args.text);
93
136
  if (args.icon)
94
137
  el.setAttribute('icon', args.icon);
138
+ if (args.leftIcon)
139
+ el.setAttribute('left-icon', args.leftIcon);
140
+ if (args.rightIcon)
141
+ el.setAttribute('right-icon', args.rightIcon);
95
142
  el.setAttribute('appearance', args.appearance);
96
143
  el.setAttribute('type', args.type);
97
144
  el.setAttribute('size', args.size);
98
145
  el.setAttribute('status', args.status);
99
- el.setAttribute('loading', args.loading.toString());
100
- el.setAttribute('button-disabled', args.buttonDisabled.toString());
146
+ el.setAttribute('full-width', args.fullWidth ? args.fullWidth.toString() : 'false');
147
+ el.setAttribute('loading', args.loading ? args.loading.toString() : 'false');
148
+ el.setAttribute('button-disabled', args.buttonDisabled ? args.buttonDisabled.toString() : 'false');
101
149
  el.addEventListener('buttonClicked', args.buttonClicked);
102
150
  container.appendChild(el);
103
151
  return container;
104
152
  };
105
- export const Default = Template.bind({});
106
- Default.args = {
107
- text: 'Default Button',
108
- icon: '',
153
+ export const Playground = Template.bind({});
154
+ Playground.args = {
155
+ text: 'Button Text',
109
156
  appearance: SulaButtonAppearance.Default,
110
157
  type: SulaButtonType.Text,
111
158
  size: SulaButtonSize.Default,
112
159
  status: SulaButtonStatus.Primary,
113
160
  loading: false,
114
161
  buttonDisabled: false,
162
+ fullWidth: true,
115
163
  };
116
- export const IconButton = Template.bind({});
117
- IconButton.args = {
118
- text: '',
119
- icon: 'ph ph-house',
164
+ export const FullWidth = Template.bind({});
165
+ FullWidth.args = {
166
+ text: 'Full Width',
120
167
  appearance: SulaButtonAppearance.Default,
121
- type: SulaButtonType.Icon,
168
+ type: SulaButtonType.Text,
122
169
  size: SulaButtonSize.Default,
123
170
  status: SulaButtonStatus.Primary,
124
- loading: false,
125
- buttonDisabled: false,
171
+ fullWidth: true,
126
172
  };
127
- export const TextAppearance = Template.bind({});
128
- TextAppearance.args = {
129
- text: 'Text Button',
130
- icon: '',
131
- appearance: SulaButtonAppearance.Text,
173
+ export const DefaultAppearance = Template.bind({});
174
+ DefaultAppearance.args = {
175
+ text: 'Default Button',
176
+ appearance: SulaButtonAppearance.Default,
132
177
  type: SulaButtonType.Text,
133
178
  size: SulaButtonSize.Default,
134
179
  status: SulaButtonStatus.Primary,
135
- loading: false,
136
- buttonDisabled: false,
180
+ fullWidth: false,
137
181
  };
138
- export const SecondaryButton = Template.bind({});
139
- SecondaryButton.args = {
182
+ DefaultAppearance.parameters = {
183
+ docs: {
184
+ description: {
185
+ story: 'Botão com aparência padrão (preenchido).',
186
+ },
187
+ },
188
+ };
189
+ export const SecondaryAppearance = Template.bind({});
190
+ SecondaryAppearance.args = {
140
191
  text: 'Secondary Button',
141
- icon: '',
142
192
  appearance: SulaButtonAppearance.Secondary,
143
193
  type: SulaButtonType.Text,
144
194
  size: SulaButtonSize.Default,
145
195
  status: SulaButtonStatus.Primary,
146
- loading: false,
147
- buttonDisabled: false,
196
+ fullWidth: false,
148
197
  };
149
- export const LargeButton = Template.bind({});
150
- LargeButton.args = {
151
- text: 'Large Button',
152
- icon: '',
153
- appearance: SulaButtonAppearance.Default,
198
+ SecondaryAppearance.parameters = {
199
+ docs: {
200
+ description: {
201
+ story: 'Botão com aparência secundária (com borda).',
202
+ },
203
+ },
204
+ };
205
+ export const TextAppearance = Template.bind({});
206
+ TextAppearance.args = {
207
+ text: 'Text Button',
208
+ appearance: SulaButtonAppearance.Text,
154
209
  type: SulaButtonType.Text,
155
- size: SulaButtonSize.Large,
210
+ size: SulaButtonSize.Default,
156
211
  status: SulaButtonStatus.Primary,
157
- loading: false,
158
- buttonDisabled: false,
212
+ fullWidth: false,
213
+ };
214
+ TextAppearance.parameters = {
215
+ docs: {
216
+ description: {
217
+ story: 'Botão com aparência de texto (sem fundo).',
218
+ },
219
+ },
220
+ };
221
+ export const IconButton = Template.bind({});
222
+ IconButton.args = {
223
+ icon: 'ph ph-house',
224
+ appearance: SulaButtonAppearance.Default,
225
+ type: SulaButtonType.Icon,
226
+ size: SulaButtonSize.Default,
227
+ status: SulaButtonStatus.Primary,
228
+ fullWidth: false,
229
+ };
230
+ IconButton.parameters = {
231
+ docs: {
232
+ description: {
233
+ story: 'Botão contendo apenas um ícone.',
234
+ },
235
+ },
236
+ };
237
+ export const Sizes = () => {
238
+ const container = document.createElement('div');
239
+ container.style.display = 'flex';
240
+ container.style.gap = '16px';
241
+ container.style.alignItems = 'center';
242
+ container.style.padding = '20px';
243
+ const defaultButton = document.createElement('sula-button');
244
+ defaultButton.setAttribute('text', 'Default Size');
245
+ defaultButton.setAttribute('size', SulaButtonSize.Default);
246
+ const largeButton = document.createElement('sula-button');
247
+ largeButton.setAttribute('text', 'Large Size');
248
+ largeButton.setAttribute('size', SulaButtonSize.Large);
249
+ container.appendChild(defaultButton);
250
+ container.appendChild(largeButton);
251
+ return container;
252
+ };
253
+ Sizes.parameters = {
254
+ docs: {
255
+ description: {
256
+ story: 'Comparação entre os diferentes tamanhos disponíveis.',
257
+ },
258
+ },
259
+ };
260
+ export const StatusVariations = () => {
261
+ const container = document.createElement('div');
262
+ container.style.display = 'flex';
263
+ container.style.gap = '16px';
264
+ container.style.alignItems = 'center';
265
+ container.style.padding = '20px';
266
+ const primaryButton = document.createElement('sula-button');
267
+ primaryButton.setAttribute('text', 'Primary');
268
+ primaryButton.setAttribute('status', SulaButtonStatus.Primary);
269
+ const dangerButton = document.createElement('sula-button');
270
+ dangerButton.setAttribute('text', 'Danger');
271
+ dangerButton.setAttribute('status', SulaButtonStatus.Danger);
272
+ const negativeButton = document.createElement('sula-button');
273
+ negativeButton.setAttribute('text', 'Negative');
274
+ negativeButton.setAttribute('status', SulaButtonStatus.Negative);
275
+ container.appendChild(primaryButton);
276
+ container.appendChild(dangerButton);
277
+ container.appendChild(negativeButton);
278
+ return container;
159
279
  };
160
- export const DangerButton = Template.bind({});
161
- DangerButton.args = {
162
- text: 'Danger Button',
163
- icon: '',
280
+ StatusVariations.parameters = {
281
+ docs: {
282
+ description: {
283
+ story: 'Diferentes status/cores disponíveis para o botão.',
284
+ },
285
+ },
286
+ };
287
+ export const WithLeftIcon = Template.bind({});
288
+ WithLeftIcon.args = {
289
+ text: 'With Left Icon',
290
+ leftIcon: 'ph ph-plus',
164
291
  appearance: SulaButtonAppearance.Default,
165
292
  type: SulaButtonType.Text,
166
293
  size: SulaButtonSize.Default,
167
- status: SulaButtonStatus.Danger,
168
- loading: false,
169
- buttonDisabled: false,
294
+ status: SulaButtonStatus.Primary,
170
295
  };
171
- export const NegativeButton = Template.bind({});
172
- NegativeButton.args = {
173
- text: 'Negative Button',
174
- icon: '',
296
+ WithLeftIcon.parameters = {
297
+ docs: {
298
+ description: {
299
+ story: 'Botão com ícone à esquerda do texto.',
300
+ },
301
+ },
302
+ };
303
+ export const WithRightIcon = Template.bind({});
304
+ WithRightIcon.args = {
305
+ text: 'With Right Icon',
306
+ rightIcon: 'ph ph-arrow-right',
175
307
  appearance: SulaButtonAppearance.Default,
176
308
  type: SulaButtonType.Text,
177
309
  size: SulaButtonSize.Default,
178
- status: SulaButtonStatus.Negative,
179
- loading: false,
180
- buttonDisabled: false,
310
+ status: SulaButtonStatus.Primary,
181
311
  };
182
- export const DisabledButton = Template.bind({});
183
- DisabledButton.args = {
184
- text: 'Disabled Button',
185
- icon: '',
312
+ WithRightIcon.parameters = {
313
+ docs: {
314
+ description: {
315
+ story: 'Botão com ícone à direita do texto.',
316
+ },
317
+ },
318
+ };
319
+ export const WithBothIcons = Template.bind({});
320
+ WithBothIcons.args = {
321
+ text: 'Both Icons',
322
+ leftIcon: 'ph ph-download',
323
+ rightIcon: 'ph ph-arrow-down',
186
324
  appearance: SulaButtonAppearance.Default,
187
325
  type: SulaButtonType.Text,
188
326
  size: SulaButtonSize.Default,
189
327
  status: SulaButtonStatus.Primary,
190
- loading: false,
191
- buttonDisabled: true,
192
328
  };
193
- export const LoadingButton = Template.bind({});
194
- LoadingButton.args = {
329
+ WithBothIcons.parameters = {
330
+ docs: {
331
+ description: {
332
+ story: 'Botão com ícones em ambos os lados do texto.',
333
+ },
334
+ },
335
+ };
336
+ export const LoadingState = Template.bind({});
337
+ LoadingState.args = {
195
338
  text: 'Loading Button',
196
- icon: '',
197
339
  appearance: SulaButtonAppearance.Default,
198
340
  type: SulaButtonType.Text,
199
341
  size: SulaButtonSize.Default,
200
342
  status: SulaButtonStatus.Primary,
201
343
  loading: true,
202
- buttonDisabled: false,
203
344
  };
204
- export const IconAndTextButton = Template.bind({});
205
- IconAndTextButton.args = {
206
- text: 'Icon and Text',
207
- icon: 'ph ph-house',
345
+ LoadingState.parameters = {
346
+ docs: {
347
+ description: {
348
+ story: 'Botão em estado de carregamento.',
349
+ },
350
+ },
351
+ };
352
+ export const DisabledState = Template.bind({});
353
+ DisabledState.args = {
354
+ text: 'Disabled Button',
208
355
  appearance: SulaButtonAppearance.Default,
209
356
  type: SulaButtonType.Text,
210
357
  size: SulaButtonSize.Default,
211
358
  status: SulaButtonStatus.Primary,
212
- loading: false,
213
- buttonDisabled: false,
359
+ buttonDisabled: true,
360
+ };
361
+ DisabledState.parameters = {
362
+ docs: {
363
+ description: {
364
+ story: 'Botão em estado desabilitado.',
365
+ },
366
+ },
367
+ };
368
+ export const AllVariations = () => {
369
+ const container = document.createElement('div');
370
+ container.style.display = 'grid';
371
+ container.style.gridTemplateColumns = 'repeat(auto-fit, minmax(200px, 1fr))';
372
+ container.style.gap = '16px';
373
+ container.style.padding = '20px';
374
+ const variations = [
375
+ { text: 'Default Primary', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Primary },
376
+ { text: 'Default Danger', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Danger },
377
+ { text: 'Default Negative', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Negative },
378
+ { text: 'Secondary Primary', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Primary },
379
+ { text: 'Secondary Danger', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Danger },
380
+ { text: 'Secondary Negative', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Negative },
381
+ { text: 'Text Primary', appearance: SulaButtonAppearance.Text, status: SulaButtonStatus.Primary },
382
+ { text: 'Text Danger', appearance: SulaButtonAppearance.Text, status: SulaButtonStatus.Danger },
383
+ ];
384
+ variations.forEach(variation => {
385
+ const button = document.createElement('sula-button');
386
+ button.setAttribute('text', variation.text);
387
+ button.setAttribute('appearance', variation.appearance);
388
+ button.setAttribute('status', variation.status);
389
+ button.setAttribute('type', SulaButtonType.Text);
390
+ button.setAttribute('size', SulaButtonSize.Default);
391
+ container.appendChild(button);
392
+ });
393
+ return container;
394
+ };
395
+ AllVariations.parameters = {
396
+ docs: {
397
+ description: {
398
+ story: 'Visão geral de todas as combinações de aparência e status.',
399
+ },
400
+ },
214
401
  };
215
402
  //# sourceMappingURL=sula-button.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sula-button.stories.js","sourceRoot":"","sources":["../../../src/components/sula-button/sula-button.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaButtonAppearance, SulaButtonSize, SulaButtonStatus, SulaButtonType } from './model/sula-button.model';\n\nexport default {\n title: 'Components/sula-button',\n tags: ['autodocs'],\n argTypes: {\n text: {\n control: 'text',\n defaultValue: 'Button Text',\n description: 'Button text when is text type',\n type: {\n required: false,\n },\n },\n icon: {\n control: 'text',\n defaultValue: 'ph ph-house',\n description: 'Button icon when is Icon type',\n type: {\n required: false,\n },\n },\n appearance: {\n control: { type: 'select' },\n options: Object.values(SulaButtonAppearance),\n defaultValue: SulaButtonAppearance.Default,\n description: 'Button appearance',\n type: {\n required: false,\n },\n },\n type: {\n control: { type: 'select' },\n options: Object.values(SulaButtonType),\n defaultValue: SulaButtonType.Text,\n description: 'Button type',\n type: {\n required: false,\n },\n },\n size: {\n control: { type: 'select' },\n options: Object.values(SulaButtonSize),\n defaultValue: SulaButtonSize.Default,\n description: 'Button size',\n type: {\n required: false,\n },\n },\n status: {\n control: { type: 'select' },\n options: Object.values(SulaButtonStatus),\n defaultValue: SulaButtonStatus.Primary,\n description: 'Button status',\n type: {\n required: false,\n },\n },\n loading: {\n control: 'boolean',\n defaultValue: false,\n description: 'Is button loading',\n type: {\n required: false,\n },\n },\n buttonDisabled: {\n control: 'boolean',\n defaultValue: false,\n description: 'Is button disabled',\n type: {\n required: false,\n },\n },\n buttonClicked: {\n action: 'buttonClicked',\n description: 'Evento emitido quando o botão é clicado',\n },\n },\n parameters: {\n docs: {\n description: {\n component:\n 'O componente Icon Button Sula Design System é utilizado como a representação visual para ações de clique. Eles serão utilizados para comunicar ações que os usuários podem tomar e permitir que eles interajam com a página de várias maneiras.',\n },\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.margin = '20px';\n\n const el = document.createElement('sula-button');\n\n if (args.text) el.setAttribute('text', args.text);\n if (args.icon) el.setAttribute('icon', args.icon);\n el.setAttribute('appearance', args.appearance);\n el.setAttribute('type', args.type);\n el.setAttribute('size', args.size);\n el.setAttribute('status', args.status);\n el.setAttribute('loading', args.loading.toString());\n el.setAttribute('button-disabled', args.buttonDisabled.toString());\n\n el.addEventListener('buttonClicked', args.buttonClicked);\n\n container.appendChild(el);\n\n return container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n text: 'Default Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const IconButton = Template.bind({});\nIconButton.args = {\n text: '',\n icon: 'ph ph-house',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Icon,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const TextAppearance = Template.bind({});\nTextAppearance.args = {\n text: 'Text Button',\n icon: '',\n appearance: SulaButtonAppearance.Text,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const SecondaryButton = Template.bind({});\nSecondaryButton.args = {\n text: 'Secondary Button',\n icon: '',\n appearance: SulaButtonAppearance.Secondary,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const LargeButton = Template.bind({});\nLargeButton.args = {\n text: 'Large Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Large,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const DangerButton = Template.bind({});\nDangerButton.args = {\n text: 'Danger Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Danger,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const NegativeButton = Template.bind({});\nNegativeButton.args = {\n text: 'Negative Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Negative,\n loading: false,\n buttonDisabled: false,\n};\n\nexport const DisabledButton = Template.bind({});\nDisabledButton.args = {\n text: 'Disabled Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: true,\n};\n\nexport const LoadingButton = Template.bind({});\nLoadingButton.args = {\n text: 'Loading Button',\n icon: '',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: true,\n buttonDisabled: false,\n};\n\nexport const IconAndTextButton = Template.bind({});\nIconAndTextButton.args = {\n text: 'Icon and Text',\n icon: 'ph ph-house',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n};\n"]}
1
+ {"version":3,"file":"sula-button.stories.js","sourceRoot":"","sources":["../../../src/components/sula-button/sula-button.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaButtonAppearance, SulaButtonSize, SulaButtonStatus, SulaButtonType } from './model/sula-button.model';\n\nexport default {\n title: 'Components/sula-button',\n tags: ['autodocs'],\n argTypes: {\n text: {\n control: 'text',\n description: 'Texto do botão quando é do tipo texto',\n table: {\n type: { summary: 'string' },\n defaultValue: { summary: 'undefined' },\n },\n },\n icon: {\n control: 'text',\n description: 'Ícone do botão quando é do tipo ícone',\n table: {\n type: { summary: 'string' },\n defaultValue: { summary: 'undefined' },\n },\n },\n leftIcon: {\n control: 'text',\n description: 'Ícone à esquerda do texto',\n table: {\n type: { summary: 'string' },\n defaultValue: { summary: 'undefined' },\n },\n },\n rightIcon: {\n control: 'text',\n description: 'Ícone à direita do texto',\n table: {\n type: { summary: 'string' },\n defaultValue: { summary: 'undefined' },\n },\n },\n appearance: {\n control: { type: 'select' },\n options: Object.values(SulaButtonAppearance),\n description: 'Aparência visual do botão',\n table: {\n type: { summary: 'SulaButtonAppearance' },\n defaultValue: { summary: 'SulaButtonAppearance.Default' },\n },\n },\n type: {\n control: { type: 'select' },\n options: Object.values(SulaButtonType),\n description: 'Tipo do botão (texto ou ícone)',\n table: {\n type: { summary: 'SulaButtonType' },\n defaultValue: { summary: 'SulaButtonType.Text' },\n },\n },\n size: {\n control: { type: 'select' },\n options: Object.values(SulaButtonSize),\n description: 'Tamanho do botão',\n table: {\n type: { summary: 'SulaButtonSize' },\n defaultValue: { summary: 'SulaButtonSize.Default' },\n },\n },\n status: {\n control: { type: 'select' },\n options: Object.values(SulaButtonStatus),\n description: 'Status/cor do botão',\n table: {\n type: { summary: 'SulaButtonStatus' },\n defaultValue: { summary: 'SulaButtonStatus.Primary' },\n },\n },\n loading: {\n control: 'boolean',\n description: 'Estado de carregamento do botão',\n table: {\n type: { summary: 'boolean' },\n defaultValue: { summary: 'false' },\n },\n },\n fullWidth: {\n control: 'boolean',\n description: 'Aplica o full width no botão',\n table: {\n type: { summary: 'boolean' },\n defaultValue: { summary: 'false' },\n },\n },\n buttonDisabled: {\n control: 'boolean',\n description: 'Estado desabilitado do botão',\n table: {\n type: { summary: 'boolean' },\n defaultValue: { summary: 'false' },\n },\n },\n buttonClicked: {\n action: 'buttonClicked',\n description: 'Evento emitido quando o botão é clicado',\n table: {\n type: { summary: 'CustomEvent<void>' },\n },\n },\n },\n parameters: {\n docs: {\n description: {\n component: `\nO componente **Sula Button** é utilizado como representação visual para ações de clique. \nEle permite que os usuários interajam com a interface de diferentes maneiras, comunicando \nações disponíveis através de variações visuais e estados.\n\n### Características principais:\n- Suporte a diferentes aparências (Default, Secondary, Text)\n- Tipos de botão (Texto e Ícone)\n- Estados de carregamento e desabilitado\n- Diferentes tamanhos e status de cor\n- Suporte a ícones laterais\n `,\n },\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.margin = '20px';\n if (!args.fullWidth) container.style.display = 'flex';\n container.style.alignItems = 'center';\n container.style.justifyContent = 'center';\n\n container.style.minHeight = '80px';\n\n const el = document.createElement('sula-button');\n\n if (args.text) el.setAttribute('text', args.text);\n if (args.icon) el.setAttribute('icon', args.icon);\n if (args.leftIcon) el.setAttribute('left-icon', args.leftIcon);\n if (args.rightIcon) el.setAttribute('right-icon', args.rightIcon);\n\n el.setAttribute('appearance', args.appearance);\n el.setAttribute('type', args.type);\n el.setAttribute('size', args.size);\n el.setAttribute('status', args.status);\n el.setAttribute('full-width', args.fullWidth ? args.fullWidth.toString() : 'false');\n el.setAttribute('loading', args.loading ? args.loading.toString() : 'false');\n el.setAttribute('button-disabled', args.buttonDisabled ? args.buttonDisabled.toString() : 'false');\n\n el.addEventListener('buttonClicked', args.buttonClicked);\n\n container.appendChild(el);\n return container;\n};\n\nexport const Playground = Template.bind({});\nPlayground.args = {\n text: 'Button Text',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: false,\n buttonDisabled: false,\n fullWidth: true,\n};\n\nexport const FullWidth = Template.bind({});\nFullWidth.args = {\n text: 'Full Width',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n fullWidth: true,\n};\n\nexport const DefaultAppearance = Template.bind({});\nDefaultAppearance.args = {\n text: 'Default Button',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n fullWidth: false,\n};\nDefaultAppearance.parameters = {\n docs: {\n description: {\n story: 'Botão com aparência padrão (preenchido).',\n },\n },\n};\n\nexport const SecondaryAppearance = Template.bind({});\nSecondaryAppearance.args = {\n text: 'Secondary Button',\n appearance: SulaButtonAppearance.Secondary,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n fullWidth: false,\n};\nSecondaryAppearance.parameters = {\n docs: {\n description: {\n story: 'Botão com aparência secundária (com borda).',\n },\n },\n};\n\nexport const TextAppearance = Template.bind({});\nTextAppearance.args = {\n text: 'Text Button',\n appearance: SulaButtonAppearance.Text,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n fullWidth: false,\n};\nTextAppearance.parameters = {\n docs: {\n description: {\n story: 'Botão com aparência de texto (sem fundo).',\n },\n },\n};\n\nexport const IconButton = Template.bind({});\nIconButton.args = {\n icon: 'ph ph-house',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Icon,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n fullWidth: false,\n};\nIconButton.parameters = {\n docs: {\n description: {\n story: 'Botão contendo apenas um ícone.',\n },\n },\n};\n\nexport const Sizes = () => {\n const container = document.createElement('div');\n container.style.display = 'flex';\n container.style.gap = '16px';\n container.style.alignItems = 'center';\n container.style.padding = '20px';\n\n const defaultButton = document.createElement('sula-button');\n defaultButton.setAttribute('text', 'Default Size');\n defaultButton.setAttribute('size', SulaButtonSize.Default);\n\n const largeButton = document.createElement('sula-button');\n largeButton.setAttribute('text', 'Large Size');\n largeButton.setAttribute('size', SulaButtonSize.Large);\n\n container.appendChild(defaultButton);\n container.appendChild(largeButton);\n\n return container;\n};\nSizes.parameters = {\n docs: {\n description: {\n story: 'Comparação entre os diferentes tamanhos disponíveis.',\n },\n },\n};\n\nexport const StatusVariations = () => {\n const container = document.createElement('div');\n container.style.display = 'flex';\n container.style.gap = '16px';\n container.style.alignItems = 'center';\n container.style.padding = '20px';\n\n const primaryButton = document.createElement('sula-button');\n primaryButton.setAttribute('text', 'Primary');\n primaryButton.setAttribute('status', SulaButtonStatus.Primary);\n\n const dangerButton = document.createElement('sula-button');\n dangerButton.setAttribute('text', 'Danger');\n dangerButton.setAttribute('status', SulaButtonStatus.Danger);\n\n const negativeButton = document.createElement('sula-button');\n negativeButton.setAttribute('text', 'Negative');\n negativeButton.setAttribute('status', SulaButtonStatus.Negative);\n\n container.appendChild(primaryButton);\n container.appendChild(dangerButton);\n container.appendChild(negativeButton);\n\n return container;\n};\nStatusVariations.parameters = {\n docs: {\n description: {\n story: 'Diferentes status/cores disponíveis para o botão.',\n },\n },\n};\n\nexport const WithLeftIcon = Template.bind({});\nWithLeftIcon.args = {\n text: 'With Left Icon',\n leftIcon: 'ph ph-plus',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n};\nWithLeftIcon.parameters = {\n docs: {\n description: {\n story: 'Botão com ícone à esquerda do texto.',\n },\n },\n};\n\nexport const WithRightIcon = Template.bind({});\nWithRightIcon.args = {\n text: 'With Right Icon',\n rightIcon: 'ph ph-arrow-right',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n};\nWithRightIcon.parameters = {\n docs: {\n description: {\n story: 'Botão com ícone à direita do texto.',\n },\n },\n};\n\nexport const WithBothIcons = Template.bind({});\nWithBothIcons.args = {\n text: 'Both Icons',\n leftIcon: 'ph ph-download',\n rightIcon: 'ph ph-arrow-down',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n};\nWithBothIcons.parameters = {\n docs: {\n description: {\n story: 'Botão com ícones em ambos os lados do texto.',\n },\n },\n};\n\nexport const LoadingState = Template.bind({});\nLoadingState.args = {\n text: 'Loading Button',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n loading: true,\n};\nLoadingState.parameters = {\n docs: {\n description: {\n story: 'Botão em estado de carregamento.',\n },\n },\n};\n\nexport const DisabledState = Template.bind({});\nDisabledState.args = {\n text: 'Disabled Button',\n appearance: SulaButtonAppearance.Default,\n type: SulaButtonType.Text,\n size: SulaButtonSize.Default,\n status: SulaButtonStatus.Primary,\n buttonDisabled: true,\n};\nDisabledState.parameters = {\n docs: {\n description: {\n story: 'Botão em estado desabilitado.',\n },\n },\n};\n\nexport const AllVariations = () => {\n const container = document.createElement('div');\n container.style.display = 'grid';\n container.style.gridTemplateColumns = 'repeat(auto-fit, minmax(200px, 1fr))';\n container.style.gap = '16px';\n container.style.padding = '20px';\n\n const variations = [\n { text: 'Default Primary', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Primary },\n { text: 'Default Danger', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Danger },\n { text: 'Default Negative', appearance: SulaButtonAppearance.Default, status: SulaButtonStatus.Negative },\n { text: 'Secondary Primary', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Primary },\n { text: 'Secondary Danger', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Danger },\n { text: 'Secondary Negative', appearance: SulaButtonAppearance.Secondary, status: SulaButtonStatus.Negative },\n { text: 'Text Primary', appearance: SulaButtonAppearance.Text, status: SulaButtonStatus.Primary },\n { text: 'Text Danger', appearance: SulaButtonAppearance.Text, status: SulaButtonStatus.Danger },\n ];\n\n variations.forEach(variation => {\n const button = document.createElement('sula-button');\n button.setAttribute('text', variation.text);\n button.setAttribute('appearance', variation.appearance);\n button.setAttribute('status', variation.status);\n button.setAttribute('type', SulaButtonType.Text);\n button.setAttribute('size', SulaButtonSize.Default);\n container.appendChild(button);\n });\n\n return container;\n};\nAllVariations.parameters = {\n docs: {\n description: {\n story: 'Visão geral de todas as combinações de aparência e status.',\n },\n },\n};\n"]}
@@ -41,20 +41,20 @@ export class SulaCheckbox {
41
41
  return 'text-negative-negative-1';
42
42
  }
43
43
  render() {
44
- return (h(Host, { key: '56a8c43bf6e8cdd4a687f5730b86485522486ded' }, h("div", { key: '924f574fecc6e3a92cfc82cd63b9e8345afbe11a', class: {
44
+ return (h(Host, { key: '1f62bb3865134760716112f168c78a1412b770d0' }, h("div", { key: '2edbfdbfc3b48135383c5681cf5763b276942ff9', class: {
45
45
  'outline-none': true,
46
46
  'flex items-center space-x-12': !!this.label && this.type === SulaCheckboxType.Default,
47
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
48
  'hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed cursor-pointer': this.type === SulaCheckboxType.List && !this.disabled,
49
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: {
50
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.toggle, tabIndex: 0 }, this.type === SulaCheckboxType.List && (h("div", { key: '577dc485bf9f39bb64ae98f0e17b410af4910d9a', class: "flex flex-col flex-1 mr-16 overflow-hidden" }, !!this.label && h("label", { key: '5c352cfa5f71a29848e4dd0069b487968cf31018', class: "text-text-primary font-bold text-base cursor-pointer break-words" }, this.label), !!this.subTitle && h("span", { key: '473f6dcdb47d590037970172455dcc705350b9b1', class: "text-text-secondary text-base break-words" }, this.subTitle))), h("div", { key: 'dbc2782e0f323927dc42c90c7eaceaa04ce8d870', tabIndex: 0, class: {
51
51
  'flex justify-center items-center rounded-xs w-[27px] h-[27px] border outline-none flex-shrink-0': true,
52
52
  'checkbox-focus': this.isFocus && this.type === SulaCheckboxType.Default,
53
53
  'cursor-pointer active:bg-states-empty-bg-pressed': !this.disabled,
54
54
  'bg-states-bg-disabled border-states-bg-disabled': this.disabled,
55
55
  'bg-brand-primary border-brand-primary': this.checked,
56
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))));
57
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.checked && (h("div", { key: 'bc2712c3d43788ffbddcee8bd920f985d867d357', class: "flex justify-center items-center" }, h("sula-icon", { key: '00808ef092a0f06a1692f77cf11a700f5e6be3ce', icon: "ph-bold ph-check", customClass: `${this.getIconColor()} text-xl` })))), !!this.label && this.type === SulaCheckboxType.Default && h("label", { key: '67a977a81ee6e282976fff2621630f6f45c96da3', class: "text-text-secondary text-base cursor-pointer break-words" }, this.label))));
58
58
  }
59
59
  static get is() { return "sula-checkbox"; }
60
60
  static get encapsulation() { return "shadow"; }
@@ -63,7 +63,7 @@ export class SulaChip {
63
63
  }
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: '0c92444ee99a6001fc4e660378a34d1edf35330a', ref: node => (this.node = node) }, h("div", { key: '99ed8d8663a3e99ccfa672a92526e86faeff7c63', class: "w-fit relative" }, h("div", { key: '602fa80f7d43c953d50eb4456361477532f04859', class: {
66
+ return (h(Host, { key: '6d1b92a6fda24fde41243d60571f6ef34fefd79e', ref: node => (this.node = node) }, h("div", { key: 'ad1ed1703e015a284fd315364ed3fb70b65c6b25', class: "w-fit relative" }, h("div", { key: 'fc717fc929968ffe49438a88012d7c11f9ac4e20', class: {
67
67
  'flex justify-center items-center px-16 py-2 rounded-xxl min-h-40 w-fit outline-none': true,
68
68
  'bg-surface-on-body hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed': this.appearance === SulaChipAppearance.Default && !this.disabled,
69
69
  'bg-negative-negative-1 hover:bg-states-negative-hover active:bg-states-negative-pressed': this.appearance === SulaChipAppearance.Negative && !this.disabled,
@@ -71,12 +71,12 @@ export class SulaChip {
71
71
  'cursor-pointer': !this.disabled,
72
72
  'border border-line-input chip-opened': !this.disabled && this.showItems,
73
73
  'chip-focus': this.isFocused,
74
- }, tabIndex: 0, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: 'c8008a1bccf957ceb5e1b90edc5e90d67ec4258f', class: {
74
+ }, tabIndex: 0, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: 'e08903b3bcd3e101aeec7f2deb9213636818682a', class: {
75
75
  'text-base font-bold leading-4': true,
76
76
  'text-text-primary': this.appearance === SulaChipAppearance.Default && !this.disabled,
77
77
  'text-negative-negative-2': this.appearance === SulaChipAppearance.Negative && !this.disabled,
78
78
  'text-text-disabled': this.disabled,
79
- } }, this.text), this.items.length > 0 && (h("div", { key: '2c0deb381c6b12c174f1128130add11a9c7d1077', class: "flex items-center justify-center ml-8 leading-4" }, h("sula-icon", { key: '0938769d19c69368560f9e5812310580cf81f984', icon: `ph-bold ph-caret-${this.showItems ? 'up' : 'down'}`, customClass: this.getIconClass() })))), this.showItems && (h("div", { key: 'e422f0479abecc1b8e5cb7924b59b89f2349c960', class: "absolute z-50 top-40 left-0" }, h("sula-menu-select-list", { key: '6e9c82f9bed0832cb2e545ef56ea6b3b4789485b', items: this.items, onItemSelected: this.handleItemSelected }))))));
79
+ } }, this.text), this.items.length > 0 && (h("div", { key: 'bf169918f272474e80295c1685bdc081e52b0659', class: "flex items-center justify-center ml-8 leading-4" }, h("sula-icon", { key: '4725462c18f295d2bdfd2ac878af6f28329c43ae', icon: `ph-bold ph-caret-${this.showItems ? 'up' : 'down'}`, customClass: this.getIconClass() })))), this.showItems && (h("div", { key: 'f4ed2a67fcaebafb80e2a308f9e3949814ec791d', class: "absolute z-50 top-40 left-0" }, h("sula-menu-select-list", { key: '03b02174a28fd59aa5dbab6c773c15a4d6bdc91e', items: this.items, onItemSelected: this.handleItemSelected }))))));
80
80
  }
81
81
  static get is() { return "sula-chip"; }
82
82
  static get encapsulation() { return "shadow"; }