bromcom-ui-next 0.1.2 → 0.1.4

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 (209) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  4. package/dist/bromcom-ui/global/global.js +14 -15
  5. package/dist/bromcom-ui/p-04f6d730.entry.js +2 -0
  6. package/dist/bromcom-ui/p-04f6d730.entry.js.map +1 -0
  7. package/dist/bromcom-ui/{p-b36f4f44.js → p-12360e4c.js} +1 -1
  8. package/dist/bromcom-ui/p-15fe392b.js +3 -0
  9. package/dist/bromcom-ui/p-15fe392b.js.map +1 -0
  10. package/dist/bromcom-ui/p-1b11150b.entry.js +2 -0
  11. package/dist/bromcom-ui/p-1b11150b.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-1d86c1cf.entry.js +2 -0
  13. package/dist/bromcom-ui/p-1d86c1cf.entry.js.map +1 -0
  14. package/dist/bromcom-ui/p-31354aaa.js +2 -0
  15. package/dist/bromcom-ui/p-31354aaa.js.map +1 -0
  16. package/dist/bromcom-ui/p-3b607038.entry.js +2 -0
  17. package/dist/bromcom-ui/p-3b607038.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-5d0838e9.entry.js +2 -0
  19. package/dist/bromcom-ui/p-5d0838e9.entry.js.map +1 -0
  20. package/dist/bromcom-ui/p-729a870f.js +2 -0
  21. package/dist/bromcom-ui/p-729a870f.js.map +1 -0
  22. package/dist/bromcom-ui/p-a590f793.entry.js +2 -0
  23. package/dist/bromcom-ui/p-a590f793.entry.js.map +1 -0
  24. package/dist/bromcom-ui/p-cd437280.entry.js +2 -0
  25. package/dist/bromcom-ui/p-cd437280.entry.js.map +1 -0
  26. package/dist/bromcom-ui/p-dcea8d62.entry.js +2 -0
  27. package/dist/bromcom-ui/{p-0a74cf15.entry.js.map → p-dcea8d62.entry.js.map} +1 -1
  28. package/dist/bromcom-ui/p-ebed10d5.entry.js +2 -0
  29. package/dist/bromcom-ui/{p-2d836917.entry.js.map → p-ebed10d5.entry.js.map} +1 -1
  30. package/dist/cjs/app-globals-29edfda4.js +39 -0
  31. package/dist/cjs/app-globals-29edfda4.js.map +1 -0
  32. package/dist/cjs/bcm-accordion-group.cjs.entry.js +92 -0
  33. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -0
  34. package/dist/cjs/bcm-accordion.cjs.entry.js +128 -0
  35. package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -0
  36. package/dist/cjs/bcm-alert.cjs.entry.js +2 -2
  37. package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -1
  38. package/dist/cjs/bcm-avatar_4.cjs.entry.js +577 -0
  39. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -0
  40. package/dist/cjs/bcm-chip.cjs.entry.js +130 -0
  41. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -0
  42. package/dist/cjs/bcm-divider.cjs.entry.js +81 -0
  43. package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -0
  44. package/dist/cjs/bcm-input.cjs.entry.js +313 -0
  45. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -0
  46. package/dist/cjs/bcm-text.cjs.entry.js +4 -4
  47. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
  48. package/dist/cjs/bcm-textarea.cjs.entry.js +316 -0
  49. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -0
  50. package/dist/cjs/bromcom-ui.cjs.js +3 -3
  51. package/dist/cjs/{index-638f2d15.js → index-4795c073.js} +43 -5
  52. package/dist/cjs/index-4795c073.js.map +1 -0
  53. package/dist/{components/p-b36f4f44.js → cjs/index-5a88e57b.js} +5 -3
  54. package/dist/cjs/{index-a4eea4bb.js.map → index-5a88e57b.js.map} +1 -1
  55. package/dist/cjs/loader.cjs.js +3 -3
  56. package/dist/cjs/validation-messages-c36e5c31.js +134 -0
  57. package/dist/cjs/validation-messages-c36e5c31.js.map +1 -0
  58. package/dist/collection/collection-manifest.json +6 -1
  59. package/dist/collection/components/accordion/accordion.component.js +5 -5
  60. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  61. package/dist/collection/components/accordion/accordion.css +1 -1
  62. package/dist/collection/components/accordion-group/accordion-group.component.js +1 -1
  63. package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
  64. package/dist/collection/components/accordion-group/accordion-group.css +1 -1
  65. package/dist/collection/components/alert/alert.css +1 -1
  66. package/dist/collection/components/avatar/avatar.component.js.map +1 -1
  67. package/dist/collection/components/avatar/avatar.css +1 -1
  68. package/dist/collection/components/badge/badge.component.js +373 -0
  69. package/dist/collection/components/badge/badge.component.js.map +1 -0
  70. package/dist/collection/components/badge/badge.css +1 -0
  71. package/dist/collection/components/basic-badge/basic-badge.component.js +236 -0
  72. package/dist/collection/components/basic-badge/basic-badge.component.js.map +1 -0
  73. package/dist/collection/components/basic-badge/basic-badge.css +1 -0
  74. package/dist/collection/components/button/button.component.js +3 -3
  75. package/dist/collection/components/button/button.component.js.map +1 -1
  76. package/dist/collection/components/button/button.css +1 -1
  77. package/dist/collection/components/chip/chip.component.js +2 -2
  78. package/dist/collection/components/chip/chip.component.js.map +1 -1
  79. package/dist/collection/components/chip/chip.css +1 -1
  80. package/dist/collection/components/divider/divider.component.js +190 -0
  81. package/dist/collection/components/divider/divider.component.js.map +1 -0
  82. package/dist/collection/components/divider/divider.css +1 -0
  83. package/dist/collection/components/input/input.component.js +1050 -0
  84. package/dist/collection/components/input/input.component.js.map +1 -0
  85. package/dist/collection/components/input/input.css +2 -0
  86. package/dist/collection/components/input/types.js +11 -0
  87. package/dist/collection/components/input/types.js.map +1 -0
  88. package/dist/collection/components/text/text.component.js +1 -1
  89. package/dist/collection/components/text/text.css +1 -1
  90. package/dist/collection/components/textarea/textarea.component.js +1013 -0
  91. package/dist/collection/components/textarea/textarea.component.js.map +1 -0
  92. package/dist/collection/components/textarea/textarea.css +2 -0
  93. package/dist/collection/components/textarea/types.js +2 -0
  94. package/dist/collection/components/textarea/types.js.map +1 -0
  95. package/dist/collection/global/global.js +14 -15
  96. package/dist/collection/utils/i18n.js +29 -0
  97. package/dist/collection/utils/i18n.js.map +1 -0
  98. package/dist/collection/utils/id/generate-id.js +16 -0
  99. package/dist/collection/utils/id/generate-id.js.map +1 -0
  100. package/dist/collection/utils/slot/check-slot-content.js +15 -0
  101. package/dist/collection/utils/slot/check-slot-content.js.map +1 -0
  102. package/dist/collection/utils/validation-messages.js +17 -0
  103. package/dist/collection/utils/validation-messages.js.map +1 -0
  104. package/dist/components/bcm-accordion-group.js +3 -3
  105. package/dist/components/bcm-accordion-group.js.map +1 -1
  106. package/dist/components/bcm-accordion.js +7 -7
  107. package/dist/components/bcm-accordion.js.map +1 -1
  108. package/dist/components/bcm-alert.js +2 -2
  109. package/dist/components/bcm-alert.js.map +1 -1
  110. package/dist/components/bcm-avatar.js +13 -7
  111. package/dist/components/bcm-avatar.js.map +1 -1
  112. package/dist/components/bcm-badge.d.ts +11 -0
  113. package/dist/components/bcm-badge.js +8 -0
  114. package/dist/components/bcm-badge.js.map +1 -0
  115. package/dist/components/bcm-basic-badge.d.ts +11 -0
  116. package/dist/components/bcm-basic-badge.js +113 -0
  117. package/dist/components/bcm-basic-badge.js.map +1 -0
  118. package/dist/components/bcm-button.js +5 -5
  119. package/dist/components/bcm-button.js.map +1 -1
  120. package/dist/components/bcm-chip.js +4 -4
  121. package/dist/components/bcm-chip.js.map +1 -1
  122. package/dist/components/bcm-divider.d.ts +11 -0
  123. package/dist/components/bcm-divider.js +100 -0
  124. package/dist/components/bcm-divider.js.map +1 -0
  125. package/dist/components/bcm-input.d.ts +11 -0
  126. package/dist/components/bcm-input.js +369 -0
  127. package/dist/components/bcm-input.js.map +1 -0
  128. package/dist/components/bcm-text.js +4 -4
  129. package/dist/components/bcm-text.js.map +1 -1
  130. package/dist/components/bcm-textarea.d.ts +11 -0
  131. package/dist/components/bcm-textarea.js +369 -0
  132. package/dist/components/bcm-textarea.js.map +1 -0
  133. package/dist/components/index.js +12 -16
  134. package/dist/components/index.js.map +1 -1
  135. package/dist/{esm/index-f0e9d579.js → components/p-12360e4c.js} +3 -3
  136. package/dist/components/{p-b36f4f44.js.map → p-12360e4c.js.map} +1 -1
  137. package/dist/components/{p-0adcc84f.js → p-13582168.js} +34 -3
  138. package/dist/components/p-13582168.js.map +1 -0
  139. package/dist/components/p-31354aaa.js +129 -0
  140. package/dist/components/p-31354aaa.js.map +1 -0
  141. package/dist/components/p-39637e05.js +145 -0
  142. package/dist/components/p-39637e05.js.map +1 -0
  143. package/dist/esm/app-globals-bfa07b76.js +37 -0
  144. package/dist/esm/app-globals-bfa07b76.js.map +1 -0
  145. package/dist/esm/bcm-accordion-group.entry.js +88 -0
  146. package/dist/esm/bcm-accordion-group.entry.js.map +1 -0
  147. package/dist/esm/bcm-accordion.entry.js +124 -0
  148. package/dist/esm/bcm-accordion.entry.js.map +1 -0
  149. package/dist/esm/bcm-alert.entry.js +2 -2
  150. package/dist/esm/bcm-alert.entry.js.map +1 -1
  151. package/dist/esm/bcm-avatar_4.entry.js +570 -0
  152. package/dist/esm/bcm-avatar_4.entry.js.map +1 -0
  153. package/dist/esm/bcm-chip.entry.js +126 -0
  154. package/dist/esm/bcm-chip.entry.js.map +1 -0
  155. package/dist/esm/bcm-divider.entry.js +77 -0
  156. package/dist/esm/bcm-divider.entry.js.map +1 -0
  157. package/dist/esm/bcm-input.entry.js +309 -0
  158. package/dist/esm/bcm-input.entry.js.map +1 -0
  159. package/dist/esm/bcm-text.entry.js +4 -4
  160. package/dist/esm/bcm-text.entry.js.map +1 -1
  161. package/dist/esm/bcm-textarea.entry.js +312 -0
  162. package/dist/esm/bcm-textarea.entry.js.map +1 -0
  163. package/dist/esm/bromcom-ui.js +4 -4
  164. package/dist/{cjs/index-a4eea4bb.js → esm/index-097075ad.js} +3 -5
  165. package/dist/esm/{index-f0e9d579.js.map → index-097075ad.js.map} +1 -1
  166. package/dist/esm/{index-ce2fac11.js → index-27cc1bac.js} +43 -5
  167. package/dist/esm/index-27cc1bac.js.map +1 -0
  168. package/dist/esm/loader.js +4 -4
  169. package/dist/esm/validation-messages-a29d53be.js +129 -0
  170. package/dist/esm/validation-messages-a29d53be.js.map +1 -0
  171. package/dist/types/components/badge/badge.component.d.ts +87 -0
  172. package/dist/types/components/basic-badge/basic-badge.component.d.ts +54 -0
  173. package/dist/types/components/divider/divider.component.d.ts +40 -0
  174. package/dist/types/components/input/input.component.d.ts +93 -0
  175. package/dist/types/components/input/types.d.ts +13 -0
  176. package/dist/types/components/textarea/textarea.component.d.ts +85 -0
  177. package/dist/types/components/textarea/types.d.ts +7 -0
  178. package/dist/types/components.d.ts +889 -0
  179. package/dist/types/utils/i18n.d.ts +8 -0
  180. package/dist/types/utils/id/generate-id.d.ts +9 -0
  181. package/dist/types/utils/slot/check-slot-content.d.ts +7 -0
  182. package/dist/types/utils/validation-messages.d.ts +11 -0
  183. package/package.json +3 -2
  184. package/dist/bromcom-ui/p-0a74cf15.entry.js +0 -2
  185. package/dist/bromcom-ui/p-27c997d8.js +0 -3
  186. package/dist/bromcom-ui/p-27c997d8.js.map +0 -1
  187. package/dist/bromcom-ui/p-2d836917.entry.js +0 -2
  188. package/dist/bromcom-ui/p-40643b53.js +0 -2
  189. package/dist/bromcom-ui/p-40643b53.js.map +0 -1
  190. package/dist/bromcom-ui/p-84a5dcdb.entry.js +0 -2
  191. package/dist/bromcom-ui/p-84a5dcdb.entry.js.map +0 -1
  192. package/dist/bromcom-ui/p-f0c61f8c.entry.js +0 -2
  193. package/dist/bromcom-ui/p-f0c61f8c.entry.js.map +0 -1
  194. package/dist/cjs/app-globals-e8faea0d.js +0 -43
  195. package/dist/cjs/app-globals-e8faea0d.js.map +0 -1
  196. package/dist/cjs/bcm-accordion_4.cjs.entry.js +0 -623
  197. package/dist/cjs/bcm-accordion_4.cjs.entry.js.map +0 -1
  198. package/dist/cjs/bcm-avatar.cjs.entry.js +0 -89
  199. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  200. package/dist/cjs/index-638f2d15.js.map +0 -1
  201. package/dist/components/p-0adcc84f.js.map +0 -1
  202. package/dist/esm/app-globals-f781c325.js +0 -41
  203. package/dist/esm/app-globals-f781c325.js.map +0 -1
  204. package/dist/esm/bcm-accordion_4.entry.js +0 -616
  205. package/dist/esm/bcm-accordion_4.entry.js.map +0 -1
  206. package/dist/esm/bcm-avatar.entry.js +0 -85
  207. package/dist/esm/bcm-avatar.entry.js.map +0 -1
  208. package/dist/esm/index-ce2fac11.js.map +0 -1
  209. /package/dist/bromcom-ui/{p-b36f4f44.js.map → p-12360e4c.js.map} +0 -0
