@sula-tech/webcomponents 0.17.4 → 0.17.5

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.
@@ -8,17 +8,29 @@ export class SulaLoader {
8
8
  * Tamanho predefinido (small, medium, large)
9
9
  */
10
10
  this.size = SulaLoaderSize.Medium;
11
+ this.animationInstance = null;
12
+ }
13
+ connectedCallback() {
14
+ this.tryInitLottie();
11
15
  }
12
16
  componentDidLoad() {
13
- this.initLottie();
17
+ this.tryInitLottie();
18
+ }
19
+ componentDidRender() {
20
+ this.tryInitLottie();
14
21
  }
15
22
  disconnectedCallback() {
16
- if (this.animationInstance) {
17
- this.animationInstance.destroy();
23
+ this.destroyAnimation();
24
+ }
25
+ destroyAnimation() {
26
+ if (!this.animationInstance) {
27
+ return;
18
28
  }
29
+ this.animationInstance.destroy();
30
+ this.animationInstance = null;
19
31
  }
20
- initLottie() {
21
- if (!this.containerRef)
32
+ tryInitLottie() {
33
+ if (!this.containerRef || this.animationInstance)
22
34
  return;
23
35
  try {
24
36
  const animationData = loaderAnimation;
@@ -35,6 +47,9 @@ export class SulaLoader {
35
47
  console.error('Erro ao carregar animação Lottie:', error);
36
48
  }
37
49
  }
50
+ initLottie() {
51
+ this.tryInitLottie();
52
+ }
38
53
  getDimensions() {
39
54
  const sizes = {
40
55
  small: '24px',
@@ -45,7 +60,7 @@ export class SulaLoader {
45
60
  }
46
61
  render() {
47
62
  const { width, height } = this.getDimensions();
48
- return (h(Host, { key: 'abd6665256f4e7173603ccc791b20f884bf9e9b6' }, h("div", { key: '41f9fb073388d7fc2a1585231fb8c257e5996847', ref: el => (this.containerRef = el), style: {
63
+ return (h(Host, { key: '4d73099f19f4e81ed2cd83ee1402e0f06f71f7ca' }, h("div", { key: '2593fe1c91bf4c7f167caa55fdc476d0a9d73841', ref: el => (this.containerRef = el), style: {
49
64
  width: width,
50
65
  height: height,
51
66
  } })));
@@ -1 +1 @@
1
- {"version":3,"file":"sula-loader.js","sourceRoot":"","sources":["../../../src/components/sula-loader/sula-loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,MAAyB,MAAM,YAAY,CAAC;AACnD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,MAAM,OAAO,UAAU;IALvB;QAQE;;WAEG;QACK,SAAI,GAAmB,cAAc,CAAC,MAAM,CAAC;KA4DtD;IAtDC,gBAAgB;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,eAAe,CAAC;YAEtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,YAAY;gBAC5B,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,aAAa;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,OAAO;SACf,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAE/C,OAAO,CACL,EAAC,IAAI;YACH,4DACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACnC,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,MAAM;iBACf,GACI,CACF,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\nimport lottie, { AnimationItem } from 'lottie-web';\nimport loaderAnimation from '../assets/lottie/loader.json';\nimport { SulaLoaderSize } from './model/sula-loader.model';\n\n@Component({\n tag: 'sula-loader',\n styleUrl: 'sula-loader.scss',\n shadow: true,\n})\nexport class SulaLoader {\n @Element() el: HTMLElement;\n\n /**\n * Tamanho predefinido (small, medium, large)\n */\n @Prop() size: SulaLoaderSize = SulaLoaderSize.Medium;\n\n @State() animationInstance: AnimationItem;\n\n containerRef: HTMLDivElement;\n\n componentDidLoad() {\n this.initLottie();\n }\n\n disconnectedCallback() {\n if (this.animationInstance) {\n this.animationInstance.destroy();\n }\n }\n\n initLottie() {\n if (!this.containerRef) return;\n\n try {\n const animationData = loaderAnimation;\n\n this.animationInstance = lottie.loadAnimation({\n container: this.containerRef,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: animationData,\n });\n\n this.animationInstance.setSpeed(1);\n } catch (error) {\n console.error('Erro ao carregar animação Lottie:', error);\n }\n }\n\n getDimensions() {\n const sizes = {\n small: '24px',\n medium: '32px',\n large: '104px',\n };\n return { width: sizes[this.size], height: sizes[this.size] };\n }\n\n render() {\n const { width, height } = this.getDimensions();\n\n return (\n <Host>\n <div\n ref={el => (this.containerRef = el)}\n style={{\n width: width,\n height: height,\n }}\n ></div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sula-loader.js","sourceRoot":"","sources":["../../../src/components/sula-loader/sula-loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,MAAyB,MAAM,YAAY,CAAC;AACnD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,MAAM,OAAO,UAAU;IALvB;QAQE;;WAEG;QACK,SAAI,GAAmB,cAAc,CAAC,MAAM,CAAC;QAE5C,sBAAiB,GAAyB,IAAI,CAAC;KA6EzD;IAzEC,iBAAiB;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEzD,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,eAAe,CAAC;YAEtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,YAAY;gBAC5B,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,aAAa;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;QACX,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,OAAO;SACf,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAE/C,OAAO,CACL,EAAC,IAAI;YACH,4DACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACnC,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,MAAM;iBACf,GACI,CACF,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, State, h } from '@stencil/core';\nimport lottie, { AnimationItem } from 'lottie-web';\nimport loaderAnimation from '../assets/lottie/loader.json';\nimport { SulaLoaderSize } from './model/sula-loader.model';\n\n@Component({\n tag: 'sula-loader',\n styleUrl: 'sula-loader.scss',\n shadow: true,\n})\nexport class SulaLoader {\n @Element() el?: HTMLElement;\n\n /**\n * Tamanho predefinido (small, medium, large)\n */\n @Prop() size: SulaLoaderSize = SulaLoaderSize.Medium;\n\n @State() animationInstance: AnimationItem | null = null;\n\n containerRef?: HTMLDivElement;\n\n connectedCallback() {\n this.tryInitLottie();\n }\n\n componentDidLoad() {\n this.tryInitLottie();\n }\n\n componentDidRender() {\n this.tryInitLottie();\n }\n\n disconnectedCallback() {\n this.destroyAnimation();\n }\n\n private destroyAnimation() {\n if (!this.animationInstance) {\n return;\n }\n\n this.animationInstance.destroy();\n this.animationInstance = null;\n }\n\n private tryInitLottie() {\n if (!this.containerRef || this.animationInstance) return;\n\n try {\n const animationData = loaderAnimation;\n\n this.animationInstance = lottie.loadAnimation({\n container: this.containerRef,\n renderer: 'svg',\n loop: true,\n autoplay: true,\n animationData: animationData,\n });\n\n this.animationInstance.setSpeed(1);\n } catch (error) {\n console.error('Erro ao carregar animação Lottie:', error);\n }\n }\n\n initLottie() {\n this.tryInitLottie();\n }\n\n getDimensions() {\n const sizes = {\n small: '24px',\n medium: '32px',\n large: '104px',\n };\n return { width: sizes[this.size], height: sizes[this.size] };\n }\n\n render() {\n const { width, height } = this.getDimensions();\n\n return (\n <Host>\n <div\n ref={el => (this.containerRef = el)}\n style={{\n width: width,\n height: height,\n }}\n ></div>\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$1, a as SulaLoaderSize } from './p-fwcKhm5l.js';
2
+ import { d as defineCustomElement$1, a as SulaLoaderSize } from './p-zE24jlFe.js';
3
3
  import { d as defineCustomElement$2 } from './p-fgs5TBQ7.js';
4
4
 
5
5
  var SulaButtonAppearance;
@@ -226,6 +226,6 @@ function defineCustomElement() {
226
226
  defineCustomElement();
227
227
 
228
228
  export { SulaButton as S, SulaButtonAppearance as a, defineCustomElement as d };
229
- //# sourceMappingURL=p-DGCOlK4x.js.map
229
+ //# sourceMappingURL=p-Ds1BVj4V.js.map
230
230
 
231
- //# sourceMappingURL=p-DGCOlK4x.js.map
231
+ //# sourceMappingURL=p-Ds1BVj4V.js.map
@@ -1 +1 @@
1
- {"file":"p-DGCOlK4x.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sula-button/model/sula-button.model.ts","src/components/sula-button/sula-button.scss?tag=sula-button&encapsulation=shadow","src/components/sula-button/sula-button.tsx"],"sourcesContent":["export enum SulaButtonAppearance {\n Default = 'default',\n Secondary = 'secondary',\n Text = 'text',\n}\n\nexport enum SulaButtonSize {\n Large = 'large',\n Default = 'default',\n Cta = 'cta',\n}\n\nexport enum SulaButtonStatus {\n Primary = 'primary',\n Danger = 'danger',\n Negative = 'negative',\n}\n\nexport enum SulaButtonType {\n Icon = 'icon',\n Text = 'text',\n}\n",":host {\n display: block;\n}\n\nbutton {\n &:focus {\n outline: 2px solid var(--color-feedback-informational) !important;\n outline-offset: 2px !important;\n }\n}\n","import { Component, Event, EventEmitter, Host, Prop, h } from '@stencil/core';\nimport { SulaButtonAppearance, SulaButtonSize, SulaButtonStatus, SulaButtonType } from './model/sula-button.model';\nimport { SulaLoaderSize } from '../sula-loader/model/sula-loader.model';\n\n@Component({\n tag: 'sula-button',\n styleUrl: 'sula-button.scss',\n shadow: true,\n})\nexport class SulaButton {\n /**\n * Button text when is text type\n */\n @Prop({ mutable: true }) text: string;\n\n /**\n * Button icon when is Icon type\n */\n @Prop({ mutable: true }) icon: string;\n\n /**\n * Button left icon\n */\n @Prop({ mutable: true }) leftIcon: string;\n\n /**\n * Button right icon\n */\n @Prop({ mutable: true }) rightIcon: string;\n\n /**\n * Button appearance\n */\n @Prop({ mutable: true }) appearance: SulaButtonAppearance = SulaButtonAppearance.Default;\n\n /**\n * Button type\n */\n @Prop({ mutable: true }) type: SulaButtonType = SulaButtonType.Text;\n\n /**\n * Button size\n */\n @Prop({ mutable: true }) size: SulaButtonSize = SulaButtonSize.Default;\n\n /**\n * Button status\n */\n @Prop({ mutable: true }) status: SulaButtonStatus = SulaButtonStatus.Primary;\n\n /**\n * Is button loading\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Is button disabled\n */\n @Prop({ mutable: true }) buttonDisabled: boolean = false;\n\n /**\n * If true, button will take the full width of its container\n */\n @Prop({ mutable: true, attribute: 'full-width' }) fullWidth: boolean = false;\n\n /**\n * Event emitted when button is clicked.\n * @note If button is disabled event won't be emitted\n */\n @Event()\n buttonClicked: EventEmitter<void>;\n\n private getAppearanceClass() {\n if (this.loading) return;\n const appearanceStyles = {\n [SulaButtonAppearance.Default]: this.getDefaultButtonStyles(),\n [SulaButtonAppearance.Secondary]: `border ${this.getSecondaryButtonStyles()}`,\n [SulaButtonAppearance.Text]: `flex items-center space-x-8 ${this.getTextButtonStyles()}`,\n };\n\n return appearanceStyles[this.appearance];\n }\n\n private getButtonDisabledClass() {\n return this.appearance === SulaButtonAppearance.Text ? 'text-text-disabled' : 'bg-states-bg-disabled text-text-disabled border-none';\n }\n\n private getDefaultButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'bg-brand-primary text-white hover:bg-states-primary-hover active:bg-states-primary-pressed',\n [SulaButtonStatus.Danger]: 'bg-feedback-error text-white hover:bg-states-danger-hover active:bg-opacity-85 active:bg-states-danger-pressed',\n [SulaButtonStatus.Negative]: 'bg-negative-negative-1 text-negative-negative-2 hover:bg-states-negative-hover active:bg-states-negative-pressed',\n };\n\n return statusStyles[this.status];\n }\n\n private getSecondaryButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'border-brand-primary text-brand-primary hover:bg-states-empty-bg-hover bg-white active:bg-states-empty-bg-pressed',\n [SulaButtonStatus.Danger]: 'border-feedback-error text-feedback-error hover:bg-states-empty-bg-hover bg-white active:bg-states-empty-bg-pressed',\n [SulaButtonStatus.Negative]: 'border-negative-negative-1 text-negative-negative-1 bg-transparent hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed',\n };\n\n return statusStyles[this.status];\n }\n\n private getTextButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'text-brand-primary',\n [SulaButtonStatus.Danger]: 'text-feedback-error',\n [SulaButtonStatus.Negative]: 'text-negative-negative-1',\n };\n\n return statusStyles[this.status];\n }\n\n private getTextTypeSizeClass() {\n const sizeClasses = {\n [SulaButtonSize.Default]: 'py-4 h-[40px]',\n [SulaButtonSize.Large]: 'py-4 h-[56px]',\n };\n\n return sizeClasses[this.size];\n }\n\n private getButtonSizeByTypeClass() {\n if (this.loading) {\n if (this.type === SulaButtonType.Icon) {\n return {\n 'w-[40px] h-[40px] p-8': this.size === SulaButtonSize.Default,\n 'w-[56px] h-[56px] p-16': this.size === SulaButtonSize.Large,\n };\n }\n\n return {\n 'w-[56px] h-[44px]': this.size === SulaButtonSize.Default,\n 'w-[64px] h-[56px]': this.size === SulaButtonSize.Large,\n };\n }\n if (this.type === SulaButtonType.Text) {\n return this.appearance === SulaButtonAppearance.Text\n ? { [this.getTextTypeSizeClass()]: true }\n : {\n ['px-16 py-4 min-w-[120px] h-[40px]']: this.size === SulaButtonSize.Default,\n ['px-16 py-4 min-w-[120px] h-[56px]']: this.size === SulaButtonSize.Large,\n };\n }\n\n return {\n 'flex justify-center items-center': true,\n ['p-8 h-[40px] min-w-[40px]']: this.size === SulaButtonSize.Default,\n ['p-16 py-4 min-w-[56px] h-[56px]']: this.size === SulaButtonSize.Large,\n };\n }\n\n private getArrowIconContainerClass() {\n return {\n 'flex items-center justify-center w-24 h-24 rounded-xxl': true,\n 'group-hover:bg-states-empty-bg-hover': !this.buttonDisabled && this.type === SulaButtonType.Text,\n 'text-icon-primary': !this.buttonDisabled,\n 'text-icon-disabled': this.buttonDisabled,\n };\n }\n\n private getBaseButtonClass() {\n return {\n [this.getAppearanceClass()]: true,\n ...this.getButtonSizeByTypeClass(),\n 'rounded-xxl': this.appearance !== SulaButtonAppearance.Text,\n 'rounded-xs focus:bg-states-empty-bg-hover': this.appearance === SulaButtonAppearance.Text,\n 'font-bold text-base group': true,\n 'disabled': this.buttonDisabled,\n 'bg-states-empty-bg-pressed flex justify-center items-center': this.loading,\n 'w-full': this.fullWidth,\n };\n }\n\n private renderIconContent() {\n if (this.type === SulaButtonType.Icon) {\n return <sula-icon id=\"button-icon\" icon={this.icon} customClass=\"text-2xl\" class=\"flex leading-6\"></sula-icon>;\n }\n return null;\n }\n\n private renderTextContent() {\n if (this.text && this.type === SulaButtonType.Text) {\n return <div id=\"button-text\">{this.text}</div>;\n }\n return null;\n }\n\n private renderArrowIcon() {\n if (this.appearance === SulaButtonAppearance.Text) {\n return (\n <div class={this.getArrowIconContainerClass()}>\n <sula-icon icon=\"ph-bold ph-caret-right\" customClass=\"text-lg\"></sula-icon>\n </div>\n );\n }\n return null;\n }\n\n getLoadingSize() {\n if (this.type === SulaButtonType.Icon || this.size === SulaButtonSize.Default) {\n return SulaLoaderSize.Small;\n }\n\n return SulaLoaderSize.Medium;\n }\n\n handleClick = () => {\n if (!this.buttonDisabled && !this.loading) {\n this.buttonClicked.emit();\n }\n };\n\n render() {\n return (\n <Host>\n <button id=\"button-container\" class={this.getBaseButtonClass()} disabled={this.buttonDisabled || this.loading} onClick={this.handleClick}>\n {this.loading && (\n <div>\n <sula-loader size={this.getLoadingSize()}></sula-loader>\n </div>\n )}\n {!this.loading && (\n <div class=\"flex w-full justify-center items-center\">\n {this.leftIcon && <sula-icon icon={this.leftIcon} customClass=\"text-lg mr-8\"></sula-icon>}\n {this.renderIconContent()}\n {this.renderTextContent()}\n {this.renderArrowIcon()}\n {this.rightIcon && <sula-icon icon={this.rightIcon} customClass=\"text-lg ml-8\"></sula-icon>}\n </div>\n )}\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-Ds1BVj4V.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sula-button/model/sula-button.model.ts","src/components/sula-button/sula-button.scss?tag=sula-button&encapsulation=shadow","src/components/sula-button/sula-button.tsx"],"sourcesContent":["export enum SulaButtonAppearance {\n Default = 'default',\n Secondary = 'secondary',\n Text = 'text',\n}\n\nexport enum SulaButtonSize {\n Large = 'large',\n Default = 'default',\n Cta = 'cta',\n}\n\nexport enum SulaButtonStatus {\n Primary = 'primary',\n Danger = 'danger',\n Negative = 'negative',\n}\n\nexport enum SulaButtonType {\n Icon = 'icon',\n Text = 'text',\n}\n",":host {\n display: block;\n}\n\nbutton {\n &:focus {\n outline: 2px solid var(--color-feedback-informational) !important;\n outline-offset: 2px !important;\n }\n}\n","import { Component, Event, EventEmitter, Host, Prop, h } from '@stencil/core';\nimport { SulaButtonAppearance, SulaButtonSize, SulaButtonStatus, SulaButtonType } from './model/sula-button.model';\nimport { SulaLoaderSize } from '../sula-loader/model/sula-loader.model';\n\n@Component({\n tag: 'sula-button',\n styleUrl: 'sula-button.scss',\n shadow: true,\n})\nexport class SulaButton {\n /**\n * Button text when is text type\n */\n @Prop({ mutable: true }) text: string;\n\n /**\n * Button icon when is Icon type\n */\n @Prop({ mutable: true }) icon: string;\n\n /**\n * Button left icon\n */\n @Prop({ mutable: true }) leftIcon: string;\n\n /**\n * Button right icon\n */\n @Prop({ mutable: true }) rightIcon: string;\n\n /**\n * Button appearance\n */\n @Prop({ mutable: true }) appearance: SulaButtonAppearance = SulaButtonAppearance.Default;\n\n /**\n * Button type\n */\n @Prop({ mutable: true }) type: SulaButtonType = SulaButtonType.Text;\n\n /**\n * Button size\n */\n @Prop({ mutable: true }) size: SulaButtonSize = SulaButtonSize.Default;\n\n /**\n * Button status\n */\n @Prop({ mutable: true }) status: SulaButtonStatus = SulaButtonStatus.Primary;\n\n /**\n * Is button loading\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Is button disabled\n */\n @Prop({ mutable: true }) buttonDisabled: boolean = false;\n\n /**\n * If true, button will take the full width of its container\n */\n @Prop({ mutable: true, attribute: 'full-width' }) fullWidth: boolean = false;\n\n /**\n * Event emitted when button is clicked.\n * @note If button is disabled event won't be emitted\n */\n @Event()\n buttonClicked: EventEmitter<void>;\n\n private getAppearanceClass() {\n if (this.loading) return;\n const appearanceStyles = {\n [SulaButtonAppearance.Default]: this.getDefaultButtonStyles(),\n [SulaButtonAppearance.Secondary]: `border ${this.getSecondaryButtonStyles()}`,\n [SulaButtonAppearance.Text]: `flex items-center space-x-8 ${this.getTextButtonStyles()}`,\n };\n\n return appearanceStyles[this.appearance];\n }\n\n private getButtonDisabledClass() {\n return this.appearance === SulaButtonAppearance.Text ? 'text-text-disabled' : 'bg-states-bg-disabled text-text-disabled border-none';\n }\n\n private getDefaultButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'bg-brand-primary text-white hover:bg-states-primary-hover active:bg-states-primary-pressed',\n [SulaButtonStatus.Danger]: 'bg-feedback-error text-white hover:bg-states-danger-hover active:bg-opacity-85 active:bg-states-danger-pressed',\n [SulaButtonStatus.Negative]: 'bg-negative-negative-1 text-negative-negative-2 hover:bg-states-negative-hover active:bg-states-negative-pressed',\n };\n\n return statusStyles[this.status];\n }\n\n private getSecondaryButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'border-brand-primary text-brand-primary hover:bg-states-empty-bg-hover bg-white active:bg-states-empty-bg-pressed',\n [SulaButtonStatus.Danger]: 'border-feedback-error text-feedback-error hover:bg-states-empty-bg-hover bg-white active:bg-states-empty-bg-pressed',\n [SulaButtonStatus.Negative]: 'border-negative-negative-1 text-negative-negative-1 bg-transparent hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed',\n };\n\n return statusStyles[this.status];\n }\n\n private getTextButtonStyles() {\n if (this.buttonDisabled) {\n return this.getButtonDisabledClass();\n }\n\n const statusStyles = {\n [SulaButtonStatus.Primary]: 'text-brand-primary',\n [SulaButtonStatus.Danger]: 'text-feedback-error',\n [SulaButtonStatus.Negative]: 'text-negative-negative-1',\n };\n\n return statusStyles[this.status];\n }\n\n private getTextTypeSizeClass() {\n const sizeClasses = {\n [SulaButtonSize.Default]: 'py-4 h-[40px]',\n [SulaButtonSize.Large]: 'py-4 h-[56px]',\n };\n\n return sizeClasses[this.size];\n }\n\n private getButtonSizeByTypeClass() {\n if (this.loading) {\n if (this.type === SulaButtonType.Icon) {\n return {\n 'w-[40px] h-[40px] p-8': this.size === SulaButtonSize.Default,\n 'w-[56px] h-[56px] p-16': this.size === SulaButtonSize.Large,\n };\n }\n\n return {\n 'w-[56px] h-[44px]': this.size === SulaButtonSize.Default,\n 'w-[64px] h-[56px]': this.size === SulaButtonSize.Large,\n };\n }\n if (this.type === SulaButtonType.Text) {\n return this.appearance === SulaButtonAppearance.Text\n ? { [this.getTextTypeSizeClass()]: true }\n : {\n ['px-16 py-4 min-w-[120px] h-[40px]']: this.size === SulaButtonSize.Default,\n ['px-16 py-4 min-w-[120px] h-[56px]']: this.size === SulaButtonSize.Large,\n };\n }\n\n return {\n 'flex justify-center items-center': true,\n ['p-8 h-[40px] min-w-[40px]']: this.size === SulaButtonSize.Default,\n ['p-16 py-4 min-w-[56px] h-[56px]']: this.size === SulaButtonSize.Large,\n };\n }\n\n private getArrowIconContainerClass() {\n return {\n 'flex items-center justify-center w-24 h-24 rounded-xxl': true,\n 'group-hover:bg-states-empty-bg-hover': !this.buttonDisabled && this.type === SulaButtonType.Text,\n 'text-icon-primary': !this.buttonDisabled,\n 'text-icon-disabled': this.buttonDisabled,\n };\n }\n\n private getBaseButtonClass() {\n return {\n [this.getAppearanceClass()]: true,\n ...this.getButtonSizeByTypeClass(),\n 'rounded-xxl': this.appearance !== SulaButtonAppearance.Text,\n 'rounded-xs focus:bg-states-empty-bg-hover': this.appearance === SulaButtonAppearance.Text,\n 'font-bold text-base group': true,\n 'disabled': this.buttonDisabled,\n 'bg-states-empty-bg-pressed flex justify-center items-center': this.loading,\n 'w-full': this.fullWidth,\n };\n }\n\n private renderIconContent() {\n if (this.type === SulaButtonType.Icon) {\n return <sula-icon id=\"button-icon\" icon={this.icon} customClass=\"text-2xl\" class=\"flex leading-6\"></sula-icon>;\n }\n return null;\n }\n\n private renderTextContent() {\n if (this.text && this.type === SulaButtonType.Text) {\n return <div id=\"button-text\">{this.text}</div>;\n }\n return null;\n }\n\n private renderArrowIcon() {\n if (this.appearance === SulaButtonAppearance.Text) {\n return (\n <div class={this.getArrowIconContainerClass()}>\n <sula-icon icon=\"ph-bold ph-caret-right\" customClass=\"text-lg\"></sula-icon>\n </div>\n );\n }\n return null;\n }\n\n getLoadingSize() {\n if (this.type === SulaButtonType.Icon || this.size === SulaButtonSize.Default) {\n return SulaLoaderSize.Small;\n }\n\n return SulaLoaderSize.Medium;\n }\n\n handleClick = () => {\n if (!this.buttonDisabled && !this.loading) {\n this.buttonClicked.emit();\n }\n };\n\n render() {\n return (\n <Host>\n <button id=\"button-container\" class={this.getBaseButtonClass()} disabled={this.buttonDisabled || this.loading} onClick={this.handleClick}>\n {this.loading && (\n <div>\n <sula-loader size={this.getLoadingSize()}></sula-loader>\n </div>\n )}\n {!this.loading && (\n <div class=\"flex w-full justify-center items-center\">\n {this.leftIcon && <sula-icon icon={this.leftIcon} customClass=\"text-lg mr-8\"></sula-icon>}\n {this.renderIconContent()}\n {this.renderTextContent()}\n {this.renderArrowIcon()}\n {this.rightIcon && <sula-icon icon={this.rightIcon} customClass=\"text-lg ml-8\"></sula-icon>}\n </div>\n )}\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -27057,17 +27057,29 @@ const SulaLoader = /*@__PURE__*/ proxyCustomElement(class SulaLoader extends H {
27057
27057
  * Tamanho predefinido (small, medium, large)
27058
27058
  */
27059
27059
  this.size = SulaLoaderSize.Medium;
27060
+ this.animationInstance = null;
27061
+ }
27062
+ connectedCallback() {
27063
+ this.tryInitLottie();
27060
27064
  }
27061
27065
  componentDidLoad() {
27062
- this.initLottie();
27066
+ this.tryInitLottie();
27067
+ }
27068
+ componentDidRender() {
27069
+ this.tryInitLottie();
27063
27070
  }
27064
27071
  disconnectedCallback() {
27065
- if (this.animationInstance) {
27066
- this.animationInstance.destroy();
27072
+ this.destroyAnimation();
27073
+ }
27074
+ destroyAnimation() {
27075
+ if (!this.animationInstance) {
27076
+ return;
27067
27077
  }
27078
+ this.animationInstance.destroy();
27079
+ this.animationInstance = null;
27068
27080
  }
27069
- initLottie() {
27070
- if (!this.containerRef)
27081
+ tryInitLottie() {
27082
+ if (!this.containerRef || this.animationInstance)
27071
27083
  return;
27072
27084
  try {
27073
27085
  const animationData = loaderAnimation;
@@ -27084,6 +27096,9 @@ const SulaLoader = /*@__PURE__*/ proxyCustomElement(class SulaLoader extends H {
27084
27096
  console.error('Erro ao carregar animação Lottie:', error);
27085
27097
  }
27086
27098
  }
27099
+ initLottie() {
27100
+ this.tryInitLottie();
27101
+ }
27087
27102
  getDimensions() {
27088
27103
  const sizes = {
27089
27104
  small: '24px',
@@ -27094,7 +27109,7 @@ const SulaLoader = /*@__PURE__*/ proxyCustomElement(class SulaLoader extends H {
27094
27109
  }
27095
27110
  render() {
27096
27111
  const { width, height } = this.getDimensions();
27097
- return (h$1(Host, { key: 'abd6665256f4e7173603ccc791b20f884bf9e9b6' }, h$1("div", { key: '41f9fb073388d7fc2a1585231fb8c257e5996847', ref: el => (this.containerRef = el), style: {
27112
+ return (h$1(Host, { key: '4d73099f19f4e81ed2cd83ee1402e0f06f71f7ca' }, h$1("div", { key: '2593fe1c91bf4c7f167caa55fdc476d0a9d73841', ref: el => (this.containerRef = el), style: {
27098
27113
  width: width,
27099
27114
  height: height,
27100
27115
  } })));
@@ -27121,6 +27136,6 @@ function defineCustomElement() {
27121
27136
  defineCustomElement();
27122
27137
 
27123
27138
  export { SulaLoader as S, SulaLoaderSize as a, defineCustomElement as d };
27124
- //# sourceMappingURL=p-fwcKhm5l.js.map
27139
+ //# sourceMappingURL=p-zE24jlFe.js.map
27125
27140
 
27126
- //# sourceMappingURL=p-fwcKhm5l.js.map
27141
+ //# sourceMappingURL=p-zE24jlFe.js.map