bromcom-ui-next 0.1.3 → 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 (200) hide show
  1. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
  3. package/dist/bromcom-ui/global/global.js +14 -15
  4. package/dist/bromcom-ui/p-04f6d730.entry.js +2 -0
  5. package/dist/bromcom-ui/p-04f6d730.entry.js.map +1 -0
  6. package/dist/bromcom-ui/{p-b36f4f44.js → p-12360e4c.js} +1 -1
  7. package/dist/bromcom-ui/p-15fe392b.js +3 -0
  8. package/dist/bromcom-ui/p-15fe392b.js.map +1 -0
  9. package/dist/bromcom-ui/p-1b11150b.entry.js +2 -0
  10. package/dist/bromcom-ui/{p-6430a887.entry.js.map → p-1b11150b.entry.js.map} +1 -1
  11. package/dist/bromcom-ui/p-1d86c1cf.entry.js +2 -0
  12. package/dist/bromcom-ui/p-1d86c1cf.entry.js.map +1 -0
  13. package/dist/bromcom-ui/p-31354aaa.js +2 -0
  14. package/dist/bromcom-ui/p-31354aaa.js.map +1 -0
  15. package/dist/bromcom-ui/p-3b607038.entry.js +2 -0
  16. package/dist/bromcom-ui/p-3b607038.entry.js.map +1 -0
  17. package/dist/bromcom-ui/p-5d0838e9.entry.js +2 -0
  18. package/dist/bromcom-ui/{p-bde58312.entry.js.map → p-5d0838e9.entry.js.map} +1 -1
  19. package/dist/bromcom-ui/p-729a870f.js +2 -0
  20. package/dist/bromcom-ui/p-729a870f.js.map +1 -0
  21. package/dist/bromcom-ui/p-a590f793.entry.js +2 -0
  22. package/dist/bromcom-ui/p-a590f793.entry.js.map +1 -0
  23. package/dist/bromcom-ui/p-cd437280.entry.js +2 -0
  24. package/dist/bromcom-ui/p-cd437280.entry.js.map +1 -0
  25. package/dist/bromcom-ui/{p-dcc13a55.entry.js → p-dcea8d62.entry.js} +2 -2
  26. package/dist/bromcom-ui/{p-3805363a.entry.js → p-ebed10d5.entry.js} +2 -2
  27. package/dist/cjs/app-globals-29edfda4.js +39 -0
  28. package/dist/cjs/app-globals-29edfda4.js.map +1 -0
  29. package/dist/cjs/bcm-accordion-group.cjs.entry.js +3 -3
  30. package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/bcm-accordion.cjs.entry.js +7 -7
  32. package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
  33. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  34. package/dist/cjs/bcm-avatar_4.cjs.entry.js +577 -0
  35. package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -0
  36. package/dist/cjs/bcm-chip.cjs.entry.js +4 -4
  37. package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
  38. package/dist/cjs/bcm-divider.cjs.entry.js +81 -0
  39. package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -0
  40. package/dist/cjs/bcm-input.cjs.entry.js +313 -0
  41. package/dist/cjs/bcm-input.cjs.entry.js.map +1 -0
  42. package/dist/cjs/bcm-text.cjs.entry.js +3 -3
  43. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
  44. package/dist/cjs/bcm-textarea.cjs.entry.js +316 -0
  45. package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -0
  46. package/dist/cjs/bromcom-ui.cjs.js +3 -3
  47. package/dist/cjs/{index-c36002ae.js → index-4795c073.js} +13 -4
  48. package/dist/cjs/index-4795c073.js.map +1 -0
  49. package/dist/{components/p-b36f4f44.js → cjs/index-5a88e57b.js} +5 -3
  50. package/dist/cjs/{index-a4eea4bb.js.map → index-5a88e57b.js.map} +1 -1
  51. package/dist/cjs/loader.cjs.js +3 -3
  52. package/dist/cjs/validation-messages-c36e5c31.js +134 -0
  53. package/dist/cjs/validation-messages-c36e5c31.js.map +1 -0
  54. package/dist/collection/collection-manifest.json +5 -1
  55. package/dist/collection/components/accordion/accordion.component.js +5 -5
  56. package/dist/collection/components/accordion/accordion.component.js.map +1 -1
  57. package/dist/collection/components/accordion/accordion.css +1 -1
  58. package/dist/collection/components/accordion-group/accordion-group.component.js +1 -1
  59. package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
  60. package/dist/collection/components/accordion-group/accordion-group.css +1 -1
  61. package/dist/collection/components/avatar/avatar.component.js.map +1 -1
  62. package/dist/collection/components/avatar/avatar.css +1 -1
  63. package/dist/collection/components/badge/badge.component.js +373 -0
  64. package/dist/collection/components/badge/badge.component.js.map +1 -0
  65. package/dist/collection/components/badge/badge.css +1 -0
  66. package/dist/collection/components/basic-badge/basic-badge.component.js +236 -0
  67. package/dist/collection/components/basic-badge/basic-badge.component.js.map +1 -0
  68. package/dist/collection/components/basic-badge/basic-badge.css +1 -0
  69. package/dist/collection/components/button/button.component.js +2 -2
  70. package/dist/collection/components/button/button.css +1 -1
  71. package/dist/collection/components/chip/chip.component.js +2 -2
  72. package/dist/collection/components/chip/chip.component.js.map +1 -1
  73. package/dist/collection/components/chip/chip.css +1 -1
  74. package/dist/collection/components/divider/divider.component.js +190 -0
  75. package/dist/collection/components/divider/divider.component.js.map +1 -0
  76. package/dist/collection/components/divider/divider.css +1 -0
  77. package/dist/collection/components/input/input.component.js +209 -24
  78. package/dist/collection/components/input/input.component.js.map +1 -1
  79. package/dist/collection/components/input/input.css +1 -1
  80. package/dist/collection/components/input/types.js +10 -1
  81. package/dist/collection/components/input/types.js.map +1 -1
  82. package/dist/collection/components/text/text.component.js +1 -1
  83. package/dist/collection/components/textarea/textarea.component.js +1013 -0
  84. package/dist/collection/components/textarea/textarea.component.js.map +1 -0
  85. package/dist/collection/components/textarea/textarea.css +2 -0
  86. package/dist/collection/components/textarea/types.js +2 -0
  87. package/dist/collection/components/textarea/types.js.map +1 -0
  88. package/dist/collection/global/global.js +14 -15
  89. package/dist/collection/utils/i18n.js +29 -0
  90. package/dist/collection/utils/i18n.js.map +1 -0
  91. package/dist/collection/utils/slot/check-slot-content.js +15 -0
  92. package/dist/collection/utils/slot/check-slot-content.js.map +1 -0
  93. package/dist/collection/utils/validation-messages.js +17 -0
  94. package/dist/collection/utils/validation-messages.js.map +1 -0
  95. package/dist/components/bcm-accordion-group.js +3 -3
  96. package/dist/components/bcm-accordion-group.js.map +1 -1
  97. package/dist/components/bcm-accordion.js +7 -7
  98. package/dist/components/bcm-accordion.js.map +1 -1
  99. package/dist/components/bcm-alert.js +1 -1
  100. package/dist/components/bcm-avatar.js +13 -7
  101. package/dist/components/bcm-avatar.js.map +1 -1
  102. package/dist/components/bcm-badge.d.ts +11 -0
  103. package/dist/components/bcm-badge.js +8 -0
  104. package/dist/components/bcm-badge.js.map +1 -0
  105. package/dist/components/bcm-basic-badge.d.ts +11 -0
  106. package/dist/components/bcm-basic-badge.js +113 -0
  107. package/dist/components/bcm-basic-badge.js.map +1 -0
  108. package/dist/components/bcm-button.js +4 -4
  109. package/dist/components/bcm-button.js.map +1 -1
  110. package/dist/components/bcm-chip.js +4 -4
  111. package/dist/components/bcm-chip.js.map +1 -1
  112. package/dist/components/bcm-divider.d.ts +11 -0
  113. package/dist/components/bcm-divider.js +100 -0
  114. package/dist/components/bcm-divider.js.map +1 -0
  115. package/dist/components/bcm-input.js +168 -105
  116. package/dist/components/bcm-input.js.map +1 -1
  117. package/dist/components/bcm-text.js +3 -3
  118. package/dist/components/bcm-text.js.map +1 -1
  119. package/dist/components/bcm-textarea.d.ts +11 -0
  120. package/dist/components/bcm-textarea.js +369 -0
  121. package/dist/components/bcm-textarea.js.map +1 -0
  122. package/dist/components/index.js +12 -16
  123. package/dist/components/index.js.map +1 -1
  124. package/dist/{esm/index-f0e9d579.js → components/p-12360e4c.js} +3 -3
  125. package/dist/components/{p-b36f4f44.js.map → p-12360e4c.js.map} +1 -1
  126. package/dist/components/{p-8ded2c73.js → p-13582168.js} +10 -2
  127. package/dist/components/p-13582168.js.map +1 -0
  128. package/dist/components/p-31354aaa.js +129 -0
  129. package/dist/components/p-31354aaa.js.map +1 -0
  130. package/dist/components/p-39637e05.js +145 -0
  131. package/dist/components/p-39637e05.js.map +1 -0
  132. package/dist/esm/app-globals-bfa07b76.js +37 -0
  133. package/dist/esm/app-globals-bfa07b76.js.map +1 -0
  134. package/dist/esm/bcm-accordion-group.entry.js +3 -3
  135. package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
  136. package/dist/esm/bcm-accordion.entry.js +7 -7
  137. package/dist/esm/bcm-accordion.entry.js.map +1 -1
  138. package/dist/esm/bcm-alert.entry.js +1 -1
  139. package/dist/esm/bcm-avatar_4.entry.js +570 -0
  140. package/dist/esm/bcm-avatar_4.entry.js.map +1 -0
  141. package/dist/esm/bcm-chip.entry.js +4 -4
  142. package/dist/esm/bcm-chip.entry.js.map +1 -1
  143. package/dist/esm/bcm-divider.entry.js +77 -0
  144. package/dist/esm/bcm-divider.entry.js.map +1 -0
  145. package/dist/esm/bcm-input.entry.js +309 -0
  146. package/dist/esm/bcm-input.entry.js.map +1 -0
  147. package/dist/esm/bcm-text.entry.js +3 -3
  148. package/dist/esm/bcm-text.entry.js.map +1 -1
  149. package/dist/esm/bcm-textarea.entry.js +312 -0
  150. package/dist/esm/bcm-textarea.entry.js.map +1 -0
  151. package/dist/esm/bromcom-ui.js +4 -4
  152. package/dist/{cjs/index-a4eea4bb.js → esm/index-097075ad.js} +3 -5
  153. package/dist/esm/{index-f0e9d579.js.map → index-097075ad.js.map} +1 -1
  154. package/dist/esm/{index-e23ee9b0.js → index-27cc1bac.js} +13 -4
  155. package/dist/esm/index-27cc1bac.js.map +1 -0
  156. package/dist/esm/loader.js +4 -4
  157. package/dist/esm/validation-messages-a29d53be.js +129 -0
  158. package/dist/esm/validation-messages-a29d53be.js.map +1 -0
  159. package/dist/types/components/badge/badge.component.d.ts +87 -0
  160. package/dist/types/components/basic-badge/basic-badge.component.d.ts +54 -0
  161. package/dist/types/components/divider/divider.component.d.ts +40 -0
  162. package/dist/types/components/input/input.component.d.ts +19 -0
  163. package/dist/types/components/input/types.d.ts +10 -0
  164. package/dist/types/components/textarea/textarea.component.d.ts +85 -0
  165. package/dist/types/components/textarea/types.d.ts +7 -0
  166. package/dist/types/components.d.ts +643 -0
  167. package/dist/types/utils/i18n.d.ts +8 -0
  168. package/dist/types/utils/slot/check-slot-content.d.ts +7 -0
  169. package/dist/types/utils/validation-messages.d.ts +11 -0
  170. package/package.json +1 -1
  171. package/dist/bromcom-ui/p-047e562f.entry.js +0 -2
  172. package/dist/bromcom-ui/p-047e562f.entry.js.map +0 -1
  173. package/dist/bromcom-ui/p-40643b53.js +0 -2
  174. package/dist/bromcom-ui/p-40643b53.js.map +0 -1
  175. package/dist/bromcom-ui/p-61c030c5.js +0 -3
  176. package/dist/bromcom-ui/p-61c030c5.js.map +0 -1
  177. package/dist/bromcom-ui/p-6430a887.entry.js +0 -2
  178. package/dist/bromcom-ui/p-9e94d920.entry.js +0 -2
  179. package/dist/bromcom-ui/p-9e94d920.entry.js.map +0 -1
  180. package/dist/bromcom-ui/p-bde58312.entry.js +0 -2
  181. package/dist/bromcom-ui/p-e7732b0c.entry.js +0 -2
  182. package/dist/bromcom-ui/p-e7732b0c.entry.js.map +0 -1
  183. package/dist/cjs/app-globals-e8faea0d.js +0 -43
  184. package/dist/cjs/app-globals-e8faea0d.js.map +0 -1
  185. package/dist/cjs/bcm-avatar.cjs.entry.js +0 -89
  186. package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
  187. package/dist/cjs/bcm-button_2.cjs.entry.js +0 -549
  188. package/dist/cjs/bcm-button_2.cjs.entry.js.map +0 -1
  189. package/dist/cjs/index-c36002ae.js.map +0 -1
  190. package/dist/components/p-8ded2c73.js.map +0 -1
  191. package/dist/esm/app-globals-f781c325.js +0 -41
  192. package/dist/esm/app-globals-f781c325.js.map +0 -1
  193. package/dist/esm/bcm-avatar.entry.js +0 -85
  194. package/dist/esm/bcm-avatar.entry.js.map +0 -1
  195. package/dist/esm/bcm-button_2.entry.js +0 -544
  196. package/dist/esm/bcm-button_2.entry.js.map +0 -1
  197. package/dist/esm/index-e23ee9b0.js.map +0 -1
  198. /package/dist/bromcom-ui/{p-b36f4f44.js.map → p-12360e4c.js.map} +0 -0
  199. /package/dist/bromcom-ui/{p-dcc13a55.entry.js.map → p-dcea8d62.entry.js.map} +0 -0
  200. /package/dist/bromcom-ui/{p-3805363a.entry.js.map → p-ebed10d5.entry.js.map} +0 -0
