@rededor/cura 1.6.1-alpha.9 → 1.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 (160) hide show
  1. package/dist/assets/assets/icons/iconset-default-list.ts +1 -1
  2. package/dist/assets/assets/icons/iconset-default-tmp.svg +4 -0
  3. package/dist/assets/assets/icons/iconset-default.svg +1 -1
  4. package/dist/cjs/{app-globals-28c6f5c4.js → app-globals-6d5b51b6.js} +2 -2
  5. package/dist/cjs/{app-globals-28c6f5c4.js.map → app-globals-6d5b51b6.js.map} +1 -1
  6. package/dist/cjs/{cura-accordion_18.cjs.entry.js → cura-accordion_20.cjs.entry.js} +147 -7
  7. package/dist/cjs/cura-accordion_20.cjs.entry.js.map +1 -0
  8. package/dist/cjs/cura-display.cjs.entry.js +1 -1
  9. package/dist/cjs/cura-icons-view.cjs.entry.js +1 -1
  10. package/dist/cjs/cura-icons-view.cjs.entry.js.map +1 -1
  11. package/dist/cjs/cura-modal.cjs.entry.js +3 -3
  12. package/dist/cjs/cura-modal.cjs.entry.js.map +1 -1
  13. package/dist/cjs/cura-tabs-button.cjs.entry.js +106 -0
  14. package/dist/cjs/cura-tabs-button.cjs.entry.js.map +1 -0
  15. package/dist/cjs/cura-tabs-transparent.cjs.entry.js +105 -0
  16. package/dist/cjs/cura-tabs-transparent.cjs.entry.js.map +1 -0
  17. package/dist/cjs/cura-tabs.definitions-b8955ad4.js +12 -0
  18. package/dist/cjs/cura-tabs.definitions-b8955ad4.js.map +1 -0
  19. package/dist/cjs/{cura-theme-module-f1e4a309.js → cura-theme-module-09bb63a4.js} +32 -1
  20. package/dist/cjs/cura-theme-module-09bb63a4.js.map +1 -0
  21. package/dist/cjs/cura.cjs.js +3 -3
  22. package/dist/cjs/index.cjs.js +1 -1
  23. package/dist/cjs/loader.cjs.js +3 -3
  24. package/dist/collection/api/theme-presets/theme-perinatal-temporary.js +32 -0
  25. package/dist/collection/api/theme-presets/theme-perinatal-temporary.js.map +1 -0
  26. package/dist/collection/api/theme-presets/theme-presets.js +2 -0
  27. package/dist/collection/api/theme-presets/theme-presets.js.map +1 -1
  28. package/dist/collection/assets/icons/iconset-default-list.js +1 -1
  29. package/dist/collection/assets/icons/iconset-default-list.js.map +1 -1
  30. package/dist/collection/assets/icons/iconset-default-tmp.svg +4 -0
  31. package/dist/collection/assets/icons/iconset-default.svg +1 -1
  32. package/dist/collection/assets-raw/icons/default/vaccine.svg +3 -0
  33. package/dist/collection/collection-manifest.json +4 -0
  34. package/dist/collection/components/cura-modal/cura-modal.css +1 -1
  35. package/dist/collection/components/cura-modal/cura-modal.js +2 -2
  36. package/dist/collection/components/cura-modal/cura-modal.js.map +1 -1
  37. package/dist/collection/components/forms/cura-input-text/cura-input-text.js +1 -1
  38. package/dist/collection/components/forms/cura-select/cura-select.css +1 -1
  39. package/dist/collection/components/forms/cura-select/cura-select.js +22 -3
  40. package/dist/collection/components/forms/cura-select/cura-select.js.map +1 -1
  41. package/dist/collection/components/forms/cura-select/cura-select.stories.js +12 -0
  42. package/dist/collection/components/forms/cura-select/cura-select.stories.js.map +1 -1
  43. package/dist/collection/components/tabs/cura-tabs/cura-tabs.css +170 -0
  44. package/dist/collection/components/tabs/cura-tabs/cura-tabs.js +263 -0
  45. package/dist/collection/components/tabs/cura-tabs/cura-tabs.js.map +1 -0
  46. package/dist/collection/components/tabs/cura-tabs/cura-tabs.stories.js +89 -0
  47. package/dist/collection/components/tabs/cura-tabs/cura-tabs.stories.js.map +1 -0
  48. package/dist/collection/components/tabs/cura-tabs-button/cura-tabs-button.css +176 -0
  49. package/dist/collection/components/tabs/cura-tabs-button/cura-tabs-button.js +259 -0
  50. package/dist/collection/components/tabs/cura-tabs-button/cura-tabs-button.js.map +1 -0
  51. package/dist/collection/components/tabs/cura-tabs-button/cura-tabs-button.stories.js +96 -0
  52. package/dist/collection/components/tabs/cura-tabs-button/cura-tabs-button.stories.js.map +1 -0
  53. package/dist/collection/components/tabs/cura-tabs-group/cura-tabs-group.css +25 -0
  54. package/dist/collection/components/tabs/cura-tabs-group/cura-tabs-group.js +133 -0
  55. package/dist/collection/components/tabs/cura-tabs-group/cura-tabs-group.js.map +1 -0
  56. package/dist/collection/components/tabs/cura-tabs-group/cura-tabs-group.stories.js +65 -0
  57. package/dist/collection/components/tabs/cura-tabs-group/cura-tabs-group.stories.js.map +1 -0
  58. package/dist/collection/components/tabs/cura-tabs-transparent/cura-tabs-transparent.css +168 -0
  59. package/dist/collection/components/tabs/cura-tabs-transparent/cura-tabs-transparent.js +258 -0
  60. package/dist/collection/components/tabs/cura-tabs-transparent/cura-tabs-transparent.js.map +1 -0
  61. package/dist/collection/components/tabs/cura-tabs-transparent/cura-tabs-transparent.stories.js +89 -0
  62. package/dist/collection/components/tabs/cura-tabs-transparent/cura-tabs-transparent.stories.js.map +1 -0
  63. package/dist/collection/components/tabs/cura-tabs.definitions.js +7 -0
  64. package/dist/collection/components/tabs/cura-tabs.definitions.js.map +1 -0
  65. package/dist/collection/components/text/cura-display/cura-display.js +1 -1
  66. package/dist/collection/components/text/cura-heading/cura-heading.js +1 -1
  67. package/dist/collection/components/text/cura-paragraph/cura-paragraph.js +1 -1
  68. package/dist/components/cura-display.js +1 -1
  69. package/dist/components/cura-heading2.js +1 -1
  70. package/dist/components/cura-icons-view.js +1 -1
  71. package/dist/components/cura-icons-view.js.map +1 -1
  72. package/dist/components/cura-modal.js +3 -3
  73. package/dist/components/cura-modal.js.map +1 -1
  74. package/dist/components/cura-paragraph2.js +1 -1
  75. package/dist/components/cura-select2.js +6 -4
  76. package/dist/components/cura-select2.js.map +1 -1
  77. package/dist/components/cura-tabs-button.d.ts +11 -0
  78. package/dist/components/cura-tabs-button.js +150 -0
  79. package/dist/components/cura-tabs-button.js.map +1 -0
  80. package/dist/components/cura-tabs-group.d.ts +11 -0
  81. package/dist/components/cura-tabs-group.js +64 -0
  82. package/dist/components/cura-tabs-group.js.map +1 -0
  83. package/dist/components/cura-tabs-transparent.d.ts +11 -0
  84. package/dist/components/cura-tabs-transparent.js +143 -0
  85. package/dist/components/cura-tabs-transparent.js.map +1 -0
  86. package/dist/components/cura-tabs.d.ts +11 -0
  87. package/dist/components/cura-tabs.definitions.js +10 -0
  88. package/dist/components/cura-tabs.definitions.js.map +1 -0
  89. package/dist/components/cura-tabs.js +148 -0
  90. package/dist/components/cura-tabs.js.map +1 -0
  91. package/dist/components/index.js +39 -0
  92. package/dist/components/index.js.map +1 -1
  93. package/dist/cura/cura.esm.js +1 -1
  94. package/dist/cura/cura.esm.js.map +1 -1
  95. package/dist/cura/index.esm.js +1 -1
  96. package/dist/cura/p-1ef21ae9.entry.js +2 -0
  97. package/dist/cura/p-1ef21ae9.entry.js.map +1 -0
  98. package/dist/cura/p-53c18ed4.js +2 -0
  99. package/dist/cura/p-53c18ed4.js.map +1 -0
  100. package/dist/cura/p-5c6f9593.entry.js +2 -0
  101. package/dist/cura/p-5c6f9593.entry.js.map +1 -0
  102. package/dist/cura/{p-0c25333f.js → p-6cbd49dd.js} +2 -2
  103. package/dist/cura/{p-0c25333f.js.map → p-6cbd49dd.js.map} +1 -1
  104. package/dist/cura/p-7e2d1229.entry.js +2 -0
  105. package/dist/cura/p-7e2d1229.entry.js.map +1 -0
  106. package/dist/cura/{p-ac01bec2.entry.js → p-8aade007.entry.js} +2 -2
  107. package/dist/cura/p-9f460031.js +2 -0
  108. package/dist/cura/p-9f460031.js.map +1 -0
  109. package/dist/cura/p-b4ee956b.entry.js +2 -0
  110. package/dist/cura/p-b4ee956b.entry.js.map +1 -0
  111. package/dist/cura/p-b6ff8ac1.entry.js +2 -0
  112. package/dist/cura/p-b6ff8ac1.entry.js.map +1 -0
  113. package/dist/esm/{app-globals-ca1945d1.js → app-globals-c2abb41c.js} +2 -2
  114. package/dist/esm/{app-globals-ca1945d1.js.map → app-globals-c2abb41c.js.map} +1 -1
  115. package/dist/esm/{cura-accordion_18.entry.js → cura-accordion_20.entry.js} +146 -8
  116. package/dist/esm/cura-accordion_20.entry.js.map +1 -0
  117. package/dist/esm/cura-display.entry.js +1 -1
  118. package/dist/esm/cura-icons-view.entry.js +1 -1
  119. package/dist/esm/cura-icons-view.entry.js.map +1 -1
  120. package/dist/esm/cura-modal.entry.js +3 -3
  121. package/dist/esm/cura-modal.entry.js.map +1 -1
  122. package/dist/esm/cura-tabs-button.entry.js +102 -0
  123. package/dist/esm/cura-tabs-button.entry.js.map +1 -0
  124. package/dist/esm/cura-tabs-transparent.entry.js +101 -0
  125. package/dist/esm/cura-tabs-transparent.entry.js.map +1 -0
  126. package/dist/esm/cura-tabs.definitions-a017126e.js +10 -0
  127. package/dist/esm/cura-tabs.definitions-a017126e.js.map +1 -0
  128. package/dist/esm/{cura-theme-module-0fa5ee0b.js → cura-theme-module-bf286f68.js} +32 -1
  129. package/dist/esm/cura-theme-module-bf286f68.js.map +1 -0
  130. package/dist/esm/cura.js +3 -3
  131. package/dist/esm/index.js +1 -1
  132. package/dist/esm/loader.js +3 -3
  133. package/dist/types/api/theme-presets/theme-perinatal-temporary.d.ts +43 -0
  134. package/dist/types/api/theme-presets/theme-presets.d.ts +43 -0
  135. package/dist/types/components/forms/cura-select/cura-select.d.ts +6 -0
  136. package/dist/types/components/forms/cura-select/cura-select.stories.d.ts +11 -0
  137. package/dist/types/components/tabs/cura-tabs/cura-tabs.d.ts +30 -0
  138. package/dist/types/components/tabs/cura-tabs/cura-tabs.stories.d.ts +99 -0
  139. package/dist/types/components/tabs/cura-tabs-button/cura-tabs-button.d.ts +29 -0
  140. package/dist/types/components/tabs/cura-tabs-button/cura-tabs-button.stories.d.ts +99 -0
  141. package/dist/types/components/tabs/cura-tabs-group/cura-tabs-group.d.ts +18 -0
  142. package/dist/types/components/tabs/cura-tabs-group/cura-tabs-group.stories.d.ts +57 -0
  143. package/dist/types/components/tabs/cura-tabs-transparent/cura-tabs-transparent.d.ts +29 -0
  144. package/dist/types/components/tabs/cura-tabs-transparent/cura-tabs-transparent.stories.d.ts +99 -0
  145. package/dist/types/components/tabs/cura-tabs.definitions.d.ts +6 -0
  146. package/dist/types/components.d.ts +172 -0
  147. package/package.json +2 -2
  148. package/dist/cjs/cura-accordion_18.cjs.entry.js.map +0 -1
  149. package/dist/cjs/cura-theme-module-f1e4a309.js.map +0 -1
  150. package/dist/cura/p-07817634.entry.js +0 -2
  151. package/dist/cura/p-07817634.entry.js.map +0 -1
  152. package/dist/cura/p-9fce5ec5.entry.js +0 -2
  153. package/dist/cura/p-9fce5ec5.entry.js.map +0 -1
  154. package/dist/cura/p-b5d8a26b.entry.js +0 -2
  155. package/dist/cura/p-b5d8a26b.entry.js.map +0 -1
  156. package/dist/cura/p-bf8e2037.js +0 -2
  157. package/dist/cura/p-bf8e2037.js.map +0 -1
  158. package/dist/esm/cura-accordion_18.entry.js.map +0 -1
  159. package/dist/esm/cura-theme-module-0fa5ee0b.js.map +0 -1
  160. /package/dist/cura/{p-ac01bec2.entry.js.map → p-8aade007.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cura-tabs.js","sourceRoot":"","sources":["../../../../src/components/tabs/cura-tabs/cura-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { labelSizes } from '../cura-tabs.definitions';\n\n@Component({\n tag: 'cura-tabs',\n styleUrl: 'cura-tabs.scss',\n shadow: true,\n})\nexport class CuraTabs {\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true }) iconName: string;\n @Prop({ reflect: true, mutable: true }) selected: boolean = false;\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) borderBottom: boolean = true;\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'large';\n @Prop({ reflect: true, mutable: true }) colorMode: 'dark' | 'light' = 'light';\n\n @State() hovered = false;\n @State() styles: Record<string, string> = {};\n\n @Event() tabSelect: EventEmitter<{ name: string }>;\n\n @Watch('colorMode')\n setColors() {\n const colors = [\n { name: '--background-color-selected', theme: this.colorMode === 'light' ? 'primary-base' : 'primary-lighter' },\n { name: '--background-color-hover', theme: this.colorMode === 'light' ? 'primary-lighter' : null },\n {\n name: '--background-disabled-selected',\n theme: this.colorMode === 'light' ? 'neutral-pale' : 'neutral-black',\n },\n {\n name: '--border-bottom-color',\n theme: this.colorMode === 'light' ? 'neutral-base' : 'primary',\n },\n ];\n\n colors.forEach(c => {\n if (c.theme) this.styles[c.name] = window.CuraAPI.theme.colors.getColor(c.theme);\n });\n\n this.styles = { ...this.styles };\n }\n\n computeContentColor(): string {\n if (this.disabled) return 'neutral-dark';\n\n if (this.colorMode === 'dark') {\n if (this.hovered && !this.selected) {\n return 'neutral-purewhite';\n }\n return this.selected ? 'neutral-black' : 'primary-lighter';\n }\n\n return this.selected ? 'neutral-purewhite' : 'primary-dark';\n }\n\n private updateDynamicStyles() {\n if (this.colorMode === 'dark' && this.hovered && !this.selected) {\n this.styles = {\n ...this.styles,\n '--border-bottom-color': window.CuraAPI.theme.colors.getColor('neutral-purewhite'),\n };\n }\n }\n\n getIcon() {\n if (!this.iconName) return '';\n const iconSize = this.size === 'large' ? 20 : 16;\n const iconColor = this.computeContentColor();\n\n return <cura-icon name={this.iconName} size={iconSize} color={iconColor}></cura-icon>;\n }\n\n getClasses() {\n return {\n [this.size]: true,\n [this.colorMode]: true,\n 'selected': this.selected,\n 'disabled': this.disabled,\n 'border-bottom': this.borderBottom,\n };\n }\n\n connectedCallback() {\n this.styles = {\n ...this.styles,\n '--primary-dark': window.CuraAPI.theme.colors.getColor('primary-dark'),\n '--neutral-purewhite': window.CuraAPI.theme.colors.getColor('neutral-purewhite'),\n '--base-spacing': window.CuraAPI.theme.spacing.getSpacing(),\n };\n\n this.setColors();\n }\n\n handleMouseEnter() {\n if (this.disabled) return;\n this.hovered = true;\n }\n\n handleMouseLeave() {\n this.hovered = false;\n }\n\n handleClick(e: Event) {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n\n this.selected = !this.selected;\n this.tabSelect.emit({ name: this.name });\n }\n\n render() {\n const labelSize = labelSizes[this.size] || labelSizes['default'];\n const labelColor = this.computeContentColor();\n this.updateDynamicStyles();\n\n return (\n <Host role=\"button\" aria-pressed={this.selected} aria-disabled={this.disabled}>\n <button\n class={this.getClasses()}\n style={this.styles}\n onClick={e => this.handleClick(e)}\n disabled={this.disabled}\n onMouseEnter={this.handleMouseEnter.bind(this)}\n onMouseLeave={this.handleMouseLeave.bind(this)}\n >\n {this.getIcon()}\n <cura-label size={labelSize} color={labelColor} lineHeight=\"0\" marginBlock=\"0\">\n <slot></slot>\n </cura-label>\n </button>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,89 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s)
4
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import iconNames from "../../../assets/icons/iconset-default-list";
14
+ const renderCuraTabs = (args) => `
15
+ <cura-tabs
16
+ name=${args.name}
17
+ icon-name=${args.iconName}
18
+ selected=${args.selected}
19
+ disabled=${args.disabled}
20
+ border-bottom=${args.borderBottom}
21
+ size=${args.size}
22
+ color-mode=${args.colorMode}
23
+ >
24
+ Label
25
+ </cura-tabs>
26
+ `;
27
+ export default {
28
+ title: 'Componentes/Tabs/Tabs',
29
+ tags: ['autodocs'],
30
+ render: (_a) => {
31
+ var args = __rest(_a, []);
32
+ return renderCuraTabs(args);
33
+ },
34
+ argTypes: {
35
+ name: {
36
+ control: 'text',
37
+ description: 'Define o identificador único do tabs. Obrigatório definir um "name" distinto para cada cura-tabs quando utilizado dentro de um tabs-group, garantindo o controle correto do estado e a seleção da aba ativa.',
38
+ table: {
39
+ category: 'Properties',
40
+ },
41
+ },
42
+ iconName: {
43
+ control: { type: 'select' },
44
+ options: ['', ...iconNames],
45
+ description: 'Define o nome do ícone exibido do iconset.',
46
+ table: {
47
+ category: 'Properties',
48
+ },
49
+ },
50
+ selected: { control: 'boolean', description: 'Define se a aba está selecionada.', table: { category: 'State', defaultValue: { summary: false } } },
51
+ disabled: { control: 'boolean', description: 'Define se a aba está desabilitada.', table: { category: 'State', defaultValue: { summary: false } } },
52
+ borderBottom: { control: 'boolean', description: 'Define se a borda inferior é exibida.', table: { category: 'Properties', defaultValue: { summary: 'true' } } },
53
+ size: {
54
+ control: 'select',
55
+ options: ['small', 'medium', 'large'],
56
+ description: 'Define o tamanho do elemento.',
57
+ table: {
58
+ category: 'Properties',
59
+ defaultValue: { summary: 'large' },
60
+ },
61
+ },
62
+ colorMode: {
63
+ control: { type: 'inline-radio' },
64
+ options: ['light', 'dark'],
65
+ description: 'Define a cor de tema.',
66
+ table: {
67
+ category: 'Properties',
68
+ defaultValue: { summary: 'light' },
69
+ },
70
+ },
71
+ tabSelect: {
72
+ action: 'tabSelect',
73
+ description: 'Evento disparado ao clicar na aba. Retorna o "name" da aba.',
74
+ table: { category: 'Events' },
75
+ },
76
+ },
77
+ };
78
+ export const CuraTabs = {
79
+ args: {
80
+ name: 'tab1',
81
+ iconName: 'infoCircle',
82
+ selected: false,
83
+ disabled: false,
84
+ borderBottom: true,
85
+ size: 'large',
86
+ colorMode: 'light',
87
+ },
88
+ };
89
+ //# sourceMappingURL=cura-tabs.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cura-tabs.stories.js","sourceRoot":"","sources":["../../../../src/components/tabs/cura-tabs/cura-tabs.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,SAAS,MAAM,4CAA4C,CAAC;AAEnE,MAAM,cAAc,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC;;aAEzB,IAAI,CAAC,IAAI;kBACJ,IAAI,CAAC,QAAQ;iBACd,IAAI,CAAC,QAAQ;iBACb,IAAI,CAAC,QAAQ;sBACR,IAAI,CAAC,YAAY;aAC1B,IAAI,CAAC,IAAI;mBACH,IAAI,CAAC,SAAS;;;;CAIhC,CAAC;AAEF,eAAe;IACb,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,MAAM,EAAE,CAAC,EAAW,EAAE,EAAE;YAAV,IAAI,cAAT,EAAW,CAAF;QAChB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM;YACf,WAAW,EACT,8MAA8M;YAChN,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY;aACvB;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;YAC3B,WAAW,EAAE,4CAA4C;YACzD,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY;aACvB;SACF;QACD,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAClJ,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACnJ,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAChK,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;YACrC,WAAW,EAAE,+BAA+B;YAC5C,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY;gBACtB,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YACjC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1B,WAAW,EAAE,uBAAuB;YACpC,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY;gBACtB,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,SAAS,EAAE;YACT,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,6DAA6D;YAC1E,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAC9B;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,OAAO;KACnB;CACF,CAAC","sourcesContent":["import iconNames from '../../../assets/icons/iconset-default-list';\n\nconst renderCuraTabs = (args: any) => `\n <cura-tabs\n name=${args.name}\n icon-name=${args.iconName}\n selected=${args.selected}\n disabled=${args.disabled}\n border-bottom=${args.borderBottom}\n size=${args.size}\n color-mode=${args.colorMode}\n >\n Label\n </cura-tabs>\n`;\n\nexport default {\n title: 'Componentes/Tabs/Tabs',\n tags: ['autodocs'],\n render: ({ ...args }) => {\n return renderCuraTabs(args);\n },\n argTypes: {\n name: {\n control: 'text',\n description:\n 'Define o identificador único do tabs. Obrigatório definir um \"name\" distinto para cada cura-tabs quando utilizado dentro de um tabs-group, garantindo o controle correto do estado e a seleção da aba ativa.',\n table: {\n category: 'Properties',\n },\n },\n iconName: {\n control: { type: 'select' },\n options: ['', ...iconNames],\n description: 'Define o nome do ícone exibido do iconset.',\n table: {\n category: 'Properties',\n },\n },\n selected: { control: 'boolean', description: 'Define se a aba está selecionada.', table: { category: 'State', defaultValue: { summary: false } } },\n disabled: { control: 'boolean', description: 'Define se a aba está desabilitada.', table: { category: 'State', defaultValue: { summary: false } } },\n borderBottom: { control: 'boolean', description: 'Define se a borda inferior é exibida.', table: { category: 'Properties', defaultValue: { summary: 'true' } } },\n size: {\n control: 'select',\n options: ['small', 'medium', 'large'],\n description: 'Define o tamanho do elemento.',\n table: {\n category: 'Properties',\n defaultValue: { summary: 'large' },\n },\n },\n colorMode: {\n control: { type: 'inline-radio' },\n options: ['light', 'dark'],\n description: 'Define a cor de tema.',\n table: {\n category: 'Properties',\n defaultValue: { summary: 'light' },\n },\n },\n tabSelect: {\n action: 'tabSelect',\n description: 'Evento disparado ao clicar na aba. Retorna o \"name\" da aba.',\n table: { category: 'Events' },\n },\n },\n};\n\nexport const CuraTabs = {\n args: {\n name: 'tab1',\n iconName: 'infoCircle',\n selected: false,\n disabled: false,\n borderBottom: true,\n size: 'large',\n colorMode: 'light',\n },\n};\n"]}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Global Spacing Definitions.
3
+ * Required CSS Properties from Cura:
4
+ * --cura-spacing-base
5
+ */
6
+ /* None: 0px */
7
+ /* Tiny default: 4px */
8
+ /* Mini default: 8px */
9
+ /* XXXS default: 12px */
10
+ /* XXS default: 16px */
11
+ /* XS default: 20px */
12
+ /* S default: 20px */
13
+ /* M default: 32px */
14
+ /* L default: 40px */
15
+ /* XL default: 48px */
16
+ /* XXL default: 64px */
17
+ /* XXXL default: 72px */
18
+ /* Huge default: 96px */
19
+ /**
20
+ * Global Button Definitions.
21
+ * Required CSS Properties:
22
+ * --font-size
23
+ * --base-spacing
24
+ * --font-family
25
+ * --font-weight-medium
26
+ * --text-align
27
+ */
28
+ /**
29
+ * Spacing sass vars
30
+ */
31
+ /**
32
+ * Global Spacing Definitions.
33
+ * Required CSS Properties from Cura:
34
+ * --cura-spacing-base
35
+ */
36
+ /* None: 0px */
37
+ /* Tiny default: 4px */
38
+ /* Mini default: 8px */
39
+ /* XXXS default: 12px */
40
+ /* XXS default: 16px */
41
+ /* XS default: 20px */
42
+ /* S default: 20px */
43
+ /* M default: 32px */
44
+ /* L default: 40px */
45
+ /* XL default: 48px */
46
+ /* XXL default: 64px */
47
+ /* XXXL default: 72px */
48
+ /* Huge default: 96px */
49
+ /**
50
+ * Buttons Host element definitions.
51
+ * Use: @include button-host() { ... }
52
+ */
53
+ /**
54
+ * Buttons base definitions.
55
+ * Use: @include button-element() { ... }
56
+ */
57
+ /**
58
+ * Button sizes definitions.
59
+ * Use: @include button-sizes() { ... }
60
+ */
61
+ /**
62
+ * Button container definitions.
63
+ * Use: @include button-container() { ... }
64
+ */
65
+ /**
66
+ * Button label definitions.
67
+ * Use: @include button-label() { ... }
68
+ */
69
+ /**
70
+ * Button shadow definitions.
71
+ * Use: @include button-label() { ... }
72
+ */
73
+ /**
74
+ * Button disabled state definitions
75
+ * Use: @include button-disabled() { ... }
76
+ */
77
+ /**
78
+ * Button selected state definitions
79
+ * Use: @include button-selected() { ... }
80
+ */
81
+ /**
82
+ * Button loading state definitions
83
+ * Use: @include button-loading() { ... }
84
+ */
85
+ /**
86
+ * Button icon definitions
87
+ * Use: @include button-icon() { ... }
88
+ */
89
+ /**
90
+ * Button icon only behavior definitions
91
+ * Use: @include button-icon-only-behavior() { ... }
92
+ */
93
+ :host button,
94
+ :host a {
95
+ outline: none;
96
+ box-shadow: none;
97
+ box-sizing: border-box;
98
+ display: flex;
99
+ width: 100%;
100
+ align-items: center;
101
+ justify-content: center;
102
+ text-decoration: none !important;
103
+ font-size: var(--font-size);
104
+ cursor: pointer;
105
+ transition: background-color 0.07s linear, box-shadow 0.07s linear, border-color 0.07s linear;
106
+ border-radius: var(--border-radius);
107
+ position: relative;
108
+ background-color: transparent;
109
+ box-sizing: border-box;
110
+ border: none;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ min-width: 120px;
115
+ width: fit-content;
116
+ border: 2px solid var(--border-color);
117
+ border-radius: 4px;
118
+ }
119
+ :host button:focus,
120
+ :host a:focus {
121
+ outline: 2px solid #6EA8FF;
122
+ }
123
+ :host button:not(.selected),
124
+ :host a:not(.selected) {
125
+ border: 2px solid var(--border-color);
126
+ }
127
+ :host button:not(.disabled, .selected):hover,
128
+ :host a:not(.disabled, .selected):hover {
129
+ background-color: var(--background-color-hover);
130
+ }
131
+ :host button:not(.disabled, .selected):hover.dark,
132
+ :host a:not(.disabled, .selected):hover.dark {
133
+ border-color: var(--neutral-purewhite);
134
+ }
135
+ :host button.small,
136
+ :host a.small {
137
+ padding: calc(var(--cura-spacing-base) * 2px) calc(var(--cura-spacing-base) * 2px);
138
+ }
139
+ :host button.medium,
140
+ :host a.medium {
141
+ padding: calc(var(--cura-spacing-base) * 3px) calc(var(--cura-spacing-base) * 3px);
142
+ }
143
+ :host button.large,
144
+ :host a.large {
145
+ padding: calc(var(--cura-spacing-base) * 3px) calc(var(--cura-spacing-base) * 4px);
146
+ }
147
+ :host button:focus,
148
+ :host a:focus {
149
+ border-color: var(--primary-light);
150
+ }
151
+ :host button cura-icon,
152
+ :host a cura-icon {
153
+ margin-right: calc(var(--cura-spacing-base) * 2px);
154
+ }
155
+ :host button cura-badge-counter,
156
+ :host a cura-badge-counter {
157
+ margin-left: calc(var(--cura-spacing-base) * 2px);
158
+ }
159
+ :host button.selected,
160
+ :host a.selected {
161
+ cursor: pointer;
162
+ background-color: var(--background-color-selected);
163
+ }
164
+ :host button.selected.disabled,
165
+ :host a.selected.disabled {
166
+ border-color: transparent;
167
+ background-color: var(--background-disabled-selected);
168
+ }
169
+ :host button.disabled,
170
+ :host a.disabled {
171
+ cursor: not-allowed;
172
+ }
173
+ :host button.disabled:not(.selected),
174
+ :host a.disabled:not(.selected) {
175
+ border-color: var(--neutral-dark);
176
+ }
@@ -0,0 +1,259 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { labelSizes } from "../cura-tabs.definitions";
3
+ export class CuraTabs {
4
+ constructor() {
5
+ this.name = undefined;
6
+ this.iconName = undefined;
7
+ this.counter = 1;
8
+ this.selected = false;
9
+ this.disabled = false;
10
+ this.size = 'large';
11
+ this.colorMode = 'light';
12
+ this.hovered = false;
13
+ this.styles = {};
14
+ }
15
+ setColors() {
16
+ const colors = [
17
+ { name: '--background-color-selected', theme: this.colorMode === 'light' ? 'primary-base' : 'primary-light' },
18
+ { name: '--background-color-hover', theme: this.colorMode === 'light' ? 'primary-light' : null },
19
+ {
20
+ name: '--background-disabled-selected',
21
+ theme: this.colorMode === 'light' ? 'neutral-white' : 'neutral-black',
22
+ },
23
+ {
24
+ name: '--border-color',
25
+ theme: this.colorMode === 'light' ? 'primary-base' : 'primary-light',
26
+ },
27
+ ];
28
+ colors.forEach(c => {
29
+ if (c.theme)
30
+ this.styles[c.name] = window.CuraAPI.theme.colors.getColor(c.theme);
31
+ });
32
+ this.styles = Object.assign({}, this.styles);
33
+ }
34
+ computeContentColor() {
35
+ if (this.disabled)
36
+ return 'neutral-dark';
37
+ if (this.colorMode === 'dark') {
38
+ if (this.hovered && !this.selected) {
39
+ return 'neutral-purewhite';
40
+ }
41
+ return this.selected ? 'neutral-black' : 'primary-lighter';
42
+ }
43
+ return this.selected ? 'neutral-purewhite' : 'primary-dark';
44
+ }
45
+ getIcon() {
46
+ if (!this.iconName)
47
+ return '';
48
+ const iconSize = this.size === 'large' ? 20 : 16;
49
+ const iconColor = this.computeContentColor();
50
+ return h("cura-icon", { name: this.iconName, size: iconSize, color: iconColor });
51
+ }
52
+ getClasses() {
53
+ return {
54
+ [this.size]: true,
55
+ [this.colorMode]: true,
56
+ selected: this.selected,
57
+ disabled: this.disabled,
58
+ };
59
+ }
60
+ getCounter() {
61
+ return h("cura-badge-counter", { number: this.counter, color: "primary", disabled: this.disabled, class: "badge-number" });
62
+ }
63
+ connectedCallback() {
64
+ this.styles = Object.assign(Object.assign({}, this.styles), { '--primary-dark': window.CuraAPI.theme.colors.getColor('primary-dark'), '--neutral-purewhite': window.CuraAPI.theme.colors.getColor('neutral-purewhite'), '--neutral-dark': window.CuraAPI.theme.colors.getColor('neutral-dark'), '--base-spacing': window.CuraAPI.theme.spacing.getSpacing() });
65
+ this.setColors();
66
+ }
67
+ handleMouseEnter() {
68
+ if (this.disabled)
69
+ return;
70
+ this.hovered = true;
71
+ }
72
+ handleMouseLeave() {
73
+ this.hovered = false;
74
+ }
75
+ handleClick(e) {
76
+ if (this.disabled) {
77
+ e.preventDefault();
78
+ return;
79
+ }
80
+ this.selected = !this.selected;
81
+ this.tabSelect.emit({ name: this.name });
82
+ }
83
+ render() {
84
+ const labelSize = labelSizes[this.size] || labelSizes['default'];
85
+ const labelColor = this.computeContentColor();
86
+ return (h(Host, { key: '9410b9c68061ffb5d838fe6ab2f409be9b90c6ac', role: "button", "aria-pressed": this.selected, "aria-disabled": this.disabled }, h("button", { key: '1ac26d9b41e072f1ec3668d66fee83679640c54f', class: this.getClasses(), style: this.styles, onClick: e => this.handleClick(e), disabled: this.disabled, onMouseEnter: this.handleMouseEnter.bind(this), onMouseLeave: this.handleMouseLeave.bind(this) }, this.getIcon(), h("cura-label", { key: 'ff854d36883b062d699388e71e6315f76f008f79', size: labelSize, color: labelColor, lineHeight: "0", marginBlock: "0" }, h("slot", { key: '6ab5c0cdea38f9094bb382943fe25c3967a681ab' })), this.counter > 0 && this.getCounter())));
87
+ }
88
+ static get is() { return "cura-tabs-button"; }
89
+ static get encapsulation() { return "shadow"; }
90
+ static get originalStyleUrls() {
91
+ return {
92
+ "$": ["cura-tabs-button.scss"]
93
+ };
94
+ }
95
+ static get styleUrls() {
96
+ return {
97
+ "$": ["cura-tabs-button.css"]
98
+ };
99
+ }
100
+ static get properties() {
101
+ return {
102
+ "name": {
103
+ "type": "string",
104
+ "mutable": false,
105
+ "complexType": {
106
+ "original": "string",
107
+ "resolved": "string",
108
+ "references": {}
109
+ },
110
+ "required": false,
111
+ "optional": false,
112
+ "docs": {
113
+ "tags": [],
114
+ "text": ""
115
+ },
116
+ "attribute": "name",
117
+ "reflect": true
118
+ },
119
+ "iconName": {
120
+ "type": "string",
121
+ "mutable": false,
122
+ "complexType": {
123
+ "original": "string",
124
+ "resolved": "string",
125
+ "references": {}
126
+ },
127
+ "required": false,
128
+ "optional": false,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": ""
132
+ },
133
+ "attribute": "icon-name",
134
+ "reflect": true
135
+ },
136
+ "counter": {
137
+ "type": "number",
138
+ "mutable": true,
139
+ "complexType": {
140
+ "original": "number",
141
+ "resolved": "number",
142
+ "references": {}
143
+ },
144
+ "required": false,
145
+ "optional": true,
146
+ "docs": {
147
+ "tags": [],
148
+ "text": ""
149
+ },
150
+ "attribute": "counter",
151
+ "reflect": true,
152
+ "defaultValue": "1"
153
+ },
154
+ "selected": {
155
+ "type": "boolean",
156
+ "mutable": true,
157
+ "complexType": {
158
+ "original": "boolean",
159
+ "resolved": "boolean",
160
+ "references": {}
161
+ },
162
+ "required": false,
163
+ "optional": false,
164
+ "docs": {
165
+ "tags": [],
166
+ "text": ""
167
+ },
168
+ "attribute": "selected",
169
+ "reflect": true,
170
+ "defaultValue": "false"
171
+ },
172
+ "disabled": {
173
+ "type": "boolean",
174
+ "mutable": true,
175
+ "complexType": {
176
+ "original": "boolean",
177
+ "resolved": "boolean",
178
+ "references": {}
179
+ },
180
+ "required": false,
181
+ "optional": false,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": ""
185
+ },
186
+ "attribute": "disabled",
187
+ "reflect": true,
188
+ "defaultValue": "false"
189
+ },
190
+ "size": {
191
+ "type": "string",
192
+ "mutable": false,
193
+ "complexType": {
194
+ "original": "'small' | 'medium' | 'large'",
195
+ "resolved": "\"large\" | \"medium\" | \"small\"",
196
+ "references": {}
197
+ },
198
+ "required": false,
199
+ "optional": false,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": ""
203
+ },
204
+ "attribute": "size",
205
+ "reflect": true,
206
+ "defaultValue": "'large'"
207
+ },
208
+ "colorMode": {
209
+ "type": "string",
210
+ "mutable": true,
211
+ "complexType": {
212
+ "original": "'dark' | 'light'",
213
+ "resolved": "\"dark\" | \"light\"",
214
+ "references": {}
215
+ },
216
+ "required": false,
217
+ "optional": false,
218
+ "docs": {
219
+ "tags": [],
220
+ "text": ""
221
+ },
222
+ "attribute": "color-mode",
223
+ "reflect": true,
224
+ "defaultValue": "'light'"
225
+ }
226
+ };
227
+ }
228
+ static get states() {
229
+ return {
230
+ "hovered": {},
231
+ "styles": {}
232
+ };
233
+ }
234
+ static get events() {
235
+ return [{
236
+ "method": "tabSelect",
237
+ "name": "tabSelect",
238
+ "bubbles": true,
239
+ "cancelable": true,
240
+ "composed": true,
241
+ "docs": {
242
+ "tags": [],
243
+ "text": ""
244
+ },
245
+ "complexType": {
246
+ "original": "{ name: string }",
247
+ "resolved": "{ name: string; }",
248
+ "references": {}
249
+ }
250
+ }];
251
+ }
252
+ static get watchers() {
253
+ return [{
254
+ "propName": "colorMode",
255
+ "methodName": "setColors"
256
+ }];
257
+ }
258
+ }
259
+ //# sourceMappingURL=cura-tabs-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cura-tabs-button.js","sourceRoot":"","sources":["../../../../src/components/tabs/cura-tabs-button/cura-tabs-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { labelSizes } from '../cura-tabs.definitions';\n\n@Component({\n tag: 'cura-tabs-button',\n styleUrl: 'cura-tabs-button.scss',\n shadow: true,\n})\nexport class CuraTabs {\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true }) iconName: string;\n @Prop({ reflect: true, mutable: true }) counter?: number = 1;\n @Prop({ reflect: true, mutable: true }) selected: boolean = false;\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'large';\n @Prop({ reflect: true, mutable: true }) colorMode: 'dark' | 'light' = 'light';\n\n @State() hovered = false;\n @State() styles: Record<string, string> = {};\n\n @Event() tabSelect: EventEmitter<{ name: string }>;\n\n @Watch('colorMode')\n setColors() {\n const colors = [\n { name: '--background-color-selected', theme: this.colorMode === 'light' ? 'primary-base' : 'primary-light' },\n { name: '--background-color-hover', theme: this.colorMode === 'light' ? 'primary-light' : null },\n {\n name: '--background-disabled-selected',\n theme: this.colorMode === 'light' ? 'neutral-white' : 'neutral-black',\n },\n {\n name: '--border-color',\n theme: this.colorMode === 'light' ? 'primary-base' : 'primary-light',\n },\n ];\n\n colors.forEach(c => {\n if (c.theme) this.styles[c.name] = window.CuraAPI.theme.colors.getColor(c.theme);\n });\n\n this.styles = { ...this.styles };\n }\n\n computeContentColor(): string {\n if (this.disabled) return 'neutral-dark';\n\n if (this.colorMode === 'dark') {\n if (this.hovered && !this.selected) {\n return 'neutral-purewhite';\n }\n return this.selected ? 'neutral-black' : 'primary-lighter';\n }\n\n return this.selected ? 'neutral-purewhite' : 'primary-dark';\n }\n\n getIcon() {\n if (!this.iconName) return '';\n const iconSize = this.size === 'large' ? 20 : 16;\n const iconColor = this.computeContentColor();\n\n return <cura-icon name={this.iconName} size={iconSize} color={iconColor}></cura-icon>;\n }\n\n getClasses() {\n return {\n [this.size]: true,\n [this.colorMode]: true,\n selected: this.selected,\n disabled: this.disabled,\n };\n }\n\n getCounter() {\n return <cura-badge-counter number={this.counter} color=\"primary\" disabled={this.disabled} class=\"badge-number\"></cura-badge-counter>;\n }\n\n connectedCallback() {\n this.styles = {\n ...this.styles,\n '--primary-dark': window.CuraAPI.theme.colors.getColor('primary-dark'),\n '--neutral-purewhite': window.CuraAPI.theme.colors.getColor('neutral-purewhite'),\n '--neutral-dark': window.CuraAPI.theme.colors.getColor('neutral-dark'),\n '--base-spacing': window.CuraAPI.theme.spacing.getSpacing(),\n };\n\n this.setColors();\n }\n\n handleMouseEnter() {\n if (this.disabled) return;\n this.hovered = true;\n }\n\n handleMouseLeave() {\n this.hovered = false;\n }\n\n handleClick(e: Event) {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\n\n this.selected = !this.selected;\n this.tabSelect.emit({ name: this.name });\n }\n\n render() {\n const labelSize = labelSizes[this.size] || labelSizes['default'];\n const labelColor = this.computeContentColor();\n\n return (\n <Host role=\"button\" aria-pressed={this.selected} aria-disabled={this.disabled}>\n <button\n class={this.getClasses()}\n style={this.styles}\n onClick={e => this.handleClick(e)}\n disabled={this.disabled}\n onMouseEnter={this.handleMouseEnter.bind(this)}\n onMouseLeave={this.handleMouseLeave.bind(this)}\n >\n {this.getIcon()}\n <cura-label size={labelSize} color={labelColor} lineHeight=\"0\" marginBlock=\"0\">\n <slot></slot>\n </cura-label>\n {this.counter > 0 && this.getCounter()}\n </button>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,96 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s)
4
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import iconNames from "../../../assets/icons/iconset-default-list";
14
+ const renderCuraTabsButton = (args) => `
15
+ <cura-tabs-button
16
+ name=${args.name}
17
+ icon-name=${args.iconName}
18
+ counter=${args.counter}
19
+ selected=${args.selected}
20
+ disabled=${args.disabled}
21
+ size=${args.size}
22
+ color-mode=${args.colorMode}
23
+ >
24
+ Label
25
+ </cura-tabs-button>
26
+ `;
27
+ export default {
28
+ title: 'Componentes/Tabs/Tabs Button',
29
+ tags: ['autodocs'],
30
+ render: (_a) => {
31
+ var args = __rest(_a, []);
32
+ return renderCuraTabsButton(args);
33
+ },
34
+ argTypes: {
35
+ name: {
36
+ control: 'text',
37
+ description: 'Define o identificador único do tabs. Obrigatório definir um "name" distinto para cada cura-tabs-button quando utilizado dentro de um tabs-group, garantindo o controle correto do estado e a seleção da aba ativa.',
38
+ table: {
39
+ category: 'Properties',
40
+ },
41
+ },
42
+ iconName: {
43
+ control: { type: 'select' },
44
+ options: ['', ...iconNames],
45
+ description: 'Define o nome do ícone exibido do iconset.',
46
+ table: {
47
+ category: 'Properties',
48
+ },
49
+ },
50
+ counter: {
51
+ control: 'number',
52
+ description: 'Define o número exibido no badge counter.',
53
+ table: {
54
+ category: 'Properties',
55
+ defaultValue: { summary: '1' },
56
+ },
57
+ },
58
+ selected: { control: 'boolean', description: 'Define se a aba está selecionada.', table: { category: 'State', defaultValue: { summary: false } } },
59
+ disabled: { control: 'boolean', description: 'Define se a aba está desabilitada.', table: { category: 'State', defaultValue: { summary: false } } },
60
+ size: {
61
+ control: 'select',
62
+ options: ['small', 'medium', 'large'],
63
+ description: 'Define o tamanho do elemento.',
64
+ table: {
65
+ category: 'Properties',
66
+ defaultValue: { summary: 'large' },
67
+ },
68
+ },
69
+ colorMode: {
70
+ control: { type: 'inline-radio' },
71
+ options: ['light', 'dark'],
72
+ description: 'Define a cor de tema.',
73
+ table: {
74
+ category: 'Properties',
75
+ defaultValue: { summary: 'light' },
76
+ },
77
+ },
78
+ tabSelect: {
79
+ action: 'tabSelect',
80
+ description: 'Evento disparado ao clicar na aba. Retorna o "name" da aba.',
81
+ table: { category: 'Events' },
82
+ },
83
+ },
84
+ };
85
+ export const CuraTabs = {
86
+ args: {
87
+ name: 'tab1',
88
+ iconName: 'infoCircle',
89
+ counter: 1,
90
+ selected: false,
91
+ disabled: false,
92
+ size: 'large',
93
+ colorMode: 'light',
94
+ },
95
+ };
96
+ //# sourceMappingURL=cura-tabs-button.stories.js.map