@sula-tech/webcomponents 0.20.1 → 0.21.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 (143) hide show
  1. package/dist/cjs/index.cjs.js +7 -3
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{sula-avatar_31.cjs.entry.js → sula-avatar_32.cjs.entry.js} +411 -81
  5. package/dist/cjs/sula-avatar_32.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{sula-menu.model-BDxbWyPG.js → sula-calendar.model-BI5cNrUo.js} +8 -2
  7. package/dist/cjs/sula-calendar.model-BI5cNrUo.js.map +1 -0
  8. package/dist/cjs/sula-toast-stack.cjs.entry.js +4 -4
  9. package/dist/cjs/sula-toast.cjs.entry.js +2 -2
  10. package/dist/cjs/webcomponents.cjs.js +1 -1
  11. package/dist/collection/collection-manifest.json +1 -0
  12. package/dist/collection/components/sula-calendar/model/sula-calendar.model.js +6 -0
  13. package/dist/collection/components/sula-calendar/model/sula-calendar.model.js.map +1 -0
  14. package/dist/collection/components/sula-calendar/sula-calendar.css +1 -0
  15. package/dist/collection/components/sula-calendar/sula-calendar.js +747 -0
  16. package/dist/collection/components/sula-calendar/sula-calendar.js.map +1 -0
  17. package/dist/collection/components/sula-calendar/sula-calendar.stories.js +273 -0
  18. package/dist/collection/components/sula-calendar/sula-calendar.stories.js.map +1 -0
  19. package/dist/collection/components/sula-checkbox/sula-checkbox.js +3 -3
  20. package/dist/collection/components/sula-chip/sula-chip.js +3 -3
  21. package/dist/collection/components/sula-dropdown/sula-dropdown.js +3 -3
  22. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  23. package/dist/collection/components/sula-icon/sula-icon.js +1 -1
  24. package/dist/collection/components/sula-icon-picker/sula-icon-picker.js +2 -2
  25. package/dist/collection/components/sula-loader/sula-loader.js +1 -1
  26. package/dist/collection/components/sula-menu/sula-menu.js +8 -8
  27. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +1 -1
  28. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +2 -2
  29. package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
  30. package/dist/collection/components/sula-search-bar/sula-search-bar.js +2 -2
  31. package/dist/collection/components/sula-segmented-control/sula-segmented-control.js +1 -1
  32. package/dist/collection/components/sula-switch/sula-switch.js +4 -4
  33. package/dist/collection/components/sula-table/sula-table.js +3 -3
  34. package/dist/collection/components/sula-table-body/sula-table-body.js +1 -1
  35. package/dist/collection/components/sula-table-cell/sula-table-cell.js +2 -2
  36. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +2 -2
  37. package/dist/collection/components/sula-table-header/sula-table-header.js +1 -1
  38. package/dist/collection/components/sula-table-row/sula-table-row.js +1 -1
  39. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  40. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  41. package/dist/collection/components/sula-textfield/sula-textfield.css +1 -1
  42. package/dist/collection/components/sula-textfield/sula-textfield.js +27 -3
  43. package/dist/collection/components/sula-textfield/sula-textfield.js.map +1 -1
  44. package/dist/collection/components/sula-textfield/sula-textfield.stories.js +9 -0
  45. package/dist/collection/components/sula-textfield/sula-textfield.stories.js.map +1 -1
  46. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  47. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  48. package/dist/collection/components/sula-toast/sula-toast.js +2 -2
  49. package/dist/collection/components/sula-toast-stack/sula-toast-stack.js +4 -4
  50. package/dist/collection/components/sula-toggle/sula-toggle.js +1 -1
  51. package/dist/collection/components/sula-tooltip/sula-tooltip.js +1 -1
  52. package/dist/collection/index.js +1 -0
  53. package/dist/collection/index.js.map +1 -1
  54. package/dist/components/index.js +1 -0
  55. package/dist/components/index.js.map +1 -1
  56. package/dist/components/{p-DmQoJS86.js → p-B_NGmHsm.js} +5 -5
  57. package/dist/components/{p-DmQoJS86.js.map → p-B_NGmHsm.js.map} +1 -1
  58. package/dist/components/{p-D0ZAC0yK.js → p-BjgwRn5o.js} +7 -7
  59. package/dist/components/{p-D0ZAC0yK.js.map → p-BjgwRn5o.js.map} +1 -1
  60. package/dist/components/{p-DGfvh6dZ.js → p-BlH9b-mx.js} +4 -4
  61. package/dist/components/{p-DGfvh6dZ.js.map → p-BlH9b-mx.js.map} +1 -1
  62. package/dist/components/p-Cp_4qTxj.js +10 -0
  63. package/dist/components/p-Cp_4qTxj.js.map +1 -0
  64. package/dist/components/{p-DqRqPukj.js → p-DaG0HavP.js} +4 -4
  65. package/dist/components/{p-DqRqPukj.js.map → p-DaG0HavP.js.map} +1 -1
  66. package/dist/components/{p-b7t6bSNa.js → p-DtVQ10Ux.js} +4 -4
  67. package/dist/components/{p-b7t6bSNa.js.map → p-DtVQ10Ux.js.map} +1 -1
  68. package/dist/components/{p-CJ2i2jVV.js → p-VozP-C7p.js} +5 -5
  69. package/dist/components/{p-CJ2i2jVV.js.map → p-VozP-C7p.js.map} +1 -1
  70. package/dist/components/{p-DmCNhtp_.js → p-rCU8ay8s.js} +3 -3
  71. package/dist/components/{p-DmCNhtp_.js.map → p-rCU8ay8s.js.map} +1 -1
  72. package/dist/components/p-rm8YKiRh.js +555 -0
  73. package/dist/components/p-rm8YKiRh.js.map +1 -0
  74. package/dist/components/sula-avatar.js +1 -1
  75. package/dist/components/sula-badge.js +1 -1
  76. package/dist/components/sula-breadcrumb.js +1 -1
  77. package/dist/components/sula-button.js +1 -1
  78. package/dist/components/sula-calendar.d.ts +11 -0
  79. package/dist/components/sula-calendar.js +385 -0
  80. package/dist/components/sula-calendar.js.map +1 -0
  81. package/dist/components/sula-checkbox.js +4 -4
  82. package/dist/components/sula-chip.js +5 -5
  83. package/dist/components/sula-dropdown.js +1 -1
  84. package/dist/components/sula-icon-picker.js +6 -6
  85. package/dist/components/sula-icon.js +1 -1
  86. package/dist/components/sula-loader.js +1 -1
  87. package/dist/components/sula-menu-select-list.js +1 -1
  88. package/dist/components/sula-menu.js +9 -9
  89. package/dist/components/sula-modal.js +3 -3
  90. package/dist/components/sula-progress-bar.js +3 -3
  91. package/dist/components/sula-radio-button.js +2 -2
  92. package/dist/components/sula-search-bar.js +1 -1
  93. package/dist/components/sula-segmented-control.js +2 -2
  94. package/dist/components/sula-switch.js +4 -4
  95. package/dist/components/sula-table-body.js +1 -1
  96. package/dist/components/sula-table-cell.js +2 -2
  97. package/dist/components/sula-table-head-cell.js +2 -2
  98. package/dist/components/sula-table-header.js +1 -1
  99. package/dist/components/sula-table-row.js +1 -1
  100. package/dist/components/sula-table.js +3 -3
  101. package/dist/components/sula-tag.js +4 -4
  102. package/dist/components/sula-textarea.js +6 -6
  103. package/dist/components/sula-textfield.js +1 -545
  104. package/dist/components/sula-textfield.js.map +1 -1
  105. package/dist/components/sula-tiles.js +2 -2
  106. package/dist/components/sula-timeline-list.js +2 -2
  107. package/dist/components/sula-toast-stack.js +6 -6
  108. package/dist/components/sula-toast.js +1 -1
  109. package/dist/components/sula-toggle.js +2 -2
  110. package/dist/components/sula-tooltip.js +2 -2
  111. package/dist/esm/index.js +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/esm/{sula-avatar_31.entry.js → sula-avatar_32.entry.js} +405 -76
  114. package/dist/esm/sula-avatar_32.entry.js.map +1 -0
  115. package/dist/esm/{sula-menu.model-Cs9RR1ZV.js → sula-calendar.model-BbsLJDfp.js} +9 -3
  116. package/dist/esm/sula-calendar.model-BbsLJDfp.js.map +1 -0
  117. package/dist/esm/sula-toast-stack.entry.js +4 -4
  118. package/dist/esm/sula-toast.entry.js +2 -2
  119. package/dist/esm/webcomponents.js +1 -1
  120. package/dist/types/components/sula-calendar/model/sula-calendar.model.d.ts +28 -0
  121. package/dist/types/components/sula-calendar/sula-calendar.d.ts +128 -0
  122. package/dist/types/components/sula-calendar/sula-calendar.stories.d.ts +159 -0
  123. package/dist/types/components/sula-textfield/sula-textfield.d.ts +4 -0
  124. package/dist/types/components/sula-textfield/sula-textfield.stories.d.ts +8 -0
  125. package/dist/types/components.d.ts +199 -0
  126. package/dist/types/index.d.ts +2 -0
  127. package/dist/webcomponents/index.esm.js +1 -1
  128. package/dist/webcomponents/{p-f4ef50ea.entry.js → p-0004eff8.entry.js} +790 -366
  129. package/dist/webcomponents/p-0004eff8.entry.js.map +1 -0
  130. package/dist/webcomponents/{p-170854a5.entry.js → p-9a8a1133.entry.js} +16 -16
  131. package/dist/webcomponents/{p-Cs9RR1ZV.js → p-BbsLJDfp.js} +11 -4
  132. package/dist/webcomponents/p-BbsLJDfp.js.map +1 -0
  133. package/dist/webcomponents/{p-c58125e1.entry.js → p-aafb83bd.entry.js} +6 -6
  134. package/dist/webcomponents/webcomponents.esm.js +46 -23
  135. package/package.json +1 -1
  136. package/dist/cjs/sula-avatar_31.cjs.entry.js.map +0 -1
  137. package/dist/cjs/sula-menu.model-BDxbWyPG.js.map +0 -1
  138. package/dist/esm/sula-avatar_31.entry.js.map +0 -1
  139. package/dist/esm/sula-menu.model-Cs9RR1ZV.js.map +0 -1
  140. package/dist/webcomponents/p-Cs9RR1ZV.js.map +0 -1
  141. package/dist/webcomponents/p-f4ef50ea.entry.js.map +0 -1
  142. /package/dist/webcomponents/{p-170854a5.entry.js.map → p-9a8a1133.entry.js.map} +0 -0
  143. /package/dist/webcomponents/{p-c58125e1.entry.js.map → p-aafb83bd.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sula-textfield.js","sourceRoot":"","sources":["../../../src/components/sula-textfield/sula-textfield.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaTextfieldStatus, SulaTextfieldType } from './model/sula-textfield.model';\nimport VMasker from 'vanilla-masker';\n\n@Component({\n tag: 'sula-textfield',\n styleUrl: 'sula-textfield.scss',\n shadow: true,\n})\nexport class SulaTextfield {\n /**\n * Value for the input.\n */\n @Prop({ mutable: true })\n value?: string;\n\n /**\n * The textfield type\n */\n @Prop() type: SulaTextfieldType = SulaTextfieldType.Text;\n\n /**\n * The textfield status\n */\n @Prop({ mutable: true }) status: SulaTextfieldStatus = SulaTextfieldStatus.Default;\n\n /**\n * The textfield label\n */\n @Prop() label: string;\n\n /**\n * The textfield placeholder\n */\n @Prop() placeholder: string;\n\n /**\n * The textfield is disabled\n */\n @Prop({ mutable: true }) disabled: boolean;\n\n /**\n * The help text for textfield\n */\n @Prop() helpText?: string;\n\n /**\n * The textfield max length\n */\n @Prop() maxLength?: number;\n\n /**\n * The textfield icon\n */\n @Prop() icon?: string;\n\n /**\n * Event emitted when input value changes.\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Event emitted when input value changes without mask pattern applied.\n */\n @Event()\n valueChangedWithoutMask: EventEmitter<string>;\n\n /**\n * The textfield mask pattern\n * The mask pattern should follow the VMasker pattern format\n * More info: https://github.com/vanilla-masker/vanilla-masker?tab=readme-ov-file#custom-pattern\n */\n @Prop()\n maskPattern?: string | string[];\n\n /**\n * Optional manual switch lengths used to switch between mask patterns.\n * If not provided, switch lengths are automatically inferred from `maskPattern`.\n *\n * - When number: switches between first and second pattern at this length\n * - When array: defines multiple switch points for multiple patterns\n * Example: [11, 14] means 0-11 uses first pattern, 12-14 uses second, 15+ uses third\n */\n @Prop()\n maskPatternSwitchMaxLength?: number | number[];\n\n /**\n * Event emitted when input is focused.\n */\n @Event()\n focusedOn: EventEmitter<void>;\n\n /**\n * Event emitted when input is focused out.\n */\n @Event()\n focusedOut: EventEmitter<void>;\n\n @State()\n inputIsOpen = false;\n\n @State()\n textValue: string = '';\n\n @State()\n showPassword = false;\n\n @State()\n inputIsFocused = false;\n\n @Watch('value')\n watchValueHandler(newValue: string) {\n const normalizedValue = newValue || '';\n this.textValue = normalizedValue;\n\n if (this.inputElement && this.inputElement.value !== normalizedValue) {\n const cursorPosition = this.inputElement.selectionStart;\n this.inputElement.value = normalizedValue;\n\n if (this.hasMaskPatternConfigured()) {\n this.handleInputMask(normalizedValue);\n this.textValue = this.inputElement.value;\n }\n\n if (this.inputIsFocused && cursorPosition !== null) {\n const newPosition = Math.min(cursorPosition, this.inputElement.value.length);\n this.inputElement.setSelectionRange(newPosition, newPosition);\n }\n }\n\n if (this.textValue && this.textValue.trim().length > 0) {\n this.inputIsOpen = true;\n this.changeElementsStyle();\n } else if (!this.inputIsFocused) {\n this.inputIsOpen = false;\n this.changeElementsStyle();\n }\n }\n\n @Watch('maskPattern')\n watchMaskPatternHandler() {\n this.syncMaskState();\n }\n\n @Watch('maskPatternSwitchMaxLength')\n watchMaskPatternSwitchMaxLengthHandler() {\n this.syncMaskState();\n }\n\n inputContainer: HTMLDivElement;\n inputElement: HTMLInputElement;\n labelElement: HTMLDivElement;\n\n node?: HTMLElement;\n\n @Listen('click', { target: 'document' })\n handleClick(event: Event) {\n if (!this.node || !this.inputIsFocused) return;\n\n const clickInside = this.node.contains(event.target as Node);\n\n if (!clickInside) {\n this.toggleOptions(false);\n this.focusedOut.emit();\n this.inputIsFocused = false;\n }\n }\n\n componentWillLoad() {\n if (this.value && this.value.trim().length > 0) {\n this.textValue = this.value;\n this.inputIsOpen = true;\n }\n }\n\n componentDidLoad() {\n if (this.value && this.value.trim().length > 0 && this.inputElement) {\n this.inputElement.value = this.value;\n this.textValue = this.value;\n }\n\n if (this.textValue && this.textValue.trim().length > 0) {\n this.changeElementsStyle();\n }\n\n if (this.hasMaskPatternConfigured() && this.inputElement) {\n this.handleInputMask();\n this.textValue = this.inputElement.value;\n this.value = this.inputElement.value;\n }\n }\n\n handleInputClick = () => {\n this.toggleOptions(true);\n };\n\n toggleOptions(inputIsOpen: boolean) {\n if ((this.inputIsOpen && this.textValue && this.textValue.length > 0) || this.disabled) return;\n\n this.inputIsOpen = inputIsOpen;\n this.changeElementsStyle();\n this.inputElement.focus();\n }\n\n changeElementsStyle() {\n if (!this.inputContainer || !this.labelElement) return;\n\n this.inputContainer.style.display = this.inputIsOpen ? 'flex' : 'none';\n this.labelElement.style.display = this.inputIsOpen ? 'none' : 'block';\n if (!this.inputIsOpen) {\n this.labelElement.classList.add('from-up');\n }\n }\n\n handleInputChanges = (event: InputEvent) => {\n const newValue = (event.target as HTMLInputElement).value;\n let valueToPersist = newValue;\n\n if (this.hasMaskPatternConfigured() && this.inputElement) {\n this.handleInputMask(newValue);\n valueToPersist = this.inputElement.value;\n }\n this.valueChangedWithoutMask.emit(valueToPersist.replace(/\\D/g, ''));\n this.textValue = valueToPersist;\n this.value = valueToPersist;\n\n this.valueChanged.emit(valueToPersist);\n };\n\n handleFocus = () => {\n if (this.disabled) return;\n this.toggleOptions(true);\n this.inputElement.focus();\n };\n\n handleBlur = () => {\n this.toggleOptions(false);\n\n this.focusedOut.emit();\n this.inputIsFocused = false;\n };\n\n handleInputFocus = () => {\n this.focusedOn.emit();\n this.inputIsFocused = true;\n };\n\n handleIconClick = (event: MouseEvent) => {\n if (this.type === SulaTextfieldType.Password) {\n event.stopPropagation();\n this.handlePasswordIconClicked();\n }\n };\n\n handleInputMask(inputValue?: string) {\n if (!this.inputElement) return;\n\n const valueWithoutMask = (inputValue ?? this.inputElement.value ?? '').replace(/[^a-zA-Z0-9]/g, '');\n const maskPattern = this.getMaskPatternByValueLength(valueWithoutMask, inputValue ?? this.inputElement.value ?? '');\n if (!maskPattern) return;\n\n VMasker(this.inputElement).unMask();\n this.inputElement.value = (VMasker as any).toPattern(valueWithoutMask, maskPattern);\n }\n\n private syncMaskState() {\n if (!this.inputElement) return;\n\n if (!this.hasMaskPatternConfigured()) {\n VMasker(this.inputElement).unMask();\n return;\n }\n\n this.handleInputMask();\n this.textValue = this.inputElement.value;\n this.value = this.inputElement.value;\n }\n\n private hasMaskPatternConfigured(): boolean {\n return this.getMaskPatterns().length > 0;\n }\n\n private getMaskPatterns(): string[] {\n if (Array.isArray(this.maskPattern)) {\n return this.maskPattern.map(pattern => pattern?.trim()).filter(Boolean);\n }\n\n if (typeof this.maskPattern === 'string' && this.maskPattern.trim().length > 0) {\n return [this.maskPattern.trim()];\n }\n\n return [];\n }\n\n private getMaskPatternByValueLength(inputValue?: string, rawInputValue?: string): string | undefined {\n const patterns = this.getMaskPatterns();\n if (patterns.length === 0) return undefined;\n if (patterns.length === 1) return patterns[0];\n\n const currentValueLength = (inputValue ?? '').length;\n const providedSwitchLengths = this.normalizeProvidedSwitchLengths();\n\n if (providedSwitchLengths.length === 0) {\n return this.getMaskPatternByAutoInference(patterns, currentValueLength, rawInputValue);\n }\n\n for (let i = 0; i < providedSwitchLengths.length; i++) {\n if (currentValueLength <= providedSwitchLengths[i]) {\n return patterns[Math.min(i, patterns.length - 1)];\n }\n }\n\n return patterns[patterns.length - 1];\n }\n\n private getMaskPatternByAutoInference(patterns: string[], currentValueLength: number, rawInputValue?: string): string {\n const capacities = patterns.map(pattern => (pattern.match(/[9AS]/g) || []).length);\n const eligibleCapacities = capacities.filter(capacity => capacity >= currentValueLength && capacity > 0);\n\n if (eligibleCapacities.length === 0) {\n return patterns[patterns.length - 1];\n }\n\n const selectedCapacity = Math.min(...eligibleCapacities);\n const candidateIndexes = capacities\n .map((capacity, index) => ({ capacity, index }))\n .filter(item => item.capacity === selectedCapacity)\n .map(item => item.index);\n\n if (candidateIndexes.length === 1) {\n return patterns[candidateIndexes[0]];\n }\n\n const rawLiterals = (rawInputValue ?? '').replace(/[a-zA-Z0-9]/g, '');\n if (rawLiterals.length > 0) {\n for (const candidateIndex of candidateIndexes) {\n const patternLiterals = patterns[candidateIndex].replace(/[9AS]/g, '');\n if (patternLiterals === rawLiterals) {\n return patterns[candidateIndex];\n }\n }\n }\n\n return patterns[candidateIndexes[0]];\n }\n\n private normalizeProvidedSwitchLengths(): number[] {\n if (Array.isArray(this.maskPatternSwitchMaxLength)) {\n return this.maskPatternSwitchMaxLength.filter(value => Number.isFinite(value) && value > 0).sort((a, b) => a - b);\n }\n\n if (typeof this.maskPatternSwitchMaxLength === 'number' && Number.isFinite(this.maskPatternSwitchMaxLength) && this.maskPatternSwitchMaxLength > 0) {\n return [this.maskPatternSwitchMaxLength];\n }\n\n return [];\n }\n\n handlePasswordIconClicked() {\n const cursorPosition = this.inputElement.selectionStart;\n const inputValue = this.inputElement.value;\n const inputType = this.showPassword ? SulaTextfieldType.Password : SulaTextfieldType.Text;\n\n this.inputElement.setAttribute('type', inputType);\n this.showPassword = !this.showPassword;\n\n setTimeout(() => {\n this.inputElement.value = inputValue;\n\n this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\n }, 0);\n }\n\n getInputIcon() {\n if (this.type === SulaTextfieldType.Password) {\n return this.showPassword ? 'ph ph-eye' : 'ph ph-eye-slash';\n }\n\n return this.icon;\n }\n\n render() {\n return (\n <Host ref={node => (this.node = node)}>\n <div>\n <div\n id=\"button-container\"\n class={{\n 'flex items-center border rounded-sm px-16 outline-none h-[72px] caret-brand-primary': true,\n 'flex-row justify-between': !!this.icon || this.type === SulaTextfieldType.Password,\n 'button-focus': this.inputIsFocused && !this.disabled && this.status === SulaTextfieldStatus.Default,\n 'button-error': this.status === SulaTextfieldStatus.Error && !this.disabled,\n 'bg-states-bg-disabled border-line-general cursor-not-allowed': this.disabled,\n 'bg-surface-body border-line-input cursor-pointer': !this.disabled,\n }}\n tabIndex={0}\n onFocus={this.handleFocus}\n onClick={this.handleInputClick}\n >\n <div class={{ 'hidden flex-col w-full': true, 'pr-12': !!this.icon }} ref={node => (this.inputContainer = node)}>\n <label class={{ 'font-bold text-sm from-down': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}>{this.label}</label>\n <input\n type={this.type}\n ref={node => (this.inputElement = node)}\n placeholder={this.placeholder}\n class={{ 'outline-none text-base bg-transparent': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}\n onInput={this.handleInputChanges}\n onFocus={this.handleInputFocus}\n value={this.textValue}\n disabled={this.disabled}\n />\n </div>\n\n <div\n id=\"textfield-label\"\n class={{ 'text-base flex items-center': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}\n ref={node => (this.labelElement = node)}\n >\n {this.label}\n </div>\n\n {(!!this.icon || this.type === SulaTextfieldType.Password) && (\n <div class=\"flex items-center justify-center\" onClick={this.handleIconClick}>\n <sula-icon icon={this.getInputIcon()} customClass={`text-2xl ${this.disabled ? 'text-icon-disabled' : 'text-icon-primary'}`} />\n </div>\n )}\n </div>\n\n {(this.helpText || this.maxLength) && !this.disabled && (\n <div class=\"flex justify-between items-center px-16 mt-4 text-sm\">\n {this.helpText && (\n <div\n id=\"textfield-help-text\"\n class={{ 'text-text-primary': this.status === SulaTextfieldStatus.Default, 'text-feedback-error': this.status === SulaTextfieldStatus.Error }}\n >\n {this.helpText}\n </div>\n )}\n {this.maxLength && (\n <div\n id=\"max-length-container\"\n class={{ 'text-text-primary': this.status === SulaTextfieldStatus.Default, 'text-feedback-error': this.status === SulaTextfieldStatus.Error }}\n >\n {this.textValue ? this.textValue.length : 0}/{this.maxLength}\n </div>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"sula-textfield.js","sourceRoot":"","sources":["../../../src/components/sula-textfield/sula-textfield.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaTextfieldStatus, SulaTextfieldType } from './model/sula-textfield.model';\nimport VMasker from 'vanilla-masker';\n\n@Component({\n tag: 'sula-textfield',\n styleUrl: 'sula-textfield.scss',\n shadow: true,\n})\nexport class SulaTextfield {\n /**\n * Value for the input.\n */\n @Prop({ mutable: true })\n value?: string;\n\n /**\n * The textfield type\n */\n @Prop() type: SulaTextfieldType = SulaTextfieldType.Text;\n\n /**\n * The textfield status\n */\n @Prop({ mutable: true }) status: SulaTextfieldStatus = SulaTextfieldStatus.Default;\n\n /**\n * The textfield label\n */\n @Prop() label: string;\n\n /**\n * The textfield placeholder\n */\n @Prop() placeholder: string;\n\n /**\n * The textfield is disabled\n */\n @Prop({ mutable: true }) disabled: boolean;\n\n /**\n * The textfield is read only, blocking typing while keeping it focusable\n */\n @Prop() readOnly: boolean = false;\n\n /**\n * The help text for textfield\n */\n @Prop() helpText?: string;\n\n /**\n * The textfield max length\n */\n @Prop() maxLength?: number;\n\n /**\n * The textfield icon\n */\n @Prop() icon?: string;\n\n /**\n * Event emitted when input value changes.\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Event emitted when input value changes without mask pattern applied.\n */\n @Event()\n valueChangedWithoutMask: EventEmitter<string>;\n\n /**\n * The textfield mask pattern\n * The mask pattern should follow the VMasker pattern format\n * More info: https://github.com/vanilla-masker/vanilla-masker?tab=readme-ov-file#custom-pattern\n */\n @Prop()\n maskPattern?: string | string[];\n\n /**\n * Optional manual switch lengths used to switch between mask patterns.\n * If not provided, switch lengths are automatically inferred from `maskPattern`.\n *\n * - When number: switches between first and second pattern at this length\n * - When array: defines multiple switch points for multiple patterns\n * Example: [11, 14] means 0-11 uses first pattern, 12-14 uses second, 15+ uses third\n */\n @Prop()\n maskPatternSwitchMaxLength?: number | number[];\n\n /**\n * Event emitted when input is focused.\n */\n @Event()\n focusedOn: EventEmitter<void>;\n\n /**\n * Event emitted when input is focused out.\n */\n @Event()\n focusedOut: EventEmitter<void>;\n\n @State()\n inputIsOpen = false;\n\n @State()\n textValue: string = '';\n\n @State()\n showPassword = false;\n\n @State()\n inputIsFocused = false;\n\n @Watch('value')\n watchValueHandler(newValue: string) {\n const normalizedValue = newValue || '';\n this.textValue = normalizedValue;\n\n if (this.inputElement && this.inputElement.value !== normalizedValue) {\n const cursorPosition = this.inputElement.selectionStart;\n this.inputElement.value = normalizedValue;\n\n if (this.hasMaskPatternConfigured()) {\n this.handleInputMask(normalizedValue);\n this.textValue = this.inputElement.value;\n }\n\n if (this.inputIsFocused && cursorPosition !== null) {\n const newPosition = Math.min(cursorPosition, this.inputElement.value.length);\n this.inputElement.setSelectionRange(newPosition, newPosition);\n }\n }\n\n if (this.textValue && this.textValue.trim().length > 0) {\n this.inputIsOpen = true;\n this.changeElementsStyle();\n } else if (!this.inputIsFocused) {\n this.inputIsOpen = false;\n this.changeElementsStyle();\n }\n }\n\n @Watch('maskPattern')\n watchMaskPatternHandler() {\n this.syncMaskState();\n }\n\n @Watch('maskPatternSwitchMaxLength')\n watchMaskPatternSwitchMaxLengthHandler() {\n this.syncMaskState();\n }\n\n inputContainer: HTMLDivElement;\n inputElement: HTMLInputElement;\n labelElement: HTMLDivElement;\n\n node?: HTMLElement;\n\n @Listen('click', { target: 'document' })\n handleClick(event: Event) {\n if (!this.node || !this.inputIsFocused) return;\n\n const clickInside = event.composedPath().includes(this.node);\n\n if (!clickInside) {\n this.toggleOptions(false);\n this.focusedOut.emit();\n this.inputIsFocused = false;\n }\n }\n\n componentWillLoad() {\n if (this.value && this.value.trim().length > 0) {\n this.textValue = this.value;\n this.inputIsOpen = true;\n }\n }\n\n componentDidLoad() {\n if (this.value && this.value.trim().length > 0 && this.inputElement) {\n this.inputElement.value = this.value;\n this.textValue = this.value;\n }\n\n if (this.textValue && this.textValue.trim().length > 0) {\n this.changeElementsStyle();\n }\n\n if (this.hasMaskPatternConfigured() && this.inputElement) {\n this.handleInputMask();\n this.textValue = this.inputElement.value;\n this.value = this.inputElement.value;\n }\n }\n\n handleInputClick = () => {\n this.toggleOptions(true);\n };\n\n toggleOptions(inputIsOpen: boolean) {\n if ((this.inputIsOpen && this.textValue && this.textValue.length > 0) || this.disabled) return;\n\n this.inputIsOpen = inputIsOpen;\n this.changeElementsStyle();\n this.inputElement.focus();\n }\n\n changeElementsStyle() {\n if (!this.inputContainer || !this.labelElement) return;\n\n this.inputContainer.style.display = this.inputIsOpen ? 'flex' : 'none';\n this.labelElement.style.display = this.inputIsOpen ? 'none' : 'block';\n if (!this.inputIsOpen) {\n this.labelElement.classList.add('from-up');\n }\n }\n\n handleInputChanges = (event: InputEvent) => {\n const newValue = (event.target as HTMLInputElement).value;\n let valueToPersist = newValue;\n\n if (this.hasMaskPatternConfigured() && this.inputElement) {\n this.handleInputMask(newValue);\n valueToPersist = this.inputElement.value;\n }\n this.valueChangedWithoutMask.emit(valueToPersist.replace(/\\D/g, ''));\n this.textValue = valueToPersist;\n this.value = valueToPersist;\n\n this.valueChanged.emit(valueToPersist);\n };\n\n handleFocus = () => {\n if (this.disabled) return;\n this.toggleOptions(true);\n this.inputElement.focus();\n };\n\n handleBlur = () => {\n this.toggleOptions(false);\n\n this.focusedOut.emit();\n this.inputIsFocused = false;\n };\n\n handleInputFocus = () => {\n this.focusedOn.emit();\n this.inputIsFocused = true;\n };\n\n handleIconClick = (event: MouseEvent) => {\n if (this.type === SulaTextfieldType.Password) {\n event.stopPropagation();\n this.handlePasswordIconClicked();\n }\n };\n\n handleInputMask(inputValue?: string) {\n if (!this.inputElement) return;\n\n const valueWithoutMask = (inputValue ?? this.inputElement.value ?? '').replace(/[^a-zA-Z0-9]/g, '');\n const maskPattern = this.getMaskPatternByValueLength(valueWithoutMask, inputValue ?? this.inputElement.value ?? '');\n if (!maskPattern) return;\n\n VMasker(this.inputElement).unMask();\n this.inputElement.value = (VMasker as any).toPattern(valueWithoutMask, maskPattern);\n }\n\n private syncMaskState() {\n if (!this.inputElement) return;\n\n if (!this.hasMaskPatternConfigured()) {\n VMasker(this.inputElement).unMask();\n return;\n }\n\n this.handleInputMask();\n this.textValue = this.inputElement.value;\n this.value = this.inputElement.value;\n }\n\n private hasMaskPatternConfigured(): boolean {\n return this.getMaskPatterns().length > 0;\n }\n\n private getMaskPatterns(): string[] {\n if (Array.isArray(this.maskPattern)) {\n return this.maskPattern.map(pattern => pattern?.trim()).filter(Boolean);\n }\n\n if (typeof this.maskPattern === 'string' && this.maskPattern.trim().length > 0) {\n return [this.maskPattern.trim()];\n }\n\n return [];\n }\n\n private getMaskPatternByValueLength(inputValue?: string, rawInputValue?: string): string | undefined {\n const patterns = this.getMaskPatterns();\n if (patterns.length === 0) return undefined;\n if (patterns.length === 1) return patterns[0];\n\n const currentValueLength = (inputValue ?? '').length;\n const providedSwitchLengths = this.normalizeProvidedSwitchLengths();\n\n if (providedSwitchLengths.length === 0) {\n return this.getMaskPatternByAutoInference(patterns, currentValueLength, rawInputValue);\n }\n\n for (let i = 0; i < providedSwitchLengths.length; i++) {\n if (currentValueLength <= providedSwitchLengths[i]) {\n return patterns[Math.min(i, patterns.length - 1)];\n }\n }\n\n return patterns[patterns.length - 1];\n }\n\n private getMaskPatternByAutoInference(patterns: string[], currentValueLength: number, rawInputValue?: string): string {\n const capacities = patterns.map(pattern => (pattern.match(/[9AS]/g) || []).length);\n const eligibleCapacities = capacities.filter(capacity => capacity >= currentValueLength && capacity > 0);\n\n if (eligibleCapacities.length === 0) {\n return patterns[patterns.length - 1];\n }\n\n const selectedCapacity = Math.min(...eligibleCapacities);\n const candidateIndexes = capacities\n .map((capacity, index) => ({ capacity, index }))\n .filter(item => item.capacity === selectedCapacity)\n .map(item => item.index);\n\n if (candidateIndexes.length === 1) {\n return patterns[candidateIndexes[0]];\n }\n\n const rawLiterals = (rawInputValue ?? '').replace(/[a-zA-Z0-9]/g, '');\n if (rawLiterals.length > 0) {\n for (const candidateIndex of candidateIndexes) {\n const patternLiterals = patterns[candidateIndex].replace(/[9AS]/g, '');\n if (patternLiterals === rawLiterals) {\n return patterns[candidateIndex];\n }\n }\n }\n\n return patterns[candidateIndexes[0]];\n }\n\n private normalizeProvidedSwitchLengths(): number[] {\n if (Array.isArray(this.maskPatternSwitchMaxLength)) {\n return this.maskPatternSwitchMaxLength.filter(value => Number.isFinite(value) && value > 0).sort((a, b) => a - b);\n }\n\n if (typeof this.maskPatternSwitchMaxLength === 'number' && Number.isFinite(this.maskPatternSwitchMaxLength) && this.maskPatternSwitchMaxLength > 0) {\n return [this.maskPatternSwitchMaxLength];\n }\n\n return [];\n }\n\n handlePasswordIconClicked() {\n const cursorPosition = this.inputElement.selectionStart;\n const inputValue = this.inputElement.value;\n const inputType = this.showPassword ? SulaTextfieldType.Password : SulaTextfieldType.Text;\n\n this.inputElement.setAttribute('type', inputType);\n this.showPassword = !this.showPassword;\n\n setTimeout(() => {\n this.inputElement.value = inputValue;\n\n this.inputElement.setSelectionRange(cursorPosition, cursorPosition);\n }, 0);\n }\n\n getInputIcon() {\n if (this.type === SulaTextfieldType.Password) {\n return this.showPassword ? 'ph ph-eye' : 'ph ph-eye-slash';\n }\n\n return this.icon;\n }\n\n render() {\n return (\n <Host ref={node => (this.node = node)}>\n <div>\n <div\n id=\"button-container\"\n class={{\n 'flex items-center border rounded-sm px-16 outline-none h-[72px] caret-brand-primary': true,\n 'flex-row justify-between': !!this.icon || this.type === SulaTextfieldType.Password,\n 'button-focus': this.inputIsFocused && !this.disabled && this.status === SulaTextfieldStatus.Default,\n 'button-error': this.status === SulaTextfieldStatus.Error && !this.disabled,\n 'bg-states-bg-disabled border-line-general cursor-not-allowed': this.disabled,\n 'bg-surface-body border-line-input cursor-pointer': !this.disabled,\n }}\n tabIndex={0}\n onFocus={this.handleFocus}\n onClick={this.handleInputClick}\n >\n <div class={{ 'hidden flex-col w-full': true, 'pr-12': !!this.icon }} ref={node => (this.inputContainer = node)}>\n <label class={{ 'font-bold text-sm from-down': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}>{this.label}</label>\n <input\n type={this.type}\n ref={node => (this.inputElement = node)}\n placeholder={this.placeholder}\n class={{ 'outline-none text-base bg-transparent': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}\n onInput={this.handleInputChanges}\n onFocus={this.handleInputFocus}\n value={this.textValue}\n disabled={this.disabled}\n readOnly={this.readOnly}\n />\n </div>\n\n <div\n id=\"textfield-label\"\n class={{ 'text-base flex items-center': true, 'text-text-primary': !this.disabled, 'text-text-disabled': this.disabled }}\n ref={node => (this.labelElement = node)}\n >\n {this.label}\n </div>\n\n {(!!this.icon || this.type === SulaTextfieldType.Password) && (\n <div class=\"flex items-center justify-center\" onClick={this.handleIconClick}>\n <sula-icon icon={this.getInputIcon()} customClass={`text-2xl ${this.disabled ? 'text-icon-disabled' : 'text-icon-primary'}`} />\n </div>\n )}\n </div>\n\n {(this.helpText || this.maxLength) && !this.disabled && (\n <div class=\"flex justify-between items-center px-16 mt-4 text-sm\">\n {this.helpText && (\n <div\n id=\"textfield-help-text\"\n class={{ 'text-text-primary': this.status === SulaTextfieldStatus.Default, 'text-feedback-error': this.status === SulaTextfieldStatus.Error }}\n >\n {this.helpText}\n </div>\n )}\n {this.maxLength && (\n <div\n id=\"max-length-container\"\n class={{ 'text-text-primary': this.status === SulaTextfieldStatus.Default, 'text-feedback-error': this.status === SulaTextfieldStatus.Error }}\n >\n {this.textValue ? this.textValue.length : 0}/{this.maxLength}\n </div>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -143,6 +143,14 @@ textfield.placeholder = '00.000.000/0000-00';
143
143
  required: false,
144
144
  },
145
145
  },
146
+ readOnly: {
147
+ control: 'boolean',
148
+ defaultValue: false,
149
+ description: 'The textfield is read only, blocking typing while keeping it focusable',
150
+ type: {
151
+ required: false,
152
+ },
153
+ },
146
154
  helpText: {
147
155
  control: 'text',
148
156
  defaultValue: '',
@@ -204,6 +212,7 @@ const Template = args => {
204
212
  el.label = args.label;
205
213
  el.placeholder = args.placeholder;
206
214
  el.disabled = args.disabled;
215
+ el.readOnly = !!args.readOnly;
207
216
  if (args.maskPattern)
208
217
  el.maskPattern = args.maskPattern;
209
218
  if (args.maskPatternSwitchMaxLength)
@@ -1 +1 @@
1
- {"version":3,"file":"sula-textfield.stories.js","sourceRoot":"","sources":["../../../src/components/sula-textfield/sula-textfield.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaTextfieldStatus, SulaTextfieldType } from './model/sula-textfield.model';\n\nexport default {\n title: 'Components/sula-textfield',\n tags: ['autodocs'],\n argTypes: {\n value: {\n control: 'text',\n defaultValue: '',\n description: 'Value for the input',\n type: {\n required: false,\n },\n },\n type: {\n control: { type: 'select' },\n options: Object.values(SulaTextfieldType),\n defaultValue: SulaTextfieldType.Text,\n description: 'The textfield type',\n type: {\n required: false,\n },\n },\n status: {\n control: { type: 'select' },\n options: Object.values(SulaTextfieldStatus),\n defaultValue: SulaTextfieldStatus.Default,\n description: 'The textfield status',\n type: {\n required: false,\n },\n },\n label: {\n control: 'text',\n defaultValue: 'Label',\n description: 'The textfield label',\n type: {\n required: false,\n },\n },\n maskPattern: {\n control: 'object',\n defaultValue: '',\n description: `Padrão de máscara utilizando vanilla-masker.\n\n**Caracteres disponíveis:**\n- \\`9\\` → Aceita apenas números (0-9)\n- \\`A\\` → Aceita apenas letras (a-z, A-Z)\n- \\`S\\` → Aceita letras e números\n- Outros caracteres são tratados como literais (parênteses, traços, pontos, etc.)\n\n**Exemplos de máscaras comuns:**\n- Telefone: \\`(99) 99999-9999\\`\n- CPF: \\`999.999.999-99\\`\n- CNPJ: \\`SS.SSS.SSS/SSSS-99\\` (alfanumérico)\n- CEP: \\`99999-999\\`\n- Data: \\`99/99/9999\\`\n- Cartão de crédito: \\`9999 9999 9999 9999\\`\n- Hora: \\`99:99\\`\n- Placa de carro: \\`AAA-9A99\\`\n\n**Formas de uso:**\n\n1. **Via HTML:**\n\\`\\`\\`html\n<sula-textfield \n label=\"Telefone\" \n mask-pattern=\"(99) 99999-9999\"\n placeholder=\"(00) 00000-0000\">\n</sula-textfield>\n\\`\\`\\`\n\n2. **Via JavaScript:**\n\\`\\`\\`javascript\nconst textfield = document.createElement('sula-textfield');\ntextfield.label = 'CNPJ';\ntextfield.maskPattern = 'SS.SSS.SSS/SSSS-99';\ntextfield.placeholder = '00.000.000/0000-00';\n\\`\\`\\`\n\n3. **Via Framework (React, Angular, Vue):**\n\\`\\`\\`jsx\n<sula-textfield \n label=\"CEP\"\n mask-pattern=\"99999-999\"\n placeholder=\"00000-000\">\n</sula-textfield>\n\\`\\`\\`\n\n**Observações:**\n- A máscara é apenas visual (formata mas não valida)\n- O valor emitido no evento \\`valueChanged\\` já vem formatado\n- A máscara é aplicada automaticamente conforme o usuário digita`,\n type: {\n required: false,\n },\n },\n maskPatternSwitchMaxLength: {\n control: 'object',\n defaultValue: 14,\n description: `Define o ponto de troca entre padrões de máscara.\n\n**Aceita dois tipos:**\n\n**1. Número (comportamento legado):**\n- Troca entre primeira e segunda máscara quando ultrapassar este tamanho\n- Exemplo: \\`maskPatternSwitchMaxLength: 14\\`\n\n**2. Array de números (múltiplas máscaras):**\n- Define vários pontos de troca para múltiplas máscaras\n- Os comprimentos são baseados APENAS nos caracteres válidos (sem formatação)\n\n**Exemplo: CPF/CNPJ**\n- \\`maskPattern: ['999.999.999-99', '99.999.999/9999-99']\\`\n- \\`maskPatternSwitchMaxLength: [11]\\`\n- Resultado:\n - 0-11 caracteres → CPF\n - 12+ caracteres → CNPJ\n\n**Exemplo: 3 máscaras**\n- \\`maskPattern: ['999.999.999-99', '99.999.999/9999-99', '99999-99999-99999']\\`\n- \\`maskPatternSwitchMaxLength: [11, 14]\\`\n- Resultado:\n - 0-11 caracteres → 1ª máscara\n - 12-14 caracteres → 2ª máscara\n - 15+ caracteres → 3ª máscara`,\n type: {\n required: false,\n },\n },\n placeholder: {\n control: 'text',\n defaultValue: 'Placeholder',\n description: 'The textfield placeholder',\n type: {\n required: false,\n },\n },\n disabled: {\n control: 'boolean',\n defaultValue: false,\n description: 'The textfield is disabled',\n type: {\n required: false,\n },\n },\n helpText: {\n control: 'text',\n defaultValue: '',\n description: 'The help text for textfield',\n type: {\n required: false,\n },\n },\n maxLength: {\n control: 'number',\n defaultValue: 0,\n description: 'The textfield max length',\n type: {\n required: false,\n },\n },\n icon: {\n control: 'text',\n defaultValue: '',\n description: 'The textfield icon',\n type: {\n required: false,\n },\n },\n valueChanged: {\n action: 'valueChanged',\n description: 'Evento emitido quando o valor muda',\n },\n valueChangedWithoutMask: {\n action: 'valueChangedWithoutMask',\n description: 'Evento emitido quando o valor muda, sem a máscara (se aplicada)',\n },\n focusedOn: {\n action: 'focusedOn',\n description: 'Evento emitido quando o campo recebe foco',\n },\n focusedOut: {\n action: 'focusedOut',\n description: 'Evento emitido quando o campo perde foco',\n },\n },\n parameters: {\n docs: {\n description: {\n component:\n 'O componente Textfield Sula Design System é utilizado para inclusão de informações em formulários e telas de cadastro. Foi desenvolvido suportando feedback text, helped text, ícones e senhas.',\n },\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.maxWidth = '400px';\n container.style.margin = '20px';\n\n const el = document.createElement('sula-textfield') as any;\n\n if (args.value) el.value = args.value;\n el.type = args.type;\n el.status = args.status;\n el.label = args.label;\n el.placeholder = args.placeholder;\n el.disabled = args.disabled;\n if (args.maskPattern) el.maskPattern = args.maskPattern;\n if (args.maskPatternSwitchMaxLength) el.maskPatternSwitchMaxLength = args.maskPatternSwitchMaxLength;\n if (args.helpText) el.helpText = args.helpText;\n if (args.maxLength > 0) el.maxLength = args.maxLength;\n if (args.icon) el.icon = args.icon;\n\n el.addEventListener('valueChanged', args.valueChanged);\n el.addEventListener('valueChangedWithoutMask', args.valueChangedWithoutMask);\n el.addEventListener('focusedOn', args.focusedOn);\n el.addEventListener('focusedOut', args.focusedOut);\n\n container.appendChild(el);\n\n return container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'Nome',\n placeholder: 'Digite seu nome',\n disabled: false,\n helpText: '',\n maxLength: 0,\n icon: '',\n};\n\nexport const WithMask = Template.bind({});\nWithMask.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'Telefone',\n placeholder: 'Digite seu telefone',\n disabled: false,\n helpText: '',\n maxLength: 0,\n icon: '',\n maskPattern: '(99) 99999-9999',\n};\n\nexport const WithCpfCnpjMask = Template.bind({});\nWithCpfCnpjMask.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'CPF ou CNPJ',\n placeholder: 'Digite CPF ou CNPJ',\n disabled: false,\n helpText: 'Digite apenas números - a máscara será aplicada automaticamente',\n maxLength: 0,\n icon: '',\n maskPattern: ['SSS.SSS.SSS-SS', 'SS.SSS.SSS/SSSS-99'],\n};\nWithCpfCnpjMask.parameters = {\n docs: {\n description: {\n story: `Exemplo de campo com múltiplas máscaras que alterna automaticamente entre CPF e CNPJ.\n\n- **0-11 dígitos**: formato CPF (SSS.SSS.SSS-SS)\n- **12-14 dígitos**: formato CNPJ (SS.SSS.SSS/SSSS-99)\n\nO componente detecta automaticamente a quantidade de caracteres **sem formatação** e aplica a máscara correta.`,\n },\n },\n};\n\nexport const WithMultipleMasks = Template.bind({});\nWithMultipleMasks.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'CPF, CNPJ ou Protocolo',\n placeholder: 'Digite CPF, CNPJ ou protocolo',\n disabled: false,\n helpText: 'Aceita CPF (11), CNPJ (14) ou protocolo (15)',\n maxLength: 0,\n icon: 'ph ph-id-card',\n maskPattern: ['SSS.SSS.SSS-SS', 'SS.SSS.SSS/SSSS-99', 'SSSSS-SSSSS-SSSSS'],\n};\nWithMultipleMasks.parameters = {\n docs: {\n description: {\n story: `Exemplo com 3 máscaras diferentes e tamanhos distintos:\n\n- **0-11 caracteres**: CPF (SSS.SSS.SSS-SS)\n- **12-14 caracteres**: CNPJ (SS.SSS.SSS/SSSS-99)\n- **15+ caracteres**: Protocolo (SSSSS-SSSSS-SSSSS)\n\nUtilize \\`maskPatternSwitchMaxLength\\` como array para definir quantas máscaras você precisar!`,\n },\n },\n};\n\nexport const WithValue = Template.bind({});\nWithValue.args = {\n ...Default.args,\n value: 'John Doe',\n label: 'Nome completo',\n};\n\nexport const WithHelpText = Template.bind({});\nWithHelpText.args = {\n ...Default.args,\n label: 'E-mail',\n placeholder: 'Digite seu e-mail',\n helpText: 'Informe um e-mail válido',\n};\n\nexport const WithMaxLength = Template.bind({});\nWithMaxLength.args = {\n ...Default.args,\n label: 'Descrição',\n placeholder: 'Digite uma descrição',\n maxLength: 100,\n helpText: 'Máximo de 100 caracteres',\n};\n\nexport const WithIcon = Template.bind({});\nWithIcon.args = {\n ...Default.args,\n label: 'Pesquisar',\n placeholder: 'Digite sua busca',\n icon: 'ph ph-magnifying-glass',\n};\n\nexport const Password = Template.bind({});\nPassword.args = {\n ...Default.args,\n type: SulaTextfieldType.Password,\n label: 'Senha',\n placeholder: 'Digite sua senha',\n};\n\nexport const Error = Template.bind({});\nError.args = {\n ...Default.args,\n status: SulaTextfieldStatus.Error,\n label: 'E-mail',\n placeholder: 'Digite seu e-mail',\n helpText: 'E-mail inválido',\n};\n\nexport const Disabled = Template.bind({});\nDisabled.args = {\n ...Default.args,\n disabled: true,\n label: 'Campo desabilitado',\n};\n\nexport const WithIconAndHelpText = Template.bind({});\nWithIconAndHelpText.args = {\n ...Default.args,\n label: 'Endereço',\n placeholder: 'Digite seu endereço',\n icon: 'ph ph-map-pin',\n helpText: 'Informe o endereço completo',\n};\n\nexport const ErrorWithMaxLength = Template.bind({});\nErrorWithMaxLength.args = {\n ...Default.args,\n status: SulaTextfieldStatus.Error,\n label: 'Mensagem',\n placeholder: 'Digite sua mensagem',\n maxLength: 50,\n helpText: 'Excedeu o limite de caracteres',\n value: 'Esta é uma mensagem de teste que excede o limite de caracteres permitido',\n};\n"]}
1
+ {"version":3,"file":"sula-textfield.stories.js","sourceRoot":"","sources":["../../../src/components/sula-textfield/sula-textfield.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["import { SulaTextfieldStatus, SulaTextfieldType } from './model/sula-textfield.model';\n\nexport default {\n title: 'Components/sula-textfield',\n tags: ['autodocs'],\n argTypes: {\n value: {\n control: 'text',\n defaultValue: '',\n description: 'Value for the input',\n type: {\n required: false,\n },\n },\n type: {\n control: { type: 'select' },\n options: Object.values(SulaTextfieldType),\n defaultValue: SulaTextfieldType.Text,\n description: 'The textfield type',\n type: {\n required: false,\n },\n },\n status: {\n control: { type: 'select' },\n options: Object.values(SulaTextfieldStatus),\n defaultValue: SulaTextfieldStatus.Default,\n description: 'The textfield status',\n type: {\n required: false,\n },\n },\n label: {\n control: 'text',\n defaultValue: 'Label',\n description: 'The textfield label',\n type: {\n required: false,\n },\n },\n maskPattern: {\n control: 'object',\n defaultValue: '',\n description: `Padrão de máscara utilizando vanilla-masker.\n\n**Caracteres disponíveis:**\n- \\`9\\` → Aceita apenas números (0-9)\n- \\`A\\` → Aceita apenas letras (a-z, A-Z)\n- \\`S\\` → Aceita letras e números\n- Outros caracteres são tratados como literais (parênteses, traços, pontos, etc.)\n\n**Exemplos de máscaras comuns:**\n- Telefone: \\`(99) 99999-9999\\`\n- CPF: \\`999.999.999-99\\`\n- CNPJ: \\`SS.SSS.SSS/SSSS-99\\` (alfanumérico)\n- CEP: \\`99999-999\\`\n- Data: \\`99/99/9999\\`\n- Cartão de crédito: \\`9999 9999 9999 9999\\`\n- Hora: \\`99:99\\`\n- Placa de carro: \\`AAA-9A99\\`\n\n**Formas de uso:**\n\n1. **Via HTML:**\n\\`\\`\\`html\n<sula-textfield \n label=\"Telefone\" \n mask-pattern=\"(99) 99999-9999\"\n placeholder=\"(00) 00000-0000\">\n</sula-textfield>\n\\`\\`\\`\n\n2. **Via JavaScript:**\n\\`\\`\\`javascript\nconst textfield = document.createElement('sula-textfield');\ntextfield.label = 'CNPJ';\ntextfield.maskPattern = 'SS.SSS.SSS/SSSS-99';\ntextfield.placeholder = '00.000.000/0000-00';\n\\`\\`\\`\n\n3. **Via Framework (React, Angular, Vue):**\n\\`\\`\\`jsx\n<sula-textfield \n label=\"CEP\"\n mask-pattern=\"99999-999\"\n placeholder=\"00000-000\">\n</sula-textfield>\n\\`\\`\\`\n\n**Observações:**\n- A máscara é apenas visual (formata mas não valida)\n- O valor emitido no evento \\`valueChanged\\` já vem formatado\n- A máscara é aplicada automaticamente conforme o usuário digita`,\n type: {\n required: false,\n },\n },\n maskPatternSwitchMaxLength: {\n control: 'object',\n defaultValue: 14,\n description: `Define o ponto de troca entre padrões de máscara.\n\n**Aceita dois tipos:**\n\n**1. Número (comportamento legado):**\n- Troca entre primeira e segunda máscara quando ultrapassar este tamanho\n- Exemplo: \\`maskPatternSwitchMaxLength: 14\\`\n\n**2. Array de números (múltiplas máscaras):**\n- Define vários pontos de troca para múltiplas máscaras\n- Os comprimentos são baseados APENAS nos caracteres válidos (sem formatação)\n\n**Exemplo: CPF/CNPJ**\n- \\`maskPattern: ['999.999.999-99', '99.999.999/9999-99']\\`\n- \\`maskPatternSwitchMaxLength: [11]\\`\n- Resultado:\n - 0-11 caracteres → CPF\n - 12+ caracteres → CNPJ\n\n**Exemplo: 3 máscaras**\n- \\`maskPattern: ['999.999.999-99', '99.999.999/9999-99', '99999-99999-99999']\\`\n- \\`maskPatternSwitchMaxLength: [11, 14]\\`\n- Resultado:\n - 0-11 caracteres → 1ª máscara\n - 12-14 caracteres → 2ª máscara\n - 15+ caracteres → 3ª máscara`,\n type: {\n required: false,\n },\n },\n placeholder: {\n control: 'text',\n defaultValue: 'Placeholder',\n description: 'The textfield placeholder',\n type: {\n required: false,\n },\n },\n disabled: {\n control: 'boolean',\n defaultValue: false,\n description: 'The textfield is disabled',\n type: {\n required: false,\n },\n },\n readOnly: {\n control: 'boolean',\n defaultValue: false,\n description: 'The textfield is read only, blocking typing while keeping it focusable',\n type: {\n required: false,\n },\n },\n helpText: {\n control: 'text',\n defaultValue: '',\n description: 'The help text for textfield',\n type: {\n required: false,\n },\n },\n maxLength: {\n control: 'number',\n defaultValue: 0,\n description: 'The textfield max length',\n type: {\n required: false,\n },\n },\n icon: {\n control: 'text',\n defaultValue: '',\n description: 'The textfield icon',\n type: {\n required: false,\n },\n },\n valueChanged: {\n action: 'valueChanged',\n description: 'Evento emitido quando o valor muda',\n },\n valueChangedWithoutMask: {\n action: 'valueChangedWithoutMask',\n description: 'Evento emitido quando o valor muda, sem a máscara (se aplicada)',\n },\n focusedOn: {\n action: 'focusedOn',\n description: 'Evento emitido quando o campo recebe foco',\n },\n focusedOut: {\n action: 'focusedOut',\n description: 'Evento emitido quando o campo perde foco',\n },\n },\n parameters: {\n docs: {\n description: {\n component:\n 'O componente Textfield Sula Design System é utilizado para inclusão de informações em formulários e telas de cadastro. Foi desenvolvido suportando feedback text, helped text, ícones e senhas.',\n },\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.maxWidth = '400px';\n container.style.margin = '20px';\n\n const el = document.createElement('sula-textfield') as any;\n\n if (args.value) el.value = args.value;\n el.type = args.type;\n el.status = args.status;\n el.label = args.label;\n el.placeholder = args.placeholder;\n el.disabled = args.disabled;\n el.readOnly = !!args.readOnly;\n if (args.maskPattern) el.maskPattern = args.maskPattern;\n if (args.maskPatternSwitchMaxLength) el.maskPatternSwitchMaxLength = args.maskPatternSwitchMaxLength;\n if (args.helpText) el.helpText = args.helpText;\n if (args.maxLength > 0) el.maxLength = args.maxLength;\n if (args.icon) el.icon = args.icon;\n\n el.addEventListener('valueChanged', args.valueChanged);\n el.addEventListener('valueChangedWithoutMask', args.valueChangedWithoutMask);\n el.addEventListener('focusedOn', args.focusedOn);\n el.addEventListener('focusedOut', args.focusedOut);\n\n container.appendChild(el);\n\n return container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'Nome',\n placeholder: 'Digite seu nome',\n disabled: false,\n helpText: '',\n maxLength: 0,\n icon: '',\n};\n\nexport const WithMask = Template.bind({});\nWithMask.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'Telefone',\n placeholder: 'Digite seu telefone',\n disabled: false,\n helpText: '',\n maxLength: 0,\n icon: '',\n maskPattern: '(99) 99999-9999',\n};\n\nexport const WithCpfCnpjMask = Template.bind({});\nWithCpfCnpjMask.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'CPF ou CNPJ',\n placeholder: 'Digite CPF ou CNPJ',\n disabled: false,\n helpText: 'Digite apenas números - a máscara será aplicada automaticamente',\n maxLength: 0,\n icon: '',\n maskPattern: ['SSS.SSS.SSS-SS', 'SS.SSS.SSS/SSSS-99'],\n};\nWithCpfCnpjMask.parameters = {\n docs: {\n description: {\n story: `Exemplo de campo com múltiplas máscaras que alterna automaticamente entre CPF e CNPJ.\n\n- **0-11 dígitos**: formato CPF (SSS.SSS.SSS-SS)\n- **12-14 dígitos**: formato CNPJ (SS.SSS.SSS/SSSS-99)\n\nO componente detecta automaticamente a quantidade de caracteres **sem formatação** e aplica a máscara correta.`,\n },\n },\n};\n\nexport const WithMultipleMasks = Template.bind({});\nWithMultipleMasks.args = {\n value: '',\n type: SulaTextfieldType.Text,\n status: SulaTextfieldStatus.Default,\n label: 'CPF, CNPJ ou Protocolo',\n placeholder: 'Digite CPF, CNPJ ou protocolo',\n disabled: false,\n helpText: 'Aceita CPF (11), CNPJ (14) ou protocolo (15)',\n maxLength: 0,\n icon: 'ph ph-id-card',\n maskPattern: ['SSS.SSS.SSS-SS', 'SS.SSS.SSS/SSSS-99', 'SSSSS-SSSSS-SSSSS'],\n};\nWithMultipleMasks.parameters = {\n docs: {\n description: {\n story: `Exemplo com 3 máscaras diferentes e tamanhos distintos:\n\n- **0-11 caracteres**: CPF (SSS.SSS.SSS-SS)\n- **12-14 caracteres**: CNPJ (SS.SSS.SSS/SSSS-99)\n- **15+ caracteres**: Protocolo (SSSSS-SSSSS-SSSSS)\n\nUtilize \\`maskPatternSwitchMaxLength\\` como array para definir quantas máscaras você precisar!`,\n },\n },\n};\n\nexport const WithValue = Template.bind({});\nWithValue.args = {\n ...Default.args,\n value: 'John Doe',\n label: 'Nome completo',\n};\n\nexport const WithHelpText = Template.bind({});\nWithHelpText.args = {\n ...Default.args,\n label: 'E-mail',\n placeholder: 'Digite seu e-mail',\n helpText: 'Informe um e-mail válido',\n};\n\nexport const WithMaxLength = Template.bind({});\nWithMaxLength.args = {\n ...Default.args,\n label: 'Descrição',\n placeholder: 'Digite uma descrição',\n maxLength: 100,\n helpText: 'Máximo de 100 caracteres',\n};\n\nexport const WithIcon = Template.bind({});\nWithIcon.args = {\n ...Default.args,\n label: 'Pesquisar',\n placeholder: 'Digite sua busca',\n icon: 'ph ph-magnifying-glass',\n};\n\nexport const Password = Template.bind({});\nPassword.args = {\n ...Default.args,\n type: SulaTextfieldType.Password,\n label: 'Senha',\n placeholder: 'Digite sua senha',\n};\n\nexport const Error = Template.bind({});\nError.args = {\n ...Default.args,\n status: SulaTextfieldStatus.Error,\n label: 'E-mail',\n placeholder: 'Digite seu e-mail',\n helpText: 'E-mail inválido',\n};\n\nexport const Disabled = Template.bind({});\nDisabled.args = {\n ...Default.args,\n disabled: true,\n label: 'Campo desabilitado',\n};\n\nexport const WithIconAndHelpText = Template.bind({});\nWithIconAndHelpText.args = {\n ...Default.args,\n label: 'Endereço',\n placeholder: 'Digite seu endereço',\n icon: 'ph ph-map-pin',\n helpText: 'Informe o endereço completo',\n};\n\nexport const ErrorWithMaxLength = Template.bind({});\nErrorWithMaxLength.args = {\n ...Default.args,\n status: SulaTextfieldStatus.Error,\n label: 'Mensagem',\n placeholder: 'Digite sua mensagem',\n maxLength: 50,\n helpText: 'Excedeu o limite de caracteres',\n value: 'Esta é uma mensagem de teste que excede o limite de caracteres permitido',\n};\n"]}
@@ -121,7 +121,7 @@ export class SulaTiles {
121
121
  return (h("div", { class: this.getTextContainerClasses() }, h("span", { class: this.getTextClasses(true), title: this.ellipsis ? this.text : undefined }, this.text), this.hasSubText && (h("span", { class: this.getTextClasses(false), title: this.ellipsis ? this.subText : undefined }, this.subText))));
122
122
  }
123
123
  render() {
124
- return (h(Host, { key: '2f0441485de0541f82d5ce7593b46e4cb1b93076' }, h("div", { key: 'e3c89f096b9eb3cda87d1456a3ab5db582f0df08', class: this.getContainerClasses(), tabIndex: this.getTabIndex(this.isSquare), onClick: this.handleClick }, this.renderIcon(), this.renderText())));
124
+ return (h(Host, { key: '0aac24c8f47d0c30d97e3ec19e15d8a687cd57d7' }, h("div", { key: '1dccc7989a2e7e8dd78a58edeb8aa5c80c5996af', class: this.getContainerClasses(), tabIndex: this.getTabIndex(this.isSquare), onClick: this.handleClick }, this.renderIcon(), this.renderText())));
125
125
  }
126
126
  static get is() { return "sula-tiles"; }
127
127
  static get encapsulation() { return "shadow"; }
@@ -37,7 +37,7 @@ export class SulaTimelineList {
37
37
  return iconByStatus[status];
38
38
  }
39
39
  render() {
40
- return (h(Host, { key: 'd8fe4aab699563ec76886a3552133ddfe27d9d00' }, h("div", { key: 'd7821649f1edd8e220aed673153d9f2cfd8f4d15', class: "flex flex-col bg-surface-on-body px-24 py-32 w-fit rounded-md" }, this.sulaTimelineList.map((item, index) => {
40
+ return (h(Host, { key: '67a3ccea895c71716e2ab586ecc86fa0b18dc1f3' }, h("div", { key: '84c6de76355d0f6a6764a6bec2a4d518e9706109', class: "flex flex-col bg-surface-on-body px-24 py-32 w-fit rounded-md" }, this.sulaTimelineList.map((item, index) => {
41
41
  const isLastItem = index === this.sulaTimelineList.length - 1;
42
42
  return (h("div", { class: {
43
43
  'relative timeline-item': true,
@@ -171,10 +171,10 @@ export class SulaToast {
171
171
  }
172
172
  render() {
173
173
  const intent = this.intent;
174
- return (h(Host, { key: 'af689f4f1497431d4a9664ddb5452079f09ef03f', onMouseEnter: () => this.setHover(true), onMouseLeave: () => this.setHover(false), onFocusin: () => {
174
+ return (h(Host, { key: '033cb765479701c89c4305b674cb2f062805ff8e', onMouseEnter: () => this.setHover(true), onMouseLeave: () => this.setHover(false), onFocusin: () => {
175
175
  this.focused = true;
176
176
  this.updateTimeout();
177
- }, onFocusout: this.handleFocusOut }, h("div", { key: '51d418a2bcd9610ec55551828cff4aab8c085a62', part: "container", class: `toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`, style: { '--toast-border-color': intent.borderColor } }, this.icon && (h("div", { key: '383e8204c8f6cbfd13270a1543baea5273149bca', part: "icon", "aria-hidden": "true", class: `flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}` }, h("sula-icon", { key: 'b2a17f14dbfbd6975b29ccb63ee7a76705e20e12', icon: this.icon, customClass: `text-2xl ${intent.color}`, class: "flex leading-none" }))), h("div", { key: '8bd8d7c43b25d9c408b5e0e107fc3d5f78d92c4a', part: "content", class: `flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}` }, h("div", { key: 'fe41d0b855c17fb145c760815abc5fdd64e1dbc4', class: "flex flex-col gap-4" }, this.toastTitle && (h("p", { key: '0403d060fe5d28161bbf29cb937b8a0d90daf17d', class: "toast-copy toast-title text-label-medium-bold text-text-primary", title: this.toastTitle }, this.toastTitle)), this.message && (h("p", { key: 'b163c773c6a82f5dbb455770708ac9690efbffbe', class: "toast-copy toast-message text-label-medium-regular text-text-secondary", title: this.message }, this.message))), this.actionText && (h("button", { key: '07890efac226f3d8ad4dfa71422781ad94ab9be8', type: "button", class: `toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`, title: this.actionText, onClick: () => this.toastAction.emit() }, this.actionText))), this.closable && (h("button", { key: 'da40e440a9b8efb785bb808718ae51d72c4550bc', part: "close-button", type: "button", "aria-label": this.closeLabel, class: `absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`, onClick: () => this.toastDismissRequested.emit({ reason: 'close' }) }, h("sula-icon", { key: 'a326223db3ae4de7e0c2139b7b1b5f2ce3bf79ba', "aria-hidden": "true", icon: "ph ph-x", customClass: "text-2xl", class: "flex leading-none" }))), h("svg", { key: '6f0c0004ff519d857abcbed244215c9f2b9b7598', class: "toast-border", "aria-hidden": "true", focusable: "false" }, h("rect", { key: 'a2fec270e4bfc1afe1567e492c915304d6bd4f85', class: "toast-border__path", pathLength: "1" }))), h("div", { key: 'be19cd8661299b03aebc46d9eb94c53f948924f4', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.announcement === 'polite' ? this.announcedText : ''), h("div", { key: '2582e166e21d087d1e3f2b66d39b2a05d4d8bbb2', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "true" }, this.announcement === 'assertive' ? this.announcedText : '')));
177
+ }, onFocusout: this.handleFocusOut }, h("div", { key: '4ca95d791c01ba275269643c08febb4dd2cd6390', part: "container", class: `toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`, style: { '--toast-border-color': intent.borderColor } }, this.icon && (h("div", { key: '374b49b8cbd5539aa50108e8cabf56a0bcea307f', part: "icon", "aria-hidden": "true", class: `flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}` }, h("sula-icon", { key: '8d84accc4cd78d45c7f4dcf6d0c4db7e4035e698', icon: this.icon, customClass: `text-2xl ${intent.color}`, class: "flex leading-none" }))), h("div", { key: '59d41a02856d3a21010d34262ef49655052ea499', part: "content", class: `flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}` }, h("div", { key: 'da6fc9aed421b82af750f14e5d6c4f4ee0f681dc', class: "flex flex-col gap-4" }, this.toastTitle && (h("p", { key: '398c395a5618af66fb587d7126069fc6c7d15990', class: "toast-copy toast-title text-label-medium-bold text-text-primary", title: this.toastTitle }, this.toastTitle)), this.message && (h("p", { key: 'c080e743eba5851ea66924a2a0ce385ffeb08eef', class: "toast-copy toast-message text-label-medium-regular text-text-secondary", title: this.message }, this.message))), this.actionText && (h("button", { key: '1ad5ab1b2da01e3e0152e29eae922e5d1578abcd', type: "button", class: `toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`, title: this.actionText, onClick: () => this.toastAction.emit() }, this.actionText))), this.closable && (h("button", { key: 'ca2e4ed6e51de390638648fdf60848953677b75a', part: "close-button", type: "button", "aria-label": this.closeLabel, class: `absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`, onClick: () => this.toastDismissRequested.emit({ reason: 'close' }) }, h("sula-icon", { key: 'aad8dce6805aaf12ccf35a52577969cb5cfc53b6', "aria-hidden": "true", icon: "ph ph-x", customClass: "text-2xl", class: "flex leading-none" }))), h("svg", { key: 'f2f4bbd4c35a49362307c680254e78f022f613ca', class: "toast-border", "aria-hidden": "true", focusable: "false" }, h("rect", { key: '7157a07053624e19067de813a91302dbaceb8c52', class: "toast-border__path", pathLength: "1" }))), h("div", { key: 'b828c4e5ffccb837eb91ee26705c25a43c156a66', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.announcement === 'polite' ? this.announcedText : ''), h("div", { key: '67b9172a41c0941de2cc7d52f24ed0847d08c58e', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "true" }, this.announcement === 'assertive' ? this.announcedText : '')));
178
178
  }
179
179
  static get is() { return "sula-toast"; }
180
180
  static get encapsulation() { return "shadow"; }
@@ -198,7 +198,7 @@ export class SulaToastStack {
198
198
  render() {
199
199
  const expanded = this.expanded;
200
200
  const visibleItems = this.visibleItems;
201
- return (h(Host, { key: 'e52aeb1dd9f0d54498a4c7a0ad2300cdc5d24484' }, h("section", { key: '7c829968e841616450c308571cd1b60341b3c38b', ref: el => (this.region = el), role: "region", "aria-label": "Notifica\u00E7\u00F5es", tabIndex: 0, class: "toast-region w-full rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2", onMouseEnter: () => {
201
+ return (h(Host, { key: '55ee3279cbbc67fe6003dc204d2fe48e9b269104' }, h("section", { key: 'ca6b1575128bd40f8d9b8e8239d9e703320ebdaa', ref: el => (this.region = el), role: "region", "aria-label": "Notifica\u00E7\u00F5es", tabIndex: 0, class: "toast-region w-full rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2", onMouseEnter: () => {
202
202
  if (!this.noHover)
203
203
  this.hovering = true;
204
204
  }, onMouseLeave: () => (this.hovering = false), onPointerDown: () => {
@@ -207,7 +207,7 @@ export class SulaToastStack {
207
207
  }, onKeyDown: () => {
208
208
  this.keyboardInteraction = true;
209
209
  this.stopRetainingPointerExpansion();
210
- }, onFocusin: () => (this.focused = true), onFocusout: this.handleFocusOut }, h("div", { key: '2327880499750943034cf47d8f2ea2dfd13d0e5a', ref: el => (this.list = el), class: { 'toast-list relative flex flex-col gap-12': true, 'toast-list--collapsed': !expanded }, style: {
210
+ }, onFocusin: () => (this.focused = true), onFocusout: this.handleFocusOut }, h("div", { key: '7be1b0a7fd0d71ca9bf58ffaa66135edb87f35f3', ref: el => (this.list = el), class: { 'toast-list relative flex flex-col gap-12': true, 'toast-list--collapsed': !expanded }, style: {
211
211
  '--toast-layer-offset': `${Math.max(0, visibleItems.length - 1) * LAYER_OFFSET}px`,
212
212
  } }, visibleItems.map((item, index) => {
213
213
  var _a, _b, _c, _d;
@@ -221,9 +221,9 @@ export class SulaToastStack {
221
221
  '--toast-depth': String(depth),
222
222
  '--toast-width': `${100 - Math.min(depth, MAX_VISIBLE_LAYERS - 1) * LAYER_WIDTH_STEP}%`,
223
223
  } }, h("sula-toast", { toastTitle: item.title, message: (_a = item.message) !== null && _a !== void 0 ? _a : '', type: item.type, icon: item.icon, actionText: (_b = item.actionText) !== null && _b !== void 0 ? _b : '', closable: (_c = item.closable) !== null && _c !== void 0 ? _c : true, duration: item.duration, closeLabel: (_d = item.closeLabel) !== null && _d !== void 0 ? _d : 'Fechar notificação', paused: covered || this.hovering || this.focused || this.retainingPointerExpansion, announcement: "off", animated: depth === 0, onToastDismissRequested: event => this.dismiss(event, item.id), onToastAction: event => this.action(event, item.id) })));
224
- }))), h("div", { key: 'be446beb46594f14b6079a5a0649c9bf3a17b0cb', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "false", "aria-relevant": "additions text" }, this.announcements
224
+ }))), h("div", { key: '2aebfdc1b1eb1aae37ece0dd36ab730ec8f6c33b', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "false", "aria-relevant": "additions text" }, this.announcements
225
225
  .filter(record => record.priority === 'polite')
226
- .map(record => (h("p", { key: record.version }, record.text)))), h("div", { key: '5d9e871c11e91fb293f22c92ddd5a590517576f1', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "false", "aria-relevant": "additions text" }, this.announcements
226
+ .map(record => (h("p", { key: record.version }, record.text)))), h("div", { key: '685b4903f4ea4b4055f4498425cce62746dcbaa8', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "false", "aria-relevant": "additions text" }, this.announcements
227
227
  .filter(record => record.priority === 'assertive')
228
228
  .map(record => (h("p", { key: record.version }, record.text))))));
229
229
  }
@@ -38,7 +38,7 @@ export class SulaToggle {
38
38
  return `${base} bg-surface-on-body hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed`;
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: 'b154ad9db6d656f4d19a8fd62cc1d76057f4534a' }, h("button", { key: 'bf8830321bc7b00398734ea779d600cbdb8643c2', id: "favorite-button", class: this.getButtonClass(), disabled: this.buttonDisabled, onClick: this.handleClick, "aria-pressed": this.selected ? 'true' : 'false', "aria-label": this.selected ? 'Remover dos favoritos' : 'Adicionar aos favoritos' }, h("sula-icon", { key: '10af2fe14ae032f5383d3e4299cb1166d3afe6e0', icon: this.getIconName(), customClass: `text-2xl ${this.getIconColorClass()} ${!this.buttonDisabled && !this.selected ? 'active:text-feedback-error' : ''}`, class: "flex leading-6" }))));
41
+ return (h(Host, { key: '8728ec858b1b37c362e11d655d0b376cbbb63987' }, h("button", { key: '2d8084203fa68acd14b2eff97adf2886fa35e44d', id: "favorite-button", class: this.getButtonClass(), disabled: this.buttonDisabled, onClick: this.handleClick, "aria-pressed": this.selected ? 'true' : 'false', "aria-label": this.selected ? 'Remover dos favoritos' : 'Adicionar aos favoritos' }, h("sula-icon", { key: '0726c3afd705c5c022d8ddc1a709ae26dd613d35', icon: this.getIconName(), customClass: `text-2xl ${this.getIconColorClass()} ${!this.buttonDisabled && !this.selected ? 'active:text-feedback-error' : ''}`, class: "flex leading-6" }))));
42
42
  }
43
43
  static get is() { return "sula-toggle"; }
44
44
  static get encapsulation() { return "shadow"; }
@@ -190,7 +190,7 @@ export class SulaTooltip {
190
190
  const hostClass = isParentMode
191
191
  ? 'absolute inset-0 pointer-events-none overflow-visible'
192
192
  : 'inline-block relative';
193
- return (h(Host, { key: '4bc3fd94851e4277cc10bf267c797d96858bbd55', class: hostClass }, !isParentMode && (h("div", { key: '17cab2893dc8c72fe2df1df2b4c2c6c683c01d80', class: this.getIconClasses(), onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, role: "button", "aria-label": "Tooltip trigger", ref: (el) => (this.triggerEl = el) }, h("sula-icon", { key: 'bc8d1fa42b51faebf169ab094b9483664937b23d', class: "flex leading-[0]", icon: this.icon, customClass: this.iconClass }))), !this.appendToBody && this.displayText && (h("div", { key: 'ef74850b80c85c138c0736def7d8825f348384f2', class: this.getHintClasses(), role: "tooltip", ref: (el) => (this.hintEl = el) }, this.displayText, h("div", { key: '6d84a525359d2a2d351a28dc5be2ac43caac4333', class: "tooltip-arrow", "data-popper-arrow": true, ref: (el) => (this.arrowEl = el) })))));
193
+ return (h(Host, { key: 'db62de211b476d0547d5dbf58bbe8c7ee58c9f01', class: hostClass }, !isParentMode && (h("div", { key: 'a31e831523f934fab24207d0b02673c17ea8eeed', class: this.getIconClasses(), onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, role: "button", "aria-label": "Tooltip trigger", ref: (el) => (this.triggerEl = el) }, h("sula-icon", { key: '3c281e552baaa7db23dc5079712994b1828fd0fe', class: "flex leading-[0]", icon: this.icon, customClass: this.iconClass }))), !this.appendToBody && this.displayText && (h("div", { key: 'd4514e8d21d959060ef19fc423325302127cf12b', class: this.getHintClasses(), role: "tooltip", ref: (el) => (this.hintEl = el) }, this.displayText, h("div", { key: 'ec505f70560d75e1772d28dcc658049bd10b4f56', class: "tooltip-arrow", "data-popper-arrow": true, ref: (el) => (this.arrowEl = el) })))));
194
194
  }
195
195
  static get is() { return "sula-tooltip"; }
196
196
  static get encapsulation() { return "shadow"; }
@@ -8,5 +8,6 @@
8
8
  * to consume components of this package as outlined in the `README.md`.
9
9
  */
10
10
  export { SulaMenuDensity, SulaMenuLabelOverflow } from './components/sula-menu/model/sula-menu.model';
11
+ export { SulaCalendarStatus } from './components/sula-calendar/model/sula-calendar.model';
11
12
  export { SulaToastType } from './components/sula-toast/model/sula-toast.model';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC","sourcesContent":["/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\nexport type * from './components.d.ts';\nexport { SulaMenuDensity, SulaMenuLabelOverflow } from './components/sula-menu/model/sula-menu.model';\nexport type { SulaToggleEvent } from './components/sula-toggle/model/sula-toggle.model';\nexport { SulaToastType } from './components/sula-toast/model/sula-toast.model';\nexport type {\n SulaToastItem,\n SulaToastAnnouncement,\n SulaToastDismissReason,\n SulaToastDismissEvent,\n SulaToastStackDismissEvent,\n SulaToastStackActionEvent,\n} from './components/sula-toast/model/sula-toast.model';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAG1F,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC","sourcesContent":["/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\nexport type * from './components.d.ts';\nexport { SulaMenuDensity, SulaMenuLabelOverflow } from './components/sula-menu/model/sula-menu.model';\nexport { SulaCalendarStatus } from './components/sula-calendar/model/sula-calendar.model';\nexport type { SulaCalendarDay, SulaCalendarWeekday, SulaCalendarMonthChange, SulaCalendarRange } from './components/sula-calendar/model/sula-calendar.model';\nexport type { SulaToggleEvent } from './components/sula-toggle/model/sula-toggle.model';\nexport { SulaToastType } from './components/sula-toast/model/sula-toast.model';\nexport type {\n SulaToastItem,\n SulaToastAnnouncement,\n SulaToastDismissReason,\n SulaToastDismissEvent,\n SulaToastStackDismissEvent,\n SulaToastStackActionEvent,\n} from './components/sula-toast/model/sula-toast.model';\n"]}
@@ -1,5 +1,6 @@
1
1
  export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-DYfmicjp.js';
2
2
  export { S as SulaMenuDensity, a as SulaMenuLabelOverflow } from './p-Cs9RR1ZV.js';
3
+ export { S as SulaCalendarStatus } from './p-Cp_4qTxj.js';
3
4
  export { S as SulaToastType } from './p-t0X4JATS.js';
4
5
  //# sourceMappingURL=index.js.map
5
6
 
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;","names":[],"sources":[],"sourcesContent":[],"version":3}
1
+ {"file":"index.js","mappings":";;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-DYfmicjp.js';
2
2
  import { S as SulaToastType } from './p-t0X4JATS.js';
3
- import { d as defineCustomElement$1 } from './p-DqRqPukj.js';
3
+ import { d as defineCustomElement$1 } from './p-DaG0HavP.js';
4
4
 
5
5
  const sulaToastCss = "*,:after,:before{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-ring-color:rgba(59,130,246,.5);--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{font-family:Figtree;line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.block{display:block}.hidden{display:none}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}:host,:host button,:host input,:host option,:host select,:host textarea{font-family:Figtree,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:host{display:block;max-width:400px;width:100%}.toast-copy{overflow-wrap:anywhere}.toast-title{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-message{-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;display:-webkit-box;overflow:hidden}.toast-action{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-surface{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 12px 48px rgba(25,29,29,.2);max-width:400px}.toast-surface--animated{animation:sula-toast-fade-in .28s cubic-bezier(.2,.8,.2,1),sula-toast-border-settle .72s step-end}.toast-border{height:calc(100% + 2px);inset:-1px;overflow:visible;pointer-events:none;position:absolute;width:calc(100% + 2px)}.toast-surface--animated .toast-border{animation:sula-toast-border-overlay .72s step-end}.toast-border__path{x:.5px;y:.5px;rx:12px;fill:none;stroke:var(--toast-border-color);stroke-width:1px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;height:calc(100% - 1px);width:calc(100% - 1px)}.toast-surface--animated .toast-border__path{animation:sula-toast-border-trace .72s cubic-bezier(.4,0,.2,1)}@keyframes sula-toast-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sula-toast-border-settle{0%{border-color:transparent}to{border-color:var(--toast-border-color)}}@keyframes sula-toast-border-overlay{0%{opacity:1}to{opacity:0}}@keyframes sula-toast-border-trace{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@supports not (((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))) or (-webkit-backdrop-filter:blur(20px))){.toast-surface.bg-opacity-toast{background-color:var(--color-surface-body)}}@media (prefers-reduced-motion:reduce){.toast-surface--animated{animation:none}.toast-surface--animated .toast-border{display:none}}:root{--color-green-50:#f1f9f4;--color-green-100:#e6f4ed;--color-green-200:#cae7d8;--color-green-300:#a0d4b8;--color-green-400:#68bb8e;--color-green-500:#04843f;--color-green-600:#037236;--color-green-700:#03632f;--color-green-800:#035428;--color-green-900:#024521;--color-green-950:#012b15;--color-red-50:#fef6f6;--color-red-100:#fde8e8;--color-red-200:#fad1d1;--color-red-300:#f7abab;--color-red-400:#f17474;--color-red-500:#c80505;--color-red-600:#b30404;--color-red-700:#9f0404;--color-red-800:#860303;--color-red-900:#6d0303;--color-red-950:#330d00;--color-yellow-50:#fdf4e7;--color-yellow-100:#fcedd9;--color-yellow-200:#fae0bd;--color-yellow-300:#f6c788;--color-yellow-400:#f3b159;--color-yellow-500:#ef9928;--color-yellow-600:#e49226;--color-yellow-700:#d17e10;--color-yellow-800:#b46d0e;--color-yellow-900:#93590b;--color-yellow-950:#402705;--color-orange-50:#fef4f1;--color-orange-100:#fde8e2;--color-orange-200:#fbd2c6;--color-orange-300:#f8b4a0;--color-orange-400:#f58e70;--color-orange-500:#f05223;--color-orange-600:#ea4210;--color-orange-700:#d23b0e;--color-orange-800:#b5330c;--color-orange-900:#942a0a;--color-orange-950:#401204;--color-blue-50:#ecf0f9;--color-blue-100:#dde3f4;--color-blue-200:#b2c2e5;--color-blue-300:#7994d2;--color-blue-400:#4066bf;--color-blue-500:#001e64;--color-blue-600:#001c5c;--color-blue-700:#00174c;--color-blue-800:#00123d;--color-blue-900:#000f33;--color-blue-950:#000d2b;--color-ambar-50:#fff6eb;--color-ambar-100:#ffefdc;--color-ambar-200:#fedfb9;--color-ambar-300:#fdca8b;--color-ambar-400:#fdb359;--color-ambar-500:#fc9c26;--color-ambar-600:#ec8403;--color-ambar-700:#d87803;--color-ambar-800:#ba6803;--color-ambar-900:#975402;--color-ambar-950:#402301;--color-gray-50:#fff;--color-gray-100:#f3f4f4;--color-gray-200:#e5e6e6;--color-gray-300:#bfc0c0;--color-gray-400:#acaeae;--color-gray-500:#949595;--color-gray-600:#737575;--color-gray-700:#6c6e6e;--color-gray-800:#313333;--color-gray-900:#272929;--color-gray-950:#191d1d;--color-white-opacity-50:#ffffff0d;--color-white-opacity-100:#ffffff1a;--color-white-opacity-200:#ffffff26;--color-white-opacity-300:#ffffff45;--color-white-opacity-400:#ffffff5c;--color-white-opacity-500:#ffffff80;--color-white-opacity-600:#ffffff8c;--color-white-opacity-700:#ffffffa3;--color-white-opacity-800:#ffffffba;--color-white-opacity-900:#fffc;--color-white-opacity-950:#ffffffe8;--color-ciano-50:#f1f6fe;--color-ciano-100:#dfeafc;--color-ciano-200:#c3d9f9;--color-ciano-300:#90b9f4;--color-ciano-400:#5d98ee;--color-ciano-500:#1769e0;--color-ciano-600:#155fcb;--color-ciano-700:#1355b4;--color-ciano-800:#104899;--color-ciano-900:#0d3b7d;--color-ciano-950:#071e40;--color-extra-color-blue-light:#e7f0f4;--color-extra-color-blue-dark:#162931;--color-black-opacity-50:rgba(25,29,29,.02);--color-black-opacity-100:rgba(25,29,29,.05);--color-black-opacity-200:rgba(25,29,29,.11);--color-black-opacity-300:rgba(25,29,29,.28);--color-black-opacity-400:rgba(25,29,29,.36);--color-black-opacity-500:rgba(25,29,29,.44);--color-black-opacity-600:rgba(25,29,29,.62);--color-black-opacity-700:rgba(25,29,29,.64);--color-black-opacity-800:rgba(25,29,29,.72);--color-black-opacity-900:rgba(25,29,29,.8);--color-black-opacity-950:rgba(25,29,29,.96);--color-shadow-opacity-50:rgba(0,0,0,.04);--color-shadow-opacity-100:rgba(0,0,0,.06);--color-shadow-opacity-200:rgba(0,0,0,.12);--color-shadow-opacity-300:rgba(0,0,0,.2);--color-shadow-opacity-400:rgba(0,0,0,.32);--color-shadow-opacity-500:rgba(0,0,0,.5);--color-shadow-opacity-600:rgba(0,0,0,.55);--color-shadow-opacity-700:rgba(0,0,0,.64);--color-shadow-opacity-800:rgba(0,0,0,.73);--color-shadow-opacity-900:rgba(0,0,0,.8);--color-shadow-opacity-950:rgba(0,0,0,.91);--color-feedback-success:#04843f;--color-feedback-error:#c80505;--color-feedback-informational:#1355b4;--color-feedback-alert:#ef9928;--color-brand-primary:#f05223;--color-brand-secondary:#001c5c;--color-brand-tertiary-1:#1769e0;--color-brand-tertiary-2:#fc9c26;--color-surface-body:#fff;--color-surface-on-body:#f3f4f4;--color-surface-on-body-blue:#e7f0f4;--color-surface-on-body-brand:#fff6eb;--color-surface-on-body-feedback-success:#e6f4ed;--color-surface-on-body-feedback-error:#fde8e8;--color-surface-on-body-feedback-alert:#fdf4e7;--color-surface-on-body-feedback-info:#dfeafc;--color-text-brand:#f05223;--color-text-primary:#313333;--color-text-secondary:#6c6e6e;--color-text-disabled:#949595;--color-text-link:#1355b4;--color-states-empty-bg-hover:rgba(25,29,29,.05);--color-states-empty-bg-pressed:rgba(25,29,29,.11);--color-states-bg-disabled:rgba(25,29,29,.02);--color-states-bg-focus:#1355b4;--color-states-primary-hover:#ea4210;--color-states-primary-pressed:#d23b0e;--color-states-danger-hover:#b30404;--color-states-danger-pressed:#9f0404;--color-states-negative-hover:#e5e6e6;--color-states-negative-pressed:#bfc0c0;--color-icon-primary:#6c6e6e;--color-icon-secondary:#fff;--color-icon-tertiary:#b30404;--color-icon-disabled:#acaeae;--color-neutral-neutral-1:#fff;--color-neutral-neutral-2:#f3f4f4;--color-neutral-neutral-3:#acaeae;--color-neutral-neutral-4:#949595;--color-neutral-neutral-5:#737575;--color-neutral-neutral-6:#6c6e6e;--color-neutral-neutral-7:#313333;--color-neutral-neutral-8:#272929;--color-negative-negative-1:#fff;--color-negative-negative-2:#313333;--color-opacity-body:#fffc;--color-opacity-on-body:rgba(25,29,29,.02);--color-opacity-overlay:rgba(25,29,29,.62);--color-opacity-on-overlay:#ffffff1a;--color-opacity-toast:#ffffff45;--color-line-input:#949595;--color-line-general-strong:#bfc0c0;--color-line-general:#e5e6e6;--color-line-hair:rgba(25,29,29,.05);--color-box-shadow-body:#fff;--color-box-shadow-shadow-color-1:rgba(0,0,0,.04);--color-box-shadow-shadow-color-2:rgba(0,0,0,.06)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.static{position:static}.relative{position:relative}.flex{display:flex}.w-full{width:100%}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.gap-12{gap:.75rem}.rounded-sm{border-radius:.75rem}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus-visible\\:outline:focus-visible{outline-style:solid}.focus-visible\\:outline-2:focus-visible{outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-feedback-informational:focus-visible{outline-color:var(--color-feedback-informational)}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:300;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Light.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:300;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-LightItalic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:400;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Regular.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:400;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Italic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:500;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Medium.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:500;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-MediumItalic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:600;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBold.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:600;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-SemiBoldItalic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:700;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Bold.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:700;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BoldItalic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:800;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBold.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:800;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-ExtraBoldItalic.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:normal;font-weight:900;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-Black.ttf) format(\"truetype\")}@font-face{font-display:swap;font-family:Figtree;font-style:italic;font-weight:900;src:local(\"Figtree\"),url(@sula-tech/tailwind-css-plugin/assets/fonts/Figtree-BlackItalic.ttf) format(\"truetype\")}.right-16{right:1rem}.top-16{top:1rem}.isolate{isolation:isolate}.box-border{box-sizing:border-box}.h-24{height:1.5rem}.h-44{height:2.75rem}.w-24{width:1.5rem}.w-44{width:2.75rem}.flex-1{flex:1 1 0%}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:.25rem}.gap-8{gap:.5rem}.self-start{align-self:flex-start}.rounded{border-radius:.25rem}.rounded-xxl{border-radius:18.75rem}.border{border-width:1px}.border-brand-primary{border-color:var(--color-brand-primary)}.border-feedback-alert{border-color:var(--color-feedback-alert)}.border-feedback-error{border-color:var(--color-feedback-error)}.border-feedback-informational{border-color:var(--color-feedback-informational)}.border-feedback-success{border-color:var(--color-feedback-success)}.border-line-general{border-color:var(--color-line-general)}.bg-opacity-toast{background-color:var(--color-opacity-toast)}.bg-surface-on-body{background-color:var(--color-surface-on-body)}.bg-surface-on-body-brand{background-color:var(--color-surface-on-body-brand)}.bg-surface-on-body-feedback-alert{background-color:var(--color-surface-on-body-feedback-alert)}.bg-surface-on-body-feedback-error{background-color:var(--color-surface-on-body-feedback-error)}.bg-surface-on-body-feedback-info{background-color:var(--color-surface-on-body-feedback-info)}.bg-surface-on-body-feedback-success{background-color:var(--color-surface-on-body-feedback-success)}.p-16{padding:1rem}.pr-48{padding-right:3rem}.text-left{text-align:left}.text-2xl{font-size:1.5rem;line-height:2rem}.text-label-medium-bold{font-size:1rem;font-weight:700;letter-spacing:0;line-height:20px}.text-label-medium-regular{font-size:1rem;font-weight:400;letter-spacing:0;line-height:20px}.leading-none{line-height:1}.text-brand-primary{color:var(--color-brand-primary)}.text-feedback-alert{color:var(--color-feedback-alert)}.text-feedback-error{color:var(--color-feedback-error)}.text-feedback-informational{color:var(--color-feedback-informational)}.text-feedback-success{color:var(--color-feedback-success)}.text-icon-primary{color:var(--color-icon-primary)}.text-text-link{color:var(--color-text-link)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.container{width:100%}@media (min-width:22.5rem){.container{max-width:22.5rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}";
6
6
 
@@ -173,10 +173,10 @@ const SulaToast = /*@__PURE__*/ proxyCustomElement(class SulaToast extends H {
173
173
  }
174
174
  render() {
175
175
  const intent = this.intent;
176
- return (h(Host, { key: 'af689f4f1497431d4a9664ddb5452079f09ef03f', onMouseEnter: () => this.setHover(true), onMouseLeave: () => this.setHover(false), onFocusin: () => {
176
+ return (h(Host, { key: '033cb765479701c89c4305b674cb2f062805ff8e', onMouseEnter: () => this.setHover(true), onMouseLeave: () => this.setHover(false), onFocusin: () => {
177
177
  this.focused = true;
178
178
  this.updateTimeout();
179
- }, onFocusout: this.handleFocusOut }, h("div", { key: '51d418a2bcd9610ec55551828cff4aab8c085a62', part: "container", class: `toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`, style: { '--toast-border-color': intent.borderColor } }, this.icon && (h("div", { key: '383e8204c8f6cbfd13270a1543baea5273149bca', part: "icon", "aria-hidden": "true", class: `flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}` }, h("sula-icon", { key: 'b2a17f14dbfbd6975b29ccb63ee7a76705e20e12', icon: this.icon, customClass: `text-2xl ${intent.color}`, class: "flex leading-none" }))), h("div", { key: '8bd8d7c43b25d9c408b5e0e107fc3d5f78d92c4a', part: "content", class: `flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}` }, h("div", { key: 'fe41d0b855c17fb145c760815abc5fdd64e1dbc4', class: "flex flex-col gap-4" }, this.toastTitle && (h("p", { key: '0403d060fe5d28161bbf29cb937b8a0d90daf17d', class: "toast-copy toast-title text-label-medium-bold text-text-primary", title: this.toastTitle }, this.toastTitle)), this.message && (h("p", { key: 'b163c773c6a82f5dbb455770708ac9690efbffbe', class: "toast-copy toast-message text-label-medium-regular text-text-secondary", title: this.message }, this.message))), this.actionText && (h("button", { key: '07890efac226f3d8ad4dfa71422781ad94ab9be8', type: "button", class: `toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`, title: this.actionText, onClick: () => this.toastAction.emit() }, this.actionText))), this.closable && (h("button", { key: 'da40e440a9b8efb785bb808718ae51d72c4550bc', part: "close-button", type: "button", "aria-label": this.closeLabel, class: `absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`, onClick: () => this.toastDismissRequested.emit({ reason: 'close' }) }, h("sula-icon", { key: 'a326223db3ae4de7e0c2139b7b1b5f2ce3bf79ba', "aria-hidden": "true", icon: "ph ph-x", customClass: "text-2xl", class: "flex leading-none" }))), h("svg", { key: '6f0c0004ff519d857abcbed244215c9f2b9b7598', class: "toast-border", "aria-hidden": "true", focusable: "false" }, h("rect", { key: 'a2fec270e4bfc1afe1567e492c915304d6bd4f85', class: "toast-border__path", pathLength: "1" }))), h("div", { key: 'be19cd8661299b03aebc46d9eb94c53f948924f4', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.announcement === 'polite' ? this.announcedText : ''), h("div", { key: '2582e166e21d087d1e3f2b66d39b2a05d4d8bbb2', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "true" }, this.announcement === 'assertive' ? this.announcedText : '')));
179
+ }, onFocusout: this.handleFocusOut }, h("div", { key: '4ca95d791c01ba275269643c08febb4dd2cd6390', part: "container", class: `toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`, style: { '--toast-border-color': intent.borderColor } }, this.icon && (h("div", { key: '374b49b8cbd5539aa50108e8cabf56a0bcea307f', part: "icon", "aria-hidden": "true", class: `flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}` }, h("sula-icon", { key: '8d84accc4cd78d45c7f4dcf6d0c4db7e4035e698', icon: this.icon, customClass: `text-2xl ${intent.color}`, class: "flex leading-none" }))), h("div", { key: '59d41a02856d3a21010d34262ef49655052ea499', part: "content", class: `flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}` }, h("div", { key: 'da6fc9aed421b82af750f14e5d6c4f4ee0f681dc', class: "flex flex-col gap-4" }, this.toastTitle && (h("p", { key: '398c395a5618af66fb587d7126069fc6c7d15990', class: "toast-copy toast-title text-label-medium-bold text-text-primary", title: this.toastTitle }, this.toastTitle)), this.message && (h("p", { key: 'c080e743eba5851ea66924a2a0ce385ffeb08eef', class: "toast-copy toast-message text-label-medium-regular text-text-secondary", title: this.message }, this.message))), this.actionText && (h("button", { key: '1ad5ab1b2da01e3e0152e29eae922e5d1578abcd', type: "button", class: `toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`, title: this.actionText, onClick: () => this.toastAction.emit() }, this.actionText))), this.closable && (h("button", { key: 'ca2e4ed6e51de390638648fdf60848953677b75a', part: "close-button", type: "button", "aria-label": this.closeLabel, class: `absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`, onClick: () => this.toastDismissRequested.emit({ reason: 'close' }) }, h("sula-icon", { key: 'aad8dce6805aaf12ccf35a52577969cb5cfc53b6', "aria-hidden": "true", icon: "ph ph-x", customClass: "text-2xl", class: "flex leading-none" }))), h("svg", { key: 'f2f4bbd4c35a49362307c680254e78f022f613ca', class: "toast-border", "aria-hidden": "true", focusable: "false" }, h("rect", { key: '7157a07053624e19067de813a91302dbaceb8c52', class: "toast-border__path", pathLength: "1" }))), h("div", { key: 'b828c4e5ffccb837eb91ee26705c25a43c156a66', class: "sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.announcement === 'polite' ? this.announcedText : ''), h("div", { key: '67b9172a41c0941de2cc7d52f24ed0847d08c58e', class: "sr-only", role: "alert", "aria-live": "assertive", "aria-atomic": "true" }, this.announcement === 'assertive' ? this.announcedText : '')));
180
180
  }
181
181
  get hostElement() { return this; }
182
182
  static get watchers() { return {
@@ -230,6 +230,6 @@ function defineCustomElement() {
230
230
  defineCustomElement();
231
231
 
232
232
  export { SulaToast as S, defineCustomElement as d };
233
- //# sourceMappingURL=p-DmQoJS86.js.map
233
+ //# sourceMappingURL=p-B_NGmHsm.js.map
234
234
 
235
- //# sourceMappingURL=p-DmQoJS86.js.map
235
+ //# sourceMappingURL=p-B_NGmHsm.js.map
@@ -1 +1 @@
1
- {"file":"p-DmQoJS86.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sula-toast/sula-toast.scss?tag=sula-toast&encapsulation=shadow","src/components/sula-toast/sula-toast.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n max-width: 400px;\n}\n\n.toast-copy {\n overflow-wrap: anywhere;\n}\n\n.toast-title {\n display: block;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.toast-message {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n line-clamp: 4;\n}\n\n.toast-action {\n display: block;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.toast-surface {\n max-width: 400px;\n box-shadow: 0 12px 48px rgba(25, 29, 29, 0.2);\n -webkit-backdrop-filter: blur(20px);\n backdrop-filter: blur(20px);\n}\n\n.toast-surface--animated {\n animation:\n sula-toast-fade-in 280ms cubic-bezier(0.2, 0.8, 0.2, 1),\n sula-toast-border-settle 720ms step-end;\n}\n\n.toast-border {\n position: absolute;\n inset: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n overflow: visible;\n pointer-events: none;\n}\n\n.toast-surface--animated .toast-border {\n animation: sula-toast-border-overlay 720ms step-end;\n}\n\n.toast-border__path {\n x: 0.5px;\n y: 0.5px;\n width: calc(100% - 1px);\n height: calc(100% - 1px);\n rx: 12px;\n fill: none;\n stroke: var(--toast-border-color);\n stroke-width: 1px;\n stroke-linecap: round;\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n vector-effect: non-scaling-stroke;\n}\n\n.toast-surface--animated .toast-border__path {\n animation: sula-toast-border-trace 720ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes sula-toast-fade-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes sula-toast-border-settle {\n from {\n border-color: transparent;\n }\n\n to {\n border-color: var(--toast-border-color);\n }\n}\n\n@keyframes sula-toast-border-overlay {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes sula-toast-border-trace {\n from {\n stroke-dashoffset: 1;\n }\n\n to {\n stroke-dashoffset: 0;\n }\n}\n\n@supports not ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {\n .toast-surface.bg-opacity-toast {\n background-color: var(--color-surface-body);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .toast-surface--animated {\n animation: none;\n }\n\n .toast-surface--animated .toast-border {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaToastAnnouncement, SulaToastDismissEvent, SulaToastType } from './model/sula-toast.model';\n\nconst DEFAULT_DURATION = 5000;\nconst FOCUS_RING_CLASSES = 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2';\n\nconst TOAST_INTENTS: Record<SulaToastType, { border: string; borderColor: string; color: string; background: string }> = {\n [SulaToastType.Neutral]: {\n border: 'border-line-general',\n borderColor: 'var(--color-line-general)',\n color: 'text-icon-primary',\n background: 'bg-surface-on-body',\n },\n [SulaToastType.Brand]: {\n border: 'border-brand-primary',\n borderColor: 'var(--color-brand-primary)',\n color: 'text-brand-primary',\n background: 'bg-surface-on-body-brand',\n },\n [SulaToastType.Info]: {\n border: 'border-feedback-informational',\n borderColor: 'var(--color-feedback-informational)',\n color: 'text-feedback-informational',\n background: 'bg-surface-on-body-feedback-info',\n },\n [SulaToastType.Success]: {\n border: 'border-feedback-success',\n borderColor: 'var(--color-feedback-success)',\n color: 'text-feedback-success',\n background: 'bg-surface-on-body-feedback-success',\n },\n [SulaToastType.Warning]: {\n border: 'border-feedback-alert',\n borderColor: 'var(--color-feedback-alert)',\n color: 'text-feedback-alert',\n background: 'bg-surface-on-body-feedback-alert',\n },\n [SulaToastType.Danger]: {\n border: 'border-feedback-error',\n borderColor: 'var(--color-feedback-error)',\n color: 'text-feedback-error',\n background: 'bg-surface-on-body-feedback-error',\n },\n};\n\n/**\n * A controlled notification. The consumer removes it after toastDismissRequested.\n * @part container - Notification surface.\n * @part icon - Decorative intent icon.\n * @part content - Title, description and action.\n * @part close-button - Dismiss button.\n */\n@Component({ tag: 'sula-toast', styleUrl: 'sula-toast.scss', shadow: true })\nexport class SulaToast {\n @Element() hostElement: HTMLElement;\n\n /** Notification title. */\n @Prop() toastTitle = '';\n\n /** Optional notification description, displayed on up to four lines. */\n @Prop() message = '';\n\n /** Visual intent, independent of announcement urgency. */\n @Prop() type: SulaToastType = SulaToastType.Neutral;\n\n /** Optional full Phosphor class name. No icon is displayed when omitted or empty. */\n @Prop() icon?: string;\n\n /** Optional single-line action label. The consumer implements the action. */\n @Prop() actionText = '';\n\n /** Whether to display the dismiss button. */\n @Prop() closable = true;\n\n /** Milliseconds before requesting dismissal. Zero persists; omitted means 5000 without an action and persistent with an action. */\n @Prop() duration?: number;\n\n /** Externally pause the remaining timeout, for example while covered by a stack. */\n @Prop() paused = false;\n\n /** Whether to play the entrance animations (fade-in and border trace). Disable when a parent already controls the animation, for example toasts covered in a stack. */\n @Prop() animated = true;\n\n /** Screen reader announcement priority. Use off when a parent owns announcements. */\n @Prop() announcement: SulaToastAnnouncement = 'polite';\n\n /** Accessible dismiss button label. */\n @Prop() closeLabel = 'Fechar notificação';\n\n /** Requests removal by the consumer. Does not remove or hide the element. */\n @Event() toastDismissRequested: EventEmitter<SulaToastDismissEvent>;\n /** Requests the configured action without dismissing the notification. */\n @Event() toastAction: EventEmitter<void>;\n\n @State() announcedText = '';\n private timer?: ReturnType<typeof setTimeout>;\n private observer?: IntersectionObserver;\n private remaining = 0;\n private startedAt = 0;\n private timedOut = false;\n private timeoutEnabled = false;\n private hovering = false;\n private focused = false;\n private visible = false;\n private ready = false;\n private connected = false;\n\n connectedCallback() {\n this.connected = true;\n if (this.ready) this.observeVisibility();\n }\n\n componentDidLoad() {\n this.ready = true;\n this.resetTimeout();\n Promise.resolve().then(() => {\n if (this.connected) this.updateAnnouncement();\n });\n this.observeVisibility();\n }\n\n disconnectedCallback() {\n this.connected = false;\n this.stopTimeout();\n this.observer?.disconnect();\n this.hovering = false;\n this.focused = false;\n }\n\n @Watch('toastTitle')\n @Watch('message')\n @Watch('actionText')\n @Watch('duration')\n handleContentChange() {\n this.resetTimeout();\n this.updateAnnouncement();\n }\n\n @Watch('announcement')\n updateAnnouncement() {\n this.announcedText = this.announcement === 'off' ? '' : [this.toastTitle, this.message].filter(Boolean).join('. ');\n }\n\n @Watch('paused')\n @Listen('visibilitychange', { target: 'document' })\n updateTimeout() {\n const blocked = !this.connected || !this.ready || !this.visible || this.paused || this.hovering || this.focused || document.visibilityState === 'hidden';\n if (blocked) {\n this.stopTimeout();\n } else if (this.timer === undefined && this.timeoutEnabled && !this.timedOut) {\n this.startedAt = Date.now();\n this.timer = setTimeout(() => {\n this.timer = undefined;\n this.remaining = 0;\n this.timedOut = true;\n this.toastDismissRequested.emit({ reason: 'timeout' });\n }, this.remaining);\n }\n }\n\n private resetTimeout() {\n this.stopTimeout();\n this.remaining = this.resolveDuration();\n this.timeoutEnabled = this.remaining > 0;\n this.timedOut = false;\n this.updateTimeout();\n }\n\n private resolveDuration() {\n if (typeof this.duration === 'number' && Number.isFinite(this.duration) && this.duration >= 0) return this.duration;\n return this.actionText ? 0 : DEFAULT_DURATION;\n }\n\n private stopTimeout() {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.remaining = Math.max(0, this.remaining - (Date.now() - this.startedAt));\n }\n }\n\n private observeVisibility() {\n this.observer?.disconnect();\n if (typeof IntersectionObserver === 'undefined') {\n this.visible = true;\n this.updateTimeout();\n return;\n }\n this.visible = false;\n this.observer = new IntersectionObserver(entries => {\n this.visible = entries.some(entry => entry.isIntersecting && entry.intersectionRatio > 0);\n this.updateTimeout();\n });\n this.observer.observe(this.hostElement);\n }\n\n private setHover(value: boolean) {\n this.hovering = value && !(window.matchMedia?.('(hover: none)').matches ?? false);\n this.updateTimeout();\n }\n\n private handleFocusOut = (event: FocusEvent) => {\n const target = event.relatedTarget as Node | null;\n this.focused = !!target && (this.hostElement.contains(target) || this.hostElement.shadowRoot.contains(target));\n this.updateTimeout();\n };\n\n private get intent() {\n return TOAST_INTENTS[this.type] || TOAST_INTENTS[SulaToastType.Neutral];\n }\n\n render() {\n const intent = this.intent;\n return (\n <Host\n onMouseEnter={() => this.setHover(true)}\n onMouseLeave={() => this.setHover(false)}\n onFocusin={() => {\n this.focused = true;\n this.updateTimeout();\n }}\n onFocusout={this.handleFocusOut}\n >\n <div\n part=\"container\"\n class={`toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`}\n style={{ '--toast-border-color': intent.borderColor }}\n >\n {this.icon && (\n <div part=\"icon\" aria-hidden=\"true\" class={`flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}`}>\n <sula-icon icon={this.icon} customClass={`text-2xl ${intent.color}`} class=\"flex leading-none\" />\n </div>\n )}\n <div part=\"content\" class={`flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}`}>\n <div class=\"flex flex-col gap-4\">\n {this.toastTitle && (\n <p class=\"toast-copy toast-title text-label-medium-bold text-text-primary\" title={this.toastTitle}>\n {this.toastTitle}\n </p>\n )}\n {this.message && (\n <p class=\"toast-copy toast-message text-label-medium-regular text-text-secondary\" title={this.message}>\n {this.message}\n </p>\n )}\n </div>\n {this.actionText && (\n <button\n type=\"button\"\n class={`toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`}\n title={this.actionText}\n onClick={() => this.toastAction.emit()}\n >\n {this.actionText}\n </button>\n )}\n </div>\n {this.closable && (\n <button\n part=\"close-button\"\n type=\"button\"\n aria-label={this.closeLabel}\n class={`absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`}\n onClick={() => this.toastDismissRequested.emit({ reason: 'close' })}\n >\n <sula-icon aria-hidden=\"true\" icon=\"ph ph-x\" customClass=\"text-2xl\" class=\"flex leading-none\" />\n </button>\n )}\n <svg class=\"toast-border\" aria-hidden=\"true\" focusable=\"false\">\n <rect class=\"toast-border__path\" pathLength=\"1\" />\n </svg>\n </div>\n <div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {this.announcement === 'polite' ? this.announcedText : ''}\n </div>\n <div class=\"sr-only\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n {this.announcement === 'assertive' ? this.announcedText : ''}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-B_NGmHsm.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sula-toast/sula-toast.scss?tag=sula-toast&encapsulation=shadow","src/components/sula-toast/sula-toast.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n max-width: 400px;\n}\n\n.toast-copy {\n overflow-wrap: anywhere;\n}\n\n.toast-title {\n display: block;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.toast-message {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n line-clamp: 4;\n}\n\n.toast-action {\n display: block;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.toast-surface {\n max-width: 400px;\n box-shadow: 0 12px 48px rgba(25, 29, 29, 0.2);\n -webkit-backdrop-filter: blur(20px);\n backdrop-filter: blur(20px);\n}\n\n.toast-surface--animated {\n animation:\n sula-toast-fade-in 280ms cubic-bezier(0.2, 0.8, 0.2, 1),\n sula-toast-border-settle 720ms step-end;\n}\n\n.toast-border {\n position: absolute;\n inset: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n overflow: visible;\n pointer-events: none;\n}\n\n.toast-surface--animated .toast-border {\n animation: sula-toast-border-overlay 720ms step-end;\n}\n\n.toast-border__path {\n x: 0.5px;\n y: 0.5px;\n width: calc(100% - 1px);\n height: calc(100% - 1px);\n rx: 12px;\n fill: none;\n stroke: var(--toast-border-color);\n stroke-width: 1px;\n stroke-linecap: round;\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n vector-effect: non-scaling-stroke;\n}\n\n.toast-surface--animated .toast-border__path {\n animation: sula-toast-border-trace 720ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes sula-toast-fade-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes sula-toast-border-settle {\n from {\n border-color: transparent;\n }\n\n to {\n border-color: var(--toast-border-color);\n }\n}\n\n@keyframes sula-toast-border-overlay {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes sula-toast-border-trace {\n from {\n stroke-dashoffset: 1;\n }\n\n to {\n stroke-dashoffset: 0;\n }\n}\n\n@supports not ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {\n .toast-surface.bg-opacity-toast {\n background-color: var(--color-surface-body);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .toast-surface--animated {\n animation: none;\n }\n\n .toast-surface--animated .toast-border {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaToastAnnouncement, SulaToastDismissEvent, SulaToastType } from './model/sula-toast.model';\n\nconst DEFAULT_DURATION = 5000;\nconst FOCUS_RING_CLASSES = 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-feedback-informational focus-visible:outline-offset-2';\n\nconst TOAST_INTENTS: Record<SulaToastType, { border: string; borderColor: string; color: string; background: string }> = {\n [SulaToastType.Neutral]: {\n border: 'border-line-general',\n borderColor: 'var(--color-line-general)',\n color: 'text-icon-primary',\n background: 'bg-surface-on-body',\n },\n [SulaToastType.Brand]: {\n border: 'border-brand-primary',\n borderColor: 'var(--color-brand-primary)',\n color: 'text-brand-primary',\n background: 'bg-surface-on-body-brand',\n },\n [SulaToastType.Info]: {\n border: 'border-feedback-informational',\n borderColor: 'var(--color-feedback-informational)',\n color: 'text-feedback-informational',\n background: 'bg-surface-on-body-feedback-info',\n },\n [SulaToastType.Success]: {\n border: 'border-feedback-success',\n borderColor: 'var(--color-feedback-success)',\n color: 'text-feedback-success',\n background: 'bg-surface-on-body-feedback-success',\n },\n [SulaToastType.Warning]: {\n border: 'border-feedback-alert',\n borderColor: 'var(--color-feedback-alert)',\n color: 'text-feedback-alert',\n background: 'bg-surface-on-body-feedback-alert',\n },\n [SulaToastType.Danger]: {\n border: 'border-feedback-error',\n borderColor: 'var(--color-feedback-error)',\n color: 'text-feedback-error',\n background: 'bg-surface-on-body-feedback-error',\n },\n};\n\n/**\n * A controlled notification. The consumer removes it after toastDismissRequested.\n * @part container - Notification surface.\n * @part icon - Decorative intent icon.\n * @part content - Title, description and action.\n * @part close-button - Dismiss button.\n */\n@Component({ tag: 'sula-toast', styleUrl: 'sula-toast.scss', shadow: true })\nexport class SulaToast {\n @Element() hostElement: HTMLElement;\n\n /** Notification title. */\n @Prop() toastTitle = '';\n\n /** Optional notification description, displayed on up to four lines. */\n @Prop() message = '';\n\n /** Visual intent, independent of announcement urgency. */\n @Prop() type: SulaToastType = SulaToastType.Neutral;\n\n /** Optional full Phosphor class name. No icon is displayed when omitted or empty. */\n @Prop() icon?: string;\n\n /** Optional single-line action label. The consumer implements the action. */\n @Prop() actionText = '';\n\n /** Whether to display the dismiss button. */\n @Prop() closable = true;\n\n /** Milliseconds before requesting dismissal. Zero persists; omitted means 5000 without an action and persistent with an action. */\n @Prop() duration?: number;\n\n /** Externally pause the remaining timeout, for example while covered by a stack. */\n @Prop() paused = false;\n\n /** Whether to play the entrance animations (fade-in and border trace). Disable when a parent already controls the animation, for example toasts covered in a stack. */\n @Prop() animated = true;\n\n /** Screen reader announcement priority. Use off when a parent owns announcements. */\n @Prop() announcement: SulaToastAnnouncement = 'polite';\n\n /** Accessible dismiss button label. */\n @Prop() closeLabel = 'Fechar notificação';\n\n /** Requests removal by the consumer. Does not remove or hide the element. */\n @Event() toastDismissRequested: EventEmitter<SulaToastDismissEvent>;\n /** Requests the configured action without dismissing the notification. */\n @Event() toastAction: EventEmitter<void>;\n\n @State() announcedText = '';\n private timer?: ReturnType<typeof setTimeout>;\n private observer?: IntersectionObserver;\n private remaining = 0;\n private startedAt = 0;\n private timedOut = false;\n private timeoutEnabled = false;\n private hovering = false;\n private focused = false;\n private visible = false;\n private ready = false;\n private connected = false;\n\n connectedCallback() {\n this.connected = true;\n if (this.ready) this.observeVisibility();\n }\n\n componentDidLoad() {\n this.ready = true;\n this.resetTimeout();\n Promise.resolve().then(() => {\n if (this.connected) this.updateAnnouncement();\n });\n this.observeVisibility();\n }\n\n disconnectedCallback() {\n this.connected = false;\n this.stopTimeout();\n this.observer?.disconnect();\n this.hovering = false;\n this.focused = false;\n }\n\n @Watch('toastTitle')\n @Watch('message')\n @Watch('actionText')\n @Watch('duration')\n handleContentChange() {\n this.resetTimeout();\n this.updateAnnouncement();\n }\n\n @Watch('announcement')\n updateAnnouncement() {\n this.announcedText = this.announcement === 'off' ? '' : [this.toastTitle, this.message].filter(Boolean).join('. ');\n }\n\n @Watch('paused')\n @Listen('visibilitychange', { target: 'document' })\n updateTimeout() {\n const blocked = !this.connected || !this.ready || !this.visible || this.paused || this.hovering || this.focused || document.visibilityState === 'hidden';\n if (blocked) {\n this.stopTimeout();\n } else if (this.timer === undefined && this.timeoutEnabled && !this.timedOut) {\n this.startedAt = Date.now();\n this.timer = setTimeout(() => {\n this.timer = undefined;\n this.remaining = 0;\n this.timedOut = true;\n this.toastDismissRequested.emit({ reason: 'timeout' });\n }, this.remaining);\n }\n }\n\n private resetTimeout() {\n this.stopTimeout();\n this.remaining = this.resolveDuration();\n this.timeoutEnabled = this.remaining > 0;\n this.timedOut = false;\n this.updateTimeout();\n }\n\n private resolveDuration() {\n if (typeof this.duration === 'number' && Number.isFinite(this.duration) && this.duration >= 0) return this.duration;\n return this.actionText ? 0 : DEFAULT_DURATION;\n }\n\n private stopTimeout() {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.remaining = Math.max(0, this.remaining - (Date.now() - this.startedAt));\n }\n }\n\n private observeVisibility() {\n this.observer?.disconnect();\n if (typeof IntersectionObserver === 'undefined') {\n this.visible = true;\n this.updateTimeout();\n return;\n }\n this.visible = false;\n this.observer = new IntersectionObserver(entries => {\n this.visible = entries.some(entry => entry.isIntersecting && entry.intersectionRatio > 0);\n this.updateTimeout();\n });\n this.observer.observe(this.hostElement);\n }\n\n private setHover(value: boolean) {\n this.hovering = value && !(window.matchMedia?.('(hover: none)').matches ?? false);\n this.updateTimeout();\n }\n\n private handleFocusOut = (event: FocusEvent) => {\n const target = event.relatedTarget as Node | null;\n this.focused = !!target && (this.hostElement.contains(target) || this.hostElement.shadowRoot.contains(target));\n this.updateTimeout();\n };\n\n private get intent() {\n return TOAST_INTENTS[this.type] || TOAST_INTENTS[SulaToastType.Neutral];\n }\n\n render() {\n const intent = this.intent;\n return (\n <Host\n onMouseEnter={() => this.setHover(true)}\n onMouseLeave={() => this.setHover(false)}\n onFocusin={() => {\n this.focused = true;\n this.updateTimeout();\n }}\n onFocusout={this.handleFocusOut}\n >\n <div\n part=\"container\"\n class={`toast-surface relative isolate box-border flex items-center w-full p-16 gap-12 rounded-sm border bg-opacity-toast ${intent.border} ${this.animated ? 'toast-surface--animated' : ''}`}\n style={{ '--toast-border-color': intent.borderColor }}\n >\n {this.icon && (\n <div part=\"icon\" aria-hidden=\"true\" class={`flex shrink-0 items-center justify-center w-44 h-44 rounded-xxl ${intent.background}`}>\n <sula-icon icon={this.icon} customClass={`text-2xl ${intent.color}`} class=\"flex leading-none\" />\n </div>\n )}\n <div part=\"content\" class={`flex min-w-0 flex-1 flex-col gap-8 ${this.closable ? 'pr-48' : ''}`}>\n <div class=\"flex flex-col gap-4\">\n {this.toastTitle && (\n <p class=\"toast-copy toast-title text-label-medium-bold text-text-primary\" title={this.toastTitle}>\n {this.toastTitle}\n </p>\n )}\n {this.message && (\n <p class=\"toast-copy toast-message text-label-medium-regular text-text-secondary\" title={this.message}>\n {this.message}\n </p>\n )}\n </div>\n {this.actionText && (\n <button\n type=\"button\"\n class={`toast-copy toast-action self-start text-left text-label-medium-bold text-text-link underline rounded ${FOCUS_RING_CLASSES}`}\n title={this.actionText}\n onClick={() => this.toastAction.emit()}\n >\n {this.actionText}\n </button>\n )}\n </div>\n {this.closable && (\n <button\n part=\"close-button\"\n type=\"button\"\n aria-label={this.closeLabel}\n class={`absolute top-16 right-16 flex items-center justify-center w-24 h-24 rounded ${intent.color} ${FOCUS_RING_CLASSES}`}\n onClick={() => this.toastDismissRequested.emit({ reason: 'close' })}\n >\n <sula-icon aria-hidden=\"true\" icon=\"ph ph-x\" customClass=\"text-2xl\" class=\"flex leading-none\" />\n </button>\n )}\n <svg class=\"toast-border\" aria-hidden=\"true\" focusable=\"false\">\n <rect class=\"toast-border__path\" pathLength=\"1\" />\n </svg>\n </div>\n <div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {this.announcement === 'polite' ? this.announcedText : ''}\n </div>\n <div class=\"sr-only\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n {this.announcement === 'assertive' ? this.announcedText : ''}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}