@@ -14,6 +14,7 @@ import { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
14
14
  import { InputSize, InputStatus, InputType } from "./components/input/types";
15
15
  import { Event } from "./stencil-public-runtime";
16
16
  import { TextSize, TextVariant } from "./components/text/text.types";
17
+ import { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
17
18
  export { AccordionChangeEventType } from "./components/accordion/types";
18
19
  export { AccordionGroupChangeEventType } from "./components/accordion-group/types";
19
20
  export { AlertKind, AlertSize, AlertStatus } from "./components/alert/types";
@@ -23,6 +24,7 @@ export { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
23
24
  export { InputSize, InputStatus, InputType } from "./components/input/types";
24
25
  export { Event } from "./stencil-public-runtime";
25
26
  export { TextSize, TextVariant } from "./components/text/text.types";
27
+ export { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
26
28
  export namespace Components {
27
29
  /**
28
30
  * @component BcmAccordion
@@ -246,6 +248,120 @@ export namespace Components {
246
248
  */
247
249
  "status": AvatarStatus;
248
250
  }
251
+ /**
252
+ * @component BcmBadge
253
+ * @description A versatile badge component that can be positioned around its container.
254
+ * Supports different sizes, variants (dot/text), colors, and positioning options.
255
+ * Can display status indicators with optional blinking animation.
256
+ * @example Basic usage
257
+ * <bcm-badge color="primary" position="top-right">
258
+ * <div>Container Content</div>
259
+ * <span slot="badge">New</span>
260
+ * </bcm-badge>
261
+ * @example Status indicator with blink
262
+ * <bcm-badge variant="dot" color="success" blink={true} status="Online">
263
+ * <div>User Profile</div>
264
+ * </bcm-badge>
265
+ */
266
+ interface BcmBadge {
267
+ /**
268
+ * Enables blinking animation for the badge. Useful for drawing attention or indicating active status.
269
+ * @type {boolean}
270
+ * @default false
271
+ */
272
+ "blink": boolean;
273
+ /**
274
+ * Defines the color of the badge. Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)
275
+ * @type {string}
276
+ * @optional
277
+ */
278
+ "color"?: string;
279
+ /**
280
+ * Fine-tune the badge position with custom offset. Format: "x,y" in pixels (e.g., "10,-5")
281
+ * @type {string}
282
+ * @optional
283
+ */
284
+ "offset": string;
285
+ /**
286
+ * Sets the position of the badge relative to its container.
287
+ * @type {'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'}
288
+ * @default 'top-right'
289
+ */
290
+ "position": 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
291
+ /**
292
+ * Determines the size of the badge.
293
+ * @type {'small' | 'medium' | 'large'}
294
+ * @default 'medium'
295
+ */
296
+ "size": 'small' | 'medium' | 'large';
297
+ /**
298
+ * Enables soft color mode for the badge. When true, uses lighter tones and pastel colors.
299
+ * @type {boolean}
300
+ * @default false
301
+ */
302
+ "soft": boolean;
303
+ /**
304
+ * Status message for accessibility purposes. Will be read by screen readers.
305
+ * @type {string}
306
+ * @optional
307
+ */
308
+ "status"?: string;
309
+ /**
310
+ * Text to be displayed inside the badge. Used when variant is set to 'text'. Can be overridden using the "badge" slot.
311
+ * @type {string}
312
+ * @optional
313
+ */
314
+ "text"?: string;
315
+ /**
316
+ * Sets the visual variant of the badge. 'dot': Appears as a small dot indicator 'text': Displays content as text
317
+ * @type {'dot' | 'text'}
318
+ * @default 'text'
319
+ */
320
+ "variant": 'dot' | 'text';
321
+ }
322
+ /**
323
+ * @component BcmBasicBadge
324
+ * @description A basic badge component that can be used as a status indicator or to highlight content.
325
+ * Supports dot and text variants with different sizes and color options.
326
+ * @example Basic usage
327
+ * <bcm-basic-badge size="medium" color="primary">
328
+ * New
329
+ * </bcm-basic-badge>
330
+ * @example Dot variant
331
+ * <bcm-basic-badge variant="dot" color="success" />
332
+ */
333
+ interface BcmBasicBadge {
334
+ /**
335
+ * Defines the color of the badge. Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)
336
+ * @type {string}
337
+ * @optional
338
+ */
339
+ "color"?: string;
340
+ /**
341
+ * Determines the size of the badge.
342
+ * @type {'small' | 'medium' | 'large'}
343
+ * @default 'medium'
344
+ */
345
+ "size": 'small' | 'medium' | 'large';
346
+ /**
347
+ * Enables soft color mode for the badge. When true, uses lighter tones and pastel colors.
348
+ * @type {boolean}
349
+ * @default false
350
+ */
351
+ "soft": boolean;
352
+ /**
353
+ * Text to be displayed inside the badge. Used when variant is set to 'text'.
354
+ * @type {string}
355
+ * @optional
356
+ */
357
+ "text"?: string;
358
+ /**
359
+ * Sets the visual variant of the badge. 'dot': Appears as a small dot indicator 'text': Displays content as text
360
+ * @type {'dot' | 'text'}
361
+ * @default 'text'
362
+ */
363
+ "variant": 'dot' | 'text';
364
+ }
249
365
  interface BcmButton {
250
366
  /**
251
367
  * Active state
@@ -365,6 +481,36 @@ export namespace Components {
365
481
  */
366
482
  "status"?: ChipStatus;
367
483
  }
484
+ /**
485
+ * @component BCM Divider
486
+ * @description A versatile divider component that creates a visual separation between content.
487
+ * It supports horizontal or vertical orientation with customizable styles and sizes.
488
+ * The component uses CSS variables for theming and Tailwind for styling.
489
+ */
490
+ interface BcmDivider {
491
+ /**
492
+ * @prop {('horizontal'|'vertical')} direction
493
+ * @description Determines the orientation of the divider
494
+ * @default 'horizontal'
495
+ * @example <bcm-divider direction="vertical" />
496
+ */
497
+ "direction": 'horizontal' | 'vertical';
498
+ /**
499
+ * @prop {('small'|'medium'|'large')} size
500
+ * @description Controls the thickness of the divider
501
+ * @default 'medium'
502
+ * @values - small: 1px border - medium: 2px border - large: 4px border
503
+ * @example <bcm-divider size="large" />
504
+ */
505
+ "size": 'small' | 'medium' | 'large';
506
+ /**
507
+ * @prop {('solid'|'dashed'|'dotted')} variant
508
+ * @description Sets the border style of the divider
509
+ * @default 'solid'
510
+ * @example <bcm-divider variant="dashed" />
511
+ */
512
+ "variant": 'solid' | 'dashed' | 'dotted';
513
+ }
368
514
  interface BcmInput {
369
515
  /**
370
516
  * Input id
@@ -445,6 +591,10 @@ export namespace Components {
445
591
  "select": () => Promise<void>;
446
592
  "setBlur": () => Promise<void>;
447
593
  "setFocus": () => Promise<void>;
594
+ /**
595
+ * Sets locale and messages for all inputs
596
+ */
597
+ "setLocale": (locale: string, messages: Record<string, string>) => Promise<void>;
448
598
  /**
449
599
  * Controls the input size
450
600
  */
@@ -465,6 +615,14 @@ export namespace Components {
465
615
  * HTML input type
466
616
  */
467
617
  "type": InputType;
618
+ /**
619
+ * Whether to use native form validation If false, component will handle validation internally
620
+ */
621
+ "useNativeValidation": boolean;
622
+ /**
623
+ * Custom validation function
624
+ */
625
+ "validator"?: (value: string) => string | undefined;
468
626
  /**
469
627
  * Input value
470
628
  */
@@ -484,6 +642,111 @@ export namespace Components {
484
642
  */
485
643
  "variant": TextVariant;
486
644
  }
645
+ interface BcmTextarea {
646
+ /**
647
+ * Input id
648
+ */
649
+ "_id"?: string;
650
+ /**
651
+ * Auto grow height based on content
652
+ */
653
+ "autoGrow": boolean;
654
+ /**
655
+ * Caption text to display below textarea
656
+ */
657
+ "captionText"?: string;
658
+ /**
659
+ * Textarea cols
660
+ */
661
+ "cols"?: number;
662
+ /**
663
+ * ID of associated caption/error text element
664
+ */
665
+ "describedby"?: string;
666
+ /**
667
+ * Whether the textarea is disabled
668
+ */
669
+ "disabled": boolean;
670
+ /**
671
+ * Error message to display
672
+ */
673
+ "errorMessage"?: string;
674
+ /**
675
+ * Full width textarea
676
+ */
677
+ "fullWidth": boolean;
678
+ /**
679
+ * Textarea label for accessibility
680
+ */
681
+ "label"?: string;
682
+ /**
683
+ * ID of associated label element
684
+ */
685
+ "labelledby"?: string;
686
+ /**
687
+ * Max length for text input
688
+ */
689
+ "maxLength"?: number;
690
+ /**
691
+ * Maximum height in rows
692
+ */
693
+ "maxRows"?: number;
694
+ /**
695
+ * Min length for text input
696
+ */
697
+ "minLength"?: number;
698
+ /**
699
+ * Minimum height in rows
700
+ */
701
+ "minRows"?: number;
702
+ /**
703
+ * Input name
704
+ */
705
+ "name"?: string;
706
+ /**
707
+ * Input placeholder text
708
+ */
709
+ "placeholder"?: string;
710
+ /**
711
+ * Whether the textarea is readonly
712
+ */
713
+ "readonly": boolean;
714
+ /**
715
+ * Whether the textarea is required
716
+ */
717
+ "required": boolean;
718
+ /**
719
+ * Resize behavior
720
+ */
721
+ "resize": TextareaResize;
722
+ /**
723
+ * Textarea rows
724
+ */
725
+ "rows"?: number;
726
+ "select": () => Promise<void>;
727
+ "setBlur": () => Promise<void>;
728
+ "setFocus": () => Promise<void>;
729
+ /**
730
+ * Show character counter
731
+ */
732
+ "showCounter": boolean;
733
+ /**
734
+ * Controls the textarea size
735
+ */
736
+ "size": InputSize1;
737
+ /**
738
+ * Defines the textarea's status/state
739
+ */
740
+ "status": InputStatus1;
741
+ /**
742
+ * Custom validation function
743
+ */
744
+ "validator"?: (value: string) => string | undefined;
745
+ /**
746
+ * Textarea value
747
+ */
748
+ "value": string;
749
+ }
487
750
  }
488
751
  export interface BcmAccordionCustomEvent<T> extends CustomEvent<T> {
489
752
  detail: T;
@@ -509,6 +772,10 @@ export interface BcmInputCustomEvent<T> extends CustomEvent<T> {
509
772
  detail: T;
510
773
  target: HTMLBcmInputElement;
511
774
  }
775
+ export interface BcmTextareaCustomEvent<T> extends CustomEvent<T> {
776
+ detail: T;
777
+ target: HTMLBcmTextareaElement;
778
+ }
512
779
  declare global {
513
780
  interface HTMLBcmAccordionElementEventMap {
514
781
  "bcmAccordionChange": AccordionChangeEventType;
@@ -668,6 +935,44 @@ declare global {
668
935
  prototype: HTMLBcmAvatarElement;
669
936
  new (): HTMLBcmAvatarElement;
670
937
  };
938
+ /**
939
+ * @component BcmBadge
940
+ * @description A versatile badge component that can be positioned around its container.
941
+ * Supports different sizes, variants (dot/text), colors, and positioning options.
942
+ * Can display status indicators with optional blinking animation.
943
+ * @example Basic usage
944
+ * <bcm-badge color="primary" position="top-right">
945
+ * <div>Container Content</div>
946
+ * <span slot="badge">New</span>
947
+ * </bcm-badge>
948
+ * @example Status indicator with blink
949
+ * <bcm-badge variant="dot" color="success" blink={true} status="Online">
950
+ * <div>User Profile</div>
951
+ * </bcm-badge>
952
+ */
953
+ interface HTMLBcmBadgeElement extends Components.BcmBadge, HTMLStencilElement {
954
+ }
955
+ var HTMLBcmBadgeElement: {
956
+ prototype: HTMLBcmBadgeElement;
957
+ new (): HTMLBcmBadgeElement;
958
+ };
959
+ /**
960
+ * @component BcmBasicBadge
961
+ * @description A basic badge component that can be used as a status indicator or to highlight content.
962
+ * Supports dot and text variants with different sizes and color options.
963
+ * @example Basic usage
964
+ * <bcm-basic-badge size="medium" color="primary">
965
+ * New
966
+ * </bcm-basic-badge>
967
+ * @example Dot variant
968
+ * <bcm-basic-badge variant="dot" color="success" />
969
+ */
970
+ interface HTMLBcmBasicBadgeElement extends Components.BcmBasicBadge, HTMLStencilElement {
971
+ }
972
+ var HTMLBcmBasicBadgeElement: {
973
+ prototype: HTMLBcmBasicBadgeElement;
974
+ new (): HTMLBcmBasicBadgeElement;
975
+ };
671
976
  interface HTMLBcmButtonElementEventMap {
672
977
  "bcmClick": MouseEvent;
673
978
  "bcmFocus": FocusEvent;
@@ -725,6 +1030,18 @@ declare global {
725
1030
  prototype: HTMLBcmChipElement;
726
1031
  new (): HTMLBcmChipElement;
727
1032
  };
1033
+ /**
1034
+ * @component BCM Divider
1035
+ * @description A versatile divider component that creates a visual separation between content.
1036
+ * It supports horizontal or vertical orientation with customizable styles and sizes.
1037
+ * The component uses CSS variables for theming and Tailwind for styling.
1038
+ */
1039
+ interface HTMLBcmDividerElement extends Components.BcmDivider, HTMLStencilElement {
1040
+ }
1041
+ var HTMLBcmDividerElement: {
1042
+ prototype: HTMLBcmDividerElement;
1043
+ new (): HTMLBcmDividerElement;
1044
+ };
728
1045
  interface HTMLBcmInputElementEventMap {
729
1046
  "bcmInput": InputEvent;
730
1047
  "bcmChange": Event;
@@ -753,15 +1070,41 @@ declare global {
753
1070
  prototype: HTMLBcmTextElement;
754
1071
  new (): HTMLBcmTextElement;
755
1072
  };
1073
+ interface HTMLBcmTextareaElementEventMap {
1074
+ "bcmInput": InputEvent;
1075
+ "bcmChange": Event;
1076
+ "bcmFocus": FocusEvent;
1077
+ "bcmBlur": FocusEvent;
1078
+ "bcmKeyDown": KeyboardEvent;
1079
+ "bcmKeyUp": KeyboardEvent;
1080
+ }
1081
+ interface HTMLBcmTextareaElement extends Components.BcmTextarea, HTMLStencilElement {
1082
+ addEventListener<K extends keyof HTMLBcmTextareaElementEventMap>(type: K, listener: (this: HTMLBcmTextareaElement, ev: BcmTextareaCustomEvent<HTMLBcmTextareaElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1083
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1084
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1085
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1086
+ removeEventListener<K extends keyof HTMLBcmTextareaElementEventMap>(type: K, listener: (this: HTMLBcmTextareaElement, ev: BcmTextareaCustomEvent<HTMLBcmTextareaElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1087
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1088
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1089
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1090
+ }
1091
+ var HTMLBcmTextareaElement: {
1092
+ prototype: HTMLBcmTextareaElement;
1093
+ new (): HTMLBcmTextareaElement;
1094
+ };
756
1095
  interface HTMLElementTagNameMap {
757
1096
  "bcm-accordion": HTMLBcmAccordionElement;
758
1097
  "bcm-accordion-group": HTMLBcmAccordionGroupElement;
759
1098
  "bcm-alert": HTMLBcmAlertElement;
760
1099
  "bcm-avatar": HTMLBcmAvatarElement;
1100
+ "bcm-badge": HTMLBcmBadgeElement;
1101
+ "bcm-basic-badge": HTMLBcmBasicBadgeElement;
761
1102
  "bcm-button": HTMLBcmButtonElement;
762
1103
  "bcm-chip": HTMLBcmChipElement;
1104
+ "bcm-divider": HTMLBcmDividerElement;
763
1105
  "bcm-input": HTMLBcmInputElement;
764
1106
  "bcm-text": HTMLBcmTextElement;
1107
+ "bcm-textarea": HTMLBcmTextareaElement;
765
1108
  }
766
1109
  }
767
1110
  declare namespace LocalJSX {
@@ -967,6 +1310,120 @@ declare namespace LocalJSX {
967
1310
  */
968
1311
  "status"?: AvatarStatus;
969
1312
  }
1313
+ /**
1314
+ * @component BcmBadge
1315
+ * @description A versatile badge component that can be positioned around its container.
1316
+ * Supports different sizes, variants (dot/text), colors, and positioning options.
1317
+ * Can display status indicators with optional blinking animation.
1318
+ * @example Basic usage
1319
+ * <bcm-badge color="primary" position="top-right">
1320
+ * <div>Container Content</div>
1321
+ * <span slot="badge">New</span>
1322
+ * </bcm-badge>
1323
+ * @example Status indicator with blink
1324
+ * <bcm-badge variant="dot" color="success" blink={true} status="Online">
1325
+ * <div>User Profile</div>
1326
+ * </bcm-badge>
1327
+ */
1328
+ interface BcmBadge {
1329
+ /**
1330
+ * Enables blinking animation for the badge. Useful for drawing attention or indicating active status.
1331
+ * @type {boolean}
1332
+ * @default false
1333
+ */
1334
+ "blink"?: boolean;
1335
+ /**
1336
+ * Defines the color of the badge. Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)
1337
+ * @type {string}
1338
+ * @optional
1339
+ */
1340
+ "color"?: string;
1341
+ /**
1342
+ * Fine-tune the badge position with custom offset. Format: "x,y" in pixels (e.g., "10,-5")
1343
+ * @type {string}
1344
+ * @optional
1345
+ */
1346
+ "offset"?: string;
1347
+ /**
1348
+ * Sets the position of the badge relative to its container.
1349
+ * @type {'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'}
1350
+ * @default 'top-right'
1351
+ */
1352
+ "position"?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
1353
+ /**
1354
+ * Determines the size of the badge.
1355
+ * @type {'small' | 'medium' | 'large'}
1356
+ * @default 'medium'
1357
+ */
1358
+ "size"?: 'small' | 'medium' | 'large';
1359
+ /**
1360
+ * Enables soft color mode for the badge. When true, uses lighter tones and pastel colors.
1361
+ * @type {boolean}
1362
+ * @default false
1363
+ */
1364
+ "soft"?: boolean;
1365
+ /**
1366
+ * Status message for accessibility purposes. Will be read by screen readers.
1367
+ * @type {string}
1368
+ * @optional
1369
+ */
1370
+ "status"?: string;
1371
+ /**
1372
+ * Text to be displayed inside the badge. Used when variant is set to 'text'. Can be overridden using the "badge" slot.
1373
+ * @type {string}
1374
+ * @optional
1375
+ */
1376
+ "text"?: string;
1377
+ /**
1378
+ * Sets the visual variant of the badge. 'dot': Appears as a small dot indicator 'text': Displays content as text
1379
+ * @type {'dot' | 'text'}
1380
+ * @default 'text'
1381
+ */
1382
+ "variant"?: 'dot' | 'text';
1383
+ }
1384
+ /**
1385
+ * @component BcmBasicBadge
1386
+ * @description A basic badge component that can be used as a status indicator or to highlight content.
1387
+ * Supports dot and text variants with different sizes and color options.
1388
+ * @example Basic usage
1389
+ * <bcm-basic-badge size="medium" color="primary">
1390
+ * New
1391
+ * </bcm-basic-badge>
1392
+ * @example Dot variant
1393
+ * <bcm-basic-badge variant="dot" color="success" />
1394
+ */
1395
+ interface BcmBasicBadge {
1396
+ /**
1397
+ * Defines the color of the badge. Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)
1398
+ * @type {string}
1399
+ * @optional
1400
+ */
1401
+ "color"?: string;
1402
+ /**
1403
+ * Determines the size of the badge.
1404
+ * @type {'small' | 'medium' | 'large'}
1405
+ * @default 'medium'
1406
+ */
1407
+ "size"?: 'small' | 'medium' | 'large';
1408
+ /**
1409
+ * Enables soft color mode for the badge. When true, uses lighter tones and pastel colors.
1410
+ * @type {boolean}
1411
+ * @default false
1412
+ */
1413
+ "soft"?: boolean;
1414
+ /**
1415
+ * Text to be displayed inside the badge. Used when variant is set to 'text'.
1416
+ * @type {string}
1417
+ * @optional
1418
+ */
1419
+ "text"?: string;
1420
+ /**
1421
+ * Sets the visual variant of the badge. 'dot': Appears as a small dot indicator 'text': Displays content as text
1422
+ * @type {'dot' | 'text'}
1423
+ * @default 'text'
1424
+ */
1425
+ "variant"?: 'dot' | 'text';
1426
+ }
970
1427
  interface BcmButton {
971
1428
  /**
972
1429
  * Active state
@@ -1090,6 +1547,36 @@ declare namespace LocalJSX {
1090
1547
  */
1091
1548
  "status"?: ChipStatus;
1092
1549
  }
1550
+ /**
1551
+ * @component BCM Divider
1552
+ * @description A versatile divider component that creates a visual separation between content.
1553
+ * It supports horizontal or vertical orientation with customizable styles and sizes.
1554
+ * The component uses CSS variables for theming and Tailwind for styling.
1555
+ */
1556
+ interface BcmDivider {
1557
+ /**
1558
+ * @prop {('horizontal'|'vertical')} direction
1559
+ * @description Determines the orientation of the divider
1560
+ * @default 'horizontal'
1561
+ * @example <bcm-divider direction="vertical" />
1562
+ */
1563
+ "direction"?: 'horizontal' | 'vertical';
1564
+ /**
1565
+ * @prop {('small'|'medium'|'large')} size
1566
+ * @description Controls the thickness of the divider
1567
+ * @default 'medium'
1568
+ * @values - small: 1px border - medium: 2px border - large: 4px border
1569
+ * @example <bcm-divider size="large" />
1570
+ */
1571
+ "size"?: 'small' | 'medium' | 'large';
1572
+ /**
1573
+ * @prop {('solid'|'dashed'|'dotted')} variant
1574
+ * @description Sets the border style of the divider
1575
+ * @default 'solid'
1576
+ * @example <bcm-divider variant="dashed" />
1577
+ */
1578
+ "variant"?: 'solid' | 'dashed' | 'dotted';
1579
+ }
1093
1580
  interface BcmInput {
1094
1581
  /**
1095
1582
  * Input id
@@ -1193,6 +1680,14 @@ declare namespace LocalJSX {
1193
1680
  * HTML input type
1194
1681
  */
1195
1682
  "type"?: InputType;
1683
+ /**
1684
+ * Whether to use native form validation If false, component will handle validation internally
1685
+ */
1686
+ "useNativeValidation"?: boolean;
1687
+ /**
1688
+ * Custom validation function
1689
+ */
1690
+ "validator"?: (value: string) => string | undefined;
1196
1691
  /**
1197
1692
  * Input value
1198
1693
  */
@@ -1212,15 +1707,127 @@ declare namespace LocalJSX {
1212
1707
  */
1213
1708
  "variant"?: TextVariant;
1214
1709
  }
1710
+ interface BcmTextarea {
1711
+ /**
1712
+ * Input id
1713
+ */
1714
+ "_id"?: string;
1715
+ /**
1716
+ * Auto grow height based on content
1717
+ */
1718
+ "autoGrow"?: boolean;
1719
+ /**
1720
+ * Caption text to display below textarea
1721
+ */
1722
+ "captionText"?: string;
1723
+ /**
1724
+ * Textarea cols
1725
+ */
1726
+ "cols"?: number;
1727
+ /**
1728
+ * ID of associated caption/error text element
1729
+ */
1730
+ "describedby"?: string;
1731
+ /**
1732
+ * Whether the textarea is disabled
1733
+ */
1734
+ "disabled"?: boolean;
1735
+ /**
1736
+ * Error message to display
1737
+ */
1738
+ "errorMessage"?: string;
1739
+ /**
1740
+ * Full width textarea
1741
+ */
1742
+ "fullWidth"?: boolean;
1743
+ /**
1744
+ * Textarea label for accessibility
1745
+ */
1746
+ "label"?: string;
1747
+ /**
1748
+ * ID of associated label element
1749
+ */
1750
+ "labelledby"?: string;
1751
+ /**
1752
+ * Max length for text input
1753
+ */
1754
+ "maxLength"?: number;
1755
+ /**
1756
+ * Maximum height in rows
1757
+ */
1758
+ "maxRows"?: number;
1759
+ /**
1760
+ * Min length for text input
1761
+ */
1762
+ "minLength"?: number;
1763
+ /**
1764
+ * Minimum height in rows
1765
+ */
1766
+ "minRows"?: number;
1767
+ /**
1768
+ * Input name
1769
+ */
1770
+ "name"?: string;
1771
+ "onBcmBlur"?: (event: BcmTextareaCustomEvent<FocusEvent>) => void;
1772
+ "onBcmChange"?: (event: BcmTextareaCustomEvent<Event>) => void;
1773
+ "onBcmFocus"?: (event: BcmTextareaCustomEvent<FocusEvent>) => void;
1774
+ "onBcmInput"?: (event: BcmTextareaCustomEvent<InputEvent>) => void;
1775
+ "onBcmKeyDown"?: (event: BcmTextareaCustomEvent<KeyboardEvent>) => void;
1776
+ "onBcmKeyUp"?: (event: BcmTextareaCustomEvent<KeyboardEvent>) => void;
1777
+ /**
1778
+ * Input placeholder text
1779
+ */
1780
+ "placeholder"?: string;
1781
+ /**
1782
+ * Whether the textarea is readonly
1783
+ */
1784
+ "readonly"?: boolean;
1785
+ /**
1786
+ * Whether the textarea is required
1787
+ */
1788
+ "required"?: boolean;
1789
+ /**
1790
+ * Resize behavior
1791
+ */
1792
+ "resize"?: TextareaResize;
1793
+ /**
1794
+ * Textarea rows
1795
+ */
1796
+ "rows"?: number;
1797
+ /**
1798
+ * Show character counter
1799
+ */
1800
+ "showCounter"?: boolean;
1801
+ /**
1802
+ * Controls the textarea size
1803
+ */
1804
+ "size"?: InputSize1;
1805
+ /**
1806
+ * Defines the textarea's status/state
1807
+ */
1808
+ "status"?: InputStatus1;
1809
+ /**
1810
+ * Custom validation function
1811
+ */
1812
+ "validator"?: (value: string) => string | undefined;
1813
+ /**
1814
+ * Textarea value
1815
+ */
1816
+ "value"?: string;
1817
+ }
1215
1818
  interface IntrinsicElements {
1216
1819
  "bcm-accordion": BcmAccordion;
1217
1820
  "bcm-accordion-group": BcmAccordionGroup;
1218
1821
  "bcm-alert": BcmAlert;
1219
1822
  "bcm-avatar": BcmAvatar;
1823
+ "bcm-badge": BcmBadge;
1824
+ "bcm-basic-badge": BcmBasicBadge;
1220
1825
  "bcm-button": BcmButton;
1221
1826
  "bcm-chip": BcmChip;
1827
+ "bcm-divider": BcmDivider;
1222
1828
  "bcm-input": BcmInput;
1223
1829
  "bcm-text": BcmText;
1830
+ "bcm-textarea": BcmTextarea;
1224
1831
  }
1225
1832
  }
1226
1833
  export { LocalJSX as JSX };
@@ -1332,6 +1939,34 @@ declare module "@stencil/core" {
1332
1939
  */
1333
1940
  "bcm-alert": LocalJSX.BcmAlert & JSXBase.HTMLAttributes<HTMLBcmAlertElement>;
1334
1941
  "bcm-avatar": LocalJSX.BcmAvatar & JSXBase.HTMLAttributes<HTMLBcmAvatarElement>;
1942
+ /**
1943
+ * @component BcmBadge
1944
+ * @description A versatile badge component that can be positioned around its container.
1945
+ * Supports different sizes, variants (dot/text), colors, and positioning options.
1946
+ * Can display status indicators with optional blinking animation.
1947
+ * @example Basic usage
1948
+ * <bcm-badge color="primary" position="top-right">
1949
+ * <div>Container Content</div>
1950
+ * <span slot="badge">New</span>
1951
+ * </bcm-badge>
1952
+ * @example Status indicator with blink
1953
+ * <bcm-badge variant="dot" color="success" blink={true} status="Online">
1954
+ * <div>User Profile</div>
1955
+ * </bcm-badge>
1956
+ */
1957
+ "bcm-badge": LocalJSX.BcmBadge & JSXBase.HTMLAttributes<HTMLBcmBadgeElement>;
1958
+ /**
1959
+ * @component BcmBasicBadge
1960
+ * @description A basic badge component that can be used as a status indicator or to highlight content.
1961
+ * Supports dot and text variants with different sizes and color options.
1962
+ * @example Basic usage
1963
+ * <bcm-basic-badge size="medium" color="primary">
1964
+ * New
1965
+ * </bcm-basic-badge>
1966
+ * @example Dot variant
1967
+ * <bcm-basic-badge variant="dot" color="success" />
1968
+ */
1969
+ "bcm-basic-badge": LocalJSX.BcmBasicBadge & JSXBase.HTMLAttributes<HTMLBcmBasicBadgeElement>;
1335
1970
  "bcm-button": LocalJSX.BcmButton & JSXBase.HTMLAttributes<HTMLBcmButtonElement>;
1336
1971
  /**
1337
1972
  * @component BcmChip
@@ -1355,8 +1990,16 @@ declare module "@stencil/core" {
1355
1990
  * @csspart dismiss-icon - The dismiss button icon
1356
1991
  */
1357
1992
  "bcm-chip": LocalJSX.BcmChip & JSXBase.HTMLAttributes<HTMLBcmChipElement>;
1993
+ /**
1994
+ * @component BCM Divider
1995
+ * @description A versatile divider component that creates a visual separation between content.
1996
+ * It supports horizontal or vertical orientation with customizable styles and sizes.
1997
+ * The component uses CSS variables for theming and Tailwind for styling.
1998
+ */
1999
+ "bcm-divider": LocalJSX.BcmDivider & JSXBase.HTMLAttributes<HTMLBcmDividerElement>;
1358
2000
  "bcm-input": LocalJSX.BcmInput & JSXBase.HTMLAttributes<HTMLBcmInputElement>;
1359
2001
  "bcm-text": LocalJSX.BcmText & JSXBase.HTMLAttributes<HTMLBcmTextElement>;
2002
+ "bcm-textarea": LocalJSX.BcmTextarea & JSXBase.HTMLAttributes<HTMLBcmTextareaElement>;
1360
2003
  }
1361
2004
  }
1362
2005
  }