voa-ds-core 1.0.31 → 1.0.32
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.
- package/dist/custom-elements/index.d.ts +0 -81
- package/dist/custom-elements/index.js +1460 -40
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/custom-elements/{p-Dij6eiDm.js → p-B2P7cgN3.js} +5 -4
- package/dist/custom-elements/p-B2P7cgN3.js.map +1 -0
- package/dist/custom-elements/{p-Bbv_lCJm.js → p-CQr0ZKZZ.js} +4 -3
- package/dist/custom-elements/p-CQr0ZKZZ.js.map +1 -0
- package/dist/custom-elements/{p-CGXKDN0Z.js → p-Cp28eWhS.js} +3 -3
- package/dist/custom-elements/{p-CGXKDN0Z.js.map → p-Cp28eWhS.js.map} +1 -1
- package/dist/custom-elements/{p-BVkwkeZD.js → p-DKnM_Ozb.js} +4 -3
- package/dist/custom-elements/p-DKnM_Ozb.js.map +1 -0
- package/dist/custom-elements/{p-C3RlQWjO.js → p-DPyVgztA.js} +4 -3
- package/dist/custom-elements/p-DPyVgztA.js.map +1 -0
- package/dist/custom-elements/{p-DMLFTaAS.js → p-Dto9R8Te.js} +4 -3
- package/dist/custom-elements/p-Dto9R8Te.js.map +1 -0
- package/dist/custom-elements/voa-accordion.js +2 -1
- package/dist/custom-elements/voa-accordion.js.map +1 -1
- package/dist/custom-elements/voa-alert.js +4 -3
- package/dist/custom-elements/voa-alert.js.map +1 -1
- package/dist/custom-elements/voa-avatar.js +2 -1
- package/dist/custom-elements/voa-avatar.js.map +1 -1
- package/dist/custom-elements/voa-badge.js +1 -1
- package/dist/custom-elements/voa-breadcrumbs-divider.js +3 -2
- package/dist/custom-elements/voa-breadcrumbs-divider.js.map +1 -1
- package/dist/custom-elements/voa-breadcrumbs-item.js +2 -1
- package/dist/custom-elements/voa-breadcrumbs-item.js.map +1 -1
- package/dist/custom-elements/voa-breadcrumbs.js +2 -1
- package/dist/custom-elements/voa-breadcrumbs.js.map +1 -1
- package/dist/custom-elements/voa-button.js +1 -1
- package/dist/custom-elements/voa-card.js +2 -1
- package/dist/custom-elements/voa-card.js.map +1 -1
- package/dist/custom-elements/voa-checkbox.js +2 -1
- package/dist/custom-elements/voa-checkbox.js.map +1 -1
- package/dist/custom-elements/voa-container-multi-select.js +3 -2
- package/dist/custom-elements/voa-container-multi-select.js.map +1 -1
- package/dist/custom-elements/voa-datepicker.js +2 -1
- package/dist/custom-elements/voa-datepicker.js.map +1 -1
- package/dist/custom-elements/voa-drawer.js +2 -1
- package/dist/custom-elements/voa-drawer.js.map +1 -1
- package/dist/custom-elements/voa-dropdown.js +2 -1
- package/dist/custom-elements/voa-dropdown.js.map +1 -1
- package/dist/custom-elements/voa-input-addon.js +3 -2
- package/dist/custom-elements/voa-input-addon.js.map +1 -1
- package/dist/custom-elements/voa-input.js +2 -1
- package/dist/custom-elements/voa-input.js.map +1 -1
- package/dist/custom-elements/voa-keybinding.js +1 -1
- package/dist/custom-elements/voa-link.js +2 -1
- package/dist/custom-elements/voa-link.js.map +1 -1
- package/dist/custom-elements/voa-list.js +2 -1
- package/dist/custom-elements/voa-list.js.map +1 -1
- package/dist/custom-elements/voa-modal.js +2 -1
- package/dist/custom-elements/voa-modal.js.map +1 -1
- package/dist/custom-elements/voa-option.js +2 -1
- package/dist/custom-elements/voa-option.js.map +1 -1
- package/dist/custom-elements/voa-pagination-item.js +1 -1
- package/dist/custom-elements/voa-pagination.js +3 -2
- package/dist/custom-elements/voa-pagination.js.map +1 -1
- package/dist/custom-elements/voa-progress.js +2 -1
- package/dist/custom-elements/voa-progress.js.map +1 -1
- package/dist/custom-elements/voa-radio.js +2 -1
- package/dist/custom-elements/voa-radio.js.map +1 -1
- package/dist/custom-elements/voa-select-base.js +1 -1
- package/dist/custom-elements/voa-select.js +3 -2
- package/dist/custom-elements/voa-select.js.map +1 -1
- package/dist/custom-elements/voa-skeleton.js +2 -1
- package/dist/custom-elements/voa-skeleton.js.map +1 -1
- package/dist/custom-elements/voa-stepper.js +2 -1
- package/dist/custom-elements/voa-stepper.js.map +1 -1
- package/dist/custom-elements/voa-switch.js +2 -1
- package/dist/custom-elements/voa-switch.js.map +1 -1
- package/dist/custom-elements/voa-tab-item.js +2 -1
- package/dist/custom-elements/voa-tab-item.js.map +1 -1
- package/dist/custom-elements/voa-tab.js +2 -1
- package/dist/custom-elements/voa-tab.js.map +1 -1
- package/dist/custom-elements/voa-table.js +2 -1
- package/dist/custom-elements/voa-table.js.map +1 -1
- package/dist/custom-elements/voa-tag.js +2 -1
- package/dist/custom-elements/voa-tag.js.map +1 -1
- package/dist/custom-elements/voa-text-area.js +2 -1
- package/dist/custom-elements/voa-text-area.js.map +1 -1
- package/dist/custom-elements/voa-timepicker.js +2 -1
- package/dist/custom-elements/voa-timepicker.js.map +1 -1
- package/dist/custom-elements/voa-tooltip-arrow.js +2 -1
- package/dist/custom-elements/voa-tooltip-arrow.js.map +1 -1
- package/dist/custom-elements/voa-tooltip.js +2 -1
- package/dist/custom-elements/voa-tooltip.js.map +1 -1
- package/dist/custom-elements/voa-upload.js +2 -1
- package/dist/custom-elements/voa-upload.js.map +1 -1
- package/dist/styles/voa-components.css +2 -2
- package/package.json +1 -1
- package/dist/custom-elements/p-BVkwkeZD.js.map +0 -1
- package/dist/custom-elements/p-Bbv_lCJm.js.map +0 -1
- package/dist/custom-elements/p-C3RlQWjO.js.map +0 -1
- package/dist/custom-elements/p-CFBaVtm5.js +0 -1463
- package/dist/custom-elements/p-CFBaVtm5.js.map +0 -1
- package/dist/custom-elements/p-DMLFTaAS.js.map +0 -1
- package/dist/custom-elements/p-Dij6eiDm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-input.js","mappings":"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","names":["VoaInput","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-input/voa-input.css?tag=voa-input&encapsulation=shadow","src/components/voa-input/voa-input.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__title-row {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__label {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__info {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__info-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.voa-input__required-indicator {\r\n display: inline;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__container {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n}\r\n\r\n.voa-input__prefix {\r\n display: flex;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__suffix {\r\n display: flex;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__input {\r\n flex: 1 1 0%;\r\n min-width: 0;\r\n width: 100%;\r\n border: none;\r\n outline: none;\r\n background: transparent;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n\r\n.voa-input__input:disabled {\r\n cursor: not-allowed;\r\n}\r\n\r\n.voa-input__input:read-only {\r\n cursor: default;\r\n}\r\n\r\n.voa-input__helper-text {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.is-hidden {\r\n display: none !important;\r\n}\r\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Method, Watch } from '@stencil/core';\r\n\r\n/**\r\n * Componente de input para entrada de dados do Voa Design System.\r\n * \r\n * Baseado no design do Figma, seguindo o padrão \"unstyled\" (headless).\r\n * Todos os estilos visuais devem ser aplicados externamente via CSS Parts API usando design tokens.\r\n * \r\n * @part base - O elemento raiz do componente\r\n * @part title-row - Container do titulo (label + info)\r\n * @part label - O elemento de label\r\n * @part info - Container da informacao adicional\r\n * @part info-icon - O ícone de informação\r\n * @part container - O wrapper do input (border, background)\r\n * @part input - O elemento input nativo\r\n * @part prefix - O wrapper do slot prefix\r\n * @part suffix - O wrapper do slot suffix\r\n * @part helper-text - O elemento de texto auxiliar/erro\r\n */\r\n@Component({\r\n tag: 'voa-input',\r\n styleUrl: 'voa-input.css',\r\n shadow: true,\r\n scoped: false, // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaInput {\r\n @Element() host: HTMLVoaInputElement;\r\n\r\n /**\r\n * ID do elemento input\r\n */\r\n @Prop() inputId?: string;\r\n\r\n /**\r\n * Tipo do input (text, password, email, search, tel, etc.)\r\n */\r\n @Prop() type: string = 'text';\r\n\r\n /**\r\n * Nome do elemento input\r\n */\r\n @Prop() name?: string;\r\n\r\n /**\r\n * Valor do input\r\n */\r\n @Prop() value?: string = '';\r\n\r\n /**\r\n * Texto de placeholder\r\n */\r\n @Prop() placeholder?: string;\r\n\r\n /**\r\n * Texto do label\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * Texto auxiliar ou mensagem de erro\r\n */\r\n @Prop() helperText?: string;\r\n\r\n /**\r\n * Indica se o campo está em estado de erro\r\n */\r\n @Prop({ reflect: true }) error: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está em estado de sucesso\r\n */\r\n @Prop({ reflect: true }) valid: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está em estado de aviso\r\n */\r\n @Prop({ reflect: true }) warning: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está desabilitado\r\n */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Indica se o campo é somente leitura\r\n */\r\n @Prop({ reflect: true }) readonly: boolean = false;\r\n\r\n /**\r\n * Indica se o campo é obrigatório\r\n */\r\n @Prop({ reflect: true }) required: boolean = false;\r\n\r\n /**\r\n * Variante de preenchimento (filled vs unfilled)\r\n */\r\n @Prop({ reflect: true }) fill: boolean = true;\r\n\r\n /**\r\n * Tamanho do input\r\n */\r\n @Prop({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\r\n\r\n /**\r\n * Mostrar ícone de informação na área de info\r\n */\r\n @Prop() showInfoIcon: boolean = true;\r\n\r\n /**\r\n * Estado interno que controla se o campo está em foco\r\n */\r\n @State() isFocused: boolean = false;\r\n\r\n @State() hasPrefix: boolean = false;\r\n @State() hasSuffix: boolean = false;\r\n @State() hasInfo: boolean = false;\r\n\r\n /**\r\n * Valor interno do input\r\n */\r\n @State() internalValue: string = '';\r\n\r\n @Watch('value')\r\n valueChanged(newValue: string) {\r\n this.internalValue = newValue;\r\n }\r\n\r\n /**\r\n * Referência ao elemento input nativo\r\n */\r\n private inputRef?: HTMLInputElement;\r\n\r\n /**\r\n * Evento emitido quando o valor é alterado\r\n */\r\n @Event() dsChange: EventEmitter<string>;\r\n\r\n /**\r\n * Evento emitido durante a digitação\r\n */\r\n @Event() dsInput: EventEmitter<string>;\r\n\r\n /**\r\n * Evento emitido quando o campo ganha foco\r\n */\r\n @Event() dsFocus: EventEmitter<FocusEvent>;\r\n\r\n /**\r\n * Evento emitido quando o campo perde foco\r\n */\r\n @Event() dsBlur: EventEmitter<FocusEvent>;\r\n\r\n /**\r\n * Gera um ID único se não fornecido\r\n */\r\n private generateId(): string {\r\n if (this.inputId) {\r\n return this.inputId;\r\n }\r\n return `voa-input-${Math.random().toString(36).substr(2, 9)}`;\r\n }\r\n\r\n /**\r\n * ID do input gerado ou fornecido\r\n */\r\n private inputIdValue: string = '';\r\n\r\n componentWillLoad() {\r\n this.inputIdValue = this.generateId();\r\n this.internalValue = this.value || '';\r\n this.checkSlots();\r\n }\r\n\r\n private checkSlots = () => {\r\n this.hasPrefix = !!this.host.querySelector('[slot=\"prefix\"]');\r\n this.hasSuffix = !!this.host.querySelector('[slot=\"suffix\"]');\r\n this.hasInfo = !!this.host.querySelector('[slot=\"info\"]');\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de input\r\n */\r\n private handleInput = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n this.internalValue = input.value;\r\n this.dsInput.emit(this.internalValue);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de change\r\n */\r\n private handleChange = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n this.internalValue = input.value;\r\n this.dsChange.emit(this.internalValue);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de focus\r\n */\r\n private handleFocus = (event: FocusEvent) => {\r\n this.isFocused = true;\r\n this.dsFocus.emit(event);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de blur\r\n */\r\n private handleBlur = (event: FocusEvent) => {\r\n this.isFocused = false;\r\n this.dsBlur.emit(event);\r\n };\r\n\r\n /**\r\n * Método para acessibilidade WCAG 2.2 AA.\r\n * Delega foco ao elemento interno nativo.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n if (this.inputRef) {\r\n this.inputRef.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Handler para navegação por teclado (WCAG 2.2 AA).\r\n */\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n if (this.disabled || this.readonly) {\r\n return;\r\n }\r\n\r\n // Permitir navegação normal por teclado\r\n // Enter e Space já são tratados pelo input nativo\r\n switch (event.key) {\r\n case 'Escape':\r\n // Se o input tiver valor, limpar pode ser útil\r\n // Mas não implementamos isso por padrão para não quebrar UX\r\n break;\r\n }\r\n };\r\n\r\n render() {\r\n const helperTextId = `${this.inputIdValue}-helper`;\r\n const hasTitleRow = !!this.label || this.hasInfo;\r\n\r\n return (\r\n <Host\r\n part=\"base\"\r\n class={{\r\n 'voa-input': true,\r\n [`voa-input--${this.size}`]: true,\r\n 'voa-input--filled': this.fill,\r\n 'voa-input--unfilled': !this.fill,\r\n 'voa-input--focused': this.isFocused,\r\n 'voa-input--error': this.error,\r\n 'voa-input--valid': this.valid,\r\n 'voa-input--warning': this.warning,\r\n 'voa-input--disabled': this.disabled,\r\n 'voa-input--readonly': this.readonly,\r\n 'voa-input--has-prefix': this.hasPrefix,\r\n 'voa-input--has-suffix': this.hasSuffix,\r\n }}\r\n data-has-prefix={this.hasPrefix ? 'true' : undefined}\r\n data-has-suffix={this.hasSuffix ? 'true' : undefined}\r\n >\r\n {hasTitleRow && (\r\n <div part=\"title-row\" class=\"voa-input__title-row\">\r\n <label part=\"label\" htmlFor={this.inputIdValue} class=\"voa-input__label\">\r\n <slot name=\"label\">{this.label}</slot>\r\n {this.required && <span class=\"voa-input__required-indicator\" aria-label=\"obrigatório\">*</span>}\r\n </label>\r\n \r\n <div \r\n part=\"info\" \r\n class={{\r\n 'voa-input__info': true,\r\n 'is-hidden': !this.hasInfo\r\n }}\r\n >\r\n <slot name=\"info\" onSlotchange={this.checkSlots}></slot>\r\n {this.showInfoIcon && this.hasInfo && (\r\n <span part=\"info-icon\" class=\"voa-input__info-icon\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 8V11\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 5H8.008\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div\r\n part=\"container\"\r\n class={{\r\n 'voa-input__container': true,\r\n 'is-focused': this.isFocused,\r\n 'has-error': this.error,\r\n 'has-valid': this.valid,\r\n 'has-warning': this.warning,\r\n 'is-disabled': this.disabled,\r\n 'is-readonly': this.readonly,\r\n }}\r\n >\r\n <div \r\n part=\"prefix\" \r\n class={{\r\n 'voa-input__prefix': true,\r\n 'is-hidden': !this.hasPrefix\r\n }}\r\n >\r\n <slot name=\"prefix\" onSlotchange={this.checkSlots}></slot>\r\n </div>\r\n\r\n <input\r\n part=\"input\"\r\n ref={(el) => (this.inputRef = el)}\r\n id={this.inputIdValue}\r\n type={this.type}\r\n name={this.name}\r\n value={this.internalValue}\r\n placeholder={this.placeholder}\r\n disabled={this.disabled}\r\n readonly={this.readonly}\r\n required={this.required}\r\n onInput={this.handleInput}\r\n onChange={this.handleChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.handleKeyDown}\r\n aria-invalid={this.error ? 'true' : undefined}\r\n aria-describedby={this.helperText ? helperTextId : undefined}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n class=\"voa-input__input\"\r\n />\r\n\r\n <div \r\n part=\"suffix\" \r\n class={{\r\n 'voa-input__suffix': true,\r\n 'is-hidden': !this.hasSuffix\r\n }}\r\n >\r\n <slot name=\"suffix\" onSlotchange={this.checkSlots}></slot>\r\n </div>\r\n </div>\r\n\r\n {this.helperText && (\r\n <div\r\n part=\"helper-text\"\r\n id={helperTextId}\r\n class={{\r\n 'voa-input__helper-text': true,\r\n 'voa-input__helper-text--error': this.error,\r\n 'voa-input__helper-text--valid': this.valid,\r\n 'voa-input__helper-text--warning': this.warning,\r\n }}\r\n role={this.error ? 'alert' : undefined}\r\n >\r\n <slot name=\"helper-text\">{this.helperText}</slot>\r\n </div>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"voa-input.js","mappings":"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","names":["VoaInput","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-input/voa-input.css?tag=voa-input&encapsulation=shadow","src/components/voa-input/voa-input.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__title-row {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__label {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__info {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__info-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.voa-input__required-indicator {\r\n display: inline;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__container {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n}\r\n\r\n.voa-input__prefix {\r\n display: flex;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__suffix {\r\n display: flex;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-input__input {\r\n flex: 1 1 0%;\r\n min-width: 0;\r\n width: 100%;\r\n border: none;\r\n outline: none;\r\n background: transparent;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n\r\n.voa-input__input:disabled {\r\n cursor: not-allowed;\r\n}\r\n\r\n.voa-input__input:read-only {\r\n cursor: default;\r\n}\r\n\r\n.voa-input__helper-text {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.is-hidden {\r\n display: none !important;\r\n}\r\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Method, Watch } from '@stencil/core';\r\n\r\n/**\r\n * Componente de input para entrada de dados do Voa Design System.\r\n * \r\n * Baseado no design do Figma, seguindo o padrão \"unstyled\" (headless).\r\n * Todos os estilos visuais devem ser aplicados externamente via CSS Parts API usando design tokens.\r\n * \r\n * @part base - O elemento raiz do componente\r\n * @part title-row - Container do titulo (label + info)\r\n * @part label - O elemento de label\r\n * @part info - Container da informacao adicional\r\n * @part info-icon - O ícone de informação\r\n * @part container - O wrapper do input (border, background)\r\n * @part input - O elemento input nativo\r\n * @part prefix - O wrapper do slot prefix\r\n * @part suffix - O wrapper do slot suffix\r\n * @part helper-text - O elemento de texto auxiliar/erro\r\n */\r\n@Component({\r\n tag: 'voa-input',\r\n styleUrl: 'voa-input.css',\r\n shadow: true,\r\n scoped: false, // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaInput {\r\n @Element() host: HTMLVoaInputElement;\r\n\r\n /**\r\n * ID do elemento input\r\n */\r\n @Prop() inputId?: string;\r\n\r\n /**\r\n * Tipo do input (text, password, email, search, tel, etc.)\r\n */\r\n @Prop() type: string = 'text';\r\n\r\n /**\r\n * Nome do elemento input\r\n */\r\n @Prop() name?: string;\r\n\r\n /**\r\n * Valor do input\r\n */\r\n @Prop() value?: string = '';\r\n\r\n /**\r\n * Texto de placeholder\r\n */\r\n @Prop() placeholder?: string;\r\n\r\n /**\r\n * Texto do label\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * Texto auxiliar ou mensagem de erro\r\n */\r\n @Prop() helperText?: string;\r\n\r\n /**\r\n * Indica se o campo está em estado de erro\r\n */\r\n @Prop({ reflect: true }) error: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está em estado de sucesso\r\n */\r\n @Prop({ reflect: true }) valid: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está em estado de aviso\r\n */\r\n @Prop({ reflect: true }) warning: boolean = false;\r\n\r\n /**\r\n * Indica se o campo está desabilitado\r\n */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Indica se o campo é somente leitura\r\n */\r\n @Prop({ reflect: true }) readonly: boolean = false;\r\n\r\n /**\r\n * Indica se o campo é obrigatório\r\n */\r\n @Prop({ reflect: true }) required: boolean = false;\r\n\r\n /**\r\n * Variante de preenchimento (filled vs unfilled)\r\n */\r\n @Prop({ reflect: true }) fill: boolean = true;\r\n\r\n /**\r\n * Tamanho do input\r\n */\r\n @Prop({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\r\n\r\n /**\r\n * Mostrar ícone de informação na área de info\r\n */\r\n @Prop() showInfoIcon: boolean = true;\r\n\r\n /**\r\n * Estado interno que controla se o campo está em foco\r\n */\r\n @State() isFocused: boolean = false;\r\n\r\n @State() hasPrefix: boolean = false;\r\n @State() hasSuffix: boolean = false;\r\n @State() hasInfo: boolean = false;\r\n\r\n /**\r\n * Valor interno do input\r\n */\r\n @State() internalValue: string = '';\r\n\r\n @Watch('value')\r\n valueChanged(newValue: string) {\r\n this.internalValue = newValue;\r\n }\r\n\r\n /**\r\n * Referência ao elemento input nativo\r\n */\r\n private inputRef?: HTMLInputElement;\r\n\r\n /**\r\n * Evento emitido quando o valor é alterado\r\n */\r\n @Event() dsChange: EventEmitter<string>;\r\n\r\n /**\r\n * Evento emitido durante a digitação\r\n */\r\n @Event() dsInput: EventEmitter<string>;\r\n\r\n /**\r\n * Evento emitido quando o campo ganha foco\r\n */\r\n @Event() dsFocus: EventEmitter<FocusEvent>;\r\n\r\n /**\r\n * Evento emitido quando o campo perde foco\r\n */\r\n @Event() dsBlur: EventEmitter<FocusEvent>;\r\n\r\n /**\r\n * Gera um ID único se não fornecido\r\n */\r\n private generateId(): string {\r\n if (this.inputId) {\r\n return this.inputId;\r\n }\r\n return `voa-input-${Math.random().toString(36).substr(2, 9)}`;\r\n }\r\n\r\n /**\r\n * ID do input gerado ou fornecido\r\n */\r\n private inputIdValue: string = '';\r\n\r\n componentWillLoad() {\r\n this.inputIdValue = this.generateId();\r\n this.internalValue = this.value || '';\r\n this.checkSlots();\r\n }\r\n\r\n private checkSlots = () => {\r\n this.hasPrefix = !!this.host.querySelector('[slot=\"prefix\"]');\r\n this.hasSuffix = !!this.host.querySelector('[slot=\"suffix\"]');\r\n this.hasInfo = !!this.host.querySelector('[slot=\"info\"]');\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de input\r\n */\r\n private handleInput = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n this.internalValue = input.value;\r\n this.dsInput.emit(this.internalValue);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de change\r\n */\r\n private handleChange = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n this.internalValue = input.value;\r\n this.dsChange.emit(this.internalValue);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de focus\r\n */\r\n private handleFocus = (event: FocusEvent) => {\r\n this.isFocused = true;\r\n this.dsFocus.emit(event);\r\n };\r\n\r\n /**\r\n * Gerenciador de evento de blur\r\n */\r\n private handleBlur = (event: FocusEvent) => {\r\n this.isFocused = false;\r\n this.dsBlur.emit(event);\r\n };\r\n\r\n /**\r\n * Método para acessibilidade WCAG 2.2 AA.\r\n * Delega foco ao elemento interno nativo.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n if (this.inputRef) {\r\n this.inputRef.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Handler para navegação por teclado (WCAG 2.2 AA).\r\n */\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n if (this.disabled || this.readonly) {\r\n return;\r\n }\r\n\r\n // Permitir navegação normal por teclado\r\n // Enter e Space já são tratados pelo input nativo\r\n switch (event.key) {\r\n case 'Escape':\r\n // Se o input tiver valor, limpar pode ser útil\r\n // Mas não implementamos isso por padrão para não quebrar UX\r\n break;\r\n }\r\n };\r\n\r\n render() {\r\n const helperTextId = `${this.inputIdValue}-helper`;\r\n const hasTitleRow = !!this.label || this.hasInfo;\r\n\r\n return (\r\n <Host\r\n part=\"base\"\r\n class={{\r\n 'voa-input': true,\r\n [`voa-input--${this.size}`]: true,\r\n 'voa-input--filled': this.fill,\r\n 'voa-input--unfilled': !this.fill,\r\n 'voa-input--focused': this.isFocused,\r\n 'voa-input--error': this.error,\r\n 'voa-input--valid': this.valid,\r\n 'voa-input--warning': this.warning,\r\n 'voa-input--disabled': this.disabled,\r\n 'voa-input--readonly': this.readonly,\r\n 'voa-input--has-prefix': this.hasPrefix,\r\n 'voa-input--has-suffix': this.hasSuffix,\r\n }}\r\n data-has-prefix={this.hasPrefix ? 'true' : undefined}\r\n data-has-suffix={this.hasSuffix ? 'true' : undefined}\r\n >\r\n {hasTitleRow && (\r\n <div part=\"title-row\" class=\"voa-input__title-row\">\r\n <label part=\"label\" htmlFor={this.inputIdValue} class=\"voa-input__label\">\r\n <slot name=\"label\">{this.label}</slot>\r\n {this.required && <span class=\"voa-input__required-indicator\" aria-label=\"obrigatório\">*</span>}\r\n </label>\r\n \r\n <div \r\n part=\"info\" \r\n class={{\r\n 'voa-input__info': true,\r\n 'is-hidden': !this.hasInfo\r\n }}\r\n >\r\n <slot name=\"info\" onSlotchange={this.checkSlots}></slot>\r\n {this.showInfoIcon && this.hasInfo && (\r\n <span part=\"info-icon\" class=\"voa-input__info-icon\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 8V11\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 5H8.008\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div\r\n part=\"container\"\r\n class={{\r\n 'voa-input__container': true,\r\n 'is-focused': this.isFocused,\r\n 'has-error': this.error,\r\n 'has-valid': this.valid,\r\n 'has-warning': this.warning,\r\n 'is-disabled': this.disabled,\r\n 'is-readonly': this.readonly,\r\n }}\r\n >\r\n <div \r\n part=\"prefix\" \r\n class={{\r\n 'voa-input__prefix': true,\r\n 'is-hidden': !this.hasPrefix\r\n }}\r\n >\r\n <slot name=\"prefix\" onSlotchange={this.checkSlots}></slot>\r\n </div>\r\n\r\n <input\r\n part=\"input\"\r\n ref={(el) => (this.inputRef = el)}\r\n id={this.inputIdValue}\r\n type={this.type}\r\n name={this.name}\r\n value={this.internalValue}\r\n placeholder={this.placeholder}\r\n disabled={this.disabled}\r\n readonly={this.readonly}\r\n required={this.required}\r\n onInput={this.handleInput}\r\n onChange={this.handleChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyDown={this.handleKeyDown}\r\n aria-invalid={this.error ? 'true' : undefined}\r\n aria-describedby={this.helperText ? helperTextId : undefined}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n class=\"voa-input__input\"\r\n />\r\n\r\n <div \r\n part=\"suffix\" \r\n class={{\r\n 'voa-input__suffix': true,\r\n 'is-hidden': !this.hasSuffix\r\n }}\r\n >\r\n <slot name=\"suffix\" onSlotchange={this.checkSlots}></slot>\r\n </div>\r\n </div>\r\n\r\n {this.helperText && (\r\n <div\r\n part=\"helper-text\"\r\n id={helperTextId}\r\n class={{\r\n 'voa-input__helper-text': true,\r\n 'voa-input__helper-text--error': this.error,\r\n 'voa-input__helper-text--valid': this.valid,\r\n 'voa-input__helper-text--warning': this.warning,\r\n }}\r\n role={this.error ? 'alert' : undefined}\r\n >\r\n <slot name=\"helper-text\">{this.helperText}</slot>\r\n </div>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const linkCss = ".link{color:#007bff;text-decoration:none;transition:color 0.2s}.link:hover{color:#0056b3}";
|
|
4
4
|
|
|
@@ -32,6 +32,7 @@ function defineCustomElement$1() {
|
|
|
32
32
|
break;
|
|
33
33
|
} });
|
|
34
34
|
}
|
|
35
|
+
defineCustomElement$1();
|
|
35
36
|
|
|
36
37
|
const VoaLink = Link;
|
|
37
38
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-link.js","mappings":";;AAAA,MAAM,OAAO,GAAG,2FAA2F;;MCO9F,IAAI,iBAAAA,kBAAA,CAAA,MAAA,IAAA,SAAAC,CAAA,CAAA;AALjB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAOU,QAAA,IAAM,CAAA,MAAA,GAAW,OAAO;AASjC;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACX
|
|
1
|
+
{"file":"voa-link.js","mappings":";;AAAA,MAAM,OAAO,GAAG,2FAA2F;;MCO9F,IAAI,iBAAAA,kBAAA,CAAA,MAAA,IAAA,SAAAC,CAAA,CAAA;AALjB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAOU,QAAA,IAAM,CAAA,MAAA,GAAW,OAAO;AASjC;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACX;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-link/link.css?tag=voa-link&encapsulation=shadow","src/components/voa-link/link.tsx"],"sourcesContent":[".link {\r\n color: #007bff;\r\n text-decoration: none;\r\n transition: color 0.2s;\r\n}\r\n\r\n.link:hover {\r\n color: #0056b3;\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-link\",\r\n styleUrl: \"link.css\",\r\n shadow: true,\r\n})\r\nexport class Link {\r\n @Prop() href: string;\r\n @Prop() target: string = \"_self\";\r\n\r\n render() {\r\n return (\r\n <a class=\"link\" href={this.href} target={this.target}>\r\n <slot></slot>\r\n </a>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const listCss = ".list{list-style:none;padding:0;margin:0}.list li{padding:10px;border-bottom:1px solid #ddd}.list li:last-child{border-bottom:none}";
|
|
4
4
|
|
|
@@ -31,6 +31,7 @@ function defineCustomElement$1() {
|
|
|
31
31
|
break;
|
|
32
32
|
} });
|
|
33
33
|
}
|
|
34
|
+
defineCustomElement$1();
|
|
34
35
|
|
|
35
36
|
const VoaList = List;
|
|
36
37
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-list.js","mappings":";;AAAA,MAAM,OAAO,GAAG,qIAAqI;;MCOxI,IAAI,iBAAAA,kBAAA,CAAA,MAAA,IAAA,SAAAC,CAAA,CAAA;AALjB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAa,EAAE;AAW7B;IATC,MAAM,GAAA;AACJ,QAAA,QACE,CAAI,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,IACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACnB,CAAA,CAAA,IAAA,EAAA,IAAA,EAAK,IAAI,CAAM,CAChB,CAAC,CACC
|
|
1
|
+
{"file":"voa-list.js","mappings":";;AAAA,MAAM,OAAO,GAAG,qIAAqI;;MCOxI,IAAI,iBAAAA,kBAAA,CAAA,MAAA,IAAA,SAAAC,CAAA,CAAA;AALjB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAa,EAAE;AAW7B;IATC,MAAM,GAAA;AACJ,QAAA,QACE,CAAI,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,IACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACnB,CAAA,CAAA,IAAA,EAAA,IAAA,EAAK,IAAI,CAAM,CAChB,CAAC,CACC;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-list/list.css?tag=voa-list&encapsulation=shadow","src/components/voa-list/list.tsx"],"sourcesContent":[".list {\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\n.list li {\r\n padding: 10px;\r\n border-bottom: 1px solid #ddd;\r\n}\r\n\r\n.list li:last-child {\r\n border-bottom: none;\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-list\",\r\n styleUrl: \"list.css\",\r\n shadow: true,\r\n})\r\nexport class List {\r\n @Prop() items: string[] = [];\r\n\r\n render() {\r\n return (\r\n <ul class=\"list\">\r\n {this.items.map((item) => (\r\n <li>{item}</li>\r\n ))}\r\n </ul>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const modalCss = ".modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.5);justify-content:center;align-items:center;z-index:1000}.modal.open{display:flex}.overlay{position:absolute;width:100%;height:100%}.content{background-color:white;padding:20px;border-radius:8px;position:relative;z-index:1001}.close{position:absolute;top:10px;right:10px;font-size:1.5rem;background:none;border:none;cursor:pointer}";
|
|
4
4
|
|
|
@@ -36,6 +36,7 @@ function defineCustomElement$1() {
|
|
|
36
36
|
break;
|
|
37
37
|
} });
|
|
38
38
|
}
|
|
39
|
+
defineCustomElement$1();
|
|
39
40
|
|
|
40
41
|
const VoaModal = Modal;
|
|
41
42
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-modal.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,sbAAsb;;MCO1b,KAAK,iBAAAA,kBAAA,CAAA,MAAA,KAAA,SAAAC,CAAA,CAAA;AALlB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AACpB,QAAA,IAAA,CAAA,MAAM,GAAY,IAAI,CAAC,IAAI;AAEpC,QAAA,IAAU,CAAA,UAAA,GAAG,MAAK;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACrB,SAAC;AAeF;IAbC,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAE,CAAA,EAAA,EAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAQ,CAAA,EACrD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAErC,EAAA,QAAA,CAAA,EACT,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACF
|
|
1
|
+
{"file":"voa-modal.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,sbAAsb;;MCO1b,KAAK,iBAAAA,kBAAA,CAAA,MAAA,KAAA,SAAAC,CAAA,CAAA;AALlB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AACpB,QAAA,IAAA,CAAA,MAAM,GAAY,IAAI,CAAC,IAAI;AAEpC,QAAA,IAAU,CAAA,UAAA,GAAG,MAAK;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACrB,SAAC;AAeF;IAbC,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAE,CAAA,EAAA,EAC9C,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAQ,CAAA,EACrD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClB,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAErC,EAAA,QAAA,CAAA,EACT,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-modal/modal.css?tag=voa-modal&encapsulation=shadow","src/components/voa-modal/modal.tsx"],"sourcesContent":[".modal {\r\n display: none;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n}\r\n\r\n.modal.open {\r\n display: flex;\r\n}\r\n\r\n.overlay {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.content {\r\n background-color: white;\r\n padding: 20px;\r\n border-radius: 8px;\r\n position: relative;\r\n z-index: 1001;\r\n}\r\n\r\n.close {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n font-size: 1.5rem;\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n}\r\n","import { Component, Prop, State, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-modal\",\r\n styleUrl: \"modal.css\",\r\n shadow: true,\r\n})\r\nexport class Modal {\r\n @Prop() open: boolean = false;\r\n @State() isOpen: boolean = this.open;\r\n\r\n closeModal = () => {\r\n this.isOpen = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <div class={`modal ${this.isOpen ? \"open\" : \"\"}`}>\r\n <div class=\"overlay\" onClick={this.closeModal}></div>\r\n <div class=\"content\">\r\n <button class=\"close\" onClick={this.closeModal}>\r\n ×\r\n </button>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h,
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
2
|
|
|
3
3
|
const voaOptionCss = ":host{display:inline-block;box-sizing:border-box;contain:content}:host(:focus){outline:none;}.option-container{display:inline-flex;align-items:center;position:relative;box-sizing:border-box;user-select:none;gap:0;width:100%;cursor:pointer}.option-container.option-disabled{cursor:not-allowed;pointer-events:none;opacity:0.5}.option-indicator{display:flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box;flex-shrink:0;width:20px;height:20px}.option-indicator-dot{display:block;position:absolute;}.option-label{display:inline-block;box-sizing:border-box;flex:1}";
|
|
4
4
|
|
|
@@ -98,6 +98,7 @@ function defineCustomElement$1() {
|
|
|
98
98
|
break;
|
|
99
99
|
} });
|
|
100
100
|
}
|
|
101
|
+
defineCustomElement$1();
|
|
101
102
|
|
|
102
103
|
const VoaOption = VoaOption$1;
|
|
103
104
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-option.js","mappings":"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
|
|
1
|
+
{"file":"voa-option.js","mappings":"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","names":["VoaOption","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-option/voa-option.css?tag=voa-option&encapsulation=shadow","src/components/voa-option/voa-option.tsx"],"sourcesContent":["/* UNSTYLED PATTERN: Structural CSS only */\r\n\r\n:host {\r\n display: inline-block;\r\n box-sizing: border-box;\r\n contain: content;\r\n}\r\n\r\n:host(:focus) {\r\n outline: none; /* Focus ring handled on part(base) via external CSS */\r\n}\r\n\r\n.option-container {\r\n display: inline-flex;\r\n align-items: center;\r\n position: relative;\r\n box-sizing: border-box;\r\n user-select: none;\r\n gap: 0;\r\n width: 100%;\r\n cursor: pointer;\r\n}\r\n\r\n.option-container.option-disabled {\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n opacity: 0.5;\r\n}\r\n\r\n/* The Radio Circle Container */\r\n.option-indicator {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n box-sizing: border-box;\r\n flex-shrink: 0;\r\n \r\n /* DEFAULT STRUCTURAL SIZE */\r\n width: 20px;\r\n height: 20px;\r\n}\r\n\r\n/* The Inner Dot */\r\n.option-indicator-dot {\r\n display: block;\r\n position: absolute;\r\n /* Size must be set by external CSS or it is invisible */\r\n}\r\n\r\n.option-label {\r\n display: inline-block;\r\n box-sizing: border-box;\r\n flex: 1;\r\n}\r\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, AttachInternals, State, Watch } from '@stencil/core';\r\n\r\n/**\r\n * Componente Option do Voa Design System - Radio Button Pattern\r\n * \r\n * Acts as a standalone radio option that can be used in a radio group.\r\n * Manages internal checked state and syncs with Native Form API via ElementInternals.\r\n * \r\n * @part base - Root container with flex layout\r\n * @part indicator - Outer radio circle container\r\n * @part indicator-dot - Inner dot (visible when checked)\r\n * @part label - Label text wrapper\r\n * \r\n * CSS Parts allow external styling via ::part() selectors using design tokens.\r\n * Supports delegated focus for better accessibility.\r\n */\r\n@Component({\r\n tag: 'voa-option',\r\n styleUrl: 'voa-option.css',\r\n shadow: {\r\n delegatesFocus: true\r\n },\r\n formAssociated: true\r\n})\r\nexport class VoaOption {\r\n @Element() host: HTMLVoaOptionElement;\r\n @AttachInternals() internals: ElementInternals;\r\n\r\n /**\r\n * Internal state for the checked status.\r\n * Synced from the checked prop via @Watch.\r\n */\r\n @State() internalChecked: boolean = false;\r\n\r\n /**\r\n * If true, this option is selected.\r\n */\r\n @Prop({ reflect: true }) checked: boolean = false;\r\n\r\n /**\r\n * If true, this option is disabled.\r\n */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * The label text displayed next to the radio indicator.\r\n * If not provided, only the indicator is shown.\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * The name attribute for the radio group.\r\n */\r\n @Prop() name: string;\r\n\r\n /**\r\n * The value returned when this option is selected.\r\n */\r\n @Prop() value: string;\r\n\r\n /**\r\n * Emitted when the user selects this option.\r\n */\r\n @Event() dsChange: EventEmitter<string>;\r\n\r\n componentWillLoad() {\r\n this.internalChecked = this.checked;\r\n this.updateFormInternals();\r\n }\r\n\r\n @Watch('checked')\r\n checkedChanged(newValue: boolean) {\r\n this.internalChecked = newValue;\r\n this.updateFormInternals();\r\n }\r\n\r\n /**\r\n * Syncs with Native Form API\r\n */\r\n private updateFormInternals() {\r\n this.internals.setFormValue(this.internalChecked ? this.value : null);\r\n this.internals.ariaChecked = this.internalChecked ? 'true' : 'false';\r\n this.internals.ariaDisabled = this.disabled ? 'true' : 'false';\r\n }\r\n\r\n private handleClick = () => {\r\n if (this.disabled) return;\r\n\r\n // Radio logic: Clicking toggles the checked state.\r\n // In a radio group, parent should uncheck siblings.\r\n // For this isolated component, we toggle and emit the event.\r\n this.internalChecked = !this.internalChecked;\r\n this.checked = this.internalChecked; // Update the prop so it reflects to attribute\r\n this.updateFormInternals();\r\n this.dsChange.emit(this.value);\r\n };\r\n\r\n private handleKeyDown = (ev: KeyboardEvent) => {\r\n if (this.disabled) return;\r\n if (ev.key === ' ' || ev.key === 'Enter') {\r\n ev.preventDefault();\r\n this.handleClick();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host\r\n onClick={this.handleClick}\r\n onKeyDown={this.handleKeyDown}\r\n tabIndex={this.disabled ? -1 : 0}\r\n >\r\n <div\r\n part=\"base\"\r\n class={{\r\n 'option-container': true,\r\n 'option-disabled': this.disabled,\r\n 'option-checked': this.internalChecked,\r\n 'option-no-label': !this.label\r\n }}\r\n >\r\n {/* visual radio indicator */}\r\n <div part=\"indicator\" class=\"option-indicator\">\r\n <div part=\"indicator-dot\" class=\"option-indicator-dot\"></div>\r\n </div>\r\n\r\n {/* Label Wrapper */}\r\n {this.label && (\r\n <span part=\"label\" class=\"option-label\">\r\n {this.label}\r\n <slot />\r\n </span>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { V as VoaPaginationItem$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { V as VoaPaginationItem$1, d as defineCustomElement$1 } from './p-CQr0ZKZZ.js';
|
|
2
2
|
|
|
3
3
|
const VoaPaginationItem = VoaPaginationItem$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h,
|
|
2
|
-
import { d as defineCustomElement$2 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
|
+
import { d as defineCustomElement$2 } from './p-CQr0ZKZZ.js';
|
|
3
3
|
|
|
4
4
|
const voaPaginationCss = ":host{display:block;box-sizing:border-box}.pagination-list{display:flex;align-items:center;list-style:none;padding:0;margin:0;gap:4px;}li{display:flex;margin:0;padding:0}";
|
|
5
5
|
|
|
@@ -105,6 +105,7 @@ function defineCustomElement$1() {
|
|
|
105
105
|
break;
|
|
106
106
|
} });
|
|
107
107
|
}
|
|
108
|
+
defineCustomElement$1();
|
|
108
109
|
|
|
109
110
|
const VoaPagination = VoaPagination$1;
|
|
110
111
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-pagination.js","mappings":"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
|
|
1
|
+
{"file":"voa-pagination.js","mappings":"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","names":["VoaPagination","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-pagination/voa-pagination.css?tag=voa-pagination&encapsulation=shadow","src/components/voa-pagination/voa-pagination.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n box-sizing: border-box;\r\n}\r\n\r\n.pagination-list {\r\n display: flex;\r\n align-items: center;\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n gap: 4px;\r\n /* Default gap, can be overridden externally */\r\n}\r\n\r\nli {\r\n display: flex;\r\n margin: 0;\r\n padding: 0;\r\n}","import { Component, Prop, h, Event, EventEmitter, Host, State, Watch } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-pagination\",\r\n styleUrl: \"voa-pagination.css\",\r\n shadow: true,\r\n})\r\nexport class VoaPagination {\r\n @Prop() currentPage: number = 1;\r\n @Prop() totalPages: number = 1;\r\n\r\n /**\r\n * How many siblings to show around the current page.\r\n * E.g., siblingCount=1 means: ... 4 [5] 6 ...\r\n */\r\n @Prop() siblingCount: number = 1;\r\n\r\n @Event() voaPageChange: EventEmitter<number>;\r\n\r\n @State() internalPage: number = 1;\r\n\r\n @Watch('currentPage')\r\n handlePageChange(val: number) {\r\n this.internalPage = val;\r\n }\r\n\r\n componentWillLoad() {\r\n this.internalPage = this.currentPage;\r\n }\r\n\r\n private onPageClick(page: number) {\r\n if (page < 1 || page > this.totalPages || page === this.internalPage) return;\r\n this.internalPage = page;\r\n this.voaPageChange.emit(this.internalPage);\r\n }\r\n\r\n /**\r\n * THE ALGORITHM:\r\n * Generates the range of numbers to display.\r\n */\r\n private getPaginationRange() {\r\n const totalPageNumbers = this.siblingCount + 5; // sibling + first + last + current + 2*dots\r\n\r\n // Case 1: Total pages is small, show everything\r\n if (totalPageNumbers >= this.totalPages) {\r\n return Array.from({ length: this.totalPages }, (_, i) => i + 1);\r\n }\r\n\r\n const leftSiblingIndex = Math.max(this.internalPage - this.siblingCount, 1);\r\n const rightSiblingIndex = Math.min(this.internalPage + this.siblingCount, this.totalPages);\r\n\r\n const shouldShowLeftDots = leftSiblingIndex > 2;\r\n const shouldShowRightDots = rightSiblingIndex < this.totalPages - 2;\r\n\r\n const firstPageIndex = 1;\r\n const lastPageIndex = this.totalPages;\r\n\r\n // Case 2: No left dots, but right dots shown\r\n if (!shouldShowLeftDots && shouldShowRightDots) {\r\n let leftItemCount = 3 + 2 * this.siblingCount;\r\n let leftRange = Array.from({ length: leftItemCount }, (_, i) => i + 1);\r\n return [...leftRange, '...', lastPageIndex];\r\n }\r\n\r\n // Case 3: No right dots, but left dots shown\r\n if (shouldShowLeftDots && !shouldShowRightDots) {\r\n let rightItemCount = 3 + 2 * this.siblingCount;\r\n let rightRange = Array.from({ length: rightItemCount }, (_, i) => lastPageIndex - rightItemCount + i + 1);\r\n return [firstPageIndex, '...', ...rightRange];\r\n }\r\n\r\n // Case 4: Both dots shown\r\n if (shouldShowLeftDots && shouldShowRightDots) {\r\n let middleRange = Array.from({ length: rightSiblingIndex - leftSiblingIndex + 1 }, (_, i) => leftSiblingIndex + i);\r\n return [firstPageIndex, '...', ...middleRange, '...', lastPageIndex];\r\n }\r\n }\r\n\r\n render() {\r\n const paginationRange = this.getPaginationRange();\r\n\r\n return (\r\n <Host>\r\n <nav role=\"navigation\" aria-label=\"Pagination\">\r\n <ul class=\"pagination-list\">\r\n\r\n {/* Previous Button */}\r\n <li>\r\n <voa-pagination-item\r\n type=\"prev\"\r\n disabled={this.internalPage === 1}\r\n onItemClick={() => this.onPageClick(this.internalPage - 1)}\r\n />\r\n </li>\r\n\r\n {/* Page Numbers */}\r\n {paginationRange.map((pageNumber, index) => {\r\n if (pageNumber === '...') {\r\n return (\r\n <li key={`dots-${index}`}>\r\n <voa-pagination-item type=\"ellipsis\" />\r\n </li>\r\n );\r\n }\r\n\r\n return (\r\n <li key={pageNumber}>\r\n <voa-pagination-item\r\n active={pageNumber === this.internalPage}\r\n onItemClick={() => this.onPageClick(pageNumber as number)}\r\n >\r\n {pageNumber}\r\n </voa-pagination-item>\r\n </li>\r\n );\r\n })}\r\n\r\n {/* Next Button */}\r\n <li>\r\n <voa-pagination-item\r\n type=\"next\"\r\n disabled={this.internalPage === this.totalPages}\r\n onItemClick={() => this.onPageClick(this.internalPage + 1)}\r\n />\r\n </li>\r\n\r\n </ul>\r\n </nav>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const progressCss = ".progress{width:100%;background-color:#eee;border-radius:4px;overflow:hidden}.bar{height:20px;background-color:#007bff;transition:width 0.2s}";
|
|
4
4
|
|
|
@@ -31,6 +31,7 @@ function defineCustomElement$1() {
|
|
|
31
31
|
break;
|
|
32
32
|
} });
|
|
33
33
|
}
|
|
34
|
+
defineCustomElement$1();
|
|
34
35
|
|
|
35
36
|
const VoaProgress = Progress;
|
|
36
37
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-progress.js","mappings":";;AAAA,MAAM,WAAW,GAAG,+IAA+I;;MCOtJ,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC;AAS1B;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAG,CAAA,CAAA,EAAE,EAAQ,CAAA,CACvD
|
|
1
|
+
{"file":"voa-progress.js","mappings":";;AAAA,MAAM,WAAW,GAAG,+IAA+I;;MCOtJ,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC;AAS1B;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAG,CAAA,CAAA,EAAE,EAAQ,CAAA,CACvD;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-progress/progress.css?tag=voa-progress&encapsulation=shadow","src/components/voa-progress/progress.tsx"],"sourcesContent":[".progress {\r\n width: 100%;\r\n background-color: #eee;\r\n border-radius: 4px;\r\n overflow: hidden;\r\n}\r\n\r\n.bar {\r\n height: 20px;\r\n background-color: #007bff;\r\n transition: width 0.2s;\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-progress\",\r\n styleUrl: \"progress.css\",\r\n shadow: true,\r\n})\r\nexport class Progress {\r\n @Prop() value: number = 0;\r\n\r\n render() {\r\n return (\r\n <div class=\"progress\">\r\n <div class=\"bar\" style={{ width: `${this.value}%` }}></div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const voaRadioCss = ":host{display:inline-block}.voa-radio{display:inline-flex;align-items:center;position:relative;user-select:none;cursor:pointer;box-sizing:border-box}.voa-radio--disabled{cursor:not-allowed;pointer-events:none}.voa-radio__input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;pointer-events:none}.voa-radio__indicator{position:relative;display:grid;place-content:center;flex-shrink:0;box-sizing:border-box;width:20px;height:20px;border-radius:50%}.voa-radio__dot{position:absolute;left:50%;top:50%;margin-left:-4px;margin-top:-4px;width:8px;height:8px;border-radius:50%;transform:scale(0);box-sizing:border-box;opacity:0}.voa-radio--checked .voa-radio__dot{transform:scale(1);opacity:1}:host(:focus-within){outline:none}@media (prefers-reduced-motion: reduce){.voa-radio__indicator,.voa-radio__dot{transition:none}}";
|
|
4
4
|
|
|
@@ -77,6 +77,7 @@ function defineCustomElement$1() {
|
|
|
77
77
|
break;
|
|
78
78
|
} });
|
|
79
79
|
}
|
|
80
|
+
defineCustomElement$1();
|
|
80
81
|
|
|
81
82
|
const VoaRadio = VoaRadio$1;
|
|
82
83
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-radio.js","mappings":";;AAAA,MAAM,WAAW,GAAG,g0BAAg0B;;MCmBv0BA,UAAQ,iBAAAC,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AANrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;;;AAQE;;AAEG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEjD;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA2B1C,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAY,KAAI;AACtC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAE5B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC;AACZ,aAAA,CAAC;AACJ,SAAC;AAEO,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACxB,SAAC;AAEO,QAAA,IAAU,CAAA,UAAA,GAAG,MAAK;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACvB,SAAC;AA+CF;AA7CC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;;AACZ,QAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,qBAAqB,CAAqB;QAC5F,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,EAAE;;;IAIjB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI,CAAC,OAAO;YAClC,qBAAqB,EAAE,IAAI,CAAC;SAC7B;AAED,QAAA,QACE,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,gBAAgB,EAAA,eAAA,EACR,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EACjD,IAAI,EAAC,OAAO,kBACE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,EAAA,EAE7C,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,CAAA,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,WAAW,EAAA,EACjD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,KAAK,EAAQ,CAAA,CAC1C,CACD
|
|
1
|
+
{"file":"voa-radio.js","mappings":";;AAAA,MAAM,WAAW,GAAG,g0BAAg0B;;MCmBv0BA,UAAQ,iBAAAC,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AANrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;;;AAQE;;AAEG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEjD;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA2B1C,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAY,KAAI;AACtC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAE5B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC;AACZ,aAAA,CAAC;AACJ,SAAC;AAEO,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACxB,SAAC;AAEO,QAAA,IAAU,CAAA,UAAA,GAAG,MAAK;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACvB,SAAC;AA+CF;AA7CC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;;AACZ,QAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,qBAAqB,CAAqB;QAC5F,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,EAAE;;;IAIjB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI,CAAC,OAAO;YAClC,qBAAqB,EAAE,IAAI,CAAC;SAC7B;AAED,QAAA,QACE,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,gBAAgB,EAAA,eAAA,EACR,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EACjD,IAAI,EAAC,OAAO,kBACE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,EAAA,EAE7C,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,CAAA,EACF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,WAAW,EAAA,EACjD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,KAAK,EAAQ,CAAA,CAC1C,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["VoaRadio","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-radio/voa-radio.css?tag=voa-radio&encapsulation=shadow","src/components/voa-radio/voa-radio.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n.voa-radio {\r\n /* Structural styles only */\r\n display: inline-flex;\r\n align-items: center;\r\n position: relative;\r\n user-select: none;\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-radio--disabled {\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n.voa-radio__input {\r\n /* Structural styles only - visually hidden but accessible */\r\n position: absolute;\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n margin: 0;\r\n padding: 0;\r\n pointer-events: none;\r\n}\r\n\r\n.voa-radio__indicator {\r\n /* Structural styles only - Tamanho fixo 20px conforme Figma */\r\n position: relative;\r\n display: grid;\r\n place-content: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n}\r\n\r\n.voa-radio__dot {\r\n /* Structural styles only - Tamanho fixo 8px conforme Figma */\r\n position: absolute;\r\n /* Centralizar perfeitamente independente de borders */\r\n left: 50%;\r\n top: 50%;\r\n /* Usar margin negativo para centralizar baseado no tamanho do dot (8px / 2 = 4px) */\r\n margin-left: -4px;\r\n margin-top: -4px;\r\n width: 8px;\r\n height: 8px;\r\n border-radius: 50%;\r\n transform: scale(0);\r\n box-sizing: border-box;\r\n opacity: 0;\r\n}\r\n\r\n.voa-radio--checked .voa-radio__dot {\r\n transform: scale(1);\r\n opacity: 1;\r\n}\r\n\r\n/* Acessibilidade */\r\n:host(:focus-within) {\r\n outline: none;\r\n}\r\n\r\n/* Respeitar preferências de movimento reduzido */\r\n@media (prefers-reduced-motion: reduce) {\r\n .voa-radio__indicator,\r\n .voa-radio__dot {\r\n transition: none;\r\n }\r\n} ","import { Component, Prop, Event, EventEmitter, Method, Element, h } from '@stencil/core';\r\n\r\n/**\r\n * Componente Radio Button do Voa Design System, baseado no design do Figma.\r\n * Permite seleção única dentro de um grupo de opções.\r\n * Este é o componente base do radio (apenas o indicador visual).\r\n * Para opções com label, use o componente voa-option.\r\n * \r\n * @part base - The root label element\r\n * @part input - The native radio input element\r\n * @part indicator - The visual radio indicator circle (20px)\r\n * @part dot - The inner dot when checked (8px)\r\n */\r\n@Component({\r\n tag: 'voa-radio',\r\n styleUrl: 'voa-radio.css',\r\n shadow: true,\r\n scoped: false // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaRadio {\r\n @Element() host: HTMLVoaRadioElement;\r\n /**\r\n * Se verdadeiro, o radio button estará selecionado.\r\n */\r\n @Prop({ reflect: true }) checked: boolean = false;\r\n\r\n /**\r\n * Se verdadeiro, o radio button estará desabilitado.\r\n */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Nome do grupo de radio buttons (usado para agrupamento).\r\n */\r\n @Prop() name: string;\r\n\r\n /**\r\n * Valor do radio button quando selecionado.\r\n */\r\n @Prop() value: string;\r\n\r\n /**\r\n * Evento emitido quando o estado do radio button muda.\r\n */\r\n @Event() radioChange: EventEmitter<{ checked: boolean; value: string; name: string }>;\r\n\r\n /**\r\n * Evento emitido quando o radio button recebe foco.\r\n */\r\n @Event() radioFocus: EventEmitter<void>;\r\n\r\n /**\r\n * Evento emitido quando o radio button perde foco.\r\n */\r\n @Event() radioBlur: EventEmitter<void>;\r\n\r\n private handleChange = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n this.checked = input.checked;\r\n \r\n this.radioChange.emit({\r\n checked: this.checked,\r\n value: this.value,\r\n name: this.name\r\n });\r\n };\r\n\r\n private handleFocus = () => {\r\n this.radioFocus.emit();\r\n };\r\n\r\n private handleBlur = () => {\r\n this.radioBlur.emit();\r\n };\r\n\r\n /**\r\n * Método para delegar foco ao elemento interno do radio.\r\n * Requerido para acessibilidade WCAG 2.2 AA.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const input = this.host.shadowRoot?.querySelector('input[type=\"radio\"]') as HTMLInputElement;\r\n if (input) {\r\n input.focus();\r\n }\r\n }\r\n\r\n render() {\r\n const containerClasses = {\r\n 'voa-radio': true,\r\n 'voa-radio--checked': this.checked,\r\n 'voa-radio--disabled': this.disabled\r\n };\r\n\r\n return (\r\n <label \r\n part=\"base\"\r\n class={containerClasses}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n role=\"radio\"\r\n aria-checked={this.checked ? 'true' : 'false'}\r\n >\r\n <input\r\n type=\"radio\"\r\n part=\"input\"\r\n class=\"voa-radio__input\"\r\n checked={this.checked}\r\n disabled={this.disabled}\r\n name={this.name}\r\n value={this.value}\r\n onChange={this.handleChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n />\r\n <span class=\"voa-radio__indicator\" part=\"indicator\">\r\n <span class=\"voa-radio__dot\" part=\"dot\"></span>\r\n </span>\r\n </label>\r\n );\r\n }\r\n} "],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h,
|
|
2
|
-
import { d as defineCustomElement$2 } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
|
+
import { d as defineCustomElement$2 } from './p-DKnM_Ozb.js';
|
|
3
3
|
|
|
4
4
|
const voaSelectCss = ":host{display:block;width:100%;position:relative;box-sizing:border-box}.voa-select{display:flex;flex-direction:column;position:relative;width:100%;box-sizing:border-box;overflow:visible}.voa-select__header{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box}.voa-select__label{flex:1 0 0;box-sizing:border-box}.voa-select__info{display:flex;align-items:center;gap:4px;box-sizing:border-box}.voa-select__info-message{box-sizing:border-box;white-space:nowrap}.voa-select__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box}.voa-select__input{display:flex;position:relative;width:100%;box-sizing:border-box;overflow:visible}.voa-select__input-wrapper{display:flex;align-items:center;gap:8px;width:100%;height:100%;box-sizing:border-box;position:relative}.voa-select__content{flex:1 0 0;min-width:0;height:100%;box-sizing:border-box;position:relative;overflow:visible}.voa-select__error{display:block;width:100%;box-sizing:border-box}.voa-select__input--disabled{pointer-events:none;cursor:not-allowed}";
|
|
5
5
|
|
|
@@ -178,6 +178,7 @@ function defineCustomElement$1() {
|
|
|
178
178
|
break;
|
|
179
179
|
} });
|
|
180
180
|
}
|
|
181
|
+
defineCustomElement$1();
|
|
181
182
|
|
|
182
183
|
const VoaSelect = VoaSelect$1;
|
|
183
184
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-select.js","mappings":";;;AAAA,MAAM,YAAY,GAAG,gkCAAgkC;;MCsBxkCA,WAAS,iBAAAC,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;AANtB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AASE;;;AAGG;AACsB,QAAA,IAAI,CAAA,IAAA,GAAa,QAAQ;AAOlD;;AAEG;AACK,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;AAEjC;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AAO7B;;AAEG;AACK,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AAO9B;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAW,aAAa;AAY3C;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAA8D,EAAE;AAE/E;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAEjC;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAEnC;;AAEG;AACc,QAAA,IAAY,CAAA,YAAA,GAA+D,SAAS;AAqDrG;;AAEG;AACK,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAA0B,KAAI;AACpD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,SAAC;AA6GF;IAjKC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK;QAC5B,IAAI,CAAC,WAAW,EAAE;;AAIpB,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;QACrB,IAAI,CAAC,WAAW,EAAE;;AAGpB;;AAEG;IAGH,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU;;AACzB,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;AACxB,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;;AAE1B,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU;;;aAE3B;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;;AAIjC;;AAEG;IACK,QAAQ,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE;;AAGpD;;AAEG;IACK,gBAAgB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;;AAWxB;;AAEG;IAEH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,WAAW,EAAE;;AAGpB;;AAEG;IAEH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,WAAW,EAAE;;AAGpB;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;;AACZ,QAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,iBAAiB,CAAQ;QAChF,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC3D,YAAA,MAAM,UAAU,CAAC,QAAQ,EAAE;;;IAI/B,MAAM,GAAA;;AAEJ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;QAEvG,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,IAAI,EAAC,OAAO,EACG,eAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EAAA,YAAA,EACrC,IAAI,CAAC,YAAY,EAAA,EAE7B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,EAAA,EAEhC,IAAI,CAAC,SAAS,KACb,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,oBAAoB,EAAA,EAC1C,IAAI,CAAC,KAAK,KACT,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,mBAAmB,EAAA,EAC1C,IAAI,CAAC,KAAK,CACL,CACT,EACA,IAAI,CAAC,IAAI,KACR,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,kBAAkB,EAAA,EACtC,IAAI,CAAC,WAAW,KACf,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAE,EAAA,IAAI,CAAC,WAAW,CAAQ,CACjE,EACD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EACpB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,CAAC,EAAC,kBAAkB,EAAC,MAAM,EAAC,cAAc,EAAc,cAAA,EAAA,GAAG,oBAAgB,OAAO,EAAA,iBAAA,EAAiB,OAAO,EAAE,CAAA,CAC9G,CACD,CACH,CACP,CACG,CACP,EAGD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;AACL,gBAAA,mBAAmB,EAAE,IAAI;AACzB,gBAAA,CAAC,sBAAsB,IAAI,CAAC,YAAY,CAAE,CAAA,GAAG,IAAI;gBACjD,0BAA0B,EAAE,IAAI,CAAC,KAAK;gBACtC,6BAA6B,EAAE,IAAI,CAAC;AACrC,aAAA,EAAA,EAED,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,2BAA2B,EAAA,EAExD,QAAQ,KACP,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,kBAAkB,EAAA,EACvC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAQ,CAAA,EACzB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACvB,CACP,EAGD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,qBAAqB,EAAA,EACpD,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,eAAA,EACF,IAAI,CAAC,YAAY,EAChC,CAAA,CACE,CACF,CACF,EAGL,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,KAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,mBAAmB,EAAA,EAChD,IAAI,CAAC,YAAY,CACd,CACP,CACG,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["VoaSelect","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-select/voa-select.css?tag=voa-select&encapsulation=shadow","src/components/voa-select/voa-select.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: block;\r\n width: 100%;\r\n position: relative;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select {\r\n /* Structural styles only */\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n width: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que dropdowns filhos possam aparecer acima */\r\n overflow: visible;\r\n}\r\n\r\n/* Header */\r\n.voa-select__header {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__label {\r\n /* Structural styles only */\r\n flex: 1 0 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__info {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__info-message {\r\n /* Structural styles only */\r\n box-sizing: border-box;\r\n white-space: nowrap;\r\n}\r\n\r\n.voa-select__icon {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Input Container */\r\n.voa-select__input {\r\n /* Structural styles only */\r\n display: flex;\r\n position: relative;\r\n width: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que o dropdown possa ser posicionado relativamente a este container */\r\n overflow: visible;\r\n}\r\n\r\n.voa-select__input-wrapper {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n position: relative;\r\n}\r\n\r\n.voa-select__content {\r\n /* Structural styles only */\r\n flex: 1 0 0;\r\n min-width: 0;\r\n height: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que o dropdown dentro do voa-select-base possa ser posicionado */\r\n position: relative;\r\n overflow: visible;\r\n}\r\n\r\n/* Error Message */\r\n.voa-select__error {\r\n /* Structural styles only */\r\n display: block;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Estados estruturais */\r\n.voa-select__input--disabled {\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Method, Watch, Listen } from '@stencil/core';\r\n\r\n/**\r\n * Componente Select principal do Voa Design System, baseado no design do Figma.\r\n * \r\n * Este componente orquestra os subcomponentes voa-select-base e voa-container-multi-select,\r\n * adicionando funcionalidades de label, info, ícone e mensagem de erro.\r\n * \r\n * @part base - O elemento raiz do componente\r\n * @part header - Container do header (label + info)\r\n * @part label - Texto do label\r\n * @part info - Container de informação\r\n * @part input-wrapper - Wrapper do input field\r\n * @part input - Container do input (com borda)\r\n * @part error-message - Mensagem de erro\r\n */\r\n@Component({\r\n tag: 'voa-select',\r\n styleUrl: 'voa-select.css',\r\n shadow: true,\r\n scoped: false // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaSelect {\r\n @Element() host: HTMLVoaSelectElement;\r\n\r\n /**\r\n * Tipo de seleção: 'simple' para seleção única\r\n * NOTA: 'multi' está temporariamente desabilitado até implementação correta\r\n */\r\n @Prop({ reflect: true }) type: 'simple' = 'simple';\r\n\r\n /**\r\n * Texto do label exibido acima do input\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * Se verdadeiro, o label será exibido\r\n */\r\n @Prop() showLabel: boolean = true;\r\n\r\n /**\r\n * Se verdadeiro, a informação adicional será exibida\r\n */\r\n @Prop() info: boolean = false;\r\n\r\n /**\r\n * Mensagem de informação adicional\r\n */\r\n @Prop() infoMessage?: string;\r\n\r\n /**\r\n * Se verdadeiro, o select terá estado de erro\r\n */\r\n @Prop() error: boolean = false;\r\n\r\n /**\r\n * Mensagem de erro exibida abaixo do input\r\n */\r\n @Prop() errorMessage?: string;\r\n\r\n /**\r\n * Texto de placeholder\r\n */\r\n @Prop() placeholder: string = 'Placeholder';\r\n\r\n /**\r\n * THE TRUTH. Read-only from parent.\r\n */\r\n @Prop() value?: string;\r\n\r\n /**\r\n * Internal Reality.\r\n */\r\n @State() innerValue?: string;\r\n\r\n /**\r\n * Lista de opções para seleção\r\n */\r\n @Prop() options: Array<{value: string, label: string, disabled?: boolean}> = [];\r\n\r\n /**\r\n * Se verdadeiro, o select estará desabilitado\r\n */\r\n @Prop() disabled: boolean = false;\r\n\r\n /**\r\n * Estado interno para controlar o foco\r\n */\r\n @State() isFocused: boolean = false;\r\n\r\n /**\r\n * Estado interno calculado (default, selected, focused, filled, disabled)\r\n */\r\n @State() private currentState: 'default' | 'selected' | 'focused' | 'filled' | 'disabled' = 'default';\r\n\r\n /**\r\n * Evento emitido quando o valor é alterado\r\n */\r\n @Event() voaSelectChange: EventEmitter<string>;\r\n\r\n componentWillLoad() {\r\n this.innerValue = this.value;\r\n this.updateState();\r\n }\r\n\r\n @Watch('value')\r\n syncValue(val: string) {\r\n this.innerValue = val;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Atualiza o estado interno baseado nas props\r\n */\r\n @Watch('disabled')\r\n @Watch('isFocused')\r\n updateState() {\r\n if (this.disabled) {\r\n this.currentState = 'disabled';\r\n } else if (this.isFocused) {\r\n this.currentState = 'focused';\r\n } else if (this.hasValue()) {\r\n // Se há valor selecionado, é \"filled\" ou \"selected\"\r\n this.currentState = 'filled';\r\n if (this.hasSelectedValue()) {\r\n this.currentState = 'selected';\r\n }\r\n } else {\r\n this.currentState = 'default';\r\n }\r\n }\r\n\r\n /**\r\n * Verifica se há valor selecionado\r\n */\r\n private hasValue(): boolean {\r\n return !!this.innerValue && this.innerValue !== '';\r\n }\r\n\r\n /**\r\n * Verifica se há valor selecionado (para estado selected)\r\n */\r\n private hasSelectedValue(): boolean {\r\n return this.hasValue();\r\n }\r\n\r\n /**\r\n * Manipula mudança de valor no select-base\r\n */\r\n private handleChange = (event: CustomEvent<string>) => {\r\n this.innerValue = event.detail;\r\n this.voaSelectChange.emit(event.detail);\r\n };\r\n\r\n /**\r\n * Listen to focus event on the internal button\r\n */\r\n @Listen('focus', { capture: true })\r\n handleFocus() {\r\n this.isFocused = true;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Listen to blur event on the internal button\r\n */\r\n @Listen('blur', { capture: true })\r\n handleBlur() {\r\n this.isFocused = false;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Método para delegar foco ao elemento interno do select.\r\n * Requerido para acessibilidade WCAG 2.2 AA.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const selectBase = this.host.shadowRoot?.querySelector('voa-select-base') as any;\r\n if (selectBase && typeof selectBase.setFocus === 'function') {\r\n await selectBase.setFocus();\r\n }\r\n }\r\n\r\n render() {\r\n // Verificar se há slot de ícone (apenas para renderização condicional)\r\n const iconSlot = this.host.querySelector('[slot=\"icon\"]') || this.host.querySelector('[slot=\"prefix\"]');\r\n\r\n return (\r\n <Host\r\n role=\"group\"\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n data-state={this.currentState}\r\n >\r\n <div part=\"base\" class=\"voa-select\">\r\n {/* Header */}\r\n {this.showLabel && (\r\n <div part=\"header\" class=\"voa-select__header\">\r\n {this.label && (\r\n <label part=\"label\" class=\"voa-select__label\">\r\n {this.label}\r\n </label>\r\n )}\r\n {this.info && (\r\n <div part=\"info\" class=\"voa-select__info\">\r\n {this.infoMessage && (\r\n <span class=\"voa-select__info-message\">{this.infoMessage}</span>\r\n )}\r\n <slot name=\"info-icon\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8 12V8M8 4H8.01\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </slot>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Input Wrapper */}\r\n <div \r\n part=\"input\" \r\n class={{\r\n 'voa-select__input': true,\r\n [`voa-select__input--${this.currentState}`]: true,\r\n 'voa-select__input--error': this.error,\r\n 'voa-select__input--disabled': this.disabled\r\n }}\r\n >\r\n <div part=\"input-wrapper\" class=\"voa-select__input-wrapper\">\r\n {/* Icon Slot */}\r\n {iconSlot && (\r\n <div part=\"icon\" class=\"voa-select__icon\">\r\n <slot name=\"icon\"></slot>\r\n <slot name=\"prefix\"></slot>\r\n </div>\r\n )}\r\n\r\n {/* Select Base */}\r\n <div part=\"select-content\" class=\"voa-select__content\">\r\n <voa-select-base\r\n options={this.options}\r\n value={this.innerValue}\r\n placeholder={this.placeholder}\r\n disabled={this.disabled}\r\n error={this.error}\r\n on-voa-change={this.handleChange}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Error Message */}\r\n {this.error && this.errorMessage && (\r\n <div part=\"error-message\" class=\"voa-select__error\">\r\n {this.errorMessage}\r\n </div>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n\r\n"],"version":3}
|
|
1
|
+
{"file":"voa-select.js","mappings":"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","names":["VoaSelect","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-select/voa-select.css?tag=voa-select&encapsulation=shadow","src/components/voa-select/voa-select.tsx"],"sourcesContent":["/* \r\n * UNSTYLED PATTERN: This file contains ONLY structural CSS (layout, positioning).\r\n * All visual styles (colors, backgrounds, fonts, spacing) must be applied externally\r\n * via CSS Parts API (::part() selectors) using design tokens.\r\n */\r\n\r\n:host {\r\n display: block;\r\n width: 100%;\r\n position: relative;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select {\r\n /* Structural styles only */\r\n display: flex;\r\n flex-direction: column;\r\n position: relative;\r\n width: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que dropdowns filhos possam aparecer acima */\r\n overflow: visible;\r\n}\r\n\r\n/* Header */\r\n.voa-select__header {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__label {\r\n /* Structural styles only */\r\n flex: 1 0 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__info {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n box-sizing: border-box;\r\n}\r\n\r\n.voa-select__info-message {\r\n /* Structural styles only */\r\n box-sizing: border-box;\r\n white-space: nowrap;\r\n}\r\n\r\n.voa-select__icon {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Input Container */\r\n.voa-select__input {\r\n /* Structural styles only */\r\n display: flex;\r\n position: relative;\r\n width: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que o dropdown possa ser posicionado relativamente a este container */\r\n overflow: visible;\r\n}\r\n\r\n.voa-select__input-wrapper {\r\n /* Structural styles only */\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n position: relative;\r\n}\r\n\r\n.voa-select__content {\r\n /* Structural styles only */\r\n flex: 1 0 0;\r\n min-width: 0;\r\n height: 100%;\r\n box-sizing: border-box;\r\n /* Garantir que o dropdown dentro do voa-select-base possa ser posicionado */\r\n position: relative;\r\n overflow: visible;\r\n}\r\n\r\n/* Error Message */\r\n.voa-select__error {\r\n /* Structural styles only */\r\n display: block;\r\n width: 100%;\r\n box-sizing: border-box;\r\n}\r\n\r\n/* Estados estruturais */\r\n.voa-select__input--disabled {\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Method, Watch, Listen } from '@stencil/core';\r\n\r\n/**\r\n * Componente Select principal do Voa Design System, baseado no design do Figma.\r\n * \r\n * Este componente orquestra os subcomponentes voa-select-base e voa-container-multi-select,\r\n * adicionando funcionalidades de label, info, ícone e mensagem de erro.\r\n * \r\n * @part base - O elemento raiz do componente\r\n * @part header - Container do header (label + info)\r\n * @part label - Texto do label\r\n * @part info - Container de informação\r\n * @part input-wrapper - Wrapper do input field\r\n * @part input - Container do input (com borda)\r\n * @part error-message - Mensagem de erro\r\n */\r\n@Component({\r\n tag: 'voa-select',\r\n styleUrl: 'voa-select.css',\r\n shadow: true,\r\n scoped: false // Permite herdar variáveis CSS do contexto pai\r\n})\r\nexport class VoaSelect {\r\n @Element() host: HTMLVoaSelectElement;\r\n\r\n /**\r\n * Tipo de seleção: 'simple' para seleção única\r\n * NOTA: 'multi' está temporariamente desabilitado até implementação correta\r\n */\r\n @Prop({ reflect: true }) type: 'simple' = 'simple';\r\n\r\n /**\r\n * Texto do label exibido acima do input\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * Se verdadeiro, o label será exibido\r\n */\r\n @Prop() showLabel: boolean = true;\r\n\r\n /**\r\n * Se verdadeiro, a informação adicional será exibida\r\n */\r\n @Prop() info: boolean = false;\r\n\r\n /**\r\n * Mensagem de informação adicional\r\n */\r\n @Prop() infoMessage?: string;\r\n\r\n /**\r\n * Se verdadeiro, o select terá estado de erro\r\n */\r\n @Prop() error: boolean = false;\r\n\r\n /**\r\n * Mensagem de erro exibida abaixo do input\r\n */\r\n @Prop() errorMessage?: string;\r\n\r\n /**\r\n * Texto de placeholder\r\n */\r\n @Prop() placeholder: string = 'Placeholder';\r\n\r\n /**\r\n * THE TRUTH. Read-only from parent.\r\n */\r\n @Prop() value?: string;\r\n\r\n /**\r\n * Internal Reality.\r\n */\r\n @State() innerValue?: string;\r\n\r\n /**\r\n * Lista de opções para seleção\r\n */\r\n @Prop() options: Array<{value: string, label: string, disabled?: boolean}> = [];\r\n\r\n /**\r\n * Se verdadeiro, o select estará desabilitado\r\n */\r\n @Prop() disabled: boolean = false;\r\n\r\n /**\r\n * Estado interno para controlar o foco\r\n */\r\n @State() isFocused: boolean = false;\r\n\r\n /**\r\n * Estado interno calculado (default, selected, focused, filled, disabled)\r\n */\r\n @State() private currentState: 'default' | 'selected' | 'focused' | 'filled' | 'disabled' = 'default';\r\n\r\n /**\r\n * Evento emitido quando o valor é alterado\r\n */\r\n @Event() voaSelectChange: EventEmitter<string>;\r\n\r\n componentWillLoad() {\r\n this.innerValue = this.value;\r\n this.updateState();\r\n }\r\n\r\n @Watch('value')\r\n syncValue(val: string) {\r\n this.innerValue = val;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Atualiza o estado interno baseado nas props\r\n */\r\n @Watch('disabled')\r\n @Watch('isFocused')\r\n updateState() {\r\n if (this.disabled) {\r\n this.currentState = 'disabled';\r\n } else if (this.isFocused) {\r\n this.currentState = 'focused';\r\n } else if (this.hasValue()) {\r\n // Se há valor selecionado, é \"filled\" ou \"selected\"\r\n this.currentState = 'filled';\r\n if (this.hasSelectedValue()) {\r\n this.currentState = 'selected';\r\n }\r\n } else {\r\n this.currentState = 'default';\r\n }\r\n }\r\n\r\n /**\r\n * Verifica se há valor selecionado\r\n */\r\n private hasValue(): boolean {\r\n return !!this.innerValue && this.innerValue !== '';\r\n }\r\n\r\n /**\r\n * Verifica se há valor selecionado (para estado selected)\r\n */\r\n private hasSelectedValue(): boolean {\r\n return this.hasValue();\r\n }\r\n\r\n /**\r\n * Manipula mudança de valor no select-base\r\n */\r\n private handleChange = (event: CustomEvent<string>) => {\r\n this.innerValue = event.detail;\r\n this.voaSelectChange.emit(event.detail);\r\n };\r\n\r\n /**\r\n * Listen to focus event on the internal button\r\n */\r\n @Listen('focus', { capture: true })\r\n handleFocus() {\r\n this.isFocused = true;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Listen to blur event on the internal button\r\n */\r\n @Listen('blur', { capture: true })\r\n handleBlur() {\r\n this.isFocused = false;\r\n this.updateState();\r\n }\r\n\r\n /**\r\n * Método para delegar foco ao elemento interno do select.\r\n * Requerido para acessibilidade WCAG 2.2 AA.\r\n */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n const selectBase = this.host.shadowRoot?.querySelector('voa-select-base') as any;\r\n if (selectBase && typeof selectBase.setFocus === 'function') {\r\n await selectBase.setFocus();\r\n }\r\n }\r\n\r\n render() {\r\n // Verificar se há slot de ícone (apenas para renderização condicional)\r\n const iconSlot = this.host.querySelector('[slot=\"icon\"]') || this.host.querySelector('[slot=\"prefix\"]');\r\n\r\n return (\r\n <Host\r\n role=\"group\"\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n data-state={this.currentState}\r\n >\r\n <div part=\"base\" class=\"voa-select\">\r\n {/* Header */}\r\n {this.showLabel && (\r\n <div part=\"header\" class=\"voa-select__header\">\r\n {this.label && (\r\n <label part=\"label\" class=\"voa-select__label\">\r\n {this.label}\r\n </label>\r\n )}\r\n {this.info && (\r\n <div part=\"info\" class=\"voa-select__info\">\r\n {this.infoMessage && (\r\n <span class=\"voa-select__info-message\">{this.infoMessage}</span>\r\n )}\r\n <slot name=\"info-icon\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8 12V8M8 4H8.01\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </slot>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Input Wrapper */}\r\n <div \r\n part=\"input\" \r\n class={{\r\n 'voa-select__input': true,\r\n [`voa-select__input--${this.currentState}`]: true,\r\n 'voa-select__input--error': this.error,\r\n 'voa-select__input--disabled': this.disabled\r\n }}\r\n >\r\n <div part=\"input-wrapper\" class=\"voa-select__input-wrapper\">\r\n {/* Icon Slot */}\r\n {iconSlot && (\r\n <div part=\"icon\" class=\"voa-select__icon\">\r\n <slot name=\"icon\"></slot>\r\n <slot name=\"prefix\"></slot>\r\n </div>\r\n )}\r\n\r\n {/* Select Base */}\r\n <div part=\"select-content\" class=\"voa-select__content\">\r\n <voa-select-base\r\n options={this.options}\r\n value={this.innerValue}\r\n placeholder={this.placeholder}\r\n disabled={this.disabled}\r\n error={this.error}\r\n on-voa-change={this.handleChange}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* Error Message */}\r\n {this.error && this.errorMessage && (\r\n <div part=\"error-message\" class=\"voa-select__error\">\r\n {this.errorMessage}\r\n </div>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const skeletonCss = ".skeleton{border-radius:2px;display:inline-block;line-height:100%;width:100%;background-color:#fff;background-size:1000px 1000px;background-image:linear-gradient(\r\n 100deg,\r\n #e8e8e8 20%,\r\n #fafafa 50%,\r\n #e8e8e8 60%\r\n );animation:placeholderShimmer 1.5s linear infinite forwards}.skeleton--circle{border-radius:50%}@keyframes placeholderShimmer{0%{background-position:-500px 0}100%{background-position:500px 0}}";
|
|
4
4
|
|
|
@@ -37,6 +37,7 @@ function defineCustomElement$1() {
|
|
|
37
37
|
break;
|
|
38
38
|
} });
|
|
39
39
|
}
|
|
40
|
+
defineCustomElement$1();
|
|
40
41
|
|
|
41
42
|
const VoaSkeleton = Skeleton;
|
|
42
43
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-skeleton.js","mappings":";;AAAA,MAAM,WAAW,GAAG,ucAAuc;;MCO9c,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAMY,QAAA,IAAK,CAAA,KAAA,GAAW,OAAO;AACvB,QAAA,IAAM,CAAA,MAAA,GAAW,OAAO;AAanC;IAVG,WAAW,GAAA;AACP,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,QAAQ;QAC1C,OAAO,CAAA,SAAA,EAAY,QAAQ,GAAG,kBAAkB,GAAG,EAAE,CAAA,CAAE;;IAG3D,MAAM,GAAA;AACF,QAAA,OAAO,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EACtC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,EAAA,CACxC
|
|
1
|
+
{"file":"voa-skeleton.js","mappings":";;AAAA,MAAM,WAAW,GAAG,ucAAuc;;MCO9c,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAMY,QAAA,IAAK,CAAA,KAAA,GAAW,OAAO;AACvB,QAAA,IAAM,CAAA,MAAA,GAAW,OAAO;AAanC;IAVG,WAAW,GAAA;AACP,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,KAAK,QAAQ;QAC1C,OAAO,CAAA,SAAA,EAAY,QAAQ,GAAG,kBAAkB,GAAG,EAAE,CAAA,CAAE;;IAG3D,MAAM,GAAA;AACF,QAAA,OAAO,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EACtC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,EAAA,CACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-skeleton/skeleton.css?tag=voa-skeleton","src/components/voa-skeleton/skeleton.tsx"],"sourcesContent":[".skeleton{\r\n border-radius: 2px;\r\n display: inline-block;\r\n line-height: 100%;\r\n width: 100%;\r\n background-color: #fff;\r\n background-size: 1000px 1000px;\r\n background-image: linear-gradient(\r\n 100deg,\r\n #e8e8e8 20%,\r\n #fafafa 50%,\r\n #e8e8e8 60%\r\n );\r\n animation: placeholderShimmer 1.5s linear infinite forwards;\r\n}\r\n\r\n.skeleton--circle{\r\n border-radius: 50%;\r\n}\r\n\r\n@keyframes placeholderShimmer{\r\n 0%{\r\n background-position: -500px 0;\r\n }\r\n \r\n 100%{\r\n background-position: 500px 0;\r\n }\r\n\r\n}","import { Component, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-skeleton\",\r\n styleUrl: \"skeleton.css\",\r\n shadow: false,\r\n})\r\nexport class Skeleton {\r\n @Prop() width: string = \"200px\";\r\n @Prop() height: string = \"100px\";\r\n @Prop() variant: \"text\" | \"circle\" ;\r\n\r\n handleClass() {\r\n const isCircle = this.variant === 'circle';\r\n return `skeleton ${isCircle ? 'skeleton--circle' : ''}`;;\r\n }\r\n\r\n render() {\r\n return <span class={this.handleClass()} \r\n style={{ width: this.width, height: this.height}}\r\n ></span>\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h } from './index.js';
|
|
2
2
|
|
|
3
3
|
const stepperCss = ".stepper{display:flex;align-items:center}.step{padding:10px 20px;border:1px solid #ccc;border-radius:4px;background-color:#f9f9f9;cursor:pointer;transition:background-color 0.2s;margin-right:10px}.step.active{background-color:#007bff;color:white}.step:hover{background-color:#eee}";
|
|
4
4
|
|
|
@@ -40,6 +40,7 @@ function defineCustomElement$1() {
|
|
|
40
40
|
break;
|
|
41
41
|
} });
|
|
42
42
|
}
|
|
43
|
+
defineCustomElement$1();
|
|
43
44
|
|
|
44
45
|
const VoaStepper = Stepper;
|
|
45
46
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"voa-stepper.js","mappings":";;AAAA,MAAM,UAAU,GAAG,0RAA0R;;MCOhS,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;AALpB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAa,EAAE;AACpB,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAW,IAAI,CAAC,WAAW;AAsB/C;AAnBC,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGxC,MAAM,GAAA;AACJ,QAAA,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EACjB,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAC1B,CACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,UAAU,KAAK,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC1D,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAA,EAElC,IAAI,CACD,CACP,CAAC,CACE
|
|
1
|
+
{"file":"voa-stepper.js","mappings":";;AAAA,MAAM,UAAU,GAAG,0RAA0R;;MCOhS,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;AALpB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAMU,QAAA,IAAK,CAAA,KAAA,GAAa,EAAE;AACpB,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAW,IAAI,CAAC,WAAW;AAsB/C;AAnBC,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGxC,MAAM,GAAA;AACJ,QAAA,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EACjB,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAC1B,CACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,UAAU,KAAK,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC1D,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAA,EAElC,IAAI,CACD,CACP,CAAC,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/voa-stepper/stepper.css?tag=voa-stepper&encapsulation=shadow","src/components/voa-stepper/stepper.tsx"],"sourcesContent":[".stepper {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.step {\r\n padding: 10px 20px;\r\n border: 1px solid #ccc;\r\n border-radius: 4px;\r\n background-color: #f9f9f9;\r\n cursor: pointer;\r\n transition: background-color 0.2s;\r\n margin-right: 10px;\r\n}\r\n\r\n.step.active {\r\n background-color: #007bff;\r\n color: white;\r\n}\r\n\r\n.step:hover {\r\n background-color: #eee;\r\n}\r\n","import { Component, Prop, h, State, Event, EventEmitter } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"voa-stepper\",\r\n styleUrl: \"stepper.css\",\r\n shadow: true,\r\n})\r\nexport class Stepper {\r\n @Prop() steps: string[] = [];\r\n @Prop() currentStep: number = 0;\r\n @State() activeStep: number = this.currentStep;\r\n @Event() stepChanged: EventEmitter<number>;\r\n\r\n goToStep(step: number) {\r\n this.activeStep = step;\r\n this.stepChanged.emit(this.activeStep);\r\n }\r\n\r\n render() {\r\n return (\r\n <div class=\"stepper\">\r\n {this.steps.map((step, index) => (\r\n <div\r\n class={`step ${this.activeStep === index ? \"active\" : \"\"}`}\r\n onClick={() => this.goToStep(index)}\r\n >\r\n {step}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h,
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
|
|
2
2
|
|
|
3
3
|
const voaSwitchCss = ":host{display:inline-block;box-sizing:border-box;contain:content}.switch-container{display:inline-flex;align-items:center;position:relative;box-sizing:border-box;user-select:none;border:none;background:none;padding:0;margin:0;gap:0;}.switch-container:disabled,.switch-container.switch-disabled{cursor:not-allowed;pointer-events:none}.switch-container.switch-no-label{gap:0}.switch-track{display:flex;align-items:center;position:relative;box-sizing:border-box;flex-shrink:0;width:40px;height:20px;overflow:hidden;padding:2px}.switch-thumb{display:block;position:relative;box-sizing:border-box;flex-shrink:0;width:16px;height:16px}.switch-shadow{position:absolute;inset:0;pointer-events:none;}.switch-label{display:inline-block;user-select:none;box-sizing:border-box}";
|
|
4
4
|
|
|
@@ -120,6 +120,7 @@ function defineCustomElement$1() {
|
|
|
120
120
|
break;
|
|
121
121
|
} });
|
|
122
122
|
}
|
|
123
|
+
defineCustomElement$1();
|
|
123
124
|
|
|
124
125
|
const VoaSwitch = VoaSwitch$1;
|
|
125
126
|
const defineCustomElement = defineCustomElement$1;
|