bromcom-ui-next 0.1.0

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bromcom-ui/bromcom-ui.css +1 -0
  3. package/dist/bromcom-ui/bromcom-ui.esm.js +2 -0
  4. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -0
  5. package/dist/bromcom-ui/global/global.js +40 -0
  6. package/dist/bromcom-ui/index.esm.js +2 -0
  7. package/dist/bromcom-ui/index.esm.js.map +1 -0
  8. package/dist/bromcom-ui/p-27c997d8.js +3 -0
  9. package/dist/bromcom-ui/p-27c997d8.js.map +1 -0
  10. package/dist/bromcom-ui/p-341d46a8.entry.js +2 -0
  11. package/dist/bromcom-ui/p-341d46a8.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-40643b53.js +2 -0
  13. package/dist/bromcom-ui/p-40643b53.js.map +1 -0
  14. package/dist/bromcom-ui/p-5fcf77f9.js +2 -0
  15. package/dist/bromcom-ui/p-5fcf77f9.js.map +1 -0
  16. package/dist/bromcom-ui/p-997f314c.entry.js +2 -0
  17. package/dist/bromcom-ui/p-997f314c.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-b36f4f44.js +7 -0
  19. package/dist/bromcom-ui/p-b36f4f44.js.map +1 -0
  20. package/dist/bromcom-ui/p-dcb9df00.entry.js +2 -0
  21. package/dist/bromcom-ui/p-dcb9df00.entry.js.map +1 -0
  22. package/dist/bromcom-ui/p-f0c61f8c.entry.js +2 -0
  23. package/dist/bromcom-ui/p-f0c61f8c.entry.js.map +1 -0
  24. package/dist/cjs/app-globals-e8faea0d.js +43 -0
  25. package/dist/cjs/app-globals-e8faea0d.js.map +1 -0
  26. package/dist/cjs/bcm-accordion_4.cjs.entry.js +623 -0
  27. package/dist/cjs/bcm-accordion_4.cjs.entry.js.map +1 -0
  28. package/dist/cjs/bcm-alert.cjs.entry.js +99 -0
  29. package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -0
  30. package/dist/cjs/bcm-avatar.cjs.entry.js +89 -0
  31. package/dist/cjs/bcm-avatar.cjs.entry.js.map +1 -0
  32. package/dist/cjs/bcm-text.cjs.entry.js +119 -0
  33. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -0
  34. package/dist/cjs/bromcom-ui.cjs.js +27 -0
  35. package/dist/cjs/bromcom-ui.cjs.js.map +1 -0
  36. package/dist/cjs/index-310db2a6.js +2584 -0
  37. package/dist/cjs/index-310db2a6.js.map +1 -0
  38. package/dist/cjs/index-638f2d15.js +1441 -0
  39. package/dist/cjs/index-638f2d15.js.map +1 -0
  40. package/dist/cjs/index-a4eea4bb.js +84 -0
  41. package/dist/cjs/index-a4eea4bb.js.map +1 -0
  42. package/dist/cjs/index.cjs.js +4 -0
  43. package/dist/cjs/index.cjs.js.map +1 -0
  44. package/dist/cjs/loader.cjs.js +17 -0
  45. package/dist/cjs/loader.cjs.js.map +1 -0
  46. package/dist/collection/collection-manifest.json +18 -0
  47. package/dist/collection/components/accordion/accordion.component.js +399 -0
  48. package/dist/collection/components/accordion/accordion.component.js.map +1 -0
  49. package/dist/collection/components/accordion/accordion.css +1 -0
  50. package/dist/collection/components/accordion/types.js +2 -0
  51. package/dist/collection/components/accordion/types.js.map +1 -0
  52. package/dist/collection/components/accordion-group/accordion-group.component.js +269 -0
  53. package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -0
  54. package/dist/collection/components/accordion-group/accordion-group.css +1 -0
  55. package/dist/collection/components/accordion-group/types.js +2 -0
  56. package/dist/collection/components/accordion-group/types.js.map +1 -0
  57. package/dist/collection/components/alert/alert.component.js +241 -0
  58. package/dist/collection/components/alert/alert.component.js.map +1 -0
  59. package/dist/collection/components/alert/alert.css +1 -0
  60. package/dist/collection/components/alert/types.js +2 -0
  61. package/dist/collection/components/alert/types.js.map +1 -0
  62. package/dist/collection/components/avatar/avatar.component.js +290 -0
  63. package/dist/collection/components/avatar/avatar.component.js.map +1 -0
  64. package/dist/collection/components/avatar/avatar.css +1 -0
  65. package/dist/collection/components/avatar/types.js +2 -0
  66. package/dist/collection/components/avatar/types.js.map +1 -0
  67. package/dist/collection/components/button/button.component.js +628 -0
  68. package/dist/collection/components/button/button.component.js.map +1 -0
  69. package/dist/collection/components/button/button.css +1 -0
  70. package/dist/collection/components/button/types.js +142 -0
  71. package/dist/collection/components/button/types.js.map +1 -0
  72. package/dist/collection/components/chip/chip.component.js +308 -0
  73. package/dist/collection/components/chip/chip.component.js.map +1 -0
  74. package/dist/collection/components/chip/chip.css +1 -0
  75. package/dist/collection/components/chip/types.js +7 -0
  76. package/dist/collection/components/chip/types.js.map +1 -0
  77. package/dist/collection/components/text/text.component.js +176 -0
  78. package/dist/collection/components/text/text.component.js.map +1 -0
  79. package/dist/collection/components/text/text.css +1 -0
  80. package/dist/collection/components/text/text.types.js +2 -0
  81. package/dist/collection/components/text/text.types.js.map +1 -0
  82. package/dist/collection/components/text/text.utils.js +18 -0
  83. package/dist/collection/components/text/text.utils.js.map +1 -0
  84. package/dist/collection/global/global.js +40 -0
  85. package/dist/collection/index.js +2 -0
  86. package/dist/collection/index.js.map +1 -0
  87. package/dist/collection/styles/theme-variables.js +355 -0
  88. package/dist/collection/styles/theme-variables.js.map +1 -0
  89. package/dist/components/bcm-accordion-group.d.ts +11 -0
  90. package/dist/components/bcm-accordion-group.js +113 -0
  91. package/dist/components/bcm-accordion-group.js.map +1 -0
  92. package/dist/components/bcm-accordion.d.ts +11 -0
  93. package/dist/components/bcm-accordion.js +152 -0
  94. package/dist/components/bcm-accordion.js.map +1 -0
  95. package/dist/components/bcm-alert.d.ts +11 -0
  96. package/dist/components/bcm-alert.js +120 -0
  97. package/dist/components/bcm-alert.js.map +1 -0
  98. package/dist/components/bcm-avatar.d.ts +11 -0
  99. package/dist/components/bcm-avatar.js +115 -0
  100. package/dist/components/bcm-avatar.js.map +1 -0
  101. package/dist/components/bcm-button.d.ts +11 -0
  102. package/dist/components/bcm-button.js +334 -0
  103. package/dist/components/bcm-button.js.map +1 -0
  104. package/dist/components/bcm-chip.d.ts +11 -0
  105. package/dist/components/bcm-chip.js +152 -0
  106. package/dist/components/bcm-chip.js.map +1 -0
  107. package/dist/components/bcm-text.d.ts +11 -0
  108. package/dist/components/bcm-text.js +138 -0
  109. package/dist/components/bcm-text.js.map +1 -0
  110. package/dist/components/index.d.ts +33 -0
  111. package/dist/components/index.js +38 -0
  112. package/dist/components/index.js.map +1 -0
  113. package/dist/components/p-0adcc84f.js +1222 -0
  114. package/dist/components/p-0adcc84f.js.map +1 -0
  115. package/dist/components/p-5fcf77f9.js +2582 -0
  116. package/dist/components/p-5fcf77f9.js.map +1 -0
  117. package/dist/components/p-b36f4f44.js +82 -0
  118. package/dist/components/p-b36f4f44.js.map +1 -0
  119. package/dist/esm/app-globals-f781c325.js +41 -0
  120. package/dist/esm/app-globals-f781c325.js.map +1 -0
  121. package/dist/esm/bcm-accordion_4.entry.js +616 -0
  122. package/dist/esm/bcm-accordion_4.entry.js.map +1 -0
  123. package/dist/esm/bcm-alert.entry.js +95 -0
  124. package/dist/esm/bcm-alert.entry.js.map +1 -0
  125. package/dist/esm/bcm-avatar.entry.js +85 -0
  126. package/dist/esm/bcm-avatar.entry.js.map +1 -0
  127. package/dist/esm/bcm-text.entry.js +115 -0
  128. package/dist/esm/bcm-text.entry.js.map +1 -0
  129. package/dist/esm/bromcom-ui.js +22 -0
  130. package/dist/esm/bromcom-ui.js.map +1 -0
  131. package/dist/esm/index-ce2fac11.js +1412 -0
  132. package/dist/esm/index-ce2fac11.js.map +1 -0
  133. package/dist/esm/index-f0e9d579.js +82 -0
  134. package/dist/esm/index-f0e9d579.js.map +1 -0
  135. package/dist/esm/index-f3b17e60.js +2582 -0
  136. package/dist/esm/index-f3b17e60.js.map +1 -0
  137. package/dist/esm/index.js +3 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/dist/esm/loader.js +13 -0
  140. package/dist/esm/loader.js.map +1 -0
  141. package/dist/index.cjs.js +1 -0
  142. package/dist/index.js +1 -0
  143. package/dist/types/components/accordion/accordion.component.d.ts +137 -0
  144. package/dist/types/components/accordion/types.d.ts +16 -0
  145. package/dist/types/components/accordion-group/accordion-group.component.d.ts +95 -0
  146. package/dist/types/components/accordion-group/types.d.ts +13 -0
  147. package/dist/types/components/alert/alert.component.d.ts +28 -0
  148. package/dist/types/components/alert/types.d.ts +3 -0
  149. package/dist/types/components/avatar/avatar.component.d.ts +24 -0
  150. package/dist/types/components/avatar/types.d.ts +3 -0
  151. package/dist/types/components/button/button.component.d.ts +52 -0
  152. package/dist/types/components/button/types.d.ts +15 -0
  153. package/dist/types/components/chip/chip.component.d.ts +48 -0
  154. package/dist/types/components/chip/types.d.ts +9 -0
  155. package/dist/types/components/text/text.component.d.ts +12 -0
  156. package/dist/types/components/text/text.types.d.ts +3 -0
  157. package/dist/types/components/text/text.utils.d.ts +2 -0
  158. package/dist/types/components.d.ts +1116 -0
  159. package/dist/types/index.d.ts +10 -0
  160. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  161. package/dist/types/styles/theme-variables.d.ts +384 -0
  162. package/loader/cdn.js +1 -0
  163. package/loader/index.cjs.js +1 -0
  164. package/loader/index.d.ts +24 -0
  165. package/loader/index.es2017.js +1 -0
  166. package/loader/index.js +2 -0
  167. package/loader/package.json +11 -0
  168. package/package.json +49 -0
  169. package/readme.md +170 -0
