bromcom-ui 3.0.0-alpha.2 → 3.0.0-alpha.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 (144) 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/{p-c47463b1.entry.js → p-0b7de283.entry.js} +1 -1
  4. package/dist/bromcom-ui/{p-a141b2bc.entry.js → p-0e75f6ba.entry.js} +1 -1
  5. package/dist/bromcom-ui/{p-9d41ff2a.entry.js → p-112b9a62.entry.js} +1 -1
  6. package/dist/bromcom-ui/p-1535f9b1.js +5 -0
  7. package/dist/bromcom-ui/{p-2a0b6273.entry.js → p-32ce6cf6.entry.js} +1 -1
  8. package/dist/bromcom-ui/{p-46628fcd.entry.js → p-33b2ed75.entry.js} +1 -1
  9. package/dist/bromcom-ui/{p-7416d1f6.entry.js → p-4545a13d.entry.js} +1 -1
  10. package/dist/bromcom-ui/p-45b811ef.entry.js +5 -0
  11. package/dist/bromcom-ui/{p-369948e7.entry.js → p-5532696c.entry.js} +1 -1
  12. package/dist/bromcom-ui/{p-8363990a.entry.js → p-69adb859.entry.js} +1 -1
  13. package/dist/bromcom-ui/{p-d4e4aeee.js → p-6ce02d0a.js} +1 -1
  14. package/dist/bromcom-ui/p-7c08789d.entry.js +5 -0
  15. package/dist/bromcom-ui/{p-22e3161d.entry.js → p-803739bc.entry.js} +1 -1
  16. package/dist/bromcom-ui/{p-14b04371.entry.js → p-8390dd02.entry.js} +1 -1
  17. package/dist/bromcom-ui/{p-217934a4.entry.js → p-8e7274e4.entry.js} +1 -1
  18. package/dist/bromcom-ui/p-91197b04.js +5 -0
  19. package/dist/bromcom-ui/{p-cbeaa059.entry.js → p-9e0dd503.entry.js} +3 -3
  20. package/dist/bromcom-ui/p-a320cde8.entry.js +5 -0
  21. package/dist/bromcom-ui/p-a80e6310.entry.js +5 -0
  22. package/dist/bromcom-ui/{p-b85227c8.entry.js → p-acab07ec.entry.js} +1 -1
  23. package/dist/bromcom-ui/{p-51ba3626.entry.js → p-b333a3d7.entry.js} +1 -1
  24. package/dist/bromcom-ui/{p-a080c8ea.entry.js → p-b7787c11.entry.js} +1 -1
  25. package/dist/bromcom-ui/{p-6f224017.entry.js → p-b7c56cbe.entry.js} +1 -1
  26. package/dist/bromcom-ui/{p-e7c31126.entry.js → p-c36a7889.entry.js} +1 -1
  27. package/dist/bromcom-ui/p-ce0ab4e3.entry.js +5 -0
  28. package/dist/bromcom-ui/{p-367bc8e0.js → p-d3cf91a9.js} +1 -1
  29. package/dist/bromcom-ui/{p-5bf051b9.entry.js → p-d7a619c5.entry.js} +1 -1
  30. package/dist/bromcom-ui/p-ddd9e192.entry.js +5 -0
  31. package/dist/bromcom-ui/{p-9015080d.entry.js → p-e36b6b08.entry.js} +1 -1
  32. package/dist/bromcom-ui/{p-acfceb2b.entry.js → p-f15c1d3d.entry.js} +1 -1
  33. package/dist/bromcom-ui/{p-858cee66.js → p-fc29c94d.js} +1 -1
  34. package/dist/cjs/{bcm-accordion_68.cjs.entry.js → bcm-accordion_69.cjs.entry.js} +120 -43
  35. package/dist/cjs/bcm-attendance-actions-comment.cjs.entry.js +4 -4
  36. package/dist/cjs/bcm-attendance-actions-dropdown.cjs.entry.js +4 -4
  37. package/dist/cjs/bcm-breadcrumb.cjs.entry.js +2 -2
  38. package/dist/cjs/bcm-caption.cjs.entry.js +4 -4
  39. package/dist/cjs/bcm-card.cjs.entry.js +2 -2
  40. package/dist/cjs/bcm-date-picker.cjs.entry.js +2 -2
  41. package/dist/cjs/bcm-datetime-picker.cjs.entry.js +2 -2
  42. package/dist/cjs/bcm-default.cjs.entry.js +2 -2
  43. package/dist/cjs/bcm-form-2.cjs.entry.js +2 -2
  44. package/dist/cjs/bcm-input-2.cjs.entry.js +2 -2
  45. package/dist/cjs/bcm-input-custom.cjs.entry.js +2 -2
  46. package/dist/cjs/bcm-input-dropdown.cjs.entry.js +4 -4
  47. package/dist/cjs/bcm-modal-2-footer.cjs.entry.js +4 -4
  48. package/dist/cjs/bcm-modal-2-header.cjs.entry.js +4 -4
  49. package/dist/cjs/bcm-modal-2.cjs.entry.js +4 -4
  50. package/dist/cjs/bcm-number-input.cjs.entry.js +4 -4
  51. package/dist/cjs/bcm-segment.cjs.entry.js +51 -0
  52. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +158 -0
  53. package/dist/cjs/bcm-skeleton.cjs.entry.js +4 -4
  54. package/dist/cjs/bcm-table.cjs.entry.js +4 -4
  55. package/dist/cjs/bcm-tag.cjs.entry.js +3 -3
  56. package/dist/cjs/bcm-time-picker.cjs.entry.js +2 -2
  57. package/dist/cjs/bcm-toast.cjs.entry.js +17 -11
  58. package/dist/cjs/bromcom-ui.cjs.js +3 -3
  59. package/dist/cjs/{generate-a25d8fc8.js → generate-9d1bf6b3.js} +1 -1
  60. package/dist/cjs/{global-08c079a8.js → global-d69a64ec.js} +1 -1
  61. package/dist/cjs/loader.cjs.js +3 -3
  62. package/dist/cjs/{number-helper-3a56812f.js → number-helper-ae28b255.js} +1 -1
  63. package/dist/cjs/old-bcm-popover-box.cjs.entry.js +3 -3
  64. package/dist/cjs/old-bcm-popover.cjs.entry.js +2 -2
  65. package/dist/cjs/{package-6afe17f3.js → package-6de220be.js} +1 -1
  66. package/dist/cjs/{validators-78797513.js → validators-3381bee2.js} +1 -1
  67. package/dist/collection/collection-manifest.json +3 -0
  68. package/dist/collection/components/molecules/color-input/color-input.css +127 -0
  69. package/dist/collection/components/molecules/color-input/color-input.js +34 -13
  70. package/dist/collection/components/molecules/color-palette/color-palette.js +114 -0
  71. package/dist/collection/components/molecules/color-palette/color-palette.style.js +25 -0
  72. package/dist/collection/components/organism/list/list.js +74 -20
  73. package/dist/collection/components/other/segmented-picker/segment.component.js +200 -0
  74. package/dist/collection/components/other/segmented-picker/segment.css +28 -0
  75. package/dist/collection/components/other/segmented-picker/segmented-picker.component.js +365 -0
  76. package/dist/collection/components/other/segmented-picker/segmented-picker.css +16 -0
  77. package/dist/collection/components/other/segmented-picker/types.js +1 -0
  78. package/dist/collection/components/other/toast/toast.js +15 -9
  79. package/dist/collection/templates/list-item-template.js +4 -4
  80. package/dist/collection/templates/list-template.js +2 -2
  81. package/dist/components/bcm-color-input.js +18 -15
  82. package/dist/components/bcm-color-palette.d.ts +11 -0
  83. package/dist/components/bcm-color-palette.js +10 -0
  84. package/dist/components/bcm-segment.d.ts +11 -0
  85. package/dist/components/bcm-segment.js +71 -0
  86. package/dist/components/bcm-segmented-picker.d.ts +11 -0
  87. package/dist/components/bcm-segmented-picker.js +182 -0
  88. package/dist/components/bcm-toast.js +15 -9
  89. package/dist/components/color-palette.js +71 -0
  90. package/dist/components/generate.js +1 -1
  91. package/dist/components/index.d.ts +3 -0
  92. package/dist/components/index.js +3 -0
  93. package/dist/components/list.js +64 -27
  94. package/dist/esm/{bcm-accordion_68.entry.js → bcm-accordion_69.entry.js} +120 -44
  95. package/dist/esm/bcm-attendance-actions-comment.entry.js +4 -4
  96. package/dist/esm/bcm-attendance-actions-dropdown.entry.js +4 -4
  97. package/dist/esm/bcm-breadcrumb.entry.js +2 -2
  98. package/dist/esm/bcm-caption.entry.js +4 -4
  99. package/dist/esm/bcm-card.entry.js +2 -2
  100. package/dist/esm/bcm-date-picker.entry.js +2 -2
  101. package/dist/esm/bcm-datetime-picker.entry.js +2 -2
  102. package/dist/esm/bcm-default.entry.js +2 -2
  103. package/dist/esm/bcm-form-2.entry.js +2 -2
  104. package/dist/esm/bcm-input-2.entry.js +2 -2
  105. package/dist/esm/bcm-input-custom.entry.js +2 -2
  106. package/dist/esm/bcm-input-dropdown.entry.js +4 -4
  107. package/dist/esm/bcm-modal-2-footer.entry.js +4 -4
  108. package/dist/esm/bcm-modal-2-header.entry.js +4 -4
  109. package/dist/esm/bcm-modal-2.entry.js +4 -4
  110. package/dist/esm/bcm-number-input.entry.js +4 -4
  111. package/dist/esm/bcm-segment.entry.js +47 -0
  112. package/dist/esm/bcm-segmented-picker.entry.js +154 -0
  113. package/dist/esm/bcm-skeleton.entry.js +4 -4
  114. package/dist/esm/bcm-table.entry.js +4 -4
  115. package/dist/esm/bcm-tag.entry.js +3 -3
  116. package/dist/esm/bcm-time-picker.entry.js +2 -2
  117. package/dist/esm/bcm-toast.entry.js +17 -11
  118. package/dist/esm/bromcom-ui.js +3 -3
  119. package/dist/esm/{generate-a4b85775.js → generate-56d49b70.js} +1 -1
  120. package/dist/esm/{global-1baa11cd.js → global-97c42a5f.js} +1 -1
  121. package/dist/esm/loader.js +3 -3
  122. package/dist/esm/{number-helper-872d5482.js → number-helper-455ab41e.js} +1 -1
  123. package/dist/esm/old-bcm-popover-box.entry.js +3 -3
  124. package/dist/esm/old-bcm-popover.entry.js +2 -2
  125. package/dist/esm/{package-1d6f13ed.js → package-edee14d5.js} +1 -1
  126. package/dist/esm/{validators-e9800e9a.js → validators-cc882165.js} +1 -1
  127. package/dist/types/components/molecules/color-input/color-input.d.ts +5 -4
  128. package/dist/types/components/molecules/color-palette/color-palette.d.ts +36 -0
  129. package/dist/types/components/molecules/color-palette/color-palette.style.d.ts +76 -0
  130. package/dist/types/components/organism/list/list.d.ts +4 -0
  131. package/dist/types/components/other/segmented-picker/segment.component.d.ts +42 -0
  132. package/dist/types/components/other/segmented-picker/segmented-picker.component.d.ts +86 -0
  133. package/dist/types/components/other/segmented-picker/types.d.ts +1 -0
  134. package/dist/types/components/other/toast/toast.d.ts +1 -0
  135. package/dist/types/components.d.ts +281 -0
  136. package/dist/types/templates/list-item-template.d.ts +2 -0
  137. package/dist/types/templates/list-template.d.ts +2 -0
  138. package/package.json +1 -1
  139. package/dist/bromcom-ui/p-485ed6c1.entry.js +0 -5
  140. package/dist/bromcom-ui/p-5c4939a7.js +0 -5
  141. package/dist/bromcom-ui/p-8457670e.entry.js +0 -5
  142. package/dist/bromcom-ui/p-dcd69786.entry.js +0 -5
  143. package/dist/bromcom-ui/p-e9a43560.js +0 -5
  144. package/dist/bromcom-ui/p-ea24a822.entry.js +0 -5
