bromcom-ui-next 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.esm.js.map +1 -0
  2. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  3. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  4. package/dist/bromcom-ui/{p-778c0de1.entry.js → p-0213e9e8.entry.js} +2 -2
  5. package/dist/bromcom-ui/{p-361073bc.entry.js → p-188bc34d.entry.js} +2 -2
  6. package/dist/bromcom-ui/p-1d79c9de.entry.js +2 -0
  7. package/dist/bromcom-ui/p-1d79c9de.entry.js.map +1 -0
  8. package/dist/bromcom-ui/{p-3866ae3e.entry.js → p-2cce1424.entry.js} +2 -2
  9. package/dist/bromcom-ui/{p-90b65db8.entry.js → p-2f517bd8.entry.js} +2 -2
  10. package/dist/bromcom-ui/{p-3fbed81b.entry.js → p-4766474f.entry.js} +2 -2
  11. package/dist/bromcom-ui/{p-62c14cc4.entry.js → p-4f0851e2.entry.js} +2 -2
  12. package/dist/bromcom-ui/{p-07b05abd.entry.js → p-5c1b22b5.entry.js} +2 -2
  13. package/dist/bromcom-ui/{p-813cffad.entry.js → p-5da9360c.entry.js} +2 -2
  14. package/dist/bromcom-ui/{p-e91676ff.entry.js → p-5e47b56d.entry.js} +2 -2
  15. package/dist/bromcom-ui/{p-50505dd6.entry.js → p-6c2441a1.entry.js} +2 -2
  16. package/dist/bromcom-ui/{p-7d366ff2.entry.js → p-7560f0e9.entry.js} +2 -2
  17. package/dist/bromcom-ui/{p-67f62d75.entry.js → p-84b1e52c.entry.js} +2 -2
  18. package/dist/bromcom-ui/{p-e00fa939.entry.js → p-88d35bcf.entry.js} +2 -2
  19. package/dist/bromcom-ui/{p-a8b66a90.entry.js → p-8fd1a05d.entry.js} +2 -2
  20. package/dist/bromcom-ui/{p-b566bad4.entry.js → p-96aba34c.entry.js} +2 -2
  21. package/dist/bromcom-ui/{p-CrZxEeDA.js → p-B84DzIAh.js} +2 -2
  22. package/dist/bromcom-ui/p-B84DzIAh.js.map +1 -0
  23. package/dist/bromcom-ui/{p-fdc1df0c.entry.js → p-a26619e4.entry.js} +2 -2
  24. package/dist/bromcom-ui/{p-9293a2ce.entry.js → p-b02f5178.entry.js} +2 -2
  25. package/dist/bromcom-ui/{p-2d3a0ad4.entry.js → p-c9683df3.entry.js} +2 -2
  26. package/dist/bromcom-ui/{p-319d3937.entry.js → p-cf9dd0fc.entry.js} +2 -2
  27. package/dist/bromcom-ui/{p-6fa6b826.entry.js → p-d04246f0.entry.js} +2 -2
  28. package/dist/bromcom-ui/{p-a4ace572.entry.js → p-dd9ec481.entry.js} +2 -2
  29. package/dist/bromcom-ui/{p-378bf83e.entry.js → p-e500e6d1.entry.js} +2 -2
  30. package/dist/bromcom-ui/{p-45158141.entry.js → p-ead5a030.entry.js} +2 -2
  31. package/dist/cjs/bcm-accordion-group.cjs.entry.js +1 -1
  32. package/dist/cjs/bcm-accordion.cjs.entry.js +1 -1
  33. package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
  34. package/dist/cjs/bcm-avatar.cjs.entry.js +1 -1
  35. package/dist/cjs/bcm-badge.cjs.entry.js +1 -1
  36. package/dist/cjs/bcm-basic-badge.cjs.entry.js +1 -1
  37. package/dist/cjs/bcm-button-group.cjs.entry.js +1 -1
  38. package/dist/cjs/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.cjs.js.map +1 -0
  39. package/dist/cjs/bcm-button_8.cjs.entry.js +1414 -0
  40. package/dist/cjs/bcm-button_8.cjs.entry.js.map +1 -0
  41. package/dist/cjs/bcm-checkbox.cjs.entry.js +1 -1
  42. package/dist/cjs/bcm-chip.cjs.entry.js +1 -1
  43. package/dist/cjs/bcm-divider.cjs.entry.js +1 -1
  44. package/dist/cjs/bcm-pop-confirm.cjs.entry.js +1 -1
  45. package/dist/cjs/bcm-popover.cjs.entry.js +1 -1
  46. package/dist/cjs/bcm-radio-group.cjs.entry.js +1 -1
  47. package/dist/cjs/bcm-radio.cjs.entry.js +1 -1
  48. package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +1 -1
  49. package/dist/cjs/bcm-segmented-picker.cjs.entry.js +1 -1
  50. package/dist/cjs/bcm-switch.cjs.entry.js +1 -1
  51. package/dist/cjs/bcm-tabs-content.cjs.entry.js +1 -1
  52. package/dist/cjs/bcm-tabs-list.cjs.entry.js +1 -1
  53. package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +1 -1
  54. package/dist/cjs/bcm-tabs.cjs.entry.js +1 -1
  55. package/dist/cjs/bcm-textarea.cjs.entry.js +1 -1
  56. package/dist/cjs/bcm-tooltip.cjs.entry.js +1 -1
  57. package/dist/cjs/bromcom-ui.cjs.js +2 -2
  58. package/dist/cjs/{index-DFpZVb11.js → index-DHDrXFLM.js} +3 -3
  59. package/dist/cjs/index-DHDrXFLM.js.map +1 -0
  60. package/dist/cjs/loader.cjs.js +2 -2
  61. package/dist/collection/styles/theme-variables.js +3 -0
  62. package/dist/collection/styles/theme-variables.js.map +1 -1
  63. package/dist/components/index.js +1 -1
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/esm/bcm-accordion-group.entry.js +1 -1
  66. package/dist/esm/bcm-accordion.entry.js +1 -1
  67. package/dist/esm/bcm-alert.entry.js +1 -1
  68. package/dist/esm/bcm-avatar.entry.js +1 -1
  69. package/dist/esm/bcm-badge.entry.js +1 -1
  70. package/dist/esm/bcm-basic-badge.entry.js +1 -1
  71. package/dist/esm/bcm-button-group.entry.js +1 -1
  72. package/dist/esm/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.js.map +1 -0
  73. package/dist/esm/bcm-button_8.entry.js +1405 -0
  74. package/dist/esm/bcm-button_8.entry.js.map +1 -0
  75. package/dist/esm/bcm-checkbox.entry.js +1 -1
  76. package/dist/esm/bcm-chip.entry.js +1 -1
  77. package/dist/esm/bcm-divider.entry.js +1 -1
  78. package/dist/esm/bcm-pop-confirm.entry.js +1 -1
  79. package/dist/esm/bcm-popover.entry.js +1 -1
  80. package/dist/esm/bcm-radio-group.entry.js +1 -1
  81. package/dist/esm/bcm-radio.entry.js +1 -1
  82. package/dist/esm/bcm-segmented-picker-option.entry.js +1 -1
  83. package/dist/esm/bcm-segmented-picker.entry.js +1 -1
  84. package/dist/esm/bcm-switch.entry.js +1 -1
  85. package/dist/esm/bcm-tabs-content.entry.js +1 -1
  86. package/dist/esm/bcm-tabs-list.entry.js +1 -1
  87. package/dist/esm/bcm-tabs-trigger.entry.js +1 -1
  88. package/dist/esm/bcm-tabs.entry.js +1 -1
  89. package/dist/esm/bcm-textarea.entry.js +1 -1
  90. package/dist/esm/bcm-tooltip.entry.js +1 -1
  91. package/dist/esm/bromcom-ui.js +3 -3
  92. package/dist/esm/{index-CrZxEeDA.js → index-B84DzIAh.js} +3 -3
  93. package/dist/esm/index-B84DzIAh.js.map +1 -0
  94. package/dist/esm/loader.js +3 -3
  95. package/dist/types/styles/theme-variables.d.ts +3 -0
  96. package/package.json +1 -1
  97. package/dist/bromcom-ui/bcm-button.entry.esm.js.map +0 -1
  98. package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +0 -1
  99. package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +0 -1
  100. package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +0 -1
  101. package/dist/bromcom-ui/bcm-input.entry.esm.js.map +0 -1
  102. package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
  103. package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +0 -1
  104. package/dist/bromcom-ui/bcm-text.entry.esm.js.map +0 -1
  105. package/dist/bromcom-ui/p-4d980154.entry.js +0 -2
  106. package/dist/bromcom-ui/p-4d980154.entry.js.map +0 -1
  107. package/dist/bromcom-ui/p-75d1117d.entry.js +0 -2
  108. package/dist/bromcom-ui/p-75d1117d.entry.js.map +0 -1
  109. package/dist/bromcom-ui/p-813e7ebe.entry.js +0 -2
  110. package/dist/bromcom-ui/p-813e7ebe.entry.js.map +0 -1
  111. package/dist/bromcom-ui/p-87e7e02a.entry.js +0 -2
  112. package/dist/bromcom-ui/p-87e7e02a.entry.js.map +0 -1
  113. package/dist/bromcom-ui/p-9bf8f3c1.entry.js +0 -2
  114. package/dist/bromcom-ui/p-9bf8f3c1.entry.js.map +0 -1
  115. package/dist/bromcom-ui/p-CrZxEeDA.js.map +0 -1
  116. package/dist/bromcom-ui/p-ab1f24b4.entry.js +0 -2
  117. package/dist/bromcom-ui/p-ab1f24b4.entry.js.map +0 -1
  118. package/dist/bromcom-ui/p-c8307ce4.entry.js +0 -2
  119. package/dist/bromcom-ui/p-c8307ce4.entry.js.map +0 -1
  120. package/dist/bromcom-ui/p-c86d4b07.entry.js +0 -2
  121. package/dist/bromcom-ui/p-c86d4b07.entry.js.map +0 -1
  122. package/dist/cjs/bcm-button.cjs.entry.js +0 -316
  123. package/dist/cjs/bcm-button.cjs.entry.js.map +0 -1
  124. package/dist/cjs/bcm-button.entry.cjs.js.map +0 -1
  125. package/dist/cjs/bcm-drawer.cjs.entry.js +0 -206
  126. package/dist/cjs/bcm-drawer.cjs.entry.js.map +0 -1
  127. package/dist/cjs/bcm-drawer.entry.cjs.js.map +0 -1
  128. package/dist/cjs/bcm-dropdown-item.cjs.entry.js +0 -61
  129. package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
  130. package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +0 -1
  131. package/dist/cjs/bcm-dropdown.cjs.entry.js +0 -54
  132. package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
  133. package/dist/cjs/bcm-dropdown.entry.cjs.js.map +0 -1
  134. package/dist/cjs/bcm-input.cjs.entry.js +0 -315
  135. package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
  136. package/dist/cjs/bcm-input.entry.cjs.js.map +0 -1
  137. package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
  138. package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
  139. package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
  140. package/dist/cjs/bcm-shortcut.cjs.entry.js +0 -50
  141. package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
  142. package/dist/cjs/bcm-shortcut.entry.cjs.js.map +0 -1
  143. package/dist/cjs/bcm-text.cjs.entry.js +0 -124
  144. package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
  145. package/dist/cjs/bcm-text.entry.cjs.js.map +0 -1
  146. package/dist/cjs/index-DFpZVb11.js.map +0 -1
  147. package/dist/esm/bcm-button.entry.js +0 -314
  148. package/dist/esm/bcm-button.entry.js.map +0 -1
  149. package/dist/esm/bcm-drawer.entry.js +0 -204
  150. package/dist/esm/bcm-drawer.entry.js.map +0 -1
  151. package/dist/esm/bcm-dropdown-item.entry.js +0 -59
  152. package/dist/esm/bcm-dropdown-item.entry.js.map +0 -1
  153. package/dist/esm/bcm-dropdown.entry.js +0 -52
  154. package/dist/esm/bcm-dropdown.entry.js.map +0 -1
  155. package/dist/esm/bcm-input.entry.js +0 -313
  156. package/dist/esm/bcm-input.entry.js.map +0 -1
  157. package/dist/esm/bcm-linked.entry.js +0 -341
  158. package/dist/esm/bcm-linked.entry.js.map +0 -1
  159. package/dist/esm/bcm-shortcut.entry.js +0 -48
  160. package/dist/esm/bcm-shortcut.entry.js.map +0 -1
  161. package/dist/esm/bcm-text.entry.js +0 -122
  162. package/dist/esm/bcm-text.entry.js.map +0 -1
  163. package/dist/esm/index-CrZxEeDA.js.map +0 -1
  164. /package/dist/bromcom-ui/{p-778c0de1.entry.js.map → p-0213e9e8.entry.js.map} +0 -0
  165. /package/dist/bromcom-ui/{p-361073bc.entry.js.map → p-188bc34d.entry.js.map} +0 -0
  166. /package/dist/bromcom-ui/{p-3866ae3e.entry.js.map → p-2cce1424.entry.js.map} +0 -0
  167. /package/dist/bromcom-ui/{p-90b65db8.entry.js.map → p-2f517bd8.entry.js.map} +0 -0
  168. /package/dist/bromcom-ui/{p-3fbed81b.entry.js.map → p-4766474f.entry.js.map} +0 -0
  169. /package/dist/bromcom-ui/{p-62c14cc4.entry.js.map → p-4f0851e2.entry.js.map} +0 -0
  170. /package/dist/bromcom-ui/{p-07b05abd.entry.js.map → p-5c1b22b5.entry.js.map} +0 -0
  171. /package/dist/bromcom-ui/{p-813cffad.entry.js.map → p-5da9360c.entry.js.map} +0 -0
  172. /package/dist/bromcom-ui/{p-e91676ff.entry.js.map → p-5e47b56d.entry.js.map} +0 -0
  173. /package/dist/bromcom-ui/{p-50505dd6.entry.js.map → p-6c2441a1.entry.js.map} +0 -0
  174. /package/dist/bromcom-ui/{p-7d366ff2.entry.js.map → p-7560f0e9.entry.js.map} +0 -0
  175. /package/dist/bromcom-ui/{p-67f62d75.entry.js.map → p-84b1e52c.entry.js.map} +0 -0
  176. /package/dist/bromcom-ui/{p-e00fa939.entry.js.map → p-88d35bcf.entry.js.map} +0 -0
  177. /package/dist/bromcom-ui/{p-a8b66a90.entry.js.map → p-8fd1a05d.entry.js.map} +0 -0
  178. /package/dist/bromcom-ui/{p-b566bad4.entry.js.map → p-96aba34c.entry.js.map} +0 -0
  179. /package/dist/bromcom-ui/{p-fdc1df0c.entry.js.map → p-a26619e4.entry.js.map} +0 -0
  180. /package/dist/bromcom-ui/{p-9293a2ce.entry.js.map → p-b02f5178.entry.js.map} +0 -0
  181. /package/dist/bromcom-ui/{p-2d3a0ad4.entry.js.map → p-c9683df3.entry.js.map} +0 -0
  182. /package/dist/bromcom-ui/{p-319d3937.entry.js.map → p-cf9dd0fc.entry.js.map} +0 -0
  183. /package/dist/bromcom-ui/{p-6fa6b826.entry.js.map → p-d04246f0.entry.js.map} +0 -0
  184. /package/dist/bromcom-ui/{p-a4ace572.entry.js.map → p-dd9ec481.entry.js.map} +0 -0
  185. /package/dist/bromcom-ui/{p-378bf83e.entry.js.map → p-e500e6d1.entry.js.map} +0 -0
  186. /package/dist/bromcom-ui/{p-45158141.entry.js.map → p-ead5a030.entry.js.map} +0 -0