@@ -0,0 +1,316 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-4795c073.js');
6
+ const index$1 = require('./index-310db2a6.js');
7
+ const index$2 = require('./index-5a88e57b.js');
8
+ const validationMessages = require('./validation-messages-c36e5c31.js');
9
+
10
+ const textareaCss = ".visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.border-collapse{border-collapse:collapse}.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))}.resize-none{resize:none;resize:none!important}.resize-y{resize:vertical;resize:vertical!important}.resize-x{resize:horizontal;resize:horizontal!important}.resize{resize:both!important;resize:both}.border{border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:solid}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:oklch(.707 .022 261.325);opacity:1}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{display:block;width:100%}.bcm-textarea__container{display:flex;flex-direction:column;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.mt-1{margin-top:.25rem}.min-h-0{min-height:0}.min-h-\\[3rem\\]{min-height:3rem}.min-h-\\[4rem\\]{min-height:4rem}.min-h-\\[5rem\\]{min-height:5rem}.w-full{width:100%}.grow{flex-grow:1}.cursor-not-allowed{cursor:not-allowed}.\\!resize-none{resize:none!important}.\\!resize-y{resize:vertical!important}.\\!resize-x{resize:horizontal!important}.\\!resize{resize:both!important}.appearance-none{appearance:none}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.border-0{border-width:0}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.border-\\[--bcm-ui-color-border-error\\]{border-color:var(--bcm-ui-color-border-error)}.border-\\[--bcm-ui-color-border-info\\]{border-color:var(--bcm-ui-color-border-info)}.border-\\[--bcm-ui-color-border-success\\]{border-color:var(--bcm-ui-color-border-success)}.border-\\[--bcm-ui-color-border-warning\\]{border-color:var(--bcm-ui-color-border-warning)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.text-right{text-align:right}.font-sans{font-family:Inter,sans-serif}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.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}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.text-\\[--bcm-ui-color-text-default\\]{color:var(--bcm-ui-color-text-default)}.text-\\[--bcm-ui-color-text-disabled\\]{color:var(--bcm-ui-color-text-disabled)}.text-\\[--bcm-ui-color-text-error\\]{color:var(--bcm-ui-color-text-error)}.text-\\[--bcm-ui-color-text-info\\]{color:var(--bcm-ui-color-text-info)}.text-\\[--bcm-ui-color-text-placeholder\\]{color:var(--bcm-ui-color-text-placeholder)}.text-\\[--bcm-ui-color-text-success\\]{color:var(--bcm-ui-color-text-success)}.text-\\[--bcm-ui-color-text-warning\\]{color:var(--bcm-ui-color-text-warning)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-0{outline-width:0}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-\\[--bcm-ui-color-border-primary\\]{--tw-ring-color:var(--bcm-ui-color-border-primary)}.ring-opacity-50{--tw-ring-opacity:0.5}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.placeholder\\:font-normal::placeholder{font-weight:400}.placeholder\\:text-\\[--bcm-ui-color-text-placeholder\\]::placeholder{color:var(--bcm-ui-color-text-placeholder)}.hover\\:border-\\[--bcm-ui-color-border-error\\]:hover{border-color:var(--bcm-ui-color-border-error)}.hover\\:border-\\[--bcm-ui-color-border-info\\]:hover{border-color:var(--bcm-ui-color-border-info)}.hover\\:border-\\[--bcm-ui-color-border-primary\\]:hover{border-color:var(--bcm-ui-color-border-primary)}.hover\\:border-\\[--bcm-ui-color-border-success\\]:hover{border-color:var(--bcm-ui-color-border-success)}.hover\\:border-\\[--bcm-ui-color-border-warning\\]:hover{border-color:var(--bcm-ui-color-border-warning)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-error\\]:has(:focus){border-color:var(--bcm-ui-color-border-error)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-info\\]:has(:focus){border-color:var(--bcm-ui-color-border-info)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-primary\\]:has(:focus){border-color:var(--bcm-ui-color-border-primary)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-success\\]:has(:focus){border-color:var(--bcm-ui-color-border-success)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-warning\\]:has(:focus){border-color:var(--bcm-ui-color-border-warning)}";
11
+ const BcmTextareaStyle0 = textareaCss;
12
+
13
+ const BcmTextarea = class {
14
+ constructor(hostRef) {
15
+ index.registerInstance(this, hostRef);
16
+ this.bcmInput = index.createEvent(this, "bcmInput", 1);
17
+ this.bcmChange = index.createEvent(this, "bcmChange", 1);
18
+ this.bcmFocus = index.createEvent(this, "bcmFocus", 1);
19
+ this.bcmBlur = index.createEvent(this, "bcmBlur", 1);
20
+ this.bcmKeyDown = index.createEvent(this, "bcmKeyDown", 1);
21
+ this.bcmKeyUp = index.createEvent(this, "bcmKeyUp", 1);
22
+ this.isFocused = false;
23
+ this.isValid = true;
24
+ this.internalStatus = 'default';
25
+ /** Textarea value */
26
+ this.value = '';
27
+ /** Textarea rows */
28
+ this.rows = 3;
29
+ /** Resize behavior */
30
+ this.resize = 'none';
31
+ /** Auto grow height based on content */
32
+ this.autoGrow = false;
33
+ /** Input id */
34
+ this._id = validationMessages.generateId('textarea');
35
+ /** Controls the textarea size */
36
+ this.size = 'medium';
37
+ /** Defines the textarea's status/state */
38
+ this.status = 'default';
39
+ /** Full width textarea */
40
+ this.fullWidth = false;
41
+ /** Whether the textarea is disabled */
42
+ this.disabled = false;
43
+ /** Whether the textarea is readonly */
44
+ this.readonly = false;
45
+ /** Whether the textarea is required */
46
+ this.required = false;
47
+ /** Show character counter */
48
+ this.showCounter = true;
49
+ this.onChange = (event) => {
50
+ this.bcmChange.emit(event);
51
+ };
52
+ this.onFocus = (event) => {
53
+ this.isFocused = true;
54
+ this.bcmFocus.emit(event);
55
+ };
56
+ this.onBlur = (event) => {
57
+ this.isFocused = false;
58
+ this.bcmBlur.emit(event);
59
+ this.validateInput();
60
+ };
61
+ this.onKeyDown = (event) => {
62
+ this.bcmKeyDown.emit(event);
63
+ };
64
+ this.onKeyUp = (event) => {
65
+ this.bcmKeyUp.emit(event);
66
+ };
67
+ this.styleClass = index$1.ce({
68
+ slots: {
69
+ base: [
70
+ 'bcm-textarea bcm-textarea__container',
71
+ 'bg-[--bcm-ui-color-background-base-default]',
72
+ 'border border-solid rounded',
73
+ 'flex flex-col', // flex-col ekledik
74
+ 'transition-colors duration-200',
75
+ 'px-2 py-2',
76
+ 'w-full', // w-full ekledik
77
+ ],
78
+ textareaClass: [
79
+ 'textarea',
80
+ 'w-full',
81
+ 'border-0 outline-0 bg-transparent',
82
+ 'appearance-none',
83
+ 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',
84
+ 'font-sans antialiased font-medium',
85
+ 'px-1',
86
+ 'overflow-y-auto', // overflow-y-auto ekledik
87
+ 'min-h-0', // min-h-0 ekledik
88
+ ],
89
+ counterText: ['textarea-counter-text', 'text-[--bcm-ui-color-text-placeholder]', 'text-right', 'mt-1'],
90
+ },
91
+ variants: {
92
+ size: {
93
+ small: {
94
+ base: '',
95
+ textareaClass: 'text-size-4 min-h-[3rem]',
96
+ counterText: 'text-size-3',
97
+ },
98
+ medium: {
99
+ base: '',
100
+ textareaClass: 'text-size-5 min-h-[4rem]',
101
+ counterText: 'text-size-4',
102
+ },
103
+ large: {
104
+ base: '',
105
+ textareaClass: 'text-size-6 min-h-[5rem]',
106
+ counterText: 'text-size-5',
107
+ },
108
+ },
109
+ resize: {
110
+ none: { textareaClass: '!resize-none' },
111
+ both: { textareaClass: '!resize' },
112
+ horizontal: { textareaClass: '!resize-x' },
113
+ vertical: { textareaClass: '!resize-y' },
114
+ },
115
+ status: {
116
+ default: {
117
+ base: ['border-[--bcm-ui-color-border-default]', 'hover:border-[--bcm-ui-color-border-primary]', 'has-[:focus]:border-[--bcm-ui-color-border-primary]'],
118
+ },
119
+ error: {
120
+ base: ['border-[--bcm-ui-color-border-error]', 'hover:border-[--bcm-ui-color-border-error]', 'has-[:focus]:border-[--bcm-ui-color-border-error]'],
121
+ },
122
+ success: {
123
+ base: ['border-[--bcm-ui-color-border-success]', 'hover:border-[--bcm-ui-color-border-success]', 'has-[:focus]:border-[--bcm-ui-color-border-success]'],
124
+ },
125
+ warning: {
126
+ base: ['border-[--bcm-ui-color-border-warning]', 'hover:border-[--bcm-ui-color-border-warning]', 'has-[:focus]:border-[--bcm-ui-color-border-warning]'],
127
+ },
128
+ info: {
129
+ base: ['border-[--bcm-ui-color-border-info]', 'hover:border-[--bcm-ui-color-border-info]', 'has-[:focus]:border-[--bcm-ui-color-border-info]'],
130
+ },
131
+ },
132
+ fullWidth: {
133
+ true: 'full-width w-full',
134
+ },
135
+ disabled: {
136
+ true: {
137
+ base: 'disabled cursor-not-allowed opacity-50',
138
+ textareaClass: '!resize-none', // disabled durumunda resize'ı engelle
139
+ },
140
+ false: '',
141
+ },
142
+ focused: {
143
+ true: {
144
+ base: 'ring-2 ring-[--bcm-ui-color-border-primary] ring-opacity-50',
145
+ },
146
+ false: '',
147
+ },
148
+ },
149
+ defaultVariants: {
150
+ size: 'medium',
151
+ status: 'default',
152
+ resize: 'vertical',
153
+ fullWidth: false,
154
+ disabled: false,
155
+ focused: false,
156
+ },
157
+ }, {
158
+ twMerge: false,
159
+ });
160
+ }
161
+ handleValueChange(newValue) {
162
+ if (this.textareaRef) {
163
+ this.textareaRef.value = newValue;
164
+ if (this.autoGrow) {
165
+ this.adjustHeight();
166
+ }
167
+ }
168
+ }
169
+ watchStatus(newValue) {
170
+ this.internalStatus = newValue;
171
+ }
172
+ watchErrorMessage(newValue) {
173
+ this.internalErrorMessage = newValue;
174
+ }
175
+ componentWillLoad() {
176
+ validationMessages.setValidationMessages('en', validationMessages.defaultValidationMessages);
177
+ this.internalStatus = this.status;
178
+ this.internalErrorMessage = this.errorMessage;
179
+ }
180
+ componentDidLoad() {
181
+ var _a;
182
+ if (this.autoGrow) {
183
+ this.adjustHeight();
184
+ // Input event'ini dinle
185
+ (_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.addEventListener('input', () => this.adjustHeight());
186
+ }
187
+ }
188
+ disconnectedCallback() {
189
+ // Event listener'ı temizle
190
+ if (this.autoGrow && this.textareaRef) {
191
+ this.textareaRef.removeEventListener('input', () => this.adjustHeight());
192
+ }
193
+ }
194
+ async setFocus() {
195
+ var _a;
196
+ (_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.focus();
197
+ }
198
+ async setBlur() {
199
+ var _a;
200
+ (_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.blur();
201
+ }
202
+ async select() {
203
+ var _a;
204
+ (_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.select();
205
+ }
206
+ adjustHeight() {
207
+ if (!this.autoGrow || !this.textareaRef)
208
+ return;
209
+ requestAnimationFrame(() => {
210
+ // Önce height'ı sıfırla ki scrollHeight doğru hesaplansın
211
+ this.textareaRef.style.height = '0px';
212
+ const computedStyle = getComputedStyle(this.textareaRef);
213
+ const lineHeight = parseInt(computedStyle.lineHeight);
214
+ const paddingTop = parseInt(computedStyle.paddingTop);
215
+ const paddingBottom = parseInt(computedStyle.paddingBottom);
216
+ const scrollHeight = this.textareaRef.scrollHeight;
217
+ let newHeight = scrollHeight;
218
+ // Min/max kontrolleri
219
+ if (this.minRows) {
220
+ const minHeight = this.minRows * lineHeight + paddingTop + paddingBottom;
221
+ newHeight = Math.max(newHeight, minHeight);
222
+ }
223
+ if (this.maxRows) {
224
+ const maxHeight = this.maxRows * lineHeight + paddingTop + paddingBottom;
225
+ newHeight = Math.min(newHeight, maxHeight);
226
+ }
227
+ this.textareaRef.style.height = `${newHeight}px`;
228
+ });
229
+ }
230
+ validateInput() {
231
+ if (!this.textareaRef)
232
+ return;
233
+ // Reset validation state
234
+ this.isValid = true;
235
+ this.validationMessage = '';
236
+ const value = this.textareaRef.value;
237
+ // Required check
238
+ if (this.required && !value) {
239
+ this.isValid = false;
240
+ this.validationMessage = validationMessages.getValidationMessage('required');
241
+ this.internalStatus = 'error';
242
+ this.internalErrorMessage = this.validationMessage;
243
+ return;
244
+ }
245
+ // Minimum length check
246
+ if (this.minLength && value.length < this.minLength) {
247
+ this.isValid = false;
248
+ this.validationMessage = validationMessages.getValidationMessage('minlength', { min: this.minLength });
249
+ }
250
+ // Maximum length check
251
+ else if (this.maxLength && value.length > this.maxLength) {
252
+ this.isValid = false;
253
+ this.validationMessage = validationMessages.getValidationMessage('maxlength', { max: this.maxLength });
254
+ }
255
+ // Custom validator
256
+ if (this.validator) {
257
+ const customError = this.validator(value);
258
+ if (customError) {
259
+ this.isValid = false;
260
+ this.validationMessage = customError;
261
+ }
262
+ }
263
+ // Update component state
264
+ this.internalStatus = this.isValid ? 'default' : 'error';
265
+ this.internalErrorMessage = this.validationMessage;
266
+ }
267
+ render() {
268
+ const textareaId = this._id + '-textarea' || this.name;
269
+ const { base, textareaClass, counterText } = this.styleClass({
270
+ size: this.size,
271
+ status: this.internalStatus,
272
+ resize: this.resize,
273
+ fullWidth: this.fullWidth,
274
+ disabled: this.disabled,
275
+ focused: this.isFocused,
276
+ });
277
+ return (index.h("div", { key: '3b518823eafee23f5efb8fecdd1869cb0625f712', class: "bcm-ui-element" }, this.label && (index.h("label", { key: '17851980564ab95c9a1ac30fa494c3b4ef50f75b', class: index$2.classNames('textarea-label font-medium', {
278
+ 'text-color-label': !this.disabled,
279
+ 'text-color-disabled': this.disabled,
280
+ }, {
281
+ 'text-size-3': this.size === 'small',
282
+ 'text-size-4': this.size === 'medium',
283
+ 'text-size-5': this.size === 'large',
284
+ }), htmlFor: textareaId }, index.h("slot", { key: '3a0c9c5d95ac3389f3d48d41577b88ee21dfb940', name: "label" }, this.label), this.required && index.h("span", { key: 'fd499a157c4ff22f17feaabcbe7c5a2d2d75e35b' }, "*"))), index.h("div", { key: '625e4a27c30495aaf39259e8ac68bc1d819fd506', class: base() }, index.h("textarea", { key: 'be30548713a724d4f535885c7b6838fb056d0b3d', ref: el => (this.textareaRef = el), id: textareaId, class: textareaClass(), name: this.name, rows: this.rows, cols: this.cols, disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.placeholder, minLength: this.minLength, maxLength: this.maxLength, "aria-invalid": this.status === 'error', "aria-required": this.required, "aria-labelledby": this.labelledby, "aria-describedby": this.describedby, value: this.value, onInput: event => {
285
+ const target = event.target;
286
+ this.value = target.value;
287
+ this.bcmInput.emit(event);
288
+ this.validateInput();
289
+ if (this.autoGrow) {
290
+ this.adjustHeight();
291
+ }
292
+ }, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, onKeyUp: this.onKeyUp }), this.showCounter && (index.h("div", { key: '1ebabb979efac47054160558fab66d4fccc603f9', class: counterText() }, this.value.length, this.maxLength ? `/${this.maxLength}` : ''))), (this.captionText || this.internalErrorMessage || this.validationMessage) && (index.h("div", { key: '1c7f59c0d4337c7c359dc9aea3e332e5715bf80d', class: index$2.classNames('textarea-caption-text font-regular mt-1', {
293
+ 'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',
294
+ 'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),
295
+ 'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',
296
+ 'text-[--bcm-ui-color-text-warning]': !this.disabled && this.internalStatus === 'warning',
297
+ 'text-[--bcm-ui-color-text-info]': !this.disabled && this.internalStatus === 'info',
298
+ 'text-[--bcm-ui-color-text-disabled]': this.disabled,
299
+ }, {
300
+ 'text-size-3': this.size === 'small',
301
+ 'text-size-4': this.size === 'medium',
302
+ 'text-size-5': this.size === 'large',
303
+ }) }, !this.isValid ? this.validationMessage : this.internalStatus === 'error' ? this.internalErrorMessage : this.captionText))));
304
+ }
305
+ get el() { return index.getElement(this); }
306
+ static get watchers() { return {
307
+ "value": ["handleValueChange"],
308
+ "status": ["watchStatus"],
309
+ "errorMessage": ["watchErrorMessage"]
310
+ }; }
311
+ };
312
+ BcmTextarea.style = BcmTextareaStyle0;
313
+
314
+ exports.bcm_textarea = BcmTextarea;
315
+
316
+ //# sourceMappingURL=bcm-textarea.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"bcm-textarea.entry.cjs.js","mappings":"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","names":["generateId","tv","setValidationMessages","defaultValidationMessages","getValidationMessage","h","classNames"],"sources":["src/components/textarea/textarea.scss?tag=bcm-textarea&encapsulation=shadow","src/components/textarea/textarea.component.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.bcm-textarea {\n &__container {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n}\n\n// Tailwind'in resize sınıflarını override et\n.resize-none {\n resize: none !important;\n}\n\n.resize {\n resize: both !important;\n}\n\n.resize-y {\n resize: vertical !important;\n}\n\n.resize-x {\n resize: horizontal !important;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, TextareaResize } from './types';\nimport { tv } from 'tailwind-variants';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\n// import { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n})\nexport class BcmTextarea {\n @Element() el: HTMLElement;\n private textareaRef: HTMLTextAreaElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n\n /** Textarea value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Textarea rows */\n @Prop()\n rows?: number = 3;\n\n /** Textarea cols */\n @Prop()\n cols?: number;\n\n /** Minimum height in rows */\n @Prop()\n minRows?: number;\n\n /** Maximum height in rows */\n @Prop()\n maxRows?: number;\n\n /** Resize behavior */\n @Prop()\n resize: TextareaResize = 'none';\n\n /** Auto grow height based on content */\n @Prop()\n autoGrow = false;\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('textarea');\n\n /** Controls the textarea size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the textarea's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width textarea */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** Whether the textarea is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the textarea is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the textarea is required */\n @Prop()\n required = false;\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 /** Show character counter */\n @Prop()\n showCounter: boolean = true;\n\n /** Textarea 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 textarea */\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 /** 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.textareaRef) {\n this.textareaRef.value = newValue;\n if (this.autoGrow) {\n this.adjustHeight();\n }\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 componentWillLoad() {\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n componentDidLoad() {\n if (this.autoGrow) {\n this.adjustHeight();\n // Input event'ini dinle\n this.textareaRef?.addEventListener('input', () => this.adjustHeight());\n }\n }\n\n disconnectedCallback() {\n // Event listener'ı temizle\n if (this.autoGrow && this.textareaRef) {\n this.textareaRef.removeEventListener('input', () => this.adjustHeight());\n }\n }\n\n @Method()\n async setFocus() {\n this.textareaRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.textareaRef?.blur();\n }\n\n @Method()\n async select() {\n this.textareaRef?.select();\n }\n\n private adjustHeight() {\n if (!this.autoGrow || !this.textareaRef) return;\n\n requestAnimationFrame(() => {\n // Önce height'ı sıfırla ki scrollHeight doğru hesaplansın\n this.textareaRef.style.height = '0px';\n\n const computedStyle = getComputedStyle(this.textareaRef);\n const lineHeight = parseInt(computedStyle.lineHeight);\n const paddingTop = parseInt(computedStyle.paddingTop);\n const paddingBottom = parseInt(computedStyle.paddingBottom);\n const scrollHeight = this.textareaRef.scrollHeight;\n\n let newHeight = scrollHeight;\n\n // Min/max kontrolleri\n if (this.minRows) {\n const minHeight = this.minRows * lineHeight + paddingTop + paddingBottom;\n newHeight = Math.max(newHeight, minHeight);\n }\n\n if (this.maxRows) {\n const maxHeight = this.maxRows * lineHeight + paddingTop + paddingBottom;\n newHeight = Math.min(newHeight, maxHeight);\n }\n\n this.textareaRef.style.height = `${newHeight}px`;\n });\n }\n\n private validateInput(): void {\n if (!this.textareaRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.textareaRef.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 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\n // Custom validator\n if (this.validator) {\n const customError = this.validator(value);\n if (customError) {\n this.isValid = false;\n this.validationMessage = customError;\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\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 styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-textarea bcm-textarea__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'border border-solid rounded',\n 'flex flex-col', // flex-col ekledik\n 'transition-colors duration-200',\n 'px-2 py-2',\n 'w-full', // w-full ekledik\n ],\n textareaClass: [\n 'textarea',\n 'w-full',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none',\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 'overflow-y-auto', // overflow-y-auto ekledik\n 'min-h-0', // min-h-0 ekledik\n ],\n counterText: ['textarea-counter-text', 'text-[--bcm-ui-color-text-placeholder]', 'text-right', 'mt-1'],\n },\n variants: {\n size: {\n small: {\n base: '',\n textareaClass: 'text-size-4 min-h-[3rem]',\n counterText: 'text-size-3',\n },\n medium: {\n base: '',\n textareaClass: 'text-size-5 min-h-[4rem]',\n counterText: 'text-size-4',\n },\n large: {\n base: '',\n textareaClass: 'text-size-6 min-h-[5rem]',\n counterText: 'text-size-5',\n },\n },\n resize: {\n none: { textareaClass: '!resize-none' },\n both: { textareaClass: '!resize' },\n horizontal: { textareaClass: '!resize-x' },\n vertical: { textareaClass: '!resize-y' },\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: {\n base: 'disabled cursor-not-allowed opacity-50',\n textareaClass: '!resize-none', // disabled durumunda resize'ı engelle\n },\n false: '',\n },\n focused: {\n true: {\n base: 'ring-2 ring-[--bcm-ui-color-border-primary] ring-opacity-50',\n },\n false: '',\n },\n },\n defaultVariants: {\n size: 'medium',\n status: 'default',\n resize: 'vertical',\n fullWidth: false,\n disabled: false,\n focused: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const textareaId = this._id + '-textarea' || this.name;\n\n const { base, textareaClass, counterText } = this.styleClass({\n size: this.size,\n status: this.internalStatus,\n resize: this.resize,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n focused: this.isFocused,\n });\n\n return (\n <div class=\"bcm-ui-element\">\n {/* Label rendering */}\n {this.label && (\n <label\n class={classNames(\n 'textarea-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={textareaId}\n >\n <slot name=\"label\">{this.label}</slot>\n {this.required && <span>*</span>}\n </label>\n )}\n\n {/* Textarea container */}\n <div class={base()}>\n <textarea\n ref={el => (this.textareaRef = el)}\n id={textareaId}\n class={textareaClass()}\n name={this.name}\n rows={this.rows}\n cols={this.cols}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n placeholder={this.placeholder}\n minLength={this.minLength}\n maxLength={this.maxLength}\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={event => {\n const target = event.target as HTMLTextAreaElement;\n this.value = target.value;\n this.bcmInput.emit(event);\n this.validateInput();\n if (this.autoGrow) {\n this.adjustHeight();\n }\n }}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n />\n {/* buraya isteğe bağlı olarak gözüken bir karakter sayacı ekleyeceğiz. bu sayaç sağa yaslı olacak şu formatta olacak 0/120 gibi 0 mevcut karakteri 120 ise limiti gösterecek */}\n {this.showCounter && (\n <div class={counterText()}>\n {this.value.length}\n {this.maxLength ? `/${this.maxLength}` : ''}\n </div>\n )}\n </div>\n\n {/* Validation/Caption message */}\n {(this.captionText || this.internalErrorMessage || this.validationMessage) && (\n <div\n class={classNames(\n 'textarea-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"],"version":3}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-638f2d15.js');
6
- const appGlobals = require('./app-globals-e8faea0d.js');
5
+ const index = require('./index-4795c073.js');
6
+ const appGlobals = require('./app-globals-29edfda4.js');
7
7
 
8
8
  /*
9
9
  Stencil Client Patch Browser v4.25.1 | MIT Licensed | https://stenciljs.com
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["bcm-accordion_4.cjs",[[1,"bcm-accordion",{"expanded":[1540],"headerTitle":[1,"header-title"],"group":[516],"hintText":[1,"hint-text"],"hasFooterContent":[32],"toggle":[64],"expand":[64],"collapse":[64]}],[1,"bcm-accordion-group",{"multi":[4],"accordionItems":[32],"expandAll":[64],"collapseAll":[64],"getExpandedItems":[64]},[[2,"bcmAccordionChange","handleAccordionChange"]]],[1,"bcm-button",{"kind":[1],"size":[1],"status":[1],"variant":[1],"icon":[1],"iconPosition":[1,"icon-position"],"iconOnly":[4,"icon-only"],"fullWidth":[516,"full-width"],"type":[1],"loading":[4],"disabled":[4],"text":[1],"active":[4],"form":[1],"value":[1],"name":[1],"label":[1],"expanded":[1],"controls":[1]}],[1,"bcm-chip",{"size":[1],"kind":[1],"status":[1],"dismissible":[4],"disabled":[4],"color":[1]}]]],["bcm-alert.cjs",[[1,"bcm-alert",{"status":[1],"size":[1],"kind":[1],"dismissible":[4],"showStatusIcon":[4,"show-status-icon"]}]]],["bcm-avatar.cjs",[[1,"bcm-avatar",{"image":[1],"alt":[1],"shape":[1],"size":[1],"color":[1],"icon":[1],"status":[1],"blink":[4],"name":[1],"isFallback":[32]}]]],["bcm-text.cjs",[[1,"bcm-text",{"text":[1],"variant":[1],"size":[1]}]]]], options);
22
+ return index.bootstrapLazy([["bcm-accordion.cjs",[[1,"bcm-accordion",{"expanded":[1540],"headerTitle":[1,"header-title"],"group":[516],"hintText":[1,"hint-text"],"hasFooterContent":[32],"toggle":[64],"expand":[64],"collapse":[64]}]]],["bcm-accordion-group.cjs",[[1,"bcm-accordion-group",{"multi":[4],"accordionItems":[32],"expandAll":[64],"collapseAll":[64],"getExpandedItems":[64]},[[2,"bcmAccordionChange","handleAccordionChange"]]]]],["bcm-alert.cjs",[[1,"bcm-alert",{"status":[1],"size":[1],"kind":[1],"dismissible":[4],"showStatusIcon":[4,"show-status-icon"]}]]],["bcm-chip.cjs",[[1,"bcm-chip",{"size":[1],"kind":[1],"status":[1],"dismissible":[4],"disabled":[4],"color":[1]}]]],["bcm-divider.cjs",[[1,"bcm-divider",{"direction":[1],"variant":[1],"size":[1]}]]],["bcm-input.cjs",[[1,"bcm-input",{"value":[1537],"placeholder":[1],"name":[1],"_id":[513,"id"],"size":[1],"status":[1],"fullWidth":[516,"full-width"],"type":[1],"disabled":[4],"readonly":[4],"required":[4],"autocomplete":[1],"minLength":[2,"min-length"],"maxLength":[2,"max-length"],"min":[2],"max":[2],"step":[2],"pattern":[1],"label":[1],"errorMessage":[1,"error-message"],"captionText":[1,"caption-text"],"labelledby":[1],"describedby":[1],"prefixIcon":[1,"prefix-icon"],"suffixIcon":[1,"suffix-icon"],"useNativeValidation":[4,"use-native-validation"],"validator":[16],"isFocused":[32],"validationMessage":[32],"isValid":[32],"internalStatus":[32],"internalErrorMessage":[32],"setFocus":[64],"setBlur":[64],"select":[64],"setLocale":[64]},null,{"value":["handleValueChange"],"status":["watchStatus"],"errorMessage":["watchErrorMessage"]}]]],["bcm-text.cjs",[[1,"bcm-text",{"text":[1],"variant":[1],"size":[1]}]]],["bcm-textarea.cjs",[[1,"bcm-textarea",{"value":[1537],"rows":[2],"cols":[2],"minRows":[2,"min-rows"],"maxRows":[2,"max-rows"],"resize":[1],"autoGrow":[4,"auto-grow"],"placeholder":[1],"name":[1],"_id":[513,"id"],"size":[1],"status":[1],"fullWidth":[516,"full-width"],"disabled":[4],"readonly":[4],"required":[4],"minLength":[2,"min-length"],"maxLength":[2,"max-length"],"showCounter":[4,"show-counter"],"label":[1],"errorMessage":[1,"error-message"],"captionText":[1,"caption-text"],"labelledby":[1],"describedby":[1],"validator":[16],"isFocused":[32],"validationMessage":[32],"isValid":[32],"internalStatus":[32],"internalErrorMessage":[32],"setFocus":[64],"setBlur":[64],"select":[64]},null,{"value":["handleValueChange"],"status":["watchStatus"],"errorMessage":["watchErrorMessage"]}]]],["bcm-avatar_4.cjs",[[1,"bcm-avatar",{"image":[1],"alt":[1],"shape":[1],"size":[1],"color":[1],"icon":[1],"status":[1],"blink":[4],"name":[1],"isFallback":[32]}],[1,"bcm-basic-badge",{"size":[1],"variant":[1],"color":[1],"soft":[4],"text":[1]}],[1,"bcm-button",{"kind":[1],"size":[1],"status":[1],"variant":[1],"icon":[1],"iconPosition":[1,"icon-position"],"iconOnly":[4,"icon-only"],"fullWidth":[516,"full-width"],"type":[1],"loading":[4],"disabled":[4],"text":[1],"active":[4],"form":[1],"value":[1],"name":[1],"label":[1],"expanded":[1],"controls":[1]}],[1,"bcm-badge",{"size":[1],"variant":[1],"color":[1],"soft":[4],"blink":[4],"status":[1],"position":[1],"offset":[1],"text":[1]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'bromcom-ui';
24
- const BUILD = /* bromcom-ui */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: false, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: false };
24
+ const BUILD = /* bromcom-ui */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
25
25
 
26
26
  /*
27
27
  Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com
@@ -346,6 +346,9 @@ var parsePropertyValue = (propValue, propType) => {
346
346
  if (propType & 4 /* Boolean */) {
347
347
  return propValue === "false" ? false : propValue === "" || !!propValue;
348
348
  }
349
+ if (propType & 2 /* Number */) {
350
+ return parseFloat(propValue);
351
+ }
349
352
  if (propType & 1 /* String */) {
350
353
  return String(propValue);
351
354
  }
@@ -938,12 +941,16 @@ var postUpdateComponent = (hostRef) => {
938
941
  const tagName = hostRef.$cmpMeta$.$tagName$;
939
942
  const elm = hostRef.$hostElement$;
940
943
  const endPostUpdate = createTime("postUpdate", tagName);
944
+ const instance = hostRef.$lazyInstance$ ;
941
945
  const ancestorComponent = hostRef.$ancestorComponent$;
942
946
  if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
943
947
  hostRef.$flags$ |= 64 /* hasLoadedComponent */;
944
948
  {
945
949
  addHydratedFlag(elm);
946
950
  }
951
+ {
952
+ safeCall(instance, "componentDidLoad", void 0, elm);
953
+ }
947
954
  endPostUpdate();
948
955
  {
949
956
  hostRef.$onReadyResolve$(elm);
@@ -998,6 +1005,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
998
1005
  `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`
999
1006
  );
1000
1007
  }
1008
+ const elm = hostRef.$hostElement$ ;
1001
1009
  const oldVal = hostRef.$instanceValues$.get(propName);
1002
1010
  const flags = hostRef.$flags$;
1003
1011
  const instance = hostRef.$lazyInstance$ ;
@@ -1007,6 +1015,18 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1007
1015
  if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
1008
1016
  hostRef.$instanceValues$.set(propName, newVal);
1009
1017
  if (instance) {
1018
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1019
+ const watchMethods = cmpMeta.$watchers$[propName];
1020
+ if (watchMethods) {
1021
+ watchMethods.map((watchMethodName) => {
1022
+ try {
1023
+ instance[watchMethodName](newVal, oldVal, propName);
1024
+ } catch (e) {
1025
+ consoleError(e, elm);
1026
+ }
1027
+ });
1028
+ }
1029
+ }
1010
1030
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1011
1031
  scheduleUpdate(hostRef, false);
1012
1032
  }
@@ -1018,7 +1038,10 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1018
1038
  var proxyComponent = (Cstr, cmpMeta, flags) => {
1019
1039
  var _a, _b;
1020
1040
  const prototype = Cstr.prototype;
1021
- if (cmpMeta.$members$ || BUILD.watchCallback ) {
1041
+ if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
1042
+ if (Cstr.watchers && !cmpMeta.$watchers$) {
1043
+ cmpMeta.$watchers$ = Cstr.watchers;
1044
+ }
1022
1045
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
1023
1046
  members.map(([memberName, [memberFlags]]) => {
1024
1047
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
@@ -1168,6 +1191,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1168
1191
  throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
1169
1192
  }
1170
1193
  if (!Cstr.isProxied) {
1194
+ {
1195
+ cmpMeta.$watchers$ = Cstr.watchers;
1196
+ }
1171
1197
  proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1172
1198
  Cstr.isProxied = true;
1173
1199
  }
@@ -1183,6 +1209,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1183
1209
  {
1184
1210
  hostRef.$flags$ &= ~8 /* isConstructingInstance */;
1185
1211
  }
1212
+ {
1213
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1214
+ }
1186
1215
  endNewInstance();
1187
1216
  }
1188
1217
  if (Cstr && Cstr.style) {
@@ -1248,6 +1277,9 @@ var connectedCallback = (elm) => {
1248
1277
  }
1249
1278
  };
1250
1279
  var disconnectInstance = (instance, elm) => {
1280
+ {
1281
+ safeCall(instance, "disconnectedCallback", void 0, elm || instance);
1282
+ }
1251
1283
  };
1252
1284
  var disconnectedCallback = async (elm) => {
1253
1285
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
@@ -1258,8 +1290,10 @@ var disconnectedCallback = async (elm) => {
1258
1290
  hostRef.$rmListeners$ = void 0;
1259
1291
  }
1260
1292
  }
1261
- if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1262
- hostRef.$onReadyPromise$.then(() => disconnectInstance());
1293
+ if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1294
+ disconnectInstance(hostRef.$lazyInstance$, elm);
1295
+ } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1296
+ hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));
1263
1297
  }
1264
1298
  }
1265
1299
  if (rootAppliedStyles.has(elm)) {
@@ -1288,6 +1322,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1288
1322
  let hasSlotRelocation = false;
1289
1323
  lazyBundles.map((lazyBundle) => {
1290
1324
  lazyBundle[1].map((compactMeta) => {
1325
+ var _a2;
1291
1326
  const cmpMeta = {
1292
1327
  $flags$: compactMeta[0],
1293
1328
  $tagName$: compactMeta[1],
@@ -1306,6 +1341,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1306
1341
  {
1307
1342
  cmpMeta.$attrsToReflect$ = [];
1308
1343
  }
1344
+ {
1345
+ cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
1346
+ }
1309
1347
  const tagName = cmpMeta.$tagName$;
1310
1348
  const HostElement = class extends HTMLElement {
1311
1349
  // StencilLazyHost
@@ -1438,4 +1476,4 @@ exports.promiseResolve = promiseResolve;
1438
1476
  exports.registerInstance = registerInstance;
1439
1477
  exports.setNonce = setNonce;
1440
1478
 
1441
- //# sourceMappingURL=index-638f2d15.js.map
1479
+ //# sourceMappingURL=index-4795c073.js.map