@@ -0,0 +1,86 @@
1
+ import { EventEmitter } from '../../../stencil-public-runtime';
2
+ /**
3
+ * Modern Segmented Picker component with CSS Grid-based indicator
4
+ * @slot - Default slot for bcm-segment components
5
+ */
6
+ export declare class BcmSegmentedPicker {
7
+ el: HTMLElement;
8
+ /**
9
+ * Selected segment value
10
+ */
11
+ value: string;
12
+ /**
13
+ * Name attribute for form association
14
+ */
15
+ name: string;
16
+ /**
17
+ * Whether this field is required in a form
18
+ */
19
+ required: boolean;
20
+ /**
21
+ * Size variant
22
+ */
23
+ size: 'small' | 'medium' | 'large';
24
+ /**
25
+ * Full width flag
26
+ */
27
+ fullWidth: boolean;
28
+ /**
29
+ * Disabled state
30
+ */
31
+ disabled: boolean;
32
+ /**
33
+ * Enable shadow on container
34
+ */
35
+ shadow: boolean;
36
+ /**
37
+ * Emits when selected segment changes
38
+ */
39
+ bcmSegmentChange: EventEmitter<{
40
+ value: string;
41
+ previousValue: string;
42
+ }>;
43
+ segments: Array<{
44
+ value: string;
45
+ disabled: boolean;
46
+ }>;
47
+ activeIndex: number;
48
+ private segmentElements;
49
+ componentWillLoad(): void;
50
+ componentDidLoad(): void;
51
+ /**
52
+ * Discovers all bcm-segment children
53
+ */
54
+ private discoverSegments;
55
+ /**
56
+ * Updates the active index based on current value
57
+ */
58
+ private updateActiveIndex;
59
+ /**
60
+ * Updates selected state of all segment elements
61
+ */
62
+ private updateSegmentStates;
63
+ /**
64
+ * Updates CSS custom properties for indicator positioning
65
+ */
66
+ private updateCSSVariables;
67
+ handleValueChange(newValue: string, oldValue: string): void;
68
+ handleSizeChange(): void;
69
+ /**
70
+ * Propagates parent props to child segments
71
+ */
72
+ private propagatePropsToSegments;
73
+ /**
74
+ * Handles segment click events from children
75
+ */
76
+ handleSegmentClick(event: CustomEvent<string>): void;
77
+ /**
78
+ * Public method to programmatically set active segment
79
+ */
80
+ setValue(value: string): Promise<void>;
81
+ /**
82
+ * Public method to get active segment value
83
+ */
84
+ getValue(): Promise<string>;
85
+ render(): any;
86
+ }
@@ -0,0 +1 @@
1
+ export type SegmentedPickerSize = 'small' | 'medium' | 'large';
@@ -18,6 +18,7 @@ export declare class BcmToast implements ComponentInterface {
18
18
  visible: boolean;
19
19
  visibleContainer: boolean;
20
20
  private timer;
21
+ private renderMultiline;
21
22
  show(): Promise<HTMLElement>;
22
23
  hide(): Promise<void>;
23
24
  private handleMouseEnter;
@@ -278,6 +278,34 @@ export namespace Components {
278
278
  "placeholder": string;
279
279
  "readonly": boolean;
280
280
  "required": boolean;
281
+ /**
282
+ * Picker type to display
283
+ */
284
+ "type": 'default' | 'palette';
285
+ "value": string;
286
+ }
287
+ /**
288
+ * A component that renders a grid of Tailwind CSS colors.
289
+ * It allows users to select a specific shade from various color palettes.
290
+ * @component bcm-color-palette
291
+ * @property {string} value - The currently selected color value (e.g., '#000000'). This prop is mutable and reflected.
292
+ * @property {string[]} paletteKeys - An array of Tailwind color names to display in the grid (e.g., ['blue', 'red']).
293
+ * @property {number[]} shades - An array of shade values to generate for each color key (e.g., [100, 200, ...]).
294
+ * @event bcm-change - Emitted when a color is selected. The event detail contains the selected hex color string.
295
+ * @example <bcm-color-palette value="#000000"></bcm-color-palette>
296
+ */
297
+ interface BcmColorPalette {
298
+ /**
299
+ * List of tailwind color keys to display
300
+ */
301
+ "paletteKeys": string[];
302
+ /**
303
+ * List of shades to display
304
+ */
305
+ "shades": number[];
306
+ /**
307
+ * Selected color value (e.g. '#000000')
308
+ */
281
309
  "value": string;
282
310
  }
283
311
  interface BcmColorful {
@@ -747,6 +775,7 @@ export namespace Components {
747
775
  "_id": string;
748
776
  "addChecked": (ids?: any[], save?: boolean, emit?: boolean) => Promise<any>;
749
777
  "allOpen": boolean;
778
+ "autoFocusSelected": boolean;
750
779
  "caption": string;
751
780
  "captionError": string;
752
781
  "captionType": StatusTypes;
@@ -1265,6 +1294,80 @@ export namespace Components {
1265
1294
  "setValue": (newValue: any) => Promise<void>;
1266
1295
  "size": SizeTypes1;
1267
1296
  }
1297
+ /**
1298
+ * Individual segment option component
1299
+ */
1300
+ interface BcmSegment {
1301
+ /**
1302
+ * Index of currently active segment (inherited from parent)
1303
+ */
1304
+ "activeIndex": number;
1305
+ /**
1306
+ * Disabled state
1307
+ */
1308
+ "disabled": boolean;
1309
+ /**
1310
+ * Index of this segment (inherited from parent)
1311
+ */
1312
+ "index": number;
1313
+ /**
1314
+ * Selected state (controlled by parent)
1315
+ */
1316
+ "selected": boolean;
1317
+ /**
1318
+ * Size variant (inherited from parent)
1319
+ */
1320
+ "size": 'small' | 'medium' | 'large';
1321
+ /**
1322
+ * Total number of segments (inherited from parent)
1323
+ */
1324
+ "totalSegments": number;
1325
+ /**
1326
+ * Unique identifier for this segment
1327
+ */
1328
+ "value": string;
1329
+ }
1330
+ /**
1331
+ * Modern Segmented Picker component with CSS Grid-based indicator
1332
+ */
1333
+ interface BcmSegmentedPicker {
1334
+ /**
1335
+ * Disabled state
1336
+ */
1337
+ "disabled": boolean;
1338
+ /**
1339
+ * Full width flag
1340
+ */
1341
+ "fullWidth": boolean;
1342
+ /**
1343
+ * Public method to get active segment value
1344
+ */
1345
+ "getValue": () => Promise<string>;
1346
+ /**
1347
+ * Name attribute for form association
1348
+ */
1349
+ "name": string;
1350
+ /**
1351
+ * Whether this field is required in a form
1352
+ */
1353
+ "required": boolean;
1354
+ /**
1355
+ * Public method to programmatically set active segment
1356
+ */
1357
+ "setValue": (value: string) => Promise<void>;
1358
+ /**
1359
+ * Enable shadow on container
1360
+ */
1361
+ "shadow": boolean;
1362
+ /**
1363
+ * Size variant
1364
+ */
1365
+ "size": 'small' | 'medium' | 'large';
1366
+ /**
1367
+ * Selected segment value
1368
+ */
1369
+ "value": string;
1370
+ }
1268
1371
  interface BcmSelect {
1269
1372
  "_data": any;
1270
1373
  "_id": string;
@@ -1800,6 +1903,10 @@ export interface BcmCollapseCustomEvent<T> extends CustomEvent<T> {
1800
1903
  detail: T;
1801
1904
  target: HTMLBcmCollapseElement;
1802
1905
  }
1906
+ export interface BcmColorPaletteCustomEvent<T> extends CustomEvent<T> {
1907
+ detail: T;
1908
+ target: HTMLBcmColorPaletteElement;
1909
+ }
1803
1910
  export interface BcmColorfulCustomEvent<T> extends CustomEvent<T> {
1804
1911
  detail: T;
1805
1912
  target: HTMLBcmColorfulElement;
@@ -1936,6 +2043,14 @@ export interface BcmSearchCustomEvent<T> extends CustomEvent<T> {
1936
2043
  detail: T;
1937
2044
  target: HTMLBcmSearchElement;
1938
2045
  }
2046
+ export interface BcmSegmentCustomEvent<T> extends CustomEvent<T> {
2047
+ detail: T;
2048
+ target: HTMLBcmSegmentElement;
2049
+ }
2050
+ export interface BcmSegmentedPickerCustomEvent<T> extends CustomEvent<T> {
2051
+ detail: T;
2052
+ target: HTMLBcmSegmentedPickerElement;
2053
+ }
1939
2054
  export interface BcmSelectCustomEvent<T> extends CustomEvent<T> {
1940
2055
  detail: T;
1941
2056
  target: HTMLBcmSelectElement;
@@ -2131,6 +2246,22 @@ declare global {
2131
2246
  prototype: HTMLBcmColorInputElement;
2132
2247
  new (): HTMLBcmColorInputElement;
2133
2248
  };
2249
+ /**
2250
+ * A component that renders a grid of Tailwind CSS colors.
2251
+ * It allows users to select a specific shade from various color palettes.
2252
+ * @component bcm-color-palette
2253
+ * @property {string} value - The currently selected color value (e.g., '#000000'). This prop is mutable and reflected.
2254
+ * @property {string[]} paletteKeys - An array of Tailwind color names to display in the grid (e.g., ['blue', 'red']).
2255
+ * @property {number[]} shades - An array of shade values to generate for each color key (e.g., [100, 200, ...]).
2256
+ * @event bcm-change - Emitted when a color is selected. The event detail contains the selected hex color string.
2257
+ * @example <bcm-color-palette value="#000000"></bcm-color-palette>
2258
+ */
2259
+ interface HTMLBcmColorPaletteElement extends Components.BcmColorPalette, HTMLStencilElement {
2260
+ }
2261
+ var HTMLBcmColorPaletteElement: {
2262
+ prototype: HTMLBcmColorPaletteElement;
2263
+ new (): HTMLBcmColorPaletteElement;
2264
+ };
2134
2265
  interface HTMLBcmColorfulElement extends Components.BcmColorful, HTMLStencilElement {
2135
2266
  }
2136
2267
  var HTMLBcmColorfulElement: {
@@ -2461,6 +2592,24 @@ declare global {
2461
2592
  prototype: HTMLBcmSearchElement;
2462
2593
  new (): HTMLBcmSearchElement;
2463
2594
  };
2595
+ /**
2596
+ * Individual segment option component
2597
+ */
2598
+ interface HTMLBcmSegmentElement extends Components.BcmSegment, HTMLStencilElement {
2599
+ }
2600
+ var HTMLBcmSegmentElement: {
2601
+ prototype: HTMLBcmSegmentElement;
2602
+ new (): HTMLBcmSegmentElement;
2603
+ };
2604
+ /**
2605
+ * Modern Segmented Picker component with CSS Grid-based indicator
2606
+ */
2607
+ interface HTMLBcmSegmentedPickerElement extends Components.BcmSegmentedPicker, HTMLStencilElement {
2608
+ }
2609
+ var HTMLBcmSegmentedPickerElement: {
2610
+ prototype: HTMLBcmSegmentedPickerElement;
2611
+ new (): HTMLBcmSegmentedPickerElement;
2612
+ };
2464
2613
  interface HTMLBcmSelectElement extends Components.BcmSelect, HTMLStencilElement {
2465
2614
  }
2466
2615
  var HTMLBcmSelectElement: {
@@ -2671,6 +2820,7 @@ declare global {
2671
2820
  "bcm-collapse": HTMLBcmCollapseElement;
2672
2821
  "bcm-collapse-group": HTMLBcmCollapseGroupElement;
2673
2822
  "bcm-color-input": HTMLBcmColorInputElement;
2823
+ "bcm-color-palette": HTMLBcmColorPaletteElement;
2674
2824
  "bcm-colorful": HTMLBcmColorfulElement;
2675
2825
  "bcm-colorpicker": HTMLBcmColorpickerElement;
2676
2826
  "bcm-content": HTMLBcmContentElement;
@@ -2726,6 +2876,8 @@ declare global {
2726
2876
  "bcm-result": HTMLBcmResultElement;
2727
2877
  "bcm-scroll-area": HTMLBcmScrollAreaElement;
2728
2878
  "bcm-search": HTMLBcmSearchElement;
2879
+ "bcm-segment": HTMLBcmSegmentElement;
2880
+ "bcm-segmented-picker": HTMLBcmSegmentedPickerElement;
2729
2881
  "bcm-select": HTMLBcmSelectElement;
2730
2882
  "bcm-select-box": HTMLBcmSelectBoxElement;
2731
2883
  "bcm-select-group": HTMLBcmSelectGroupElement;
@@ -3010,6 +3162,38 @@ declare namespace LocalJSX {
3010
3162
  "placeholder"?: string;
3011
3163
  "readonly"?: boolean;
3012
3164
  "required"?: boolean;
3165
+ /**
3166
+ * Picker type to display
3167
+ */
3168
+ "type"?: 'default' | 'palette';
3169
+ "value"?: string;
3170
+ }
3171
+ /**
3172
+ * A component that renders a grid of Tailwind CSS colors.
3173
+ * It allows users to select a specific shade from various color palettes.
3174
+ * @component bcm-color-palette
3175
+ * @property {string} value - The currently selected color value (e.g., '#000000'). This prop is mutable and reflected.
3176
+ * @property {string[]} paletteKeys - An array of Tailwind color names to display in the grid (e.g., ['blue', 'red']).
3177
+ * @property {number[]} shades - An array of shade values to generate for each color key (e.g., [100, 200, ...]).
3178
+ * @event bcm-change - Emitted when a color is selected. The event detail contains the selected hex color string.
3179
+ * @example <bcm-color-palette value="#000000"></bcm-color-palette>
3180
+ */
3181
+ interface BcmColorPalette {
3182
+ /**
3183
+ * Emitted when a color is selected
3184
+ */
3185
+ "onBcm-change"?: (event: BcmColorPaletteCustomEvent<string>) => void;
3186
+ /**
3187
+ * List of tailwind color keys to display
3188
+ */
3189
+ "paletteKeys"?: string[];
3190
+ /**
3191
+ * List of shades to display
3192
+ */
3193
+ "shades"?: number[];
3194
+ /**
3195
+ * Selected color value (e.g. '#000000')
3196
+ */
3013
3197
  "value"?: string;
3014
3198
  }
3015
3199
  interface BcmColorful {
@@ -3409,6 +3593,7 @@ declare namespace LocalJSX {
3409
3593
  interface BcmList {
3410
3594
  "_id"?: string;
3411
3595
  "allOpen"?: boolean;
3596
+ "autoFocusSelected"?: boolean;
3412
3597
  "caption"?: string;
3413
3598
  "captionError"?: string;
3414
3599
  "captionType"?: StatusTypes;
@@ -3913,6 +4098,80 @@ declare namespace LocalJSX {
3913
4098
  "searchIsOnlyChilds"?: boolean;
3914
4099
  "size"?: SizeTypes1;
3915
4100
  }
4101
+ /**
4102
+ * Individual segment option component
4103
+ */
4104
+ interface BcmSegment {
4105
+ /**
4106
+ * Index of currently active segment (inherited from parent)
4107
+ */
4108
+ "activeIndex"?: number;
4109
+ /**
4110
+ * Disabled state
4111
+ */
4112
+ "disabled"?: boolean;
4113
+ /**
4114
+ * Index of this segment (inherited from parent)
4115
+ */
4116
+ "index"?: number;
4117
+ /**
4118
+ * Internal event emitted when segment is clicked
4119
+ */
4120
+ "onBcm-segment-click"?: (event: BcmSegmentCustomEvent<string>) => void;
4121
+ /**
4122
+ * Selected state (controlled by parent)
4123
+ */
4124
+ "selected"?: boolean;
4125
+ /**
4126
+ * Size variant (inherited from parent)
4127
+ */
4128
+ "size"?: 'small' | 'medium' | 'large';
4129
+ /**
4130
+ * Total number of segments (inherited from parent)
4131
+ */
4132
+ "totalSegments"?: number;
4133
+ /**
4134
+ * Unique identifier for this segment
4135
+ */
4136
+ "value": string;
4137
+ }
4138
+ /**
4139
+ * Modern Segmented Picker component with CSS Grid-based indicator
4140
+ */
4141
+ interface BcmSegmentedPicker {
4142
+ /**
4143
+ * Disabled state
4144
+ */
4145
+ "disabled"?: boolean;
4146
+ /**
4147
+ * Full width flag
4148
+ */
4149
+ "fullWidth"?: boolean;
4150
+ /**
4151
+ * Name attribute for form association
4152
+ */
4153
+ "name"?: string;
4154
+ /**
4155
+ * Emits when selected segment changes
4156
+ */
4157
+ "onBcm-segment-change"?: (event: BcmSegmentedPickerCustomEvent<{ value: string; previousValue: string }>) => void;
4158
+ /**
4159
+ * Whether this field is required in a form
4160
+ */
4161
+ "required"?: boolean;
4162
+ /**
4163
+ * Enable shadow on container
4164
+ */
4165
+ "shadow"?: boolean;
4166
+ /**
4167
+ * Size variant
4168
+ */
4169
+ "size"?: 'small' | 'medium' | 'large';
4170
+ /**
4171
+ * Selected segment value
4172
+ */
4173
+ "value"?: string;
4174
+ }
3916
4175
  interface BcmSelect {
3917
4176
  "_data"?: any;
3918
4177
  "_id"?: string;
@@ -4385,6 +4644,7 @@ declare namespace LocalJSX {
4385
4644
  "bcm-collapse": BcmCollapse;
4386
4645
  "bcm-collapse-group": BcmCollapseGroup;
4387
4646
  "bcm-color-input": BcmColorInput;
4647
+ "bcm-color-palette": BcmColorPalette;
4388
4648
  "bcm-colorful": BcmColorful;
4389
4649
  "bcm-colorpicker": BcmColorpicker;
4390
4650
  "bcm-content": BcmContent;
@@ -4440,6 +4700,8 @@ declare namespace LocalJSX {
4440
4700
  "bcm-result": BcmResult;
4441
4701
  "bcm-scroll-area": BcmScrollArea;
4442
4702
  "bcm-search": BcmSearch;
4703
+ "bcm-segment": BcmSegment;
4704
+ "bcm-segmented-picker": BcmSegmentedPicker;
4443
4705
  "bcm-select": BcmSelect;
4444
4706
  "bcm-select-box": BcmSelectBox;
4445
4707
  "bcm-select-group": BcmSelectGroup;
@@ -4500,6 +4762,17 @@ declare module "@stencil/core" {
4500
4762
  "bcm-collapse": LocalJSX.BcmCollapse & JSXBase.HTMLAttributes<HTMLBcmCollapseElement>;
4501
4763
  "bcm-collapse-group": LocalJSX.BcmCollapseGroup & JSXBase.HTMLAttributes<HTMLBcmCollapseGroupElement>;
4502
4764
  "bcm-color-input": LocalJSX.BcmColorInput & JSXBase.HTMLAttributes<HTMLBcmColorInputElement>;
4765
+ /**
4766
+ * A component that renders a grid of Tailwind CSS colors.
4767
+ * It allows users to select a specific shade from various color palettes.
4768
+ * @component bcm-color-palette
4769
+ * @property {string} value - The currently selected color value (e.g., '#000000'). This prop is mutable and reflected.
4770
+ * @property {string[]} paletteKeys - An array of Tailwind color names to display in the grid (e.g., ['blue', 'red']).
4771
+ * @property {number[]} shades - An array of shade values to generate for each color key (e.g., [100, 200, ...]).
4772
+ * @event bcm-change - Emitted when a color is selected. The event detail contains the selected hex color string.
4773
+ * @example <bcm-color-palette value="#000000"></bcm-color-palette>
4774
+ */
4775
+ "bcm-color-palette": LocalJSX.BcmColorPalette & JSXBase.HTMLAttributes<HTMLBcmColorPaletteElement>;
4503
4776
  "bcm-colorful": LocalJSX.BcmColorful & JSXBase.HTMLAttributes<HTMLBcmColorfulElement>;
4504
4777
  "bcm-colorpicker": LocalJSX.BcmColorpicker & JSXBase.HTMLAttributes<HTMLBcmColorpickerElement>;
4505
4778
  "bcm-content": LocalJSX.BcmContent & JSXBase.HTMLAttributes<HTMLBcmContentElement>;
@@ -4555,6 +4828,14 @@ declare module "@stencil/core" {
4555
4828
  "bcm-result": LocalJSX.BcmResult & JSXBase.HTMLAttributes<HTMLBcmResultElement>;
4556
4829
  "bcm-scroll-area": LocalJSX.BcmScrollArea & JSXBase.HTMLAttributes<HTMLBcmScrollAreaElement>;
4557
4830
  "bcm-search": LocalJSX.BcmSearch & JSXBase.HTMLAttributes<HTMLBcmSearchElement>;
4831
+ /**
4832
+ * Individual segment option component
4833
+ */
4834
+ "bcm-segment": LocalJSX.BcmSegment & JSXBase.HTMLAttributes<HTMLBcmSegmentElement>;
4835
+ /**
4836
+ * Modern Segmented Picker component with CSS Grid-based indicator
4837
+ */
4838
+ "bcm-segmented-picker": LocalJSX.BcmSegmentedPicker & JSXBase.HTMLAttributes<HTMLBcmSegmentedPickerElement>;
4558
4839
  "bcm-select": LocalJSX.BcmSelect & JSXBase.HTMLAttributes<HTMLBcmSelectElement>;
4559
4840
  "bcm-select-box": LocalJSX.BcmSelectBox & JSXBase.HTMLAttributes<HTMLBcmSelectBoxElement>;
4560
4841
  "bcm-select-group": LocalJSX.BcmSelectGroup & JSXBase.HTMLAttributes<HTMLBcmSelectGroupElement>;
@@ -8,6 +8,8 @@ interface ListItemTemplateProps extends Bcm.ListItemClickEvent {
8
8
  size?: any;
9
9
  highlight?: any;
10
10
  focusItem?: (event: any) => void;
11
+ disabled?: boolean;
12
+ readonly?: boolean;
11
13
  }
12
14
  export declare const ListItemTemplate: FunctionalComponent<ListItemTemplateProps>;
13
15
  export {};
@@ -28,6 +28,8 @@ interface ListTemplateProps extends Bcm.ListClickEvent {
28
28
  emptyIcon?: any;
29
29
  focusItem?: (event: any) => void;
30
30
  handleTransitionEnd?: (event: any) => void;
31
+ disabled?: boolean;
32
+ readonly?: boolean;
31
33
  }
32
34
  export declare const ListTemplate: FunctionalComponent<ListTemplateProps>;
33
35
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bromcom-ui",
3
- "version": "3.0.0-alpha.2",
3
+ "version": "3.0.0-alpha.4",
4
4
  "description": "Bromcom UI is a collection of web components built with StencilJS",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{h as s,r as t,c as e,g as i}from"./p-e037ee2b.js";import{G as o}from"./p-d4e4aeee.js";import{a as c}from"./p-a313fba6.js";import{c as h}from"./p-64fad38b.js";import{N as a}from"./p-e9a43560.js";import{e as r}from"./p-6f2e4c9b.js";import{C as l}from"./p-436364c8.js";import{C as n}from"./p-2e73d572.js";import"./p-858cee66.js";import"./p-a2df6c19.js";import"./p-85eedabc.js";const d=({_id:t,color:e,customStyle:i,size:o,checked:d,hidden:m,value:p,type:b,onDismiss:f,onSelect:u})=>{!o&&(o=c.FontSize["size-1"]);const j=h(((s,t=!1)=>(a.isNumber(s)&&(s=c.FontSize["size-"+s]||c.FontSize["size-4"]),t?+(c.FontSizeValue[s]||c.FontSizeValue["size-4"])+2:s))(o),"bcm-tag__content",b),k=h("bcm-tag",{hidden:m});return s("div",{id:t,class:h(k,{checked:d})},s("span",{hidden:!0},s("slot",null)),s("span",{class:j,style:(s=>{if((b===c.TagType.basic||b==c.TagType.dismissable)&&n[s])return{color:r(l,n[s]+"-6"),borderColor:r(l,n[s]+"-3"),backgroundColor:r(l,n[s]+"-1")}})(e),onClick:s=>u(s)},b===c.TagType.add&&s("span",{class:"left"},s("bcm-icon",{icon:"far fa-plus"})),b===c.TagType.checkable&&s("input",{type:"checkbox",checked:d}),s("span",{class:"value",style:i},p),b===c.TagType.dismissable&&s("span",{class:"right close-button",onClick:s=>f(s)},s("bcm-icon",{icon:"fal fa-times"}))))},m=class{constructor(s){t(this,s),this.change=e(this,"bcm-change",7),this.tagDismissable=e(this,"bcm-tag-dismissable",7),this.bcmTagSelect=e(this,"bcm-tag-select",7),this._id=o.UID(),this._internal_id=o.UID(),this.hidden=!1,this.value="",this.type=c.TagType.basic,this.checked=!1,this.color=void 0,this.customStyle=void 0,this.itemObject=void 0,this.size=c.FontSize["size-1"],this.closeFunc=s=>s,this.selectFunc=s=>s}handleClick(){this.type===c.TagType.checkable&&this.handleChecked()}handleClose(){this.tagDismissable.emit(this.el)}handleChecked(){this.checked=!this.checked,this.change.emit(this.checked)}render(){const{type:t,color:e,value:i,customStyle:o,size:h,hidden:a,checked:r}=this;return s(d,{size:h,hidden:a,color:e,customStyle:o,checked:r,value:i,type:c.TagType[t],onSelect:s=>{this.bcmTagSelect.emit(s),this.selectFunc({event:s,id:this._id})},onDismiss:s=>{this.handleClose(),this.closeFunc(s)}})}get el(){return i(this)}};export{m as bcm_tag}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{E as o}from"./p-e037ee2b.js";import{v as s}from"./p-858cee66.js";import{L as e}from"./p-a9eb0321.js";window.bcm={version:s},function(o){const s=document.head,e=document.createElement("script");Object.keys(o).forEach((s=>{e[s]=o[s]})),s.appendChild(e)}({src:"https://kit.fontawesome.com/5e86bea963.js",crossOrigin:"anonymous"}),e.setLicenseKey(o.AG_GRID_LICENSE_KEY);
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{r as e,c as t,f as i,h as s,H as a,g as o}from"./p-e037ee2b.js";import{I as n}from"./p-8e5e362a.js";import{G as r,s as h}from"./p-d4e4aeee.js";import{S as p}from"./p-d65bc842.js";import{a as l}from"./p-a313fba6.js";import"./p-858cee66.js";import"./p-a2df6c19.js";import"./p-85eedabc.js";const c=["BCM-INPUT","BCM-TEXTAREA","BCM-SWITCH","BCM-CHECKBOX","BCM-RADIO-GROUP","BCM-CHECKBOX-GROUP","BCM-RANGE","BCM-FORM","BCM-FORM-GROUP","BCM-LIST","BCM-COLORPICKER","BCM-DATE","BCM-DATE-PICKER","BCM-TIME-PICKER","BCM-DATETIME-PICKER","BCM-SELECT","BCM-LISTBOX","BCM-CHIP-GROUP","BCM-INPUT-DROPDOWN","BCM-NUMBER-INPUT"];const m=class{constructor(i){e(this,i),this.bcmForm=t(this,"bcm-form",7),this.isLoad=!1,this.formData={},this.formObj=new Map,this._id=r.UID(),this.validation=!1}componentDidLoad(){this.isLoad=!0,i(this)}componentIsValid(e){if(!e.hidden){this.checkIsGroup(e);const t=["bcm-checkbox","bcm-switch"].includes(p.lowercase(e.tagName))?0==e.value:p.isNullOrEmpty(e.value);e.required&&(t?(e.captionError=l.FormErrorMessages.required,e.captionType="error",this.formObj.set(e.id,{name:e.name,valid:!1,errorDetails:e.captionError})):(e.captionError=null,e.captionType="default",this.formObj.delete(e.id)))}}isGroup(e){return["bcm-checkbox-group"].includes(p.lowercase(e.tagName))}checkIsGroup(e){if(this.isGroup(e))for(let t of Array.from(e.querySelectorAll("bcm-checkbox")))t&&this.componentIsValid(t)}changeCheckboxGroup(e){const t=e.target,{changed:i}=e.detail,s=Array.from(t.querySelectorAll("bcm-checkbox"));for(let e of s)e.id==i.element.id&&(e.value=i.event.value,this.componentIsValid(e))}bcmComponentList(){return h((()=>Array.from(this.el.querySelectorAll("*")).filter((e=>c.includes(e.tagName)&&(!e["s-hn"]||"BCM-FORM-2"==e["s-hn"]))).filter(Boolean)),[])}formResponse(){const e={formData:this.formData,isValid:0==this.formObj.size,errorDetails:Object.assign({},this.formObj.size>0&&Array.from(this.formObj).map((([e,t])=>({[t.name]:t.errorDetails})))),message:0==this.formObj.size?"":"Please fill in all inputs"};return this.bcmForm.emit(e),e}async setMethodType(e){const{isLoad:t,validation:i}=this;if(t)for(const t of this.bcmComponentList())try{await t[e](),"setClear"==e&&i&&this.componentIsValid(t)}catch(i){console.error(t.nodeName,e,i)}return Promise.resolve()}async submit(){const{isLoad:e,validation:t}=this;if(e)for(const e of this.bcmComponentList()){const{name:i,value:s}=e;this.formData[i]=p.isNullOrEmpty(s)?null:s,t&&this.componentIsValid(e)}return Promise.resolve(this.formResponse())}async set(e){var t,i,s;if(this.isLoad&&e&&(null===(t=this.bcmComponentList())||void 0===t?void 0:t.length)>0)for(let t of Object.keys(e)){const a=null!==(s=null===(i=this.bcmComponentList())||void 0===i?void 0:i.find((e=>e.name==t)))&&void 0!==s?s:{};if(a)try{await a.set(e[t]),this.componentIsValid(a)}catch(e){console.warn("set: ",t,a.nodeName)}}}async get(){var e;let t={};if((null===(e=this.bcmComponentList())||void 0===e?void 0:e.length)>0)for(let e of this.bcmComponentList()){const i=await e.get();t=Object.assign(Object.assign({},t),{[e.name]:p.isNullOrEmpty(i)?null:i})}return Promise.resolve(t)}async resetCaption(){return Promise.resolve(await this.setMethodType("resetCaption"))}async setClear(){return this.formData={},this.formObj=new Map,Promise.resolve(await this.setMethodType("setClear"))}onChange(e){const{isLoad:t,validation:i}=this;if(t){const t=e.target,s=t&&t.tagName.toLowerCase().startsWith("bcm-");if(i&&s){if(this.isGroup(t))return this.changeCheckboxGroup(e);this.componentIsValid(t)}}}render(){return s(a,null,s("slot",null))}get el(){return o(this)}};(function(e,t,i,s){var a,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var r=e.length-1;r>=0;r--)(a=e[r])&&(n=(o<3?a(n):o>3?a(t,i,n):a(t,i))||n);o>3&&n&&Object.defineProperty(t,i,n)})([n()],m.prototype,"el",void 0),m.style='@import url("https://fonts.googleapis.com/css?family=Roboto:400,500");.size-1{font-size:12px;line-height:20px}.size-2{font-size:14px;line-height:22px}.size-3{font-size:16px;line-height:24px}.size-4{font-size:20px;line-height:28px}.size-5{font-size:24px;line-height:32px}.size-6{font-size:30px;line-height:38px}.size-7{font-size:38px;line-height:46px}.size-8{font-size:46px;line-height:54px}.size-9{font-size:56px;line-height:64px}.weight-regular{font-weight:400}.weight-semibold{font-weight:500}.input-size-large{height:40px}.input-size-medium{height:32px}.input-size-small{height:24px}.resize-none textarea{resize:none}.resize-vertical textarea{resize:vertical}.resize-auto textarea{height:auto;resize:none}.textarea-size-large{padding:4px 0 0 4px;min-height:40px}.textarea-size-large .bcm-input-element{min-height:calc((40px - 8px) + 2px)}.textarea-size-large .input-clear-button{height:calc( 40px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-medium{padding:4px 0 0 4px;min-height:32px}.textarea-size-medium .bcm-input-element{min-height:calc((32px - 8px) + 2px)}.textarea-size-medium .input-clear-button{height:calc( 32px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-small{padding:0px 0 0 4px;min-height:24px}.textarea-size-small .bcm-input-element{min-height:calc((24px - 8px) + 2px)}.textarea-size-small .input-clear-button{height:calc( 24px - 16px );top:8px;padding:0;margin-right:8px}:host{display:block}';export{m as bcm_form_2}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{r as t,c as s,h as e,H as i,g as o}from"./p-e037ee2b.js";import{c as r}from"./p-64fad38b.js";import{G as w}from"./p-d4e4aeee.js";import{S as a}from"./p-d65bc842.js";import{a as n}from"./p-a313fba6.js";import{d as h}from"./p-6f2e4c9b.js";import"./p-85eedabc.js";import"./p-858cee66.js";import"./p-a2df6c19.js";const c=class{constructor(e){t(this,e),this.bcmToastClose=s(this,"bcm-toast-close",7),this.bcmToastOpen=s(this,"bcm-toast-open",7),this.bcmToastView=s(this,"bcm-toast-view",7),this._id=w.UID(),this.status=void 0,this.message="",this.description="",this.duration=3e3,this.position=n.Placement.bottom,this.messageIcon=void 0,this.viewButton=!1,this.closeButton=!0,this.removeAfterClose=!0,this.visible=!1,this.visibleContainer=!1}async show(){const t=document.getElementById(this._id+"-container");return t&&this.createContainer(this.position).appendChild(t),this.visible=!0,await h(50),this.visibleContainer=!0,this.bcmToastOpen.emit(),this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>this.hide()),this.duration),this.el}async hide(){this.visibleContainer=!1,clearTimeout(this.timer),this.bcmToastClose.emit(),await h(100),this.visible=!1,this.removeAfterClose&&(await h(100),this.el.remove())}handleMouseEnter(){clearTimeout(this.timer)}handleMouseLeave(){this.visible&&(this.timer=setTimeout((()=>this.hide()),1e3))}createContainer(t){const s="bcm-toast-container-"+t;let e=document.getElementById(s);if(!e){e=document.createElement("div"),e.id=s;const t=r("tw-pointer-events-none tw-overflow-hidden tw-z-50","tw-fixed tw-flex","tw-p-4 tw-gap-4",{"tw-flex-col-reverse tw-inset-x-0 tw-top-4 tw-mx-auto":this.position===n.Placement.top,"tw-flex-col tw-inset-x-0 tw-bottom-4 tw-mx-auto":this.position===n.Placement.bottom,"tw-flex-col-reverse tw-top-4 tw-left-4":this.position===n.Placement["top-start"],"tw-flex-col-reverse tw-top-4 tw-right-4":this.position===n.Placement["top-end"],"tw-flex-col tw-bottom-4 tw-left-4":this.position===n.Placement["bottom-start"],"tw-flex-col tw-bottom-4 tw-right-4":this.position===n.Placement["bottom-end"]});e.classList.add(...t.split(" ")),document.body.appendChild(e)}return e}render(){return e(i,{class:"tw-hidden"},e("div",{class:r({"tw-hidden":!this.visible}),id:this._id+"-container",onMouseEnter:()=>this.handleMouseEnter(),onMouseLeave:()=>this.handleMouseLeave()},e("div",{class:r("tw-pointer-events-auto tw-transform tw-transition tw-duration-300 tw-ease-in-out","tw-flex tw-min-w-[256px] tw-max-w-[420px] tw-flex-col tw-gap-2 tw-rounded-lg tw-border tw-font-sans tw-font-normal tw-shadow-2","tw-border-color-default tw-bg-white tw-text-color-default",{"tw-p-4":!this.description,"tw-p-6":this.description},"tw-transform tw-transition tw-duration-300 tw-ease-in-out ",{"tw-translate-y-0 tw-opacity-100 ":this.visibleContainer,"tw-opacity-0":!this.visibleContainer,"tw-translate-y-[-100%]":!this.visibleContainer&&"top"===this.position.split("-")[0],"tw-translate-y-[100%]":!this.visibleContainer&&"bottom"===this.position.split("-")[0]})},e("div",{class:"tw-flex tw-items-center tw-justify-between tw-gap-5"},e("div",{class:"tw-flex tw-items-center tw-gap-3 "},this.status&&e("i",{class:r("tw-text-6",this.messageIcon?this.messageIcon:"far",{"tw-text-color-success":"success"===this.status,"tw-text-color-error":"error"===this.status,"tw-text-color-warning":"warning"===this.status,"tw-text-color-info":"info"===this.status},{"fa-check-circle":!this.messageIcon&&"success"===this.status,"fa-exclamation-circle":!this.messageIcon&&"error"===this.status,"fa-exclamation-triangle":!this.messageIcon&&"warning"===this.status,"fa-info-circle":!this.messageIcon&&"info"===this.status})}),e("span",{class:r({"tw-text-4":!this.description,"tw-text-6 tw-font-medium":this.description})},!this.description&&this.status&&e("span",null,a.capitalize(this.status),": "),this.message)),e("div",{class:"tw-flex tw-items-baseline tw-gap-2"},this.viewButton&&e("button",{onClick:()=>this.bcmToastView.emit(),title:"View details",class:r("tw-appearance-none tw-outline-0 tw-border-none tw-cursor-pointer tw-rounded tw-bg-transparent tw-p-0 tw-px-1 tw-text-4 tw-text-inherit","hover:tw-bg-color-default-hover","active:tw-bg-color-default-active","tw-transition tw-duration-300 tw-ease-in-out",{"tw-font-medium":this.description})},"View"),this.closeButton&&e("button",{title:"Close",onClick:()=>this.hide(),class:r("tw-appearance-none tw-outline-0 tw-border-none tw-cursor-pointer","tw-rounded tw-bg-transparent tw-p-0","tw-flex tw-h-6 tw-w-6 tw-cursor-pointer tw-items-center tw-justify-center tw-text-3 tw-text-inherit","hover:tw-bg-color-default-hover","active:tw-bg-color-default-active")},e("i",{class:"fal fa-times"})))),this.description&&e("div",{class:"tw-text-size-5 font-medium"},this.description),e("slot",null))))}get el(){return o(this)}};export{c as bcm_toast}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{s as e}from"./p-d4e4aeee.js";class s{}s.isNumber=s=>e((()=>/^[0-9]+$/i.test(s))),s.convertToNumber=s=>e((()=>Number(s))),s.replaceNumber=s=>e((()=>s.replace(/[^0-9]/g,""))),s.replaceFloat=s=>e((()=>s.replace(/[^0-9.]/g,""))),s.toFixed=(s,a)=>e((()=>s.toFixed(a))),s.parseFloatFixed=(a,r)=>e((()=>parseFloat(s.replaceFloat(a)).toFixed(r))),s.getDecimalLength=s=>e((()=>s.split(".")[1]?s.split(".")[1].length:0)),s.toNumber=s=>e((()=>Number(s.replace(/[^0-9.]/g,""))));export{s as N}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import{r as t,h as p,H as s,g as r}from"./p-e037ee2b.js";import"./p-499d8454.js";import"./p-626a65e9.js";import{G as e}from"./p-d4e4aeee.js";import"./p-e9a43560.js";import"./p-d65bc842.js";import"./p-367bc8e0.js";import"./p-6f861fed.js";import"./p-a313fba6.js";import{c as o}from"./p-64fad38b.js";import"./p-436364c8.js";import"./p-6f2e4c9b.js";import"./p-a2df6c19.js";import"./p-85eedabc.js";import"./p-858cee66.js";const i=class{constructor(p){t(this,p),this._id=e.UID(),this.el.slot="footer"}render(){return p(s,{class:o("tw-flex tw-flex-row tw-items-center tw-justify-end tw-gap-2 tw-px-6 tw-pb-6 tw-pt-2")},p("slot",null))}get el(){return r(this)}};export{i as bcm_modal_2_footer}