@@ -1,206 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-DFpZVb11.js');
4
- var tv = require('./tv-ngpIbGlG.js');
5
-
6
- const drawerCss = ".contents{display:contents}:host{display:contents}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.w-6{width:1.5rem}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-y-auto{overflow-y:auto}.border-none{border-style:none}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.bg-color-transparent{background-color:var(--bcm-ui-color-background-transparent-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.active\\:bg-color-default-active:active{background-color:var(--bcm-ui-color-background-default-active)}";
7
-
8
- const BcmDrawer = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.bcmOpen = index.createEvent(this, "bcmOpen", 7);
12
- this.bcmClose = index.createEvent(this, "bcmClose", 7);
13
- this.bcmBeforeOpen = index.createEvent(this, "bcmBeforeOpen", 7);
14
- this.bcmBeforeClose = index.createEvent(this, "bcmBeforeClose", 7);
15
- this.open = false;
16
- this.size = 'medium';
17
- this.position = 'right';
18
- this.fullWidth = false;
19
- this.noHeader = false;
20
- this.drawerClass = tv.tv({
21
- slots: {
22
- backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',
23
- wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',
24
- header: 'flex justify-between items-center bg-color-default text-color-default',
25
- title: 'font-semibold m-0 text-size-6',
26
- closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',
27
- content: 'overflow-y-auto flex-grow',
28
- },
29
- variants: {
30
- open: {
31
- true: {
32
- backdrop: 'opacity-100 visible',
33
- },
34
- false: {
35
- backdrop: 'opacity-0 invisible',
36
- },
37
- },
38
- position: {
39
- left: {
40
- wrapper: 'top-0 left-0 bottom-0',
41
- },
42
- right: {
43
- wrapper: 'top-0 right-0 bottom-0',
44
- },
45
- top: {
46
- wrapper: 'top-0 left-0 right-0',
47
- },
48
- bottom: {
49
- wrapper: 'bottom-0 left-0 right-0',
50
- },
51
- },
52
- size: {
53
- small: {
54
- header: 'py-3 px-4',
55
- content: 'p-4',
56
- },
57
- medium: {
58
- header: 'py-3 px-4',
59
- content: 'p-4',
60
- },
61
- large: {
62
- header: 'py-3 px-4',
63
- content: 'p-4',
64
- },
65
- },
66
- noHeader: {
67
- true: {
68
- header: 'hidden',
69
- },
70
- },
71
- },
72
- compoundVariants: [
73
- {
74
- open: true,
75
- position: ['left', 'right'],
76
- class: {
77
- wrapper: 'translate-x-0',
78
- },
79
- },
80
- {
81
- open: true,
82
- position: ['top', 'bottom'],
83
- class: {
84
- wrapper: 'translate-y-0',
85
- },
86
- },
87
- {
88
- open: false,
89
- position: 'left',
90
- class: {
91
- wrapper: '-translate-x-full',
92
- },
93
- },
94
- {
95
- open: false,
96
- position: 'right',
97
- class: {
98
- wrapper: 'translate-x-full',
99
- },
100
- },
101
- {
102
- open: false,
103
- position: 'top',
104
- class: {
105
- wrapper: '-translate-y-full',
106
- },
107
- },
108
- {
109
- open: false,
110
- position: 'bottom',
111
- class: {
112
- wrapper: 'translate-y-full',
113
- },
114
- },
115
- ],
116
- });
117
- }
118
- handleOpenChange(isOpen) {
119
- if (isOpen) {
120
- document.body.style.overflow = 'hidden';
121
- this.bcmOpen.emit();
122
- }
123
- else {
124
- document.body.style.overflow = '';
125
- this.bcmClose.emit();
126
- }
127
- }
128
- handleKeyDown(event) {
129
- if (event.key === 'Escape' && this.open) {
130
- this.hide();
131
- }
132
- }
133
- async show() {
134
- const event = this.bcmBeforeOpen.emit();
135
- if (!event.defaultPrevented) {
136
- this.open = true;
137
- }
138
- }
139
- async hide() {
140
- const event = this.bcmBeforeClose.emit();
141
- if (!event.defaultPrevented) {
142
- this.open = false;
143
- }
144
- }
145
- disconnectedCallback() {
146
- document.body.style.overflow = '';
147
- }
148
- getWrapperStyle() {
149
- const style = {};
150
- if (this.fullWidth) {
151
- if (this.position === 'left' || this.position === 'right') {
152
- style.width = '100vw';
153
- }
154
- else {
155
- style.height = '100vh';
156
- }
157
- return style;
158
- }
159
- if (this.position === 'left' || this.position === 'right') {
160
- switch (this.size) {
161
- case 'small':
162
- style.width = '320px';
163
- break;
164
- case 'medium':
165
- style.width = '480px';
166
- break;
167
- case 'large':
168
- style.width = '1064px';
169
- break;
170
- }
171
- }
172
- else {
173
- switch (this.size) {
174
- case 'small':
175
- style.height = '40vh';
176
- break;
177
- case 'medium':
178
- style.height = '60vh';
179
- break;
180
- case 'large':
181
- style.height = '90vh';
182
- break;
183
- }
184
- }
185
- return style;
186
- }
187
- render() {
188
- const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({
189
- open: this.open,
190
- position: this.position,
191
- size: this.size,
192
- noHeader: this.noHeader,
193
- });
194
- return (index.h("div", { key: '44379905f1499a16d625ac4d1ff5e89fc6367d46', part: "base" }, index.h("div", { key: 'bc53e5322a61cd4af0691905c509d4c5fb765939', part: "backdrop", class: backdrop(), onClick: () => this.hide() }), index.h("div", { key: 'd5a666671d24b2f3b55b7462b5218a3e11358982', part: "wrapper", class: wrapper(), style: this.getWrapperStyle(), role: "dialog", "aria-modal": "true", "aria-hidden": !this.open ? 'true' : 'false', "aria-label": this.headerText }, index.h("div", { key: '5124de9d7fa8f3aa7267f0998f4c4f98f3ebbc4a', part: "header", class: header() }, index.h("h2", { key: '8aa4b971efa9fe0fafa1cfb94f0b6b96f21f2f15', part: "title", class: title() }, index.h("slot", { key: '949ae8f65d13e9e1c973c16a9f90205ac7e7042f', name: "header" }, this.headerText)), index.h("button", { key: 'a0c42761ee859e87dee5c267ea7245dde4fb8756', part: "close-button", class: closeButton(), onClick: () => this.hide(), "aria-label": "Close" }, index.h("bcm-icon", { key: '2df273d63da93eda2280759a909906fe4ae0c493', name: "fa-solid fa-xmark" }))), index.h("div", { key: 'b2532537d10f9aa0dcfa2fca8ac806577363e05b', part: "content", class: content() }, index.h("slot", { key: 'bfec5cff35a7bf7bf1d9801ba89559501e6f301f' })), index.h("div", { key: '4d44fdba62c74fd5c893c5296f998754228cf961', part: "footer" }, index.h("slot", { key: 'fd0a58127fd2f0ba0955cef629e55700142a8f32', name: "footer" })))));
195
- }
196
- get host() { return index.getElement(this); }
197
- static get watchers() { return {
198
- "open": ["handleOpenChange"]
199
- }; }
200
- };
201
- BcmDrawer.style = drawerCss;
202
-
203
- exports.bcm_drawer = BcmDrawer;
204
- //# sourceMappingURL=bcm-drawer.entry.cjs.js.map
205
-
206
- //# sourceMappingURL=bcm-drawer.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"bcm-drawer.entry.cjs.js","mappings":"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","names":["tv","h"],"sources":["src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bcm-drawer.entry.cjs.js","sources":["src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx"],"sourcesContent":[":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"names":["tv","h"],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-DFpZVb11.js');
4
- var tv = require('./tv-ngpIbGlG.js');
5
-
6
- const dropdownItemCss = ".flex{display:flex}:host{display:inline-block;width:100%}::slotted([slot=left-content]){align-items:center;display:flex;flex-direction:row;gap:8px}::slotted([slot=right-content]){align-items:center;display:flex;flex-direction:row;gap:8px}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.w-full{width:100%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.gap-2{gap:.5rem}.text-pretty{text-wrap:pretty}.bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]{background-color:var(--bcm-ui-color-background-base-active)}.bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]{background-color:var(--bcm-ui-color-background-palette-red-default)}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-active)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-hover\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-hover)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]:hover{background-color:var(--bcm-ui-color-background-palette-red-default)}";
7
-
8
- const DropdownItem = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.bcmDropDownItemChange = index.createEvent(this, "bcmDropDownItemChange", 1);
12
- this.selected = false;
13
- this.error = false;
14
- this.disabled = false;
15
- this.dropdownItemClass = tv.tv({
16
- base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',
17
- variants: {
18
- selected: {
19
- true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',
20
- false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',
21
- },
22
- error: {
23
- true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',
24
- false: '',
25
- },
26
- disabled: {
27
- true: '', // should be discuss with ux team
28
- false: '',
29
- },
30
- },
31
- defaultVariants: {
32
- selected: false,
33
- error: false,
34
- disabled: false,
35
- },
36
- }, {
37
- twMerge: false,
38
- });
39
- }
40
- handleClick() {
41
- this.selected = true;
42
- this.bcmDropDownItemChange.emit({
43
- element: this.host,
44
- selected: this.selected,
45
- });
46
- }
47
- render() {
48
- var _a;
49
- return (index.h("div", { key: '69beaac4c9225bc7803b4002f1543c18e76e36cc', "aria-checked": this.selected, class: this.dropdownItemClass({
50
- selected: this.selected,
51
- error: this.error,
52
- }), onClick: () => this.handleClick() }, index.h("slot", { key: 'ca2712023285689a1774b5869d982e87d3add46a', name: "left-content" }, this.icon && index.h("bcm-icon", { key: 'bef7483a47c823ed746c39ae37acc3a2360f0c59', "icon-name": this.icon })), index.h("div", { key: 'a9bdddf97d4a4e07e601599a4adb11354227dd0f', class: "flex flex-row text-pretty w-full" }, index.h("slot", { key: '51c488350d2daabc32fc9693211a4e89d8cce16f' }, this.text)), index.h("slot", { key: '9bf3f8b4affa41ea72f181a073aea8cd56f8a2df', name: "right-content" }, (_a = this.rightIcons) === null || _a === void 0 ? void 0 : _a.map(icon => (index.h("bcm-icon", { "icon-name": icon }))))));
53
- }
54
- get host() { return index.getElement(this); }
55
- };
56
- DropdownItem.style = dropdownItemCss;
57
-
58
- exports.bcm_dropdown_item = DropdownItem;
59
- //# sourceMappingURL=bcm-dropdown-item.entry.cjs.js.map
60
-
61
- //# sourceMappingURL=bcm-dropdown-item.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"bcm-dropdown-item.entry.cjs.js","mappings":";;;;;AAAA,MAAM,eAAe,GAAG,86CAA86C;;MCQz7C,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAU2B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AACzB,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AACtB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAkB1C,QAAA,IAAiB,CAAA,iBAAA,GAAGA,KAAE,CAC5B;AACE,YAAA,IAAI,EAAE,6GAA6G;AACnH,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,uGAAuG;AAC7G,oBAAA,KAAK,EAAE,sDAAsD;AAC9D,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,uHAAuH;AAC7H,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,IAAI,EAAE,EAAE;AACR,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,EACD;AACE,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CACF;AAwBF;IA1DS,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;;IA+BJ,MAAM,GAAA;;QACJ,QACEC,OACgB,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,IAAI,CAAC,QAAQ,EAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC,EACF,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAEjCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,EAAE,IAAI,CAAC,IAAI,IAAIA,OAAqB,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,IAAI,CAAC,IAAI,GAAa,CAAQ,EAC3FA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kCAAkC,EAAA,EAC3CA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,IAAI,CAAQ,CACpB,EACNA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,eAAe,EACvB,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,KACxBA,OAAA,CAAA,UAAA,EAAA,EAAA,WAAA,EAAqB,IAAI,EAAA,CAAa,CACvC,CAAC,CACG,CACH;;;;;;;;","names":["tv","h"],"sources":["src/components/dropdown-item/dropdown-item.css?tag=bcm-dropdown-item&encapsulation=shadow","src/components/dropdown-item/dropdown-item.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bcm-dropdown-item.entry.cjs.js","sources":["src/components/dropdown-item/dropdown-item.css?tag=bcm-dropdown-item&encapsulation=shadow","src/components/dropdown-item/dropdown-item.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n"],"names":["tv","h"],"mappings":";;;;;AAAA,MAAM,eAAe,GAAG,86CAA86C;;MCQz7C,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAU2B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AACzB,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AACtB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAkB1C,QAAA,IAAiB,CAAA,iBAAA,GAAGA,KAAE,CAC5B;AACE,YAAA,IAAI,EAAE,6GAA6G;AACnH,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,uGAAuG;AAC7G,oBAAA,KAAK,EAAE,sDAAsD;AAC9D,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,uHAAuH;AAC7H,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,IAAI,EAAE,EAAE;AACR,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;SACF,EACD;AACE,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CACF;AAwBF;IA1DS,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CAAC;;IA+BJ,MAAM,GAAA;;QACJ,QACEC,OACgB,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EAAA,IAAI,CAAC,QAAQ,EAC3B,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC,EACF,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EAEjCA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,EAAE,IAAI,CAAC,IAAI,IAAIA,OAAqB,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,IAAI,CAAC,IAAI,GAAa,CAAQ,EAC3FA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kCAAkC,EAAA,EAC3CA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,IAAI,CAAQ,CACpB,EACNA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,eAAe,EACvB,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,KACxBA,OAAA,CAAA,UAAA,EAAA,EAAA,WAAA,EAAqB,IAAI,EAAA,CAAa,CACvC,CAAC,CACG,CACH;;;;;;;;"}
@@ -1,54 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-DFpZVb11.js');
4
- var tv = require('./tv-ngpIbGlG.js');
5
-
6
- const dropdownCss = ".visible{visibility:visible}.hidden{display:none}.static{position:static}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}";
7
-
8
- const Dropdown = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.bcmDropdownChange = index.createEvent(this, "bcmDropdownChange", 1);
12
- this.isReady = false;
13
- this.dropdownItems = [];
14
- this.dropdownClass = tv.tv({
15
- base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',
16
- });
17
- this.handleSlotChange = () => {
18
- this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));
19
- if (this.dropdownItems.length === 0) {
20
- console.warn('No dropdown items found in dropdown component');
21
- }
22
- };
23
- }
24
- componentDidLoad() {
25
- const button = this.host.shadowRoot.querySelector('bcm-button');
26
- if (button) {
27
- this.buttonRef = button;
28
- this.isReady = true;
29
- }
30
- }
31
- handleDropdownItemChange(event) {
32
- var _a;
33
- const { element, selected } = event === null || event === void 0 ? void 0 : event.detail;
34
- (_a = this.dropdownItems) === null || _a === void 0 ? void 0 : _a.forEach(item => {
35
- if (item != element) {
36
- item.selected = false;
37
- }
38
- });
39
- this.bcmDropdownChange.emit({
40
- element: element,
41
- selected,
42
- });
43
- }
44
- render() {
45
- return (index.h(index.Host, { key: '6aaff12c84d38c32df5bc8dccb83421afb315eef' }, index.h("bcm-button", { key: '5612cef7303a6b839531e125c895a4e7b8d32282', kind: "outline" }, index.h("span", { key: '951418845cb1ec71fe6dc5bbbc33c49934447640', part: "text" }, this.text)), this.isReady && (index.h("bcm-linked", { key: 'd594359d6a9b7c673307c6a92e6d69cc47be3e1a', targetElement: this.buttonRef }, index.h("div", { key: '9badba5b1e99af6a5d58b02e849cb0923e49dfd8', part: "dropdown-container", class: this.dropdownClass() }, index.h("slot", { key: 'c8191f215600170475d514bb6b4056047e6442d2', onSlotchange: this.handleSlotChange }))))));
46
- }
47
- get host() { return index.getElement(this); }
48
- };
49
- Dropdown.style = dropdownCss;
50
-
51
- exports.bcm_dropdown = Dropdown;
52
- //# sourceMappingURL=bcm-dropdown.entry.cjs.js.map
53
-
54
- //# sourceMappingURL=bcm-dropdown.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"bcm-dropdown.entry.cjs.js","mappings":";;;;;AAAA,MAAM,WAAW,GAAG,m0BAAm0B;;MCQ10B,QAAQ,GAAA,MAAA;AALrB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAUW,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAExB,QAAA,IAAa,CAAA,aAAA,GAAiC,EAAE;AAoCjD,QAAA,IAAa,CAAA,aAAA,GAAGA,KAAE,CAAC;AACzB,YAAA,IAAI,EAAE,uIAAuI;AAC9I,SAAA,CAAC;AAEM,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;;AAEjE,SAAC;AAkBF;IApDC,gBAAgB,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAyB;QACvF,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;;AAKvB,IAAA,wBAAwB,CAAC,KAAkB,EAAA;;QACzC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM;QAE3C,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,CAAC,IAAI,IAAG;AACjC,YAAA,IAAI,IAAI,IAAI,OAAO,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAEzB,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE,OAAO;YAChB,QAAQ;AACT,SAAA,CAAC;;IAeJ,MAAM,GAAA;QACJ,QACEC,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACHD,OAAY,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EACxBA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ,CACzB,EACZ,IAAI,CAAC,OAAO,KACXA,yEAAY,aAAa,EAAE,IAAI,CAAC,SAAS,EAAA,EACvCA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,EAAA,EACxDA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAS,CAAA,CAC9C,CACK,CACd,CACI;;;;;;;;","names":["tv","h","Host"],"sources":["src/components/dropdown/dropdown.css?tag=bcm-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.component.tsx"],"sourcesContent":["/* :host {\n --dropdown-box-min-weight: 32px;\n --dropdown-box-max-width: 384px;\n --dropdown-box-max-height: 384px;\n --dropdown-box-background-color: var(--bcm-ui-color-background-basic-panel);\n} */\n/* \n.scroll {\n height: 140px;\n width: 140px;\n overflow-y: auto;\n}\n\n.scroll:active::-webkit-scrollbar-thumb,\n.scroll:focus::-webkit-scrollbar-thumb,\n.scroll:hover::-webkit-scrollbar-thumb {\n visibility: visible;\n}\n.scroll::-webkit-scrollbar-thumb {\n background-color: darkgrey;\n visibility: hidden;\n}\n\n.scroll::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n} */\n","import { Component, ComponentInterface, h, Prop, State, Element, Host, Event, EventEmitter, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop() text?: string;\n\n @State() isReady: boolean = false;\n\n @State() dropdownItems: HTMLBcmDropdownItemElement[] = [];\n\n protected buttonRef?: HTMLBcmButtonElement;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropdownChange',\n })\n bcmDropdownChange: EventEmitter<any>;\n\n componentDidLoad() {\n const button = this.host.shadowRoot.querySelector('bcm-button') as HTMLBcmButtonElement;\n if (button) {\n this.buttonRef = button;\n this.isReady = true;\n }\n }\n\n @Listen('bcmDropDownItemChange', { capture: true })\n handleDropdownItemChange(event: CustomEvent) {\n const { element, selected } = event?.detail;\n\n this.dropdownItems?.forEach(item => {\n if (item != element) {\n item.selected = false;\n }\n });\n\n this.bcmDropdownChange.emit({\n element: element,\n selected,\n });\n }\n\n private dropdownClass = tv({\n base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',\n });\n\n private handleSlotChange = () => {\n this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));\n\n if (this.dropdownItems.length === 0) {\n console.warn('No dropdown items found in dropdown component');\n }\n };\n\n render() {\n return (\n <Host>\n <bcm-button kind=\"outline\">\n <span part=\"text\">{this.text}</span>\n </bcm-button>\n {this.isReady && (\n <bcm-linked targetElement={this.buttonRef}>\n <div part=\"dropdown-container\" class={this.dropdownClass()}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n </bcm-linked>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bcm-dropdown.entry.cjs.js","sources":["src/components/dropdown/dropdown.css?tag=bcm-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.component.tsx"],"sourcesContent":["/* :host {\n --dropdown-box-min-weight: 32px;\n --dropdown-box-max-width: 384px;\n --dropdown-box-max-height: 384px;\n --dropdown-box-background-color: var(--bcm-ui-color-background-basic-panel);\n} */\n/* \n.scroll {\n height: 140px;\n width: 140px;\n overflow-y: auto;\n}\n\n.scroll:active::-webkit-scrollbar-thumb,\n.scroll:focus::-webkit-scrollbar-thumb,\n.scroll:hover::-webkit-scrollbar-thumb {\n visibility: visible;\n}\n.scroll::-webkit-scrollbar-thumb {\n background-color: darkgrey;\n visibility: hidden;\n}\n\n.scroll::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n} */\n","import { Component, ComponentInterface, h, Prop, State, Element, Host, Event, EventEmitter, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop() text?: string;\n\n @State() isReady: boolean = false;\n\n @State() dropdownItems: HTMLBcmDropdownItemElement[] = [];\n\n protected buttonRef?: HTMLBcmButtonElement;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropdownChange',\n })\n bcmDropdownChange: EventEmitter<any>;\n\n componentDidLoad() {\n const button = this.host.shadowRoot.querySelector('bcm-button') as HTMLBcmButtonElement;\n if (button) {\n this.buttonRef = button;\n this.isReady = true;\n }\n }\n\n @Listen('bcmDropDownItemChange', { capture: true })\n handleDropdownItemChange(event: CustomEvent) {\n const { element, selected } = event?.detail;\n\n this.dropdownItems?.forEach(item => {\n if (item != element) {\n item.selected = false;\n }\n });\n\n this.bcmDropdownChange.emit({\n element: element,\n selected,\n });\n }\n\n private dropdownClass = tv({\n base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',\n });\n\n private handleSlotChange = () => {\n this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));\n\n if (this.dropdownItems.length === 0) {\n console.warn('No dropdown items found in dropdown component');\n }\n };\n\n render() {\n return (\n <Host>\n <bcm-button kind=\"outline\">\n <span part=\"text\">{this.text}</span>\n </bcm-button>\n {this.isReady && (\n <bcm-linked targetElement={this.buttonRef}>\n <div part=\"dropdown-container\" class={this.dropdownClass()}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n </bcm-linked>\n )}\n </Host>\n );\n }\n}\n"],"names":["tv","h","Host"],"mappings":";;;;;AAAA,MAAM,WAAW,GAAG,m0BAAm0B;;MCQ10B,QAAQ,GAAA,MAAA;AALrB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAUW,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAExB,QAAA,IAAa,CAAA,aAAA,GAAiC,EAAE;AAoCjD,QAAA,IAAa,CAAA,aAAA,GAAGA,KAAE,CAAC;AACzB,YAAA,IAAI,EAAE,uIAAuI;AAC9I,SAAA,CAAC;AAEM,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAEhF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,gBAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;;AAEjE,SAAC;AAkBF;IApDC,gBAAgB,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAyB;QACvF,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;;AAKvB,IAAA,wBAAwB,CAAC,KAAkB,EAAA;;QACzC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM;QAE3C,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,CAAC,IAAI,IAAG;AACjC,YAAA,IAAI,IAAI,IAAI,OAAO,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAEzB,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE,OAAO;YAChB,QAAQ;AACT,SAAA,CAAC;;IAeJ,MAAM,GAAA;QACJ,QACEC,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACHD,OAAY,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EACxBA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ,CACzB,EACZ,IAAI,CAAC,OAAO,KACXA,yEAAY,aAAa,EAAE,IAAI,CAAC,SAAS,EAAA,EACvCA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,EAAA,EACxDA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAS,CAAA,CAC9C,CACK,CACd,CACI;;;;;;;;"}