@govbr-ds/webcomponents 2.0.0-next.19 → 2.0.0-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/cjs/br-button_2.cjs.entry.js +1 -1
  2. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/br-input.cjs.entry.js +13 -9
  4. package/dist/cjs/br-input.cjs.entry.js.map +1 -1
  5. package/dist/cjs/br-tag.cjs.entry.js +88 -0
  6. package/dist/cjs/br-tag.cjs.entry.js.map +1 -0
  7. package/dist/cjs/br-textarea.cjs.entry.js +1 -1
  8. package/dist/cjs/br-upload.cjs.entry.js +1 -1
  9. package/dist/cjs/index-81c11ce2.js +4 -0
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/webcomponents.cjs.js +1 -1
  12. package/dist/collection/collection-manifest.json +1 -0
  13. package/dist/collection/components/icon/icon.css +1 -1
  14. package/dist/collection/components/input/input.js +152 -10
  15. package/dist/collection/components/input/input.js.map +1 -1
  16. package/dist/collection/components/tag/tag.css +643 -0
  17. package/dist/collection/components/tag/tag.js +256 -0
  18. package/dist/collection/components/tag/tag.js.map +1 -0
  19. package/dist/collection/components/textarea/textarea.js +1 -1
  20. package/dist/collection/components/upload/upload.js +1 -1
  21. package/dist/collection/pages/components/input/index.js +9 -0
  22. package/dist/collection/pages/components/tag/index.js +18 -0
  23. package/dist/collection/pages/scripts/menu.js +22 -22
  24. package/dist/collection/scripts/menu.js +146 -0
  25. package/dist/components/br-avatar.js +1 -1
  26. package/dist/components/br-icon.js +1 -1
  27. package/dist/components/br-input.js +1 -1
  28. package/dist/components/br-input.js.map +1 -1
  29. package/dist/components/br-message.js +1 -1
  30. package/dist/components/br-tag.d.ts +11 -0
  31. package/dist/components/br-tag.js +6 -0
  32. package/dist/components/br-tag.js.map +1 -0
  33. package/dist/components/br-textarea.js +1 -1
  34. package/dist/components/br-upload.js +1 -1
  35. package/dist/components/{p-a23c3f6b.js → p-64831033.js} +2 -2
  36. package/dist/components/{p-a23c3f6b.js.map → p-64831033.js.map} +1 -1
  37. package/dist/esm/br-button_2.entry.js +1 -1
  38. package/dist/esm/br-button_2.entry.js.map +1 -1
  39. package/dist/esm/br-input.entry.js +13 -9
  40. package/dist/esm/br-input.entry.js.map +1 -1
  41. package/dist/esm/br-tag.entry.js +84 -0
  42. package/dist/esm/br-tag.entry.js.map +1 -0
  43. package/dist/esm/br-textarea.entry.js +1 -1
  44. package/dist/esm/br-upload.entry.js +1 -1
  45. package/dist/esm/index-aab4a630.js +4 -0
  46. package/dist/esm/loader.js +1 -1
  47. package/dist/esm/webcomponents.js +1 -1
  48. package/dist/esm-es5/br-button_2.entry.js +1 -1
  49. package/dist/esm-es5/br-button_2.entry.js.map +1 -1
  50. package/dist/esm-es5/br-input.entry.js +1 -1
  51. package/dist/esm-es5/br-input.entry.js.map +1 -1
  52. package/dist/esm-es5/br-tag.entry.js +6 -0
  53. package/dist/esm-es5/br-tag.entry.js.map +1 -0
  54. package/dist/esm-es5/br-textarea.entry.js +2 -2
  55. package/dist/esm-es5/br-upload.entry.js +1 -1
  56. package/dist/esm-es5/index-aab4a630.js +1 -1
  57. package/dist/esm-es5/index-aab4a630.js.map +1 -1
  58. package/dist/esm-es5/loader.js +1 -1
  59. package/dist/esm-es5/loader.js.map +1 -1
  60. package/dist/esm-es5/webcomponents.js +1 -1
  61. package/dist/esm-es5/webcomponents.js.map +1 -1
  62. package/dist/types/components/input/input.d.ts +32 -0
  63. package/dist/types/components/tag/tag.d.ts +73 -0
  64. package/dist/types/components.d.ts +172 -0
  65. package/dist/webcomponents/{p-2cc63872.system.entry.js → p-28476b17.system.entry.js} +2 -2
  66. package/dist/webcomponents/p-447c8036.entry.js +6 -0
  67. package/dist/webcomponents/p-447c8036.entry.js.map +1 -0
  68. package/dist/webcomponents/p-55604b7f.system.entry.js +6 -0
  69. package/dist/webcomponents/p-55604b7f.system.entry.js.map +1 -0
  70. package/dist/webcomponents/{p-fd6c166e.entry.js → p-61523bc9.entry.js} +2 -2
  71. package/dist/webcomponents/{p-28aa7e4d.system.entry.js → p-8f156fc4.system.entry.js} +2 -2
  72. package/dist/webcomponents/p-8f156fc4.system.entry.js.map +1 -0
  73. package/dist/webcomponents/{p-3c4dea67.entry.js → p-9f0d01d1.entry.js} +2 -2
  74. package/dist/webcomponents/p-9f0d01d1.entry.js.map +1 -0
  75. package/dist/webcomponents/p-b88a5d9a.system.js +2 -2
  76. package/dist/webcomponents/p-b88a5d9a.system.js.map +1 -1
  77. package/dist/webcomponents/{p-34cec0b3.system.entry.js → p-baad00f8.system.entry.js} +2 -2
  78. package/dist/webcomponents/{p-155191ea.entry.js → p-d174c8cd.entry.js} +2 -2
  79. package/dist/webcomponents/{p-2cef0b07.system.entry.js → p-d83e2172.system.entry.js} +2 -2
  80. package/dist/webcomponents/{p-2cef0b07.system.entry.js.map → p-d83e2172.system.entry.js.map} +1 -1
  81. package/dist/webcomponents/{p-66b81760.entry.js → p-e6d921ef.entry.js} +2 -2
  82. package/dist/webcomponents/{p-66b81760.entry.js.map → p-e6d921ef.entry.js.map} +1 -1
  83. package/dist/webcomponents/webcomponents.esm.js +1 -1
  84. package/dist/webcomponents/webcomponents.esm.js.map +1 -1
  85. package/hydrate/index.js +123 -13
  86. package/hydrate/index.mjs +123 -13
  87. package/package.json +2 -2
  88. package/vscode-data.json +103 -0
  89. package/dist/webcomponents/p-28aa7e4d.system.entry.js.map +0 -1
  90. package/dist/webcomponents/p-3c4dea67.entry.js.map +0 -1
  91. /package/dist/webcomponents/{p-2cc63872.system.entry.js.map → p-28476b17.system.entry.js.map} +0 -0
  92. /package/dist/webcomponents/{p-fd6c166e.entry.js.map → p-61523bc9.entry.js.map} +0 -0
  93. /package/dist/webcomponents/{p-34cec0b3.system.entry.js.map → p-baad00f8.system.entry.js.map} +0 -0
  94. /package/dist/webcomponents/{p-155191ea.entry.js.map → p-d174c8cd.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../src/components/input/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAc,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAGpF;;;;;;;GAOG;AAOH,MAAM,OAAO,KAAK;;QA6IR,wBAAmB,GAAe,EAAE,CAAA;QAM3B,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAA;YACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC,CAAA;QAEgB,gBAAW,GAAG,GAAG,EAAE;;YAClC,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,IAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO,CACL,WAAK,KAAK,EAAC,aAAa;wBACtB,aAAO,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAC9C,IAAI,CAAC,KAAK,CACL,CACJ,CACP,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,aAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAG,IAAI,CAAC,KAAK,CAAS,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAMgB,gBAAW,GAAG,GAAG,EAAE;YAClC,OAAO,CACL,2BACE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAClD,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,IACb,IAAI,CAAC,mBAAmB,EAC5B,CACH,CAAA;QACH,CAAC,CAAA;QAEgB,mBAAc,GAAG,GAAG,EAAE;;YACrC,OAAO,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,aAAI,IAAI,CAAC,QAAQ,CAAK,CAAC,CAAC,CAAC,YAAM,IAAI,EAAC,WAAW,GAAQ,CAAA;QAC5F,CAAC,CAAA;QAEgB,uBAAkB,GAAG,GAAG,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC;YAChF,OAAO,4BAAoB,QAAQ,GAAY,CAAC;QAClD,CAAC,CAAA;QAEgB,6BAAwB,GAAG,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACvD,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAA;YAChD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAA;QAC3D,CAAC,CAAA;QAyCgB,6BAAwB,GAAG,GAAG,EAAE;YAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,CACL,WAAK,KAAK,EAAC,eAAe,IACvB,IAAI,CAAC,mBAAmB,EAAE,CACvB,CACP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CACL,WAAK,KAAK,EAAC,eAAe,IACvB,IAAI,CAAC,sBAAsB,EAAE,CAC1B,CACP,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEe,uBAAkB,GAAG,GAAG,EAAE;YACzC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACtF,CAAC,CAAA;QAEgB,wBAAmB,GAAG,GAAG,EAAE;YAC1C,OAAO,CACL,WAAK,KAAK,EAAC,aAAa;gBACrB,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,cAAc,EAAE,CAClB,CACP,CAAC;QACJ,CAAC,CAAC;QAEe,2BAAsB,GAAG,GAAG,EAAE;YAC7C,OAAO;gBACL,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,cAAc,EAAE;aACtB,CAAA;QACH,CAAC,CAAC;wBA7Q2D,YAAY,MAAM,EAAE,EAAE;oBA0BvE,MAAM;;uBAU+C,QAAQ;wBAK5B,KAAK;wBAKL,KAAK;2BAKF,KAAK;;;;;wBA+BR,KAAK;wBAKL,KAAK;;;iCAaZ,KAAK;2BAEX,KAAK;6BAEH,KAAK;;IAEvC,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;IAEO,mBAAmB;QACzB,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACjC,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,IAAI,CAAC,WAAW;YACnC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC/B,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM;YAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;SAClC,CAAA;IACH,CAAC;IA6BO,cAAc,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAA;IAC/D,CAAC;IAoCO,cAAc;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,CACL,WAAK,KAAK,EAAC,YAAY;gBACrB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACrB,CACP,CAAA;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,CACL,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,gBACJ,4CAAwB,EACnC,OAAO,EAAE,IAAI,CAAC,wBAAwB,IAErC,IAAI,CAAC,kBAAkB,EAAE,CAChB,CACb,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,CACL,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,gBACJ,4CAAwB;gBAGnC,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACjB,CACb,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAyCD,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACnC,IAAI,CAAC,WAAW,EAAE;gBAElB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACf,IAAI,CAAC,wBAAwB,EAAE,CAChC,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,kBAAkB,EAAE,CAC5B,CACK,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do input.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) required: boolean = false\n\n /**\n * Valor inicial exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) helpText: string\n\n @State() isPasswordVisible: boolean = false\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.state === 'success',\n danger: this.state === 'danger',\n info: this.state === 'info',\n warning: this.state === 'warning',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange!: EventEmitter<string>\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n {...this.inheritedAttributes}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye';\n return <br-icon icon-name={iconName}></br-icon>;\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n // onClick={this.onIconAction}\n >\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return (\n <div class=\"input-content\">\n {this.renderInputWithIcon()}\n </div>\n );\n } else {\n return (\n <div class=\"input-content\">\n {this.renderInputWithoutIcon()}\n </div>\n );\n }\n };\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n );\n };\n\n private readonly renderInputWithoutIcon = () => {\n return [\n this.renderInput(),\n this.renderButton(),\n this.renderHelpText()\n ]\n };\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? (\n this.renderInlineInputContent()\n ) : (\n this.renderInputContent()\n )}\n </div>\n </Host>\n )\n }\n}\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../src/components/input/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAc,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAGpF;;;;;;;GAOG;AAOH,MAAM,OAAO,KAAK;;QAqLR,wBAAmB,GAAe,EAAE,CAAA;QAM3B,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAA;YACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC,CAAA;QAEgB,gBAAW,GAAG,GAAG,EAAE;;YAClC,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,IAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO,CACL,WAAK,KAAK,EAAC,aAAa;wBACtB,aAAO,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAC9C,IAAI,CAAC,KAAK,CACL,CACJ,CACP,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,aAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAG,IAAI,CAAC,KAAK,CAAS,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAMgB,gBAAW,GAAG,GAAG,EAAE;YAClC,OAAO,CACL,2BACE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAClD,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,IACb,IAAI,CAAC,mBAAmB,EAC5B,CACH,CAAA;QACH,CAAC,CAAA;QAEgB,mBAAc,GAAG,GAAG,EAAE;;YACrC,OAAO,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,aAAI,IAAI,CAAC,QAAQ,CAAK,CAAC,CAAC,CAAC,YAAM,IAAI,EAAC,WAAW,GAAQ,CAAA;QAC5F,CAAC,CAAA;QAEgB,uBAAkB,GAAG,GAAG,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAA;YAC/E,OAAO,4BAAoB,QAAQ,GAAY,CAAA;QACjD,CAAC,CAAA;QAEgB,6BAAwB,GAAG,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACvD,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAA;YAChD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAA;QAC3D,CAAC,CAAA;QAyCgB,6BAAwB,GAAG,GAAG,EAAE;YAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,WAAK,KAAK,EAAC,eAAe,IAAE,IAAI,CAAC,mBAAmB,EAAE,CAAO,CAAA;YACtE,CAAC;iBAAM,CAAC;gBACN,OAAO,WAAK,KAAK,EAAC,eAAe,IAAE,IAAI,CAAC,sBAAsB,EAAE,CAAO,CAAA;YACzE,CAAC;QACH,CAAC,CAAA;QAEgB,uBAAkB,GAAG,GAAG,EAAE;YACzC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACtF,CAAC,CAAA;QAEgB,wBAAmB,GAAG,GAAG,EAAE;YAC1C,OAAO,CACL,WAAK,KAAK,EAAC,aAAa;gBACrB,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,cAAc,EAAE,CAClB,CACP,CAAA;QACH,CAAC,CAAA;QAEgB,2BAAsB,GAAG,GAAG,EAAE;YAC7C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QACzE,CAAC,CAAA;wBAlT4D,YAAY,MAAM,EAAE,EAAE;oBA0BvE,MAAM;;uBAU+C,QAAQ;wBAK5B,KAAK;wBAKL,KAAK;2BAKF,KAAK;;;;;wBA+BR,KAAK;wBAKL,KAAK;;;2BAgBG,KAAK;;;;;wBAyBb,KAAK;;;iCAYZ,KAAK;2BAEX,KAAK;6BAEH,KAAK;;IAEvC,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3D,CAAC;IAEO,mBAAmB;QACzB,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACjC,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,IAAI,CAAC,WAAW;YACnC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC/B,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM;YAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;SAClC,CAAA;IACH,CAAC;IA6BO,cAAc,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAA;IAC/D,CAAC;IA6CO,cAAc;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,CACL,WAAK,KAAK,EAAC,YAAY;gBACrB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACrB,CACP,CAAA;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,CACL,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,gBACJ,4CAAwB,EACnC,OAAO,EAAE,IAAI,CAAC,wBAAwB,IAErC,IAAI,CAAC,kBAAkB,EAAE,CAChB,CACb,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,CACL,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,gBACJ,4CAAwB;gBAGnC,YAAM,IAAI,EAAC,QAAQ,GAAQ,CACjB,CACb,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IA6BD,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACnC,IAAI,CAAC,WAAW,EAAE;gBAElB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CACxE,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do input.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) required: boolean = false\n\n /**\n * Valor inicial exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.state === 'success',\n danger: this.state === 'danger',\n info: this.state === 'info',\n warning: this.state === 'warning',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange!: EventEmitter<string>\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n {...this.inheritedAttributes}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n // onClick={this.onIconAction}\n >\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n </div>\n </Host>\n )\n }\n}\n"]}
@@ -0,0 +1,643 @@
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ html {
8
+ line-height: var(--font-line-height-medium);
9
+ -webkit-text-size-adjust: 100%;
10
+ -moz-text-size-adjust: 100%;
11
+ text-size-adjust: 100%;
12
+ }
13
+
14
+ body {
15
+ margin: 0;
16
+ }
17
+
18
+ a {
19
+ background-color: transparent;
20
+ }
21
+
22
+
23
+ strong {
24
+ font-weight: bolder;
25
+ }
26
+
27
+ small {
28
+ font-size: 80%;
29
+ }
30
+
31
+ img {
32
+ border-style: none;
33
+ }
34
+
35
+ button,
36
+ input,
37
+ textarea {
38
+ font-family: inherit;
39
+ font-size: 100%;
40
+ line-height: var(--font-line-height-medium);
41
+ margin: 0;
42
+ }
43
+
44
+ button,
45
+ input {
46
+ overflow: visible;
47
+ }
48
+
49
+ button {
50
+ text-transform: none;
51
+ }
52
+
53
+ button,
54
+ [type=button],
55
+ [type=reset],
56
+ [type=submit] {
57
+ -webkit-appearance: button;
58
+ -moz-appearance: button;
59
+ appearance: button;
60
+ }
61
+
62
+ button::-moz-focus-inner,
63
+ [type=button]::-moz-focus-inner,
64
+ [type=reset]::-moz-focus-inner,
65
+ [type=submit]::-moz-focus-inner {
66
+ border-style: none;
67
+ padding: 0;
68
+ }
69
+
70
+ button:-moz-focusring,
71
+ [type=button]:-moz-focusring,
72
+ [type=reset]:-moz-focusring,
73
+ [type=submit]:-moz-focusring {
74
+ outline: 1px dotted ButtonText;
75
+ }
76
+
77
+ progress {
78
+ vertical-align: baseline;
79
+ }
80
+
81
+ textarea {
82
+ overflow: auto;
83
+ }
84
+
85
+ [type=checkbox],
86
+ [type=radio] {
87
+ box-sizing: border-box;
88
+ padding: 0;
89
+ }
90
+
91
+ [type=number]::-webkit-inner-spin-button,
92
+ [type=number]::-webkit-outer-spin-button {
93
+ height: auto;
94
+ }
95
+
96
+ [type=search] {
97
+ -webkit-appearance: textfield;
98
+ -moz-appearance: textfield;
99
+ appearance: textfield;
100
+ outline-offset: -2px;
101
+ }
102
+
103
+ [type=search]::-webkit-search-decoration {
104
+ -webkit-appearance: none;
105
+ appearance: none;
106
+ }
107
+
108
+ ::-webkit-file-upload-button {
109
+ -webkit-appearance: button;
110
+ appearance: button;
111
+ font: inherit;
112
+ }
113
+
114
+ [hidden] {
115
+ display: none;
116
+ }
117
+
118
+ .d-flex {
119
+ display: flex !important;
120
+ }
121
+
122
+ .align-items-center {
123
+ align-items: center !important;
124
+ }
125
+ .col,
126
+ [class*=col-] {
127
+ padding-left: calc(var(--grid-gutter) * 0.5);
128
+ padding-right: calc(var(--grid-gutter) * 0.5);
129
+ width: 100%;
130
+ }
131
+
132
+ .col {
133
+ flex: 1 0 0%;
134
+ min-width: 8.3333333333%;
135
+ }
136
+
137
+ .col-auto {
138
+ flex: 0 0 auto;
139
+ width: auto;
140
+ }
141
+
142
+ .container {
143
+ --grid-margin: var(--grid-portrait-margin);
144
+ --grid-maxwidth: var(--grid-portrait-maxwidth);
145
+ margin-left: auto;
146
+ margin-right: auto;
147
+ max-width: var(--grid-maxwidth);
148
+ padding-left: var(--grid-margin);
149
+ padding-right: var(--grid-margin);
150
+ width: 100%;
151
+ }
152
+
153
+ .row {
154
+ --grid-gutter: var(--grid-portrait-gutter);
155
+ display: flex;
156
+ flex-wrap: wrap;
157
+ margin-left: calc(var(--grid-gutter) * -0.5);
158
+ margin-right: calc(var(--grid-gutter) * -0.5);
159
+ }
160
+
161
+ @media (min-width: 576px) {
162
+ .container {
163
+ --grid-margin: var(--grid-tablet-margin);
164
+ }
165
+ .row {
166
+ --grid-gutter: var(--grid-tablet-gutter);
167
+ }
168
+ .container {
169
+ --grid-maxwidth: calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin));
170
+ }
171
+ }
172
+ @media (min-width: 992px) {
173
+ .container {
174
+ --grid-margin: var(--grid-tablet-margin);
175
+ }
176
+ .row {
177
+ --grid-gutter: var(--grid-tablet-gutter);
178
+ }
179
+ .container {
180
+ --grid-maxwidth: calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin));
181
+ }
182
+ }
183
+ @media (min-width: 1280px) {
184
+ .container {
185
+ --grid-margin: var(--grid-desktop-margin);
186
+ }
187
+ .row {
188
+ --grid-gutter: var(--grid-desktop-gutter);
189
+ }
190
+ .container {
191
+ --grid-maxwidth: calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin));
192
+ }
193
+ }
194
+ @media (min-width: 1600px) {
195
+ .container {
196
+ --grid-margin: var(--grid-tv-margin);
197
+ }
198
+ .row {
199
+ --grid-gutter: var(--grid-tv-gutter);
200
+ }
201
+ .container {
202
+ --grid-maxwidth: calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin));
203
+ }
204
+ }
205
+
206
+ .mt-1 {
207
+ margin-top: var(--spacing-scale-half) !important;
208
+ }
209
+
210
+ .mr-1 {
211
+ margin-right: var(--spacing-scale-half) !important;
212
+ }
213
+
214
+ .mr-2 {
215
+ margin-right: var(--spacing-scale-base) !important;
216
+ }
217
+
218
+ .mr-n2 {
219
+ margin-right: calc(var(--spacing-scale-base) * -1) !important;
220
+ }
221
+
222
+ .mb-3 {
223
+ margin-bottom: var(--spacing-scale-2x) !important;
224
+ }
225
+
226
+ .mr-auto {
227
+ margin-right: auto !important;
228
+ }
229
+
230
+ .pt-half {
231
+ padding-top: var(--spacing-scale-half) !important;
232
+ }
233
+
234
+ .py-3 {
235
+ padding-bottom: var(--spacing-scale-2x) !important;
236
+ padding-top: var(--spacing-scale-2x) !important;
237
+ }
238
+
239
+ .py-4 {
240
+ padding-bottom: var(--spacing-scale-3x) !important;
241
+ padding-top: var(--spacing-scale-3x) !important;
242
+ }
243
+ body {
244
+ --bg-color: var(--background);
245
+ --bg-color-rgb: var(--background-rgb);
246
+ --bg-color-hsl: var(--background-hsl);
247
+ --font-size: var(--font-size-scale-base);
248
+ --font-weight: var(--font-weight-regular);
249
+ --link-color: var(--interactive);
250
+ --link-color-rgb: var(--interactive-rgb);
251
+ --link-color-hsl: var(--interactive-hsl);
252
+ --line-height: var(--font-line-height-medium);
253
+ --text-color: var(--color);
254
+ --text-color-rgb: var(--color-rgb);
255
+ --text-color-hsl: var(--color-hsl);
256
+ background: var(--bg-color);
257
+ color: var(--text-color);
258
+ font-family: var(--font-family-base);
259
+ font-size: var(--font-size);
260
+ font-weight: var(--font-weight);
261
+ line-height: var(--line-height);
262
+ }
263
+
264
+ p {
265
+ color: var(--color);
266
+ font-size: var(--font-size-scale-base);
267
+ font-weight: var(--font-weight-regular);
268
+ line-height: var(--font-line-height-medium);
269
+ margin-bottom: var(--spacing-scale-2x);
270
+ margin-top: 0;
271
+ }
272
+ p a {
273
+ text-decoration: underline;
274
+ }
275
+
276
+ @media (min-width: 576px) {
277
+ p {
278
+ font-size: var(--font-size-scale-up-01);
279
+ }
280
+ }
281
+ a {
282
+ --focus-offset: var(--spacing-scale-half);
283
+ color: var(--interactive);
284
+ text-decoration: none;
285
+ }
286
+ a:focus {
287
+ outline: none;
288
+ }
289
+ a:focus-visible {
290
+ outline-color: var(--focus);
291
+ outline-offset: var(--focus-offset);
292
+ outline-style: var(--focus-style);
293
+ outline-width: var(--focus-width);
294
+ }
295
+ a:not(:disabled):hover {
296
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)));
297
+ }
298
+ a:not(:disabled):active {
299
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)));
300
+ }
301
+
302
+ button {
303
+ cursor: pointer;
304
+ }
305
+
306
+ img {
307
+ max-width: 100%;
308
+ vertical-align: middle;
309
+ }
310
+ ul {
311
+ margin-bottom: var(--spacing-scale-2x);
312
+ margin-top: 0;
313
+ padding: 0 0 0 var(--spacing-scale-5x);
314
+ }
315
+
316
+ label,
317
+ .label {
318
+ color: var(--color);
319
+ font-size: var(--font-size-scale-base);
320
+ font-weight: var(--font-weight-semi-bold);
321
+ line-height: var(--font-line-height-medium);
322
+ margin-bottom: var(--spacing-scale-half);
323
+ }
324
+
325
+ ::-moz-placeholder {
326
+ color: var(--color-light);
327
+ font-size: var(--font-size-scale-base);
328
+ font-style: italic;
329
+ font-weight: var(--font-weight-regular);
330
+ line-height: var(--font-line-height-medium);
331
+ margin-bottom: var(--spacing-scale-half);
332
+ margin-top: var(--spacing-scale-half);
333
+ opacity: 1;
334
+ }
335
+
336
+ ::placeholder,
337
+ .placeholder {
338
+ color: var(--color-light);
339
+ font-size: var(--font-size-scale-base);
340
+ font-style: italic;
341
+ font-weight: var(--font-weight-regular);
342
+ line-height: var(--font-line-height-medium);
343
+ margin-bottom: var(--spacing-scale-half);
344
+ margin-top: var(--spacing-scale-half);
345
+ opacity: 1;
346
+ }
347
+
348
+ input,
349
+ textarea,
350
+ .input {
351
+ color: var(--color-light);
352
+ font-size: var(--font-size-scale-up-01);
353
+ font-weight: var(--font-weight-medium);
354
+ line-height: var(--font-line-height-low);
355
+ margin-bottom: var(--spacing-scale-half);
356
+ }
357
+
358
+ .text-pure-0 {
359
+ color: var(--pure-0) !important;
360
+ }
361
+
362
+ .text-primary-default {
363
+ color: var(--color-primary-default) !important;
364
+ }
365
+
366
+ .bg-support-01 {
367
+ --color: var(--color-dark);
368
+ --color-rgb: var(--color-dark-rgb);
369
+ --text-color: var(--color-dark);
370
+ --interactive: var(--interactive-dark);
371
+ --interactive-rgb: var(--interactive-dark-rgb);
372
+ --visited: var(--visited-dark);
373
+ --hover: var(--hover-dark);
374
+ --pressed: var(--pressed-dark);
375
+ --focus-color: var(--focus-color-dark);
376
+ --focus: var(--focus-color-dark);
377
+ background: var(--color-support-01) !important;
378
+ }
379
+
380
+ .text-nowrap {
381
+ white-space: nowrap !important;
382
+ }
383
+
384
+ .text-base {
385
+ font-size: var(--font-size-scale-base) !important;
386
+ }
387
+
388
+ .highlight {
389
+ background: var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));
390
+ color: var(--status-highlight-text);
391
+ padding: 0 var(--spacing-scale-half);
392
+ }
393
+
394
+ [disabled],
395
+ .disabled {
396
+ cursor: not-allowed;
397
+ opacity: var(--disabled);
398
+ }
399
+ [disabled] *,
400
+ .disabled * {
401
+ pointer-events: none;
402
+ }
403
+
404
+ [data-toggle=dropdown] + * {
405
+ position: absolute;
406
+ }
407
+
408
+ .dropdown {
409
+ position: relative;
410
+ }
411
+ .dropdown [data-toggle=dropdown] + * {
412
+ box-shadow: var(--surface-shadow-sm);
413
+ left: 0;
414
+ position: absolute;
415
+ top: 100%;
416
+ }
417
+ .dropdown .br-item {
418
+ --color: var(--color-light);
419
+ --color-rgb: var(--color-light-rgb);
420
+ --text-color: var(--color-light);
421
+ --interactive: var(--interactive-light);
422
+ --interactive-rgb: var(--color-rgb);
423
+ --visited: var(--visited-light);
424
+ --hover: var(--hover-light);
425
+ --pressed: var(--pressed-light);
426
+ --focus-color: var(--focus-color-light);
427
+ --focus: var(--focus-color-light);
428
+ --item-padding-y: var(--spacing-scale-2x);
429
+ background-color: var(--background-light);
430
+ color: var(--color);
431
+ }
432
+ .dropdown .br-item:not(:last-child) {
433
+ border-bottom: 1px solid var(--border-color);
434
+ }
435
+ .dropdown .br-item.selected {
436
+ --color: var(--color-dark);
437
+ --color-rgb: var(--color-dark-rgb);
438
+ --text-color: var(--color-dark);
439
+ --interactive: var(--interactive-dark);
440
+ --interactive-rgb: var(--interactive-dark-rgb);
441
+ --visited: var(--visited-dark);
442
+ --hover: var(--hover-dark);
443
+ --pressed: var(--pressed-dark);
444
+ --focus-color: var(--focus-color-dark);
445
+ --focus: var(--focus-color-dark);
446
+ }
447
+
448
+ .br-tag {
449
+ --tag-size: var(--tag-medium);
450
+ --tag-small: var(--spacing-scale-2xh);
451
+ --tag-medium: var(--spacing-scale-3xh);
452
+ --tag-large: var(--spacing-scale-4xh);
453
+ align-items: center;
454
+ background: var(--background-dark);
455
+ border-radius: var(--surface-rounder-sm);
456
+ color: var(--color-dark);
457
+ display: inline-flex;
458
+ font-size: var(--font-size-scale-base);
459
+ font-weight: var(--font-weight-medium);
460
+ justify-content: center;
461
+ margin: 0;
462
+ min-height: var(--tag-size);
463
+ padding: 0 var(--spacing-scale-baseh);
464
+ align-items: center;
465
+ background: var(--background-dark);
466
+ border-radius: var(--surface-rounder-sm);
467
+ color: var(--color-dark);
468
+ display: inline-flex;
469
+ font-size: var(--font-size-scale-base);
470
+ font-weight: var(--font-weight-medium);
471
+ justify-content: center;
472
+ margin: 0;
473
+ min-height: var(--tag-size);
474
+ padding: 0 var(--spacing-scale-baseh);
475
+ }
476
+ .br-tag + .br-tag {
477
+ margin-left: var(--spacing-scale-half);
478
+ }
479
+ .br-tag.interaction {
480
+ --tag-small: var(--spacing-scale-4x);
481
+ --tag-medium: var(--spacing-scale-5x);
482
+ --tag-large: var(--spacing-scale-5xh);
483
+ font-size: var(--font-size-scale-up-01);
484
+ }
485
+ .br-tag.interaction {
486
+ background: var(--interactive);
487
+ }
488
+ .br-tag.interaction .br-button {
489
+ --button-size: var(--spacing-scale-3xh);
490
+ --focus: var(--focus-color-dark);
491
+ --hover: var(--hover-dark);
492
+ --interactive-rgb: var(--color-dark-rgb);
493
+ background-color: var(--interactive-light);
494
+ border-radius: 50%;
495
+ color: var(--color-dark);
496
+ margin-left: var(--spacing-scale-baseh);
497
+ padding: 0;
498
+ width: var(--button-size);
499
+ }
500
+ .br-tag.interaction:hover .br-button {
501
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)));
502
+ }
503
+ .br-tag.interaction:active .br-button {
504
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)));
505
+ }
506
+ .br-tag.disabled input {
507
+ cursor: not-allowed;
508
+ }
509
+ .br-tag.status {
510
+ --tag-small: var(--spacing-scale-baseh);
511
+ --tag-medium: var(--spacing-scale-2x);
512
+ --tag-large: var(--spacing-scale-3x);
513
+ border: 1px solid var(--background-light);
514
+ border-radius: 50%;
515
+ min-width: var(--tag-size);
516
+ padding: 0;
517
+ }
518
+ .br-tag.count {
519
+ --tag-small: var(--spacing-scale-2xh);
520
+ --tag-medium: var(--spacing-scale-3x);
521
+ --tag-large: var(--spacing-scale-3xh);
522
+ border: 1px solid var(--background-light);
523
+ border-radius: 100em;
524
+ min-width: var(--tag-size);
525
+ padding-left: var(--spacing-scale-base);
526
+ padding-right: var(--spacing-scale-base);
527
+ }
528
+ .br-tag.icon {
529
+ --tag-small: var(--spacing-scale-3xh);
530
+ --tag-medium: var(--spacing-scale-4x);
531
+ --tag-large: var(--spacing-scale-5xh);
532
+ border-radius: 50%;
533
+ min-width: var(--tag-size);
534
+ padding: 0;
535
+ }
536
+ .br-tag.small {
537
+ --tag-size: var(--tag-small);
538
+ }
539
+ .br-tag.medium {
540
+ --tag-size: var(--tag-medium);
541
+ }
542
+ .br-tag.large {
543
+ --tag-size: var(--tag-large);
544
+ }
545
+ .br-tag.interaction {
546
+ --tag-small: var(--spacing-scale-4x);
547
+ --tag-medium: var(--spacing-scale-5x);
548
+ --tag-large: var(--spacing-scale-5xh);
549
+ font-size: var(--font-size-scale-up-01);
550
+ }
551
+ .br-tag.interaction {
552
+ background: var(--interactive);
553
+ }
554
+ .br-tag.interaction .br-button {
555
+ --button-size: var(--spacing-scale-3xh);
556
+ --focus: var(--focus-color-dark);
557
+ --hover: var(--hover-dark);
558
+ --interactive-rgb: var(--color-dark-rgb);
559
+ background-color: var(--interactive-light);
560
+ border-radius: 50%;
561
+ color: var(--color-dark);
562
+ margin-left: var(--spacing-scale-baseh);
563
+ padding: 0;
564
+ width: var(--button-size);
565
+ }
566
+ .br-tag.interaction:hover .br-button {
567
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)));
568
+ }
569
+ .br-tag.interaction:active .br-button {
570
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)));
571
+ }
572
+ .br-tag.disabled input {
573
+ cursor: not-allowed;
574
+ }
575
+ .br-tag.interaction {
576
+ --tag-small: var(--spacing-scale-4x);
577
+ --tag-medium: var(--spacing-scale-5x);
578
+ --tag-large: var(--spacing-scale-5xh);
579
+ font-size: var(--font-size-scale-up-01);
580
+ }
581
+ .br-tag.interaction {
582
+ background: var(--interactive);
583
+ }
584
+ .br-tag.interaction .br-button {
585
+ --button-size: var(--spacing-scale-3xh);
586
+ --focus: var(--focus-color-dark);
587
+ --hover: var(--hover-dark);
588
+ --interactive-rgb: var(--color-dark-rgb);
589
+ background-color: var(--interactive-light);
590
+ border-radius: 50%;
591
+ color: var(--color-dark);
592
+ margin-left: var(--spacing-scale-baseh);
593
+ padding: 0;
594
+ width: var(--button-size);
595
+ }
596
+ .br-tag.interaction:hover .br-button {
597
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)));
598
+ }
599
+ .br-tag.interaction:active .br-button {
600
+ background-image: linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)));
601
+ }
602
+ .br-tag.disabled input {
603
+ cursor: not-allowed;
604
+ }
605
+ .br-tag + .br-tag {
606
+ margin-left: var(--spacing-scale-half);
607
+ }
608
+ .br-tag.small {
609
+ --tag-size: var(--tag-small);
610
+ }
611
+ .br-tag.medium {
612
+ --tag-size: var(--tag-medium);
613
+ }
614
+ .br-tag.large {
615
+ --tag-size: var(--tag-large);
616
+ }
617
+ .br-tag.is-highlight, .br-tag.highlight, .br-tag[highlight] {
618
+ background-color: #268744;
619
+ }
620
+ .br-tag.success, .br-tag[success] {
621
+ background-color: var(--success);
622
+ }
623
+ .br-tag.danger, .br-tag[danger] {
624
+ background-color: var(--danger);
625
+ }
626
+ .br-tag.warning, .br-tag[warning] {
627
+ background-color: var(--warning);
628
+ }
629
+ .br-tag.info, .br-tag[info] {
630
+ background-color: var(--info);
631
+ }
632
+
633
+ :host {
634
+ display: block;
635
+ }
636
+ :host .tag-position {
637
+ display: flex;
638
+ justify-content: space-around;
639
+ align-items: center;
640
+ }
641
+ :host .tag-spacing-status {
642
+ margin-left: var(--spacing-scale-half) !important;
643
+ }