bromcom-ui-next 0.1.22 → 0.1.24

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 (186) hide show
  1. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.esm.js.map +1 -0
  2. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  4. package/dist/bromcom-ui/{p-778c0de1.entry.js → p-0213e9e8.entry.js} +2 -2
  5. package/dist/bromcom-ui/{p-361073bc.entry.js → p-188bc34d.entry.js} +2 -2
  6. package/dist/bromcom-ui/p-1d79c9de.entry.js +2 -0
  7. package/dist/bromcom-ui/p-1d79c9de.entry.js.map +1 -0
  8. package/dist/bromcom-ui/{p-3866ae3e.entry.js → p-2cce1424.entry.js} +2 -2
  9. package/dist/bromcom-ui/{p-90b65db8.entry.js → p-2f517bd8.entry.js} +2 -2
  10. package/dist/bromcom-ui/{p-3fbed81b.entry.js → p-4766474f.entry.js} +2 -2
  11. package/dist/bromcom-ui/{p-62c14cc4.entry.js → p-4f0851e2.entry.js} +2 -2
  12. package/dist/bromcom-ui/{p-07b05abd.entry.js → p-5c1b22b5.entry.js} +2 -2
  13. package/dist/bromcom-ui/{p-813cffad.entry.js → p-5da9360c.entry.js} +2 -2
  14. package/dist/bromcom-ui/{p-e91676ff.entry.js → p-5e47b56d.entry.js} +2 -2
  15. package/dist/bromcom-ui/{p-50505dd6.entry.js → p-6c2441a1.entry.js} +2 -2
  16. package/dist/bromcom-ui/{p-7d366ff2.entry.js → p-7560f0e9.entry.js} +2 -2
  17. package/dist/bromcom-ui/{p-67f62d75.entry.js → p-84b1e52c.entry.js} +2 -2
  18. package/dist/bromcom-ui/{p-e00fa939.entry.js → p-88d35bcf.entry.js} +2 -2
  19. package/dist/bromcom-ui/{p-a8b66a90.entry.js → p-8fd1a05d.entry.js} +2 -2
  20. package/dist/bromcom-ui/{p-b566bad4.entry.js → p-96aba34c.entry.js} +2 -2
  21. package/dist/bromcom-ui/{p-CrZxEeDA.js → p-B84DzIAh.js} +2 -2
  22. package/dist/bromcom-ui/p-B84DzIAh.js.map +1 -0
  23. package/dist/bromcom-ui/{p-fdc1df0c.entry.js → p-a26619e4.entry.js} +2 -2
  24. package/dist/bromcom-ui/{p-9293a2ce.entry.js → p-b02f5178.entry.js} +2 -2
  25. package/dist/bromcom-ui/{p-2d3a0ad4.entry.js → p-c9683df3.entry.js} +2 -2
  26. package/dist/bromcom-ui/{p-319d3937.entry.js → p-cf9dd0fc.entry.js} +2 -2
  27. package/dist/bromcom-ui/{p-6fa6b826.entry.js → p-d04246f0.entry.js} +2 -2
  28. package/dist/bromcom-ui/{p-a4ace572.entry.js → p-dd9ec481.entry.js} +2 -2
  29. package/dist/bromcom-ui/{p-378bf83e.entry.js → p-e500e6d1.entry.js} +2 -2
  30. package/dist/bromcom-ui/{p-45158141.entry.js → p-ead5a030.entry.js} +2 -2
  31. package/dist/cjs/bcm-accordion-group.cjs.entry.js +1 -1
  32. package/dist/cjs/bcm-accordion.cjs.entry.js +1 -1
  33. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  34. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -1
  35. package/dist/cjs/bcm-badge.cjs.entry.js +1 -1
  36. package/dist/cjs/bcm-basic-badge.cjs.entry.js +1 -1
  37. package/dist/cjs/bcm-button-group.cjs.entry.js +1 -1
  38. package/dist/cjs/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.cjs.js.map +1 -0
  39. package/dist/cjs/bcm-button_8.cjs.entry.js +1414 -0
  40. package/dist/cjs/bcm-button_8.cjs.entry.js.map +1 -0
  41. package/dist/cjs/bcm-checkbox.cjs.entry.js +1 -1
  42. package/dist/cjs/bcm-chip.cjs.entry.js +1 -1
  43. package/dist/cjs/bcm-divider.cjs.entry.js +1 -1
  44. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +1 -1
  45. package/dist/cjs/bcm-popover.cjs.entry.js +1 -1
  46. package/dist/cjs/bcm-radio-group.cjs.entry.js +1 -1
  47. package/dist/cjs/bcm-radio.cjs.entry.js +1 -1
  48. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +1 -1
  49. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +1 -1
  50. package/dist/cjs/bcm-switch.cjs.entry.js +1 -1
  51. package/dist/cjs/bcm-tabs-content.cjs.entry.js +1 -1
  52. package/dist/cjs/bcm-tabs-list.cjs.entry.js +1 -1
  53. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +1 -1
  54. package/dist/cjs/bcm-tabs.cjs.entry.js +1 -1
  55. package/dist/cjs/bcm-textarea.cjs.entry.js +1 -1
  56. package/dist/cjs/bcm-tooltip.cjs.entry.js +1 -1
  57. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  58. package/dist/cjs/{index-DFpZVb11.js → index-DHDrXFLM.js} +3 -3
  59. package/dist/cjs/index-DHDrXFLM.js.map +1 -0
  60. package/dist/cjs/loader.cjs.js +2 -2
  61. package/dist/collection/styles/theme-variables.js +3 -0
  62. package/dist/collection/styles/theme-variables.js.map +1 -1
  63. package/dist/components/index.js +1 -1
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/esm/bcm-accordion-group.entry.js +1 -1
  66. package/dist/esm/bcm-accordion.entry.js +1 -1
  67. package/dist/esm/bcm-alert.entry.js +1 -1
  68. package/dist/esm/bcm-avatar.entry.js +1 -1
  69. package/dist/esm/bcm-badge.entry.js +1 -1
  70. package/dist/esm/bcm-basic-badge.entry.js +1 -1
  71. package/dist/esm/bcm-button-group.entry.js +1 -1
  72. package/dist/esm/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.js.map +1 -0
  73. package/dist/esm/bcm-button_8.entry.js +1405 -0
  74. package/dist/esm/bcm-button_8.entry.js.map +1 -0
  75. package/dist/esm/bcm-checkbox.entry.js +1 -1
  76. package/dist/esm/bcm-chip.entry.js +1 -1
  77. package/dist/esm/bcm-divider.entry.js +1 -1
  78. package/dist/esm/bcm-pop-confirm.entry.js +1 -1
  79. package/dist/esm/bcm-popover.entry.js +1 -1
  80. package/dist/esm/bcm-radio-group.entry.js +1 -1
  81. package/dist/esm/bcm-radio.entry.js +1 -1
  82. package/dist/esm/bcm-segmented-picker-option.entry.js +1 -1
  83. package/dist/esm/bcm-segmented-picker.entry.js +1 -1
  84. package/dist/esm/bcm-switch.entry.js +1 -1
  85. package/dist/esm/bcm-tabs-content.entry.js +1 -1
  86. package/dist/esm/bcm-tabs-list.entry.js +1 -1
  87. package/dist/esm/bcm-tabs-trigger.entry.js +1 -1
  88. package/dist/esm/bcm-tabs.entry.js +1 -1
  89. package/dist/esm/bcm-textarea.entry.js +1 -1
  90. package/dist/esm/bcm-tooltip.entry.js +1 -1
  91. package/dist/esm/bromcom-ui.js +3 -3
  92. package/dist/esm/{index-CrZxEeDA.js → index-B84DzIAh.js} +3 -3
  93. package/dist/esm/index-B84DzIAh.js.map +1 -0
  94. package/dist/esm/loader.js +3 -3
  95. package/dist/types/styles/theme-variables.d.ts +3 -0
  96. package/package.json +1 -1
  97. package/dist/bromcom-ui/bcm-button.entry.esm.js.map +0 -1
  98. package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +0 -1
  99. package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +0 -1
  100. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +0 -1
  101. package/dist/bromcom-ui/bcm-input.entry.esm.js.map +0 -1
  102. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  103. package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +0 -1
  104. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +0 -1
  105. package/dist/bromcom-ui/p-4d980154.entry.js +0 -2
  106. package/dist/bromcom-ui/p-4d980154.entry.js.map +0 -1
  107. package/dist/bromcom-ui/p-75d1117d.entry.js +0 -2
  108. package/dist/bromcom-ui/p-75d1117d.entry.js.map +0 -1
  109. package/dist/bromcom-ui/p-813e7ebe.entry.js +0 -2
  110. package/dist/bromcom-ui/p-813e7ebe.entry.js.map +0 -1
  111. package/dist/bromcom-ui/p-87e7e02a.entry.js +0 -2
  112. package/dist/bromcom-ui/p-87e7e02a.entry.js.map +0 -1
  113. package/dist/bromcom-ui/p-9bf8f3c1.entry.js +0 -2
  114. package/dist/bromcom-ui/p-9bf8f3c1.entry.js.map +0 -1
  115. package/dist/bromcom-ui/p-CrZxEeDA.js.map +0 -1
  116. package/dist/bromcom-ui/p-ab1f24b4.entry.js +0 -2
  117. package/dist/bromcom-ui/p-ab1f24b4.entry.js.map +0 -1
  118. package/dist/bromcom-ui/p-c8307ce4.entry.js +0 -2
  119. package/dist/bromcom-ui/p-c8307ce4.entry.js.map +0 -1
  120. package/dist/bromcom-ui/p-c86d4b07.entry.js +0 -2
  121. package/dist/bromcom-ui/p-c86d4b07.entry.js.map +0 -1
  122. package/dist/cjs/bcm-button.cjs.entry.js +0 -316
  123. package/dist/cjs/bcm-button.cjs.entry.js.map +0 -1
  124. package/dist/cjs/bcm-button.entry.cjs.js.map +0 -1
  125. package/dist/cjs/bcm-drawer.cjs.entry.js +0 -206
  126. package/dist/cjs/bcm-drawer.cjs.entry.js.map +0 -1
  127. package/dist/cjs/bcm-drawer.entry.cjs.js.map +0 -1
  128. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +0 -61
  129. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  130. package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +0 -1
  131. package/dist/cjs/bcm-dropdown.cjs.entry.js +0 -54
  132. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  133. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +0 -1
  134. package/dist/cjs/bcm-input.cjs.entry.js +0 -315
  135. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  136. package/dist/cjs/bcm-input.entry.cjs.js.map +0 -1
  137. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  138. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  139. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  140. package/dist/cjs/bcm-shortcut.cjs.entry.js +0 -50
  141. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  142. package/dist/cjs/bcm-shortcut.entry.cjs.js.map +0 -1
  143. package/dist/cjs/bcm-text.cjs.entry.js +0 -124
  144. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  145. package/dist/cjs/bcm-text.entry.cjs.js.map +0 -1
  146. package/dist/cjs/index-DFpZVb11.js.map +0 -1
  147. package/dist/esm/bcm-button.entry.js +0 -314
  148. package/dist/esm/bcm-button.entry.js.map +0 -1
  149. package/dist/esm/bcm-drawer.entry.js +0 -204
  150. package/dist/esm/bcm-drawer.entry.js.map +0 -1
  151. package/dist/esm/bcm-dropdown-item.entry.js +0 -59
  152. package/dist/esm/bcm-dropdown-item.entry.js.map +0 -1
  153. package/dist/esm/bcm-dropdown.entry.js +0 -52
  154. package/dist/esm/bcm-dropdown.entry.js.map +0 -1
  155. package/dist/esm/bcm-input.entry.js +0 -313
  156. package/dist/esm/bcm-input.entry.js.map +0 -1
  157. package/dist/esm/bcm-linked.entry.js +0 -341
  158. package/dist/esm/bcm-linked.entry.js.map +0 -1
  159. package/dist/esm/bcm-shortcut.entry.js +0 -48
  160. package/dist/esm/bcm-shortcut.entry.js.map +0 -1
  161. package/dist/esm/bcm-text.entry.js +0 -122
  162. package/dist/esm/bcm-text.entry.js.map +0 -1
  163. package/dist/esm/index-CrZxEeDA.js.map +0 -1
  164. /package/dist/bromcom-ui/{p-778c0de1.entry.js.map → p-0213e9e8.entry.js.map} +0 -0
  165. /package/dist/bromcom-ui/{p-361073bc.entry.js.map → p-188bc34d.entry.js.map} +0 -0
  166. /package/dist/bromcom-ui/{p-3866ae3e.entry.js.map → p-2cce1424.entry.js.map} +0 -0
  167. /package/dist/bromcom-ui/{p-90b65db8.entry.js.map → p-2f517bd8.entry.js.map} +0 -0
  168. /package/dist/bromcom-ui/{p-3fbed81b.entry.js.map → p-4766474f.entry.js.map} +0 -0
  169. /package/dist/bromcom-ui/{p-62c14cc4.entry.js.map → p-4f0851e2.entry.js.map} +0 -0
  170. /package/dist/bromcom-ui/{p-07b05abd.entry.js.map → p-5c1b22b5.entry.js.map} +0 -0
  171. /package/dist/bromcom-ui/{p-813cffad.entry.js.map → p-5da9360c.entry.js.map} +0 -0
  172. /package/dist/bromcom-ui/{p-e91676ff.entry.js.map → p-5e47b56d.entry.js.map} +0 -0
  173. /package/dist/bromcom-ui/{p-50505dd6.entry.js.map → p-6c2441a1.entry.js.map} +0 -0
  174. /package/dist/bromcom-ui/{p-7d366ff2.entry.js.map → p-7560f0e9.entry.js.map} +0 -0
  175. /package/dist/bromcom-ui/{p-67f62d75.entry.js.map → p-84b1e52c.entry.js.map} +0 -0
  176. /package/dist/bromcom-ui/{p-e00fa939.entry.js.map → p-88d35bcf.entry.js.map} +0 -0
  177. /package/dist/bromcom-ui/{p-a8b66a90.entry.js.map → p-8fd1a05d.entry.js.map} +0 -0
  178. /package/dist/bromcom-ui/{p-b566bad4.entry.js.map → p-96aba34c.entry.js.map} +0 -0
  179. /package/dist/bromcom-ui/{p-fdc1df0c.entry.js.map → p-a26619e4.entry.js.map} +0 -0
  180. /package/dist/bromcom-ui/{p-9293a2ce.entry.js.map → p-b02f5178.entry.js.map} +0 -0
  181. /package/dist/bromcom-ui/{p-2d3a0ad4.entry.js.map → p-c9683df3.entry.js.map} +0 -0
  182. /package/dist/bromcom-ui/{p-319d3937.entry.js.map → p-cf9dd0fc.entry.js.map} +0 -0
  183. /package/dist/bromcom-ui/{p-6fa6b826.entry.js.map → p-d04246f0.entry.js.map} +0 -0
  184. /package/dist/bromcom-ui/{p-a4ace572.entry.js.map → p-dd9ec481.entry.js.map} +0 -0
  185. /package/dist/bromcom-ui/{p-378bf83e.entry.js.map → p-e500e6d1.entry.js.map} +0 -0
  186. /package/dist/bromcom-ui/{p-45158141.entry.js.map → p-ead5a030.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["checkSlotContent","element","slotName","slot","_a","shadowRoot","querySelector","assignedNodes","length","inputCss","BcmInput","constructor","hostRef","this","isFocused","isValid","internalStatus","isPasswordVisible","value","_id","generateId","size","status","fullWidth","type","disabled","readonly","required","useNativeValidation","onInput","event","input","target","bcmInput","emit","validateInput","onChange","bcmChange","onFocus","bcmFocus","onBlur","bcmBlur","onKeyDown","bcmKeyDown","onKeyUp","bcmKeyUp","styleClass","tv","slots","base","inputClass","variants","small","medium","large","default","error","success","warning","info","true","false","focused","defaultVariants","twMerge","togglePasswordVisibility","inputRef","PasswordToggleButton","h","class","onClick","name","iconSize","handleValueChange","newValue","watchStatus","watchErrorMessage","internalErrorMessage","setFocus","focus","setBlur","blur","select","setLocale","locale","messages","setValidationMessages","componentWillLoad","defaultValidationMessages","errorMessage","validationMessage","getValidationMessage","minLength","min","maxLength","max","pattern","RegExp","test","numValue","parseFloat","undefined","hasSlotContent","el","getDefaultIconForType","render","inputId","key","label","classNames","htmlFor","prefixIcon","ref","id","placeholder","autocomplete","minlength","maxlength","step","labelledby","describedby","suffixIcon","captionText"],"sources":["src/utils/slot/check-slot-content.ts","src/components/input/input.scss?tag=bcm-input&encapsulation=shadow","src/components/input/input.component.tsx"],"sourcesContent":["/**\n * Checks if a named slot has any content\n * @param element - The host element (component instance)\n * @param slotName - Name of the slot to check\n * @returns boolean indicating if the slot has any assigned nodes\n */\nexport const checkSlotContent = (element: HTMLElement, slotName: string): boolean => {\n const slot = element.shadowRoot?.querySelector(`slot[name=\"${slotName}\"]`) as HTMLSlotElement;\n if (!slot) return false;\n\n const assignedNodes = slot.assignedNodes();\n return assignedNodes.length > 0;\n};\n",":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, InputType } from './types';\nimport { tv } from '@utils/tv';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\nimport { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-input',\n styleUrl: 'input.scss',\n shadow: true,\n})\nexport class BcmInput {\n @Element() el: HTMLElement;\n private inputRef: HTMLInputElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n @State() isPasswordVisible = false;\n\n /** Input value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Input placeholder text */\n @Prop()\n placeholder?: string;\n\n /** Input name */\n @Prop()\n name?: string;\n\n /** Input id */\n @Prop({ attribute: 'id', reflect: true })\n _id?: string = generateId('input');\n\n /** Controls the input size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the input's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width input */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML input type */\n @Prop()\n type: InputType = 'text';\n\n /** Whether the input is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the input is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the input is required */\n @Prop()\n required = false;\n\n /** Input autocomplete attribute */\n @Prop()\n autocomplete?: string;\n\n /** Min length for text input */\n @Prop()\n minLength?: number;\n\n /** Max length for text input */\n @Prop()\n maxLength?: number;\n\n /** Min value for number input */\n @Prop()\n min?: number;\n\n /** Max value for number input */\n @Prop()\n max?: number;\n\n /** Step value for number input */\n @Prop()\n step?: number;\n\n /** Pattern for validation */\n @Prop()\n pattern?: string;\n\n /** Input label for accessibility */\n @Prop()\n label?: string;\n\n /** Error message to display */\n @Prop()\n errorMessage?: string;\n\n /** Caption text to display below input */\n @Prop()\n captionText?: string;\n\n /** ID of associated label element */\n @Prop()\n labelledby?: string;\n\n /** ID of associated caption/error text element */\n @Prop()\n describedby?: string;\n\n /** Prefix icon class name */\n @Prop()\n prefixIcon?: string;\n\n /** Suffix icon class name */\n @Prop()\n suffixIcon?: string;\n\n /** Whether to use native form validation\n * If false, component will handle validation internally\n */\n @Prop()\n useNativeValidation = true;\n\n /** Custom validation function */\n @Prop()\n validator?: (value: string) => string | undefined;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmInput: EventEmitter<InputEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<Event>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyDown: EventEmitter<KeyboardEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyUp: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (this.inputRef) {\n this.inputRef.value = newValue;\n }\n }\n\n @Watch('status')\n watchStatus(newValue: InputStatus) {\n this.internalStatus = newValue;\n }\n\n @Watch('errorMessage')\n watchErrorMessage(newValue: string) {\n this.internalErrorMessage = newValue;\n }\n\n @Method()\n async setFocus() {\n this.inputRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.inputRef?.blur();\n }\n\n @Method()\n async select() {\n this.inputRef?.select();\n }\n\n /** Sets locale and messages for all inputs */\n @Method()\n async setLocale(locale: string, messages: Record<string, string>) {\n // Set messages and update validation immediately\n setValidationMessages(locale, messages);\n\n // Mevcut validasyon mesajını güncelle\n if (!this.isValid) {\n this.validateInput();\n }\n }\n\n componentWillLoad() {\n // I18n için default mesajları set et\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n private validateInput(): void {\n if (!this.inputRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.inputRef.value;\n\n // Required check\n if (this.required && !value) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('required');\n this.internalStatus = 'error';\n this.internalErrorMessage = this.validationMessage;\n return;\n }\n\n // Minimum length check\n else if (this.minLength && value.length < this.minLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('minlength', { min: this.minLength });\n }\n // Maximum length check\n else if (this.maxLength && value.length > this.maxLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('maxlength', { max: this.maxLength });\n }\n // Pattern check\n else if (this.pattern && !new RegExp(this.pattern).test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('pattern');\n }\n // Email check\n else if (this.type === 'email' && value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('email');\n }\n // Number range check\n else if (this.type === 'number' && value) {\n const numValue = parseFloat(value);\n if (this.min !== undefined && numValue < this.min) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('min', { min: this.min });\n } else if (this.max !== undefined && numValue > this.max) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('max', { max: this.max });\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\n }\n\n private onInput = (event: InputEvent) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.bcmInput.emit(event);\n this.validateInput();\n };\n\n private onChange = (event: Event) => {\n this.bcmChange.emit(event);\n };\n\n private onFocus = (event: FocusEvent) => {\n this.isFocused = true;\n this.bcmFocus.emit(event);\n };\n\n private onBlur = (event: FocusEvent) => {\n this.isFocused = false;\n this.bcmBlur.emit(event);\n this.validateInput();\n };\n\n private onKeyDown = (event: KeyboardEvent) => {\n this.bcmKeyDown.emit(event);\n };\n\n private onKeyUp = (event: KeyboardEvent) => {\n this.bcmKeyUp.emit(event);\n };\n\n private hasSlotContent(slotName: string): boolean {\n return checkSlotContent(this.el, slotName);\n }\n\n private styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-input bcm-input__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'text-[--bcm-ui-color-text-default]',\n 'border border-solid rounded',\n 'flex items-center justify-between',\n 'transition-colors duration-200',\n 'px-2',\n ],\n inputClass: [\n 'input',\n 'w-full flex-1',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none text-ellipsis',\n 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',\n 'font-sans antialiased font-medium',\n 'px-1',\n '[appearance:textfield][&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n ],\n },\n variants: {\n size: {\n small: {\n base: '',\n inputClass: 'text-size-4 py-px',\n },\n medium: {\n base: '',\n inputClass: 'text-size-5 leading-6 py-1',\n },\n large: {\n base: '',\n inputClass: 'text-size-6 py-2',\n },\n },\n status: {\n default: {\n base: ['border-[--bcm-ui-color-border-default]', 'hover:border-[--bcm-ui-color-border-primary]', 'has-[:focus]:border-[--bcm-ui-color-border-primary]'],\n },\n error: {\n base: ['border-[--bcm-ui-color-border-error]', 'hover:border-[--bcm-ui-color-border-error]', 'has-[:focus]:border-[--bcm-ui-color-border-error]'],\n },\n success: {\n base: ['border-[--bcm-ui-color-border-success]', 'hover:border-[--bcm-ui-color-border-success]', 'has-[:focus]:border-[--bcm-ui-color-border-success]'],\n },\n warning: {\n base: ['border-[--bcm-ui-color-border-warning]', 'hover:border-[--bcm-ui-color-border-warning]', 'has-[:focus]:border-[--bcm-ui-color-border-warning]'],\n },\n info: {\n base: ['border-[--bcm-ui-color-border-info]', 'hover:border-[--bcm-ui-color-border-info]', 'has-[:focus]:border-[--bcm-ui-color-border-info]'],\n },\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed',\n false: '',\n },\n focused: {\n true: {\n base: '',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n status: 'default',\n fullWidth: false,\n disabled: false,\n focused: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n private getDefaultIconForType(): string | undefined {\n return; // TODO: Will be implemented later\n // return defaultIcons[this.type as keyof typeof defaultIcons];\n }\n\n private togglePasswordVisibility = () => {\n this.isPasswordVisible = !this.isPasswordVisible;\n this.inputRef.type = this.isPasswordVisible ? 'text' : 'password';\n };\n\n private PasswordToggleButton = () => {\n if (this.type !== 'password' || this.disabled || this.readonly || this.value?.length === 0) return null;\n return (\n <button class=\"appearance-none flex items-center w-6 h-full justify-center\" onClick={this.togglePasswordVisibility} type=\"button\">\n <bcm-icon name={this.isPasswordVisible ? 'fa-eye-slash fa-regular' : 'fa-regular fa-eye'} size={this.iconSize}></bcm-icon>\n </button>\n );\n };\n\n private iconSize = {\n small: 14,\n medium: 16,\n large: 18,\n }[this.size];\n\n render() {\n const inputId = this._id + '-input' || this.name;\n\n const { base, inputClass } = this.styleClass({\n size: this.size,\n status: this.internalStatus,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n focused: this.isFocused,\n });\n\n return (\n <div class=\"bcm-ui-element\">\n {this.label && (\n <label\n class={classNames(\n 'input-label font-medium',\n {\n 'text-color-label': !this.disabled,\n 'text-color-disabled': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n htmlFor={inputId}\n >\n <slot name=\"label\">{this.label}</slot>\n {this.required && <span>*</span>}\n </label>\n )}\n\n <div class={base()}>\n {(this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (\n <div class=\"flex items-center gap-2 px-2\">\n {(this.prefixIcon || this.getDefaultIconForType()) && (\n <bcm-icon class=\"prefix-icon\" icon-name={this.prefixIcon || this.getDefaultIconForType()} size={this.iconSize}></bcm-icon>\n )}\n <slot name=\"prefix\"></slot>\n </div>\n )}\n <input\n ref={el => (this.inputRef = el)}\n id={inputId}\n class={inputClass()}\n type={this.type}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n placeholder={this.placeholder}\n autocomplete={this.autocomplete}\n minlength={this.minLength}\n maxlength={this.maxLength}\n min={this.min}\n max={this.max}\n step={this.step}\n pattern={this.pattern}\n aria-invalid={this.status === 'error'}\n aria-required={this.required}\n aria-labelledby={this.labelledby}\n aria-describedby={this.describedby}\n value={this.value}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n />\n {(this.hasSlotContent('suffix') || this.suffixIcon) && (\n <div class=\"flex items-center gap-2 px-2\">\n <slot name=\"suffix\"></slot>\n {this.suffixIcon && <bcm-icon class=\"suffix-icon\" icon-name={this.suffixIcon} size={this.iconSize}></bcm-icon>}\n </div>\n )}\n {/* {this.type === 'password' && this.value?.length > 0 && !this.disabled && ( \n // <bcm-icon\n // class=\"password-toggle-icon cursor-pointer\"\n // icon-name={this.isPasswordVisible ? 'fa-regular fa-eye-slash' : 'fa-regular fa-eye'}\n // size={iconSize}\n // onClick={this.togglePasswordVisibility}\n // ></bcm-icon>\n // )}*/}\n {this.PasswordToggleButton()}\n </div>\n {(this.captionText || this.internalErrorMessage || this.validationMessage) && (\n <div\n class={classNames(\n 'input-caption-text font-regular mt-1',\n {\n 'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',\n 'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),\n 'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',\n 'text-[--bcm-ui-color-text-warning]': !this.disabled && this.internalStatus === 'warning',\n 'text-[--bcm-ui-color-text-info]': !this.disabled && this.internalStatus === 'info',\n 'text-[--bcm-ui-color-text-disabled]': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n >\n {!this.isValid ? this.validationMessage : this.internalStatus === 'error' ? this.internalErrorMessage : this.captionText}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as a,a as r}from"./p-CrZxEeDA.js";import{t as o}from"./p-CEcVC0yX.js";const s=".contents{display:contents}:host{display:contents}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.w-6{width:1.5rem}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-y-auto{overflow-y:auto}.border-none{border-style:none}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.bg-color-transparent{background-color:var(--bcm-ui-color-background-transparent-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.active\\:bg-color-default-active:active{background-color:var(--bcm-ui-color-background-default-active)}";const i=class{constructor(a){t(this,a);this.bcmOpen=e(this,"bcmOpen",7);this.bcmClose=e(this,"bcmClose",7);this.bcmBeforeOpen=e(this,"bcmBeforeOpen",7);this.bcmBeforeClose=e(this,"bcmBeforeClose",7);this.open=false;this.size="medium";this.position="right";this.fullWidth=false;this.noHeader=false;this.drawerClass=o({slots:{backdrop:"fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300",wrapper:"bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col",header:"flex justify-between items-center bg-color-default text-color-default",title:"font-semibold m-0 text-size-6",closeButton:"text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active",content:"overflow-y-auto flex-grow"},variants:{open:{true:{backdrop:"opacity-100 visible"},false:{backdrop:"opacity-0 invisible"}},position:{left:{wrapper:"top-0 left-0 bottom-0"},right:{wrapper:"top-0 right-0 bottom-0"},top:{wrapper:"top-0 left-0 right-0"},bottom:{wrapper:"bottom-0 left-0 right-0"}},size:{small:{header:"py-3 px-4",content:"p-4"},medium:{header:"py-3 px-4",content:"p-4"},large:{header:"py-3 px-4",content:"p-4"}},noHeader:{true:{header:"hidden"}}},compoundVariants:[{open:true,position:["left","right"],class:{wrapper:"translate-x-0"}},{open:true,position:["top","bottom"],class:{wrapper:"translate-y-0"}},{open:false,position:"left",class:{wrapper:"-translate-x-full"}},{open:false,position:"right",class:{wrapper:"translate-x-full"}},{open:false,position:"top",class:{wrapper:"-translate-y-full"}},{open:false,position:"bottom",class:{wrapper:"translate-y-full"}}]})}handleOpenChange(t){if(t){document.body.style.overflow="hidden";this.bcmOpen.emit()}else{document.body.style.overflow="";this.bcmClose.emit()}}handleKeyDown(t){if(t.key==="Escape"&&this.open){this.hide()}}async show(){const t=this.bcmBeforeOpen.emit();if(!t.defaultPrevented){this.open=true}}async hide(){const t=this.bcmBeforeClose.emit();if(!t.defaultPrevented){this.open=false}}disconnectedCallback(){document.body.style.overflow=""}getWrapperStyle(){const t={};if(this.fullWidth){if(this.position==="left"||this.position==="right"){t.width="100vw"}else{t.height="100vh"}return t}if(this.position==="left"||this.position==="right"){switch(this.size){case"small":t.width="320px";break;case"medium":t.width="480px";break;case"large":t.width="1064px";break}}else{switch(this.size){case"small":t.height="40vh";break;case"medium":t.height="60vh";break;case"large":t.height="90vh";break}}return t}render(){const{backdrop:t,wrapper:e,header:r,title:o,closeButton:s,content:i}=this.drawerClass({open:this.open,position:this.position,size:this.size,noHeader:this.noHeader});return a("div",{key:"44379905f1499a16d625ac4d1ff5e89fc6367d46",part:"base"},a("div",{key:"bc53e5322a61cd4af0691905c509d4c5fb765939",part:"backdrop",class:t(),onClick:()=>this.hide()}),a("div",{key:"d5a666671d24b2f3b55b7462b5218a3e11358982",part:"wrapper",class:e(),style:this.getWrapperStyle(),role:"dialog","aria-modal":"true","aria-hidden":!this.open?"true":"false","aria-label":this.headerText},a("div",{key:"5124de9d7fa8f3aa7267f0998f4c4f98f3ebbc4a",part:"header",class:r()},a("h2",{key:"8aa4b971efa9fe0fafa1cfb94f0b6b96f21f2f15",part:"title",class:o()},a("slot",{key:"949ae8f65d13e9e1c973c16a9f90205ac7e7042f",name:"header"},this.headerText)),a("button",{key:"a0c42761ee859e87dee5c267ea7245dde4fb8756",part:"close-button",class:s(),onClick:()=>this.hide(),"aria-label":"Close"},a("bcm-icon",{key:"2df273d63da93eda2280759a909906fe4ae0c493",name:"fa-solid fa-xmark"}))),a("div",{key:"b2532537d10f9aa0dcfa2fca8ac806577363e05b",part:"content",class:i()},a("slot",{key:"bfec5cff35a7bf7bf1d9801ba89559501e6f301f"})),a("div",{key:"4d44fdba62c74fd5c893c5296f998754228cf961",part:"footer"},a("slot",{key:"fd0a58127fd2f0ba0955cef629e55700142a8f32",name:"footer"}))))}get host(){return r(this)}static get watchers(){return{open:["handleOpenChange"]}}};i.style=s;export{i as bcm_drawer};
2
- //# sourceMappingURL=p-9bf8f3c1.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["drawerCss","BcmDrawer","constructor","hostRef","this","open","size","position","fullWidth","noHeader","drawerClass","tv","slots","backdrop","wrapper","header","title","closeButton","content","variants","true","false","left","right","top","bottom","small","medium","large","compoundVariants","class","handleOpenChange","isOpen","document","body","style","overflow","bcmOpen","emit","bcmClose","handleKeyDown","event","key","hide","show","bcmBeforeOpen","defaultPrevented","bcmBeforeClose","disconnectedCallback","getWrapperStyle","width","height","render","h","part","onClick","role","headerText","name"],"sources":["src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAY,6xG,MCSLC,EAAS,MALtB,WAAAC,CAAAC,G,0KAQ0CC,KAAIC,KAAY,MAChDD,KAAIE,KAAe,SACnBF,KAAQG,SAAmB,QACAH,KAASI,UAAY,MAEtBJ,KAAQK,SAAY,MAO9CL,KAAWM,YAAGC,EAAG,CACvBC,MAAO,CACLC,SAAU,0EACVC,QAAS,mIACTC,OAAQ,wEACRC,MAAO,gCACPC,YAAa,+JACbC,QAAS,6BAEXC,SAAU,CACRd,KAAM,CACJe,KAAM,CACJP,SAAU,uBAEZQ,MAAO,CACLR,SAAU,wBAGdN,SAAU,CACRe,KAAM,CACJR,QAAS,yBAEXS,MAAO,CACLT,QAAS,0BAEXU,IAAK,CACHV,QAAS,wBAEXW,OAAQ,CACNX,QAAS,4BAGbR,KAAM,CACJoB,MAAO,CACLX,OAAQ,YACRG,QAAS,OAEXS,OAAQ,CACNZ,OAAQ,YACRG,QAAS,OAEXU,MAAO,CACLb,OAAQ,YACRG,QAAS,QAGbT,SAAU,CACRW,KAAM,CACJL,OAAQ,YAIdc,iBAAkB,CAChB,CACExB,KAAM,KACNE,SAAU,CAAC,OAAQ,SACnBuB,MAAO,CACLhB,QAAS,kBAGb,CACET,KAAM,KACNE,SAAU,CAAC,MAAO,UAClBuB,MAAO,CACLhB,QAAS,kBAGb,CACET,KAAM,MACNE,SAAU,OACVuB,MAAO,CACLhB,QAAS,sBAGb,CACET,KAAM,MACNE,SAAU,QACVuB,MAAO,CACLhB,QAAS,qBAGb,CACET,KAAM,MACNE,SAAU,MACVuB,MAAO,CACLhB,QAAS,sBAGb,CACET,KAAM,MACNE,SAAU,SACVuB,MAAO,CACLhB,QAAS,uBA2HlB,CApHC,gBAAAiB,CAAiBC,GACf,GAAIA,EAAQ,CACVC,SAASC,KAAKC,MAAMC,SAAW,SAC/BhC,KAAKiC,QAAQC,M,KACR,CACLL,SAASC,KAAKC,MAAMC,SAAW,GAC/BhC,KAAKmC,SAASD,M,EAKlB,aAAAE,CAAcC,GACZ,GAAIA,EAAMC,MAAQ,UAAYtC,KAAKC,KAAM,CACvCD,KAAKuC,M,EAKT,UAAMC,GACJ,MAAMH,EAAQrC,KAAKyC,cAAcP,OACjC,IAAKG,EAAMK,iBAAkB,CAC3B1C,KAAKC,KAAO,I,EAKhB,UAAMsC,GACJ,MAAMF,EAAQrC,KAAK2C,eAAeT,OAClC,IAAKG,EAAMK,iBAAkB,CAC3B1C,KAAKC,KAAO,K,EAIhB,oBAAA2C,GACEf,SAASC,KAAKC,MAAMC,SAAW,E,CAGzB,eAAAa,GACN,MAAMd,EAAmC,GAEzC,GAAI/B,KAAKI,UAAW,CAClB,GAAIJ,KAAKG,WAAa,QAAUH,KAAKG,WAAa,QAAS,CACzD4B,EAAMe,MAAQ,O,KACT,CACLf,EAAMgB,OAAS,O,CAEjB,OAAOhB,C,CAGT,GAAI/B,KAAKG,WAAa,QAAUH,KAAKG,WAAa,QAAS,CACzD,OAAQH,KAAKE,MACX,IAAK,QACH6B,EAAMe,MAAQ,QACd,MACF,IAAK,SACHf,EAAMe,MAAQ,QACd,MACF,IAAK,QACHf,EAAMe,MAAQ,SACd,M,KAEC,CACL,OAAQ9C,KAAKE,MACX,IAAK,QACH6B,EAAMgB,OAAS,OACf,MACF,IAAK,SACHhB,EAAMgB,OAAS,OACf,MACF,IAAK,QACHhB,EAAMgB,OAAS,OACf,M,CAIN,OAAOhB,C,CAGT,MAAAiB,GACE,MAAMvC,SAAEA,EAAQC,QAAEA,EAAOC,OAAEA,EAAMC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GAAYd,KAAKM,YAAY,CAClFL,KAAMD,KAAKC,KACXE,SAAUH,KAAKG,SACfD,KAAMF,KAAKE,KACXG,SAAUL,KAAKK,WAGjB,OACE4C,EAAA,OAAAX,IAAA,2CAAKY,KAAK,QACRD,EAAA,OAAAX,IAAA,2CAAKY,KAAK,WAAWxB,MAAOjB,IAAY0C,QAAS,IAAMnD,KAAKuC,SAC5DU,EAAA,OAAAX,IAAA,2CACEY,KAAK,UACLxB,MAAOhB,IACPqB,MAAO/B,KAAK6C,kBACZO,KAAK,SAAQ,aACF,OACE,eAACpD,KAAKC,KAAO,OAAS,QACvB,aAAAD,KAAKqD,YAEjBJ,EAAA,OAAAX,IAAA,2CAAKY,KAAK,SAASxB,MAAOf,KACxBsC,EAAA,MAAAX,IAAA,2CAAIY,KAAK,QAAQxB,MAAOd,KACtBqC,EAAM,QAAAX,IAAA,2CAAAgB,KAAK,UAAUtD,KAAKqD,aAE5BJ,EAAA,UAAAX,IAAA,2CAAQY,KAAK,eAAexB,MAAOb,IAAesC,QAAS,IAAMnD,KAAKuC,OAAM,aAAa,SACvFU,EAAA,YAAAX,IAAA,2CAAUgB,KAAK,wBAGnBL,EAAA,OAAAX,IAAA,2CAAKY,KAAK,UAAUxB,MAAOZ,KACzBmC,EAAA,QAAAX,IAAA,8CAEFW,EAAK,OAAAX,IAAA,2CAAAY,KAAK,UACRD,EAAM,QAAAX,IAAA,2CAAAgB,KAAK,a","ignoreList":[]}