@@ -0,0 +1,616 @@
1
+ import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-ce2fac11.js';
2
+ import { c as ce } from './index-f3b17e60.js';
3
+
4
+ const accordionCss = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.flex{display:flex}.border{border-width:1px}:host{--bcm-accordion-bg:var(--bcm-ui-color-background-basic-panel);--bcm-accordion-content-bg:var(--bcm-ui-color-background-basic-base);--bcm-accordion-text:var(--bcm-ui-color-text-header);--bcm-accordion-border:var(--bcm-ui-color-border-default);--bcm-accordion-radius:6px;--bcm-accordion-footer-bg:var(--bcm-ui-color-background-default-default);display:block;width:100%}:host(:not([group])) .accordion-container{border:1px solid var(--bcm-accordion-border);border-radius:var(--bcm-accordion-radius)}:host([group]) .accordion-container{border-bottom:1px solid var(--bcm-accordion-border);border-radius:0}:host([group]:last-of-type) .accordion-container{border-bottom:none}:host([group]:first-of-type) .accordion-container{border-top-left-radius:var(--bcm-accordion-radius);border-top-right-radius:var(--bcm-accordion-radius)}:host([group]:last-of-type) .accordion-footer{border-bottom-left-radius:var(--bcm-accordion-radius);border-bottom-right-radius:var(--bcm-accordion-radius)}:host(:not([group])) .accordion-footer{border-bottom-left-radius:var(--bcm-accordion-radius);border-bottom-right-radius:var(--bcm-accordion-radius)}::slotted([slot=title]){align-items:center;display:flex;flex-direction:row;gap:10px}::slotted([slot=actions]){align-items:center;display:flex;flex-direction:row;gap:12px}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.collapse{visibility:collapse}.static{position:static}.hidden{display:none}.w-full{width:100%}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-180{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))}.rotate-180{--tw-rotate:180deg}.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-row{flex-direction:row}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.overflow-hidden{overflow:hidden}.rounded-\\[--bcm-accordion-radius\\]{border-radius:var(--bcm-accordion-radius)}.bg-\\[--bcm-accordion-bg\\]{background-color:var(--bcm-accordion-bg)}.bg-\\[--bcm-accordion-footer-bg\\]{background-color:var(--bcm-accordion-footer-bg)}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-normal{font-weight:400}.font-semibold{font-weight:600}.text-\\[--bcm-accordion-text\\]{color:var(--bcm-accordion-text)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-all{transition-duration:.15s;transition-property:all;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)}";
5
+ const BcmAccordionStyle0 = accordionCss;
6
+
7
+ const BcmAccordion = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.bcmAccordionChange = createEvent(this, "bcmAccordionChange", 1);
11
+ /**
12
+ * Controls whether the accordion is expanded or collapsed.
13
+ * @prop
14
+ * @defaultValue false
15
+ */
16
+ this.expanded = false;
17
+ /**
18
+ * Indicates if the accordion is part of a group.
19
+ * Used for group behavior coordination.
20
+ * @prop
21
+ * @defaultValue false
22
+ */
23
+ this.group = false;
24
+ /**
25
+ * Tracks whether footer content is present.
26
+ * @state
27
+ */
28
+ this.hasFooterContent = false;
29
+ /**
30
+ * Handles changes to the footer slot content.
31
+ * @private
32
+ * @param e - Slot change event
33
+ */
34
+ this.handleFooterSlotChange = (e) => {
35
+ const slot = e.target;
36
+ const assignedNodes = slot.assignedNodes();
37
+ this.hasFooterContent = assignedNodes.length > 0;
38
+ };
39
+ this.accordionClass = ce({
40
+ slots: {
41
+ container: 'accordion-container flex flex-col bcm-ui-element w-full cursor-pointer',
42
+ header: 'accordion-header flex flex-row justify-between gap-2 p-4 w-full flex-nowrap rounded-[--bcm-accordion-radius] bg-[--bcm-accordion-bg] text-[--bcm-accordion-text] font-semibold text-size-6',
43
+ content: 'accordion-content overflow-hidden transition-all duration-300 ease-in-out bg-color-basic-base',
44
+ footer: 'accordion-footer flex flex-row w-full flex-nowrap bg-[--bcm-accordion-footer-bg] text-[--bcm-accordion-text] px-4 py-2 gap-2 text-size-4 font-normal',
45
+ icon: 'accordion-icon cursor-pointer transform transition-transform duration-300',
46
+ rightSection: 'accordion-right-section flex flex-row gap-2.5 items-center',
47
+ },
48
+ variants: {
49
+ hasFooterContent: {
50
+ false: { footer: 'hidden' },
51
+ true: { footer: 'flex' },
52
+ },
53
+ expanded: {
54
+ true: { icon: 'rotate-180' },
55
+ false: {
56
+ icon: 'rotate-0',
57
+ content: '',
58
+ },
59
+ },
60
+ },
61
+ }, {
62
+ twMerge: false,
63
+ });
64
+ }
65
+ /**
66
+ * Toggles the accordion's expanded state.
67
+ * @method
68
+ * @returns Promise<void>
69
+ */
70
+ async toggle() {
71
+ this.expanded = !this.expanded;
72
+ this.updateAccordion();
73
+ }
74
+ /**
75
+ * Expands the accordion if it's not already expanded.
76
+ * @method
77
+ * @returns Promise<void>
78
+ */
79
+ async expand() {
80
+ if (!this.expanded) {
81
+ this.expanded = true;
82
+ this.updateAccordion();
83
+ }
84
+ }
85
+ /**
86
+ * Collapses the accordion if it's currently expanded.
87
+ * @method
88
+ * @returns Promise<void>
89
+ */
90
+ async collapse() {
91
+ if (this.expanded) {
92
+ this.expanded = false;
93
+ this.updateAccordion();
94
+ }
95
+ }
96
+ /**
97
+ * Updates the accordion's content height and emits change event.
98
+ * @private
99
+ */
100
+ updateAccordion() {
101
+ if (this.contentEl) {
102
+ this.contentEl.style.maxHeight = this.expanded ? `${this.contentEl.scrollHeight}px` : '0px';
103
+ }
104
+ this.bcmAccordionChange.emit({ expanded: this.expanded, source: this.host });
105
+ }
106
+ render() {
107
+ const { container, header, content, footer, icon, rightSection } = this.accordionClass({
108
+ hasFooterContent: this.hasFooterContent || !!this.hintText,
109
+ expanded: this.expanded,
110
+ });
111
+ return (h("div", { key: 'baabe245a91069be586c8cd7ae7c680044721f30', class: container() }, h("header", { key: 'ea2bbd19cbda4f37546229af19ff4fe466b01c89', class: header(), role: "button", tabindex: "0", "aria-expanded": this.expanded.toString(), "aria-controls": "accordion-content", onKeyDown: e => {
112
+ if (e.key === 'Enter' || e.key === ' ') {
113
+ e.preventDefault();
114
+ this.toggle();
115
+ }
116
+ }, onClick: () => this.toggle() }, h("slot", { key: '6c9da162b412373185a516fb7cf06a7fb6455da6', name: "title" }, this.headerTitle), h("div", { key: '8116d820b3d9f3e373ed6ba07a588fa70db138ec', class: rightSection() }, h("slot", { key: 'b0b265147afd2514f4468e2c5940c008c2dbb37b', name: "actions" }), h("bcm-icon", { key: '6ef20624568ddd875adaa27d970a264548604b23', name: "fa-regular fa-chevron-down", class: icon() }))), h("div", { key: 'bf4f4756850428828360881cf191decf50986577', class: content(), style: { maxHeight: this.expanded ? 'auto' : '0px' }, ref: el => (this.contentEl = el) }, h("div", { key: 'e048a317ff8c4cadb48a1d34b188f272e516fabb', class: "px-4 py-2" }, h("slot", { key: 'ae33481fe6fc4e739e8faf7764498f81033cd398' })), h("footer", { key: 'd5a79e93058d1382c7ac31db5216563ad526d89b', class: footer() }, h("slot", { key: '987bbb480b47d7ef973127c64a592bfda7ca51e2', name: "footer", onSlotchange: this.handleFooterSlotChange }, this.hintText)))));
117
+ }
118
+ get host() { return getElement(this); }
119
+ };
120
+ BcmAccordion.style = BcmAccordionStyle0;
121
+
122
+ const accordionGroupCss = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}:host{--bcm-accordion-border:var(--bcm-ui-color-border-default);--bcm-accordion-radius:6px;display:block;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.collapse{visibility:collapse}.static{position:static}.flex{display:flex}.w-full{width:100%}.flex-col{flex-direction:column}.rounded-\\[--bcm-accordion-radius\\]{border-radius:var(--bcm-accordion-radius)}.border{border-width:1px}.border-\\[--bcm-accordion-border\\]{border-color:var(--bcm-accordion-border)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}";
123
+ const BcmAccordionGroupStyle0 = accordionGroupCss;
124
+
125
+ const BcmAccordionGroup = class {
126
+ constructor(hostRef) {
127
+ registerInstance(this, hostRef);
128
+ this.bcmAccordionGroupChange = createEvent(this, "bcmAccordionGroupChange", 1);
129
+ /** Controls whether multiple accordions can be expanded simultaneously */
130
+ this.multi = false;
131
+ /** Array of accordion elements within the group */
132
+ this.accordionItems = [];
133
+ /**
134
+ * Updates the accordion items array when slot content changes
135
+ */
136
+ this.handleSlotChange = () => {
137
+ this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));
138
+ this.setGroupBehavior();
139
+ // Validate accordion items
140
+ if (this.accordionItems.length === 0) {
141
+ console.warn('No accordion items found in accordion group');
142
+ }
143
+ };
144
+ }
145
+ /**
146
+ * Expands all accordions in the group
147
+ * Only available when multi=true
148
+ */
149
+ async expandAll() {
150
+ if (!this.multi) {
151
+ console.warn('expandAll is only available when multi=true');
152
+ return;
153
+ }
154
+ await Promise.all(this.accordionItems.map(item => item.expand()));
155
+ }
156
+ /**
157
+ * Collapses all accordions in the group
158
+ */
159
+ async collapseAll() {
160
+ await Promise.all(this.accordionItems.map(item => item.collapse()));
161
+ }
162
+ /**
163
+ * Returns an array of currently expanded accordion elements
164
+ */
165
+ async getExpandedItems() {
166
+ return this.accordionItems.filter(item => item.expanded);
167
+ }
168
+ componentWillLoad() {
169
+ this.handleSlotChange();
170
+ }
171
+ setGroupBehavior() {
172
+ this.accordionItems.forEach(item => {
173
+ item.group = true;
174
+ });
175
+ }
176
+ /**
177
+ * Handles state changes of individual accordions
178
+ */
179
+ handleAccordionChange(event) {
180
+ this.handleSlotChange();
181
+ const { expanded, source } = event === null || event === void 0 ? void 0 : event.detail;
182
+ if (!this.multi) {
183
+ this.accordionItems.forEach(item => {
184
+ if (item !== source) {
185
+ item.collapse();
186
+ }
187
+ item.expanded = item === source ? expanded : false;
188
+ });
189
+ }
190
+ const expandedItems = this.accordionItems.filter(item => item.expanded);
191
+ this.bcmAccordionGroupChange.emit({
192
+ expanded,
193
+ changed: source,
194
+ expandedItems,
195
+ expandedCount: expandedItems.length,
196
+ });
197
+ }
198
+ render() {
199
+ return (h("div", { key: '258e722af4cf7958d94f83c7bce7cd623b15f8fc', class: "flex flex-col bcm-ui-element w-full border border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]", role: "group", "aria-label": "Accordion group" }, h("slot", { key: 'e35cc8fe810e49f678b6af6962a4fbe09ae7f59e', onSlotchange: this.handleSlotChange })));
200
+ }
201
+ get host() { return getElement(this); }
202
+ };
203
+ BcmAccordionGroup.style = BcmAccordionGroupStyle0;
204
+
205
+ const variantOptions = {
206
+ save: {
207
+ text: 'Save',
208
+ status: 'success',
209
+ icon: 'far fa-save',
210
+ iconPosition: 'prefix',
211
+ kind: 'primary',
212
+ },
213
+ ok: {
214
+ text: 'Ok',
215
+ status: 'success',
216
+ icon: 'far fa-check',
217
+ iconPosition: 'prefix',
218
+ },
219
+ new: {
220
+ text: 'New',
221
+ status: 'success',
222
+ icon: 'far fa-plus',
223
+ iconPosition: 'prefix',
224
+ },
225
+ add: {
226
+ text: 'Add',
227
+ status: 'success',
228
+ icon: 'far fa-plus',
229
+ iconPosition: 'prefix',
230
+ },
231
+ create: {
232
+ text: 'Create',
233
+ status: 'success',
234
+ icon: 'far fa-plus',
235
+ iconPosition: 'prefix',
236
+ },
237
+ prev: {
238
+ text: 'Prev',
239
+ status: 'default',
240
+ icon: 'far fa-arrow-left',
241
+ iconPosition: 'prefix',
242
+ },
243
+ next: {
244
+ text: 'Next',
245
+ status: 'default',
246
+ icon: 'far fa-arrow-right',
247
+ iconPosition: 'suffix',
248
+ },
249
+ apply: {
250
+ text: 'Apply',
251
+ status: 'default',
252
+ icon: 'far fa-check-circle',
253
+ iconPosition: 'prefix',
254
+ },
255
+ submit: {
256
+ text: 'Submit',
257
+ status: 'default',
258
+ icon: 'far fa-save',
259
+ iconPosition: 'prefix',
260
+ },
261
+ send: {
262
+ text: 'Send',
263
+ status: 'success',
264
+ icon: 'far fa-paper-plane',
265
+ iconPosition: 'prefix',
266
+ },
267
+ delete: {
268
+ text: 'Delete',
269
+ status: 'error',
270
+ icon: 'far fa-trash',
271
+ iconPosition: 'prefix',
272
+ },
273
+ cancel: {
274
+ text: 'Cancel',
275
+ status: 'error',
276
+ icon: 'far fa-times',
277
+ iconPosition: 'prefix',
278
+ },
279
+ decline: {
280
+ text: 'Decline',
281
+ status: 'error',
282
+ icon: 'far fa-ban',
283
+ iconPosition: 'prefix',
284
+ },
285
+ close: {
286
+ text: 'Close',
287
+ status: 'error',
288
+ icon: 'far fa-times-circle',
289
+ iconPosition: 'prefix',
290
+ },
291
+ archive: {
292
+ text: 'Archive',
293
+ status: 'error',
294
+ icon: 'far fa-folder-open',
295
+ iconPosition: 'prefix',
296
+ },
297
+ remove: {
298
+ text: 'Remove',
299
+ status: 'error',
300
+ icon: 'far fa-minus-circle',
301
+ iconPosition: 'prefix',
302
+ },
303
+ edit: {
304
+ text: 'Edit',
305
+ status: 'default',
306
+ icon: 'far fa-edit',
307
+ iconPosition: 'prefix',
308
+ },
309
+ export: {
310
+ text: 'Export',
311
+ status: 'default',
312
+ icon: 'far fa-sign-out',
313
+ iconPosition: 'prefix',
314
+ },
315
+ import: {
316
+ text: 'Import',
317
+ status: 'default',
318
+ icon: 'far fa-sign-in',
319
+ iconPosition: 'prefix',
320
+ },
321
+ filter: {
322
+ text: 'Filter',
323
+ status: 'default',
324
+ icon: 'far fa-filter',
325
+ iconPosition: 'prefix',
326
+ },
327
+ update: {
328
+ text: 'Update',
329
+ status: 'default',
330
+ icon: 'far fa-sync',
331
+ iconPosition: 'prefix',
332
+ },
333
+ reset: {
334
+ text: 'Reset',
335
+ status: 'default',
336
+ icon: 'far fa-sync',
337
+ iconPosition: 'prefix',
338
+ },
339
+ download: {
340
+ text: 'Download',
341
+ status: 'default',
342
+ icon: 'far fa-download',
343
+ iconPosition: 'prefix',
344
+ },
345
+ };
346
+
347
+ const buttonCss = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{display:inline-block}:host([full-width]){width:100%}.static{position:static}.inline-flex{display:inline-flex}.min-h-10{min-height:2.5rem}.min-h-6{min-height:1.5rem}.min-h-8{min-height:2rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.border{border-width:1px}.border-\\[--bcm-button-border\\]{border-color:var(--bcm-button-border)}.bg-\\[--bcm-button-bg\\]{background-color:var(--bcm-button-bg)}.bg-\\[--bcm-ui-color-background-disabled-default\\]{background-color:var(--bcm-ui-color-background-disabled-default)}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.leading-none{line-height:1}.text-\\[--bcm-button-text\\]{color:var(--bcm-button-text)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.hover\\:bg-\\[--bcm-button-bg-hover\\]:hover{background-color:var(--bcm-button-bg-hover)}.focus-visible\\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.active\\:bg-\\[--bcm-button-bg-active\\]:active{background-color:var(--bcm-button-bg-active)}";
348
+ const BcmButtonStyle0 = buttonCss;
349
+
350
+ const BcmButton = class {
351
+ constructor(hostRef) {
352
+ registerInstance(this, hostRef);
353
+ this.bcmClick = createEvent(this, "bcmClick", 1);
354
+ this.bcmFocus = createEvent(this, "bcmFocus", 1);
355
+ this.bcmBlur = createEvent(this, "bcmBlur", 1);
356
+ /** Defines the main visual style of the button */
357
+ this.kind = 'primary';
358
+ /** Controls the button size */
359
+ this.size = 'medium';
360
+ /** Defines the button's status/state color */
361
+ this.status = 'default';
362
+ /** Icon placement (prefix/suffix) */
363
+ this.iconPosition = 'prefix';
364
+ /** Icon-only button mode */
365
+ this.iconOnly = false;
366
+ /** Full width button */
367
+ this.fullWidth = false;
368
+ /** HTML button type */
369
+ this.type = 'button';
370
+ /** Loading state */
371
+ this.loading = false;
372
+ /** Disabled state */
373
+ this.disabled = false;
374
+ /** Active state */
375
+ this.active = false;
376
+ this.handleClick = (event) => {
377
+ if (!this.disabled && !this.loading) {
378
+ this.bcmClick.emit(event);
379
+ }
380
+ };
381
+ this.handleFocus = (event) => {
382
+ this.bcmFocus.emit(event);
383
+ };
384
+ this.handleBlur = (event) => {
385
+ this.bcmBlur.emit(event);
386
+ };
387
+ this.buttonClass = ce({
388
+ base: 'bcm-button appearance-none inline-flex items-center justify-center border rounded',
389
+ variants: {
390
+ size: {
391
+ small: 'text-size-4 py-px px-2 min-h-6',
392
+ medium: 'text-size-5 py-0.5 px-3 min-h-8',
393
+ large: 'text-size-6 py-1 px-3 min-h-10',
394
+ },
395
+ kind: {
396
+ primary: 'kind-primary',
397
+ ghost: 'kind-ghost',
398
+ text: 'kind-text',
399
+ outline: 'kind-outline',
400
+ },
401
+ fullWidth: {
402
+ true: 'full-width w-full',
403
+ },
404
+ disabled: {
405
+ true: 'disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled',
406
+ false: [
407
+ 'cursor-pointer',
408
+ 'bg-[--bcm-button-bg] text-[--bcm-button-text] border-[--bcm-button-border]',
409
+ 'hover:bg-[--bcm-button-bg-hover]',
410
+ 'active:bg-[--bcm-button-bg-active]',
411
+ 'focus-visible:ring',
412
+ ],
413
+ },
414
+ loading: {
415
+ true: '',
416
+ },
417
+ },
418
+ defaultVariants: {
419
+ size: 'medium',
420
+ kind: 'primary',
421
+ fullWidth: false,
422
+ disabled: false,
423
+ loading: false,
424
+ },
425
+ }, {
426
+ twMerge: false,
427
+ });
428
+ }
429
+ get buttonText() {
430
+ return this.text || (this.variant ? variantOptions[this.variant].text : '');
431
+ }
432
+ get buttonIcon() {
433
+ if (this.variant && variantOptions[this.variant].icon) {
434
+ return {
435
+ icon: variantOptions[this.variant].icon,
436
+ position: variantOptions[this.variant].iconPosition || 'prefix',
437
+ };
438
+ }
439
+ return {
440
+ icon: this.icon,
441
+ position: this.iconPosition,
442
+ };
443
+ }
444
+ get buttonStatus() {
445
+ return this.variant ? variantOptions[this.variant].status : this.status;
446
+ }
447
+ get buttonStyles() {
448
+ const status = this.buttonStatus === 'default' ? 'primary' : this.buttonStatus;
449
+ const kindStyleMap = {
450
+ primary: {
451
+ '--bcm-button-bg': `var(--bcm-ui-color-background-${status}-default)`,
452
+ '--bcm-button-bg-hover': `var(--bcm-ui-color-background-${status}-hover)`,
453
+ '--bcm-button-bg-active': `var(--bcm-ui-color-background-${status}-active)`,
454
+ '--bcm-button-border': 'transparent',
455
+ '--bcm-button-text': 'var(--bcm-ui-color-text-base)',
456
+ },
457
+ outline: {
458
+ '--bcm-button-bg': 'var(--bcm-ui-color-background-default-default)',
459
+ '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',
460
+ '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',
461
+ '--bcm-button-border': `var(--bcm-ui-color-border-${this.buttonStatus})`,
462
+ '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,
463
+ },
464
+ ghost: {
465
+ '--bcm-button-bg': 'transparent',
466
+ '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',
467
+ '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',
468
+ '--bcm-button-border': 'transparent',
469
+ '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,
470
+ },
471
+ text: {
472
+ '--bcm-button-bg': 'transparent',
473
+ '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',
474
+ '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',
475
+ '--bcm-button-border': 'transparent',
476
+ '--bcm-button-text': `var(--bcm-ui-color-text-${status})`,
477
+ },
478
+ };
479
+ return kindStyleMap[this.kind];
480
+ }
481
+ render() {
482
+ const { icon, position } = this.buttonIcon;
483
+ return (h(Host, { key: '271947a40a1f166d146ea106530b76744b06650a' }, h("button", { key: '10407570f7bbf2a5293714d040aae3f9404f2be5', type: this.type, disabled: this.disabled || this.loading, "aria-label": this.label, "aria-expanded": this.expanded, "aria-controls": this.controls, "aria-disabled": this.disabled, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur, style: this.buttonStyles, class: this.buttonClass({
484
+ size: this.size,
485
+ kind: this.kind,
486
+ fullWidth: this.fullWidth,
487
+ disabled: this.disabled,
488
+ loading: this.loading,
489
+ }) }, this.loading && h("slot", { key: '551abf095e2594ad1e7a8723c14342528cc5bc0c', name: "loading" }), h("span", { key: '36ff02f068fd14ee868977ce819f9dce3c6c881e' }, h("slot", { key: '6e87ba2465b6ef1fa4349640d7b9c10ed7d9b662', name: "prefix" }, position === 'prefix' && icon && h("i", { key: '51062786f476b57af571db5ecb974a35af565a5a', class: ' leading-none ' + icon }))), h("slot", { key: 'a32959e426991f1a117632426688eb997b1e4c27' }, this.buttonText), h("span", { key: 'b6b98cbf6708cef4f4f1fa4f652ab2f680071a45' }, h("slot", { key: 'e2f919eaa52fab225fe625776f03abf526a784b9', name: "suffix" }, position === 'suffix' && icon && h("i", { key: '52b4885d3485aa282cbc1a48d773941d535e1c3c', class: ' leading-none ' + icon }))))));
490
+ }
491
+ };
492
+ BcmButton.style = BcmButtonStyle0;
493
+
494
+ const STATUS_COLORS = {
495
+ info: 'blue',
496
+ error: 'red',
497
+ warning: 'amber',
498
+ success: 'green',
499
+ };
500
+
501
+ const chipCss = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border:0 solid oklch(.928 .006 264.531);box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{--bcm-chip-bg:var(--bcm-ui-color-background-default-default);--bcm-chip-text:var(--bcm-ui-color-text-default);--bcm-chip-border:var(--bcm-ui-color-border-default);--bcm-chip-hover-bg:var(--bcm-ui-color-background-default-hover);--bcm-chip-active-bg:var(--bcm-ui-color-background-default-active);--bcm-chip-radius:6px;display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.static{position:static}.flex{display:flex}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.gap-1{gap:.25rem}.rounded-\\[--bcm-chip-radius\\]{border-radius:var(--bcm-chip-radius)}.border{border-width:1px}.border-none{border-style:none}.border-\\[--bcm-chip-border\\]{border-color:var(--bcm-chip-border)}.border-transparent{border-color:transparent}.bg-\\[--bcm-chip-bg\\]{background-color:var(--bcm-chip-bg)}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.font-normal{font-weight:400}.text-\\[--bcm-chip-text\\]{color:var(--bcm-chip-text)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\\:bg-\\[--bcm-chip-hover-bg\\]:hover{background-color:var(--bcm-chip-hover-bg)}.active\\:bg-\\[--bcm-chip-active-bg\\]:active{background-color:var(--bcm-chip-active-bg)}";
502
+ const BcmChipStyle0 = chipCss;
503
+
504
+ const BcmChip = class {
505
+ constructor(hostRef) {
506
+ registerInstance(this, hostRef);
507
+ this.bcmDismiss = createEvent(this, "bcmDismiss", 1);
508
+ /** Chip size variant */
509
+ this.size = 'medium';
510
+ /** Chip style variant */
511
+ this.kind = 'filled';
512
+ /** Chip status */
513
+ this.status = 'default';
514
+ /** Whether chip can be dismissed */
515
+ this.dismissible = false;
516
+ /** Whether chip is disabled */
517
+ this.disabled = false;
518
+ this.chipClass = ce({
519
+ base: [
520
+ 'chip bcm-ui-element font-normal flex items-center px-2 gap-1 w-full border',
521
+ 'bg-[--bcm-chip-bg] text-[--bcm-chip-text] rounded-[--bcm-chip-radius] border-[--bcm-chip-border]',
522
+ 'hover:bg-[--bcm-chip-hover-bg] active:bg-[--bcm-chip-active-bg]',
523
+ ],
524
+ variants: {
525
+ size: {
526
+ small: 'small py-px text-size-3',
527
+ medium: 'medium py-0.5 text-size-4',
528
+ large: 'large py-1 text-size-5',
529
+ },
530
+ kind: {
531
+ filled: 'filled border-transparent',
532
+ outlined: 'outlined',
533
+ text: 'text border-none',
534
+ },
535
+ disabled: {
536
+ true: 'cursor-not-allowed',
537
+ },
538
+ },
539
+ }, { twMerge: false });
540
+ }
541
+ get chipStyle() {
542
+ let _color = this.color;
543
+ if (this.disabled) {
544
+ return {
545
+ '--bcm-chip-bg': 'var(--bcm-ui-color-background-disabled-default)',
546
+ '--bcm-chip-text': 'var(--bcm-ui-color-text-disabled)',
547
+ '--bcm-chip-border': 'var(--bcm-ui-color-border-disabled)',
548
+ '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-disabled-default)',
549
+ '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-disabled-default)',
550
+ };
551
+ }
552
+ if (this.status !== 'default') {
553
+ _color = STATUS_COLORS[this.status];
554
+ }
555
+ const styles = {
556
+ filled: {
557
+ '--bcm-chip-bg': `var(--bcm-ui-color-background-palette-${_color}-default)`,
558
+ '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,
559
+ '--bcm-chip-border': `var(--bcm-ui-color-border-${_color})`,
560
+ '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,
561
+ '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,
562
+ },
563
+ outlined: {
564
+ '--bcm-chip-bg': 'transparent',
565
+ '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,
566
+ '--bcm-chip-border': `var(--bcm-ui-color-border-${_color})`,
567
+ '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,
568
+ '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,
569
+ },
570
+ text: {
571
+ '--bcm-chip-bg': 'transparent',
572
+ '--bcm-chip-text': `var(--bcm-ui-color-text-palette-${_color})`,
573
+ '--bcm-chip-border': 'transparent',
574
+ '--bcm-chip-hover-bg': `var(--bcm-ui-color-background-palette-${_color}-hover)`,
575
+ '--bcm-chip-active-bg': `var(--bcm-ui-color-background-palette-${_color}-active)`,
576
+ },
577
+ };
578
+ const defaultStyles = {
579
+ filled: {
580
+ '--bcm-chip-bg': 'var(--bcm-ui-color-background-default-default)',
581
+ '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',
582
+ '--bcm-chip-border': 'var(--bcm-ui-color-border-default)',
583
+ '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',
584
+ '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',
585
+ },
586
+ outlined: {
587
+ '--bcm-chip-bg': 'transparent',
588
+ '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',
589
+ '--bcm-chip-border': 'var(--bcm-ui-color-border-default)',
590
+ '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',
591
+ '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',
592
+ },
593
+ text: {
594
+ '--bcm-chip-bg': 'transparent',
595
+ '--bcm-chip-text': 'var(--bcm-ui-color-text-default)',
596
+ '--bcm-chip-border': 'transparent',
597
+ '--bcm-chip-hover-bg': 'var(--bcm-ui-color-background-default-hover)',
598
+ '--bcm-chip-active-bg': 'var(--bcm-ui-color-background-default-active)',
599
+ },
600
+ };
601
+ return _color ? styles[this.kind] : defaultStyles[this.kind];
602
+ }
603
+ handleDismiss() {
604
+ if (!this.disabled) {
605
+ this.bcmDismiss.emit();
606
+ }
607
+ }
608
+ render() {
609
+ return (h("div", { key: 'd97766e4a430a04a202265b4f17314d7e662e95f', style: this.chipStyle, class: this.chipClass({ size: this.size, kind: this.kind, disabled: this.disabled }), role: "button", "aria-disabled": this.disabled ? 'true' : 'false' }, h("slot", { key: 'b45f672427a1f1eea7dc221eff479a35a94b3ae8' }), this.dismissible && h("bcm-icon", { key: '5f1d802772e67dfc352142ff6c29a91ee78106b4', onClick: () => this.handleDismiss(), class: "cursor-pointer", "icon-name": "fa-regular fa-xmark", "aria-label": "Dismiss chip" })));
610
+ }
611
+ };
612
+ BcmChip.style = BcmChipStyle0;
613
+
614
+ export { BcmAccordion as bcm_accordion, BcmAccordionGroup as bcm_accordion_group, BcmButton as bcm_button, BcmChip as bcm_chip };
615
+
616
+ //# sourceMappingURL=bcm-accordion_4.entry.js.map