@beeq/core 1.10.0-beta.1 → 1.10.0-beta.2

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 (50) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/bq-button.bq-icon.entry.esm.js.map +1 -1
  3. package/dist/beeq/p-5105d079.entry.js +6 -0
  4. package/dist/beeq/p-5105d079.entry.js.map +1 -0
  5. package/dist/beeq/{p-36f5231a.entry.js → p-c5fc822f.entry.js} +2 -2
  6. package/dist/beeq.html-custom-data.json +155 -155
  7. package/dist/cjs/bq-button.bq-icon.entry.cjs.js.map +1 -1
  8. package/dist/cjs/bq-button_2.cjs.entry.js +115 -85
  9. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/bq-drawer.cjs.entry.js +1 -1
  11. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  12. package/dist/collection/components/icon/bq-icon.js +11 -7
  13. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  14. package/dist/collection/components/icon/helper/request.js +118 -75
  15. package/dist/collection/components/icon/helper/request.js.map +1 -1
  16. package/dist/components/bq-accordion.js +1 -1
  17. package/dist/components/bq-alert.js +1 -1
  18. package/dist/components/bq-button.js +1 -1
  19. package/dist/components/bq-date-picker.js +1 -1
  20. package/dist/components/bq-dialog.js +1 -1
  21. package/dist/components/bq-drawer.js +1 -1
  22. package/dist/components/bq-empty-state.js +1 -1
  23. package/dist/components/bq-icon.js +1 -1
  24. package/dist/components/bq-input.js +1 -1
  25. package/dist/components/bq-notification.js +1 -1
  26. package/dist/components/bq-select.js +1 -1
  27. package/dist/components/bq-switch.js +1 -1
  28. package/dist/components/bq-tag.js +1 -1
  29. package/dist/components/bq-toast.js +1 -1
  30. package/dist/components/index.js +1 -1
  31. package/dist/components/p-9Z6M4Uap.js +6 -0
  32. package/dist/components/p-9Z6M4Uap.js.map +1 -0
  33. package/dist/components/{p-3sipvPdx.js → p-DkiBVsAp.js} +2 -2
  34. package/dist/components/{p-bqZ_kYEH.js → p-UjIYbgCH.js} +2 -2
  35. package/dist/custom-elements.json +2714 -2714
  36. package/dist/esm/bq-button.bq-icon.entry.js.map +1 -1
  37. package/dist/esm/bq-button_2.entry.js +115 -85
  38. package/dist/esm/bq-button_2.entry.js.map +1 -1
  39. package/dist/esm/bq-drawer.entry.js +1 -1
  40. package/dist/hydrate/index.js +116 -86
  41. package/dist/hydrate/index.mjs +116 -86
  42. package/dist/types/components/icon/helper/request.d.ts +19 -14
  43. package/package.json +1 -1
  44. package/dist/beeq/p-6ebad63f.entry.js +0 -6
  45. package/dist/beeq/p-6ebad63f.entry.js.map +0 -1
  46. package/dist/components/p-CJrRuo-b.js +0 -6
  47. package/dist/components/p-CJrRuo-b.js.map +0 -1
  48. /package/dist/beeq/{p-36f5231a.entry.js.map → p-c5fc822f.entry.js.map} +0 -0
  49. /package/dist/components/{p-3sipvPdx.js.map → p-DkiBVsAp.js.map} +0 -0
  50. /package/dist/components/{p-bqZ_kYEH.js.map → p-UjIYbgCH.js.map} +0 -0
@@ -5,102 +5,145 @@
5
5
  /* -------------------------------------------------------------------------- */
6
6
  /* Icon request helper */
7
7
  /* -------------------------------------------------------------------------- */
8
- import { isNil, isString } from "../../../shared/utils";
9
- const requests = new Map();
10
- export const iconContent = new Map();
8
+ import { isClient, isNil } from "../../../shared/utils";
9
+ const SVG_TAG = 'svg';
10
+ const ICON_CSS_CLASS = 'bq-icon__svg';
11
+ const cache = {
12
+ requests: new Map(),
13
+ content: new Map(),
14
+ };
11
15
  /**
12
- * Fetches SVG content from a given URL and optionally sanitizes it.
13
- * @param {string} url - The URL to fetch the SVG from.
14
- * @param {boolean} sanitize - Whether to sanitize the SVG content.
15
- * @returns {Promise<unknown>} - A promise that resolves to the SVG content.
16
+ * Sanitizes SVG element by setting required attributes and removing unwanted ones
17
+ * @param svg - The SVG element to sanitize
16
18
  */
17
- const fetchSvg = async (url, sanitize) => {
18
- if (isNil(url) || typeof fetch === 'undefined' || typeof window === 'undefined') {
19
- return undefined;
19
+ const sanitizeSvgElement = (svg) => {
20
+ const currentClass = svg.getAttribute('class') || '';
21
+ svg.setAttribute('class', `${currentClass} ${ICON_CSS_CLASS}`.trim());
22
+ svg.setAttribute('part', SVG_TAG);
23
+ svg.removeAttribute('height');
24
+ svg.removeAttribute('width');
25
+ };
26
+ /**
27
+ * Validates element security (no scripts or event handlers)
28
+ * @param element - The element to validate
29
+ * @returns True if the element is valid, false otherwise
30
+ */
31
+ const validateElement = (element) => {
32
+ if (!element || element.nodeType !== Node.ELEMENT_NODE)
33
+ return false;
34
+ if (element.nodeName.toLowerCase() === 'script')
35
+ return false;
36
+ // Check for malicious attributes using modern array methods
37
+ const hasUnsafeAttribute = Array.from(element.attributes).some((attr) => {
38
+ const value = attr.value?.toLowerCase() || '';
39
+ const name = attr.name.toLowerCase();
40
+ // Check for event handlers
41
+ if (name.startsWith('on'))
42
+ return true;
43
+ // Check for javascript: URLs
44
+ if (value.includes('javascript:'))
45
+ return true;
46
+ return false;
47
+ });
48
+ if (hasUnsafeAttribute)
49
+ return false;
50
+ // Recursively validate children
51
+ return Array.from(element.children).every((child) => validateElement(child));
52
+ };
53
+ /**
54
+ * Processes SVG content with security checks and sanitization
55
+ * @param content - The SVG content to process
56
+ * @returns The processed and sanitized SVG content
57
+ */
58
+ const processSvgContent = (content) => {
59
+ if (!isClient() || isNil(content))
60
+ return '';
61
+ try {
62
+ const parser = document.createElement('div');
63
+ parser.innerHTML = content;
64
+ const svg = parser.querySelector(SVG_TAG);
65
+ if (!svg || !validateElement(svg)) {
66
+ console.warn('[BqIcon] SVG content failed security validation');
67
+ return '';
68
+ }
69
+ sanitizeSvgElement(svg);
70
+ return parser.innerHTML;
71
+ }
72
+ catch (error) {
73
+ console.error('[BqIcon] Error processing SVG content:', error);
74
+ return '';
20
75
  }
21
- if (requests.has(url))
22
- return requests.get(url);
76
+ };
77
+ /**
78
+ * Fetches and processes SVG content from URL
79
+ * @param url - The URL of the SVG to fetch
80
+ * @param shouldSanitize - Whether to sanitize the SVG content
81
+ * @returns Promise that resolves to the processed SVG content
82
+ */
83
+ const fetchAndProcessSvg = async (url, shouldSanitize = true) => {
84
+ if (!isClient())
85
+ return '';
23
86
  try {
24
87
  const response = await fetch(url);
25
88
  if (!response.ok) {
26
- iconContent.set(url, '');
27
- return undefined;
89
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
28
90
  }
29
- let svgContent = await response.text();
30
- if (sanitize !== false) {
31
- svgContent = validateContent(svgContent);
91
+ const content = await response.text();
92
+ if (!content.trim()) {
93
+ console.warn(`[BqIcon] Empty SVG content received from ${url}`);
94
+ return '';
32
95
  }
33
- iconContent.set(url, svgContent);
34
- return svgContent;
96
+ return shouldSanitize ? processSvgContent(content) : content;
35
97
  }
36
98
  catch (error) {
37
99
  console.error(`[BqIcon] Failed to fetch SVG from ${url}:`, error);
38
- iconContent.set(url, '');
39
- return undefined;
100
+ return '';
40
101
  }
41
102
  };
42
103
  /**
43
- * Retrieves the SVG content for a given URL, fetching and caching it if necessary.
44
- * @param {string} url - The URL to fetch the SVG from.
45
- * @param {boolean} sanitize - Whether to sanitize the SVG content.
46
- * @returns {Promise<unknown>} - A promise that resolves to the SVG content.
104
+ * Retrieves SVG content with caching, security validation, and sanitization
105
+ * @param url - The URL of the SVG to fetch
106
+ * @param sanitize - Whether to sanitize the SVG content (default: true)
107
+ * @returns Promise that resolves to the processed SVG content or undefined
47
108
  */
48
- export const getSvgContent = async (url, sanitize) => {
49
- if (isNil(url))
109
+ export const getSvgContent = async (url, sanitize = true) => {
110
+ if (!isClient() || isNil(url))
50
111
  return undefined;
51
- let req = requests.get(url);
52
- if (isNil(req)) {
53
- req = fetchSvg(url, sanitize);
54
- requests.set(url, req);
112
+ // Return cached content if available
113
+ if (cache.content.has(url)) {
114
+ const cachedContent = cache.content.get(url);
115
+ return cachedContent || undefined;
116
+ }
117
+ // Check for pending request
118
+ let request = cache.requests.get(url);
119
+ if (!request) {
120
+ // Create new request with proper cleanup
121
+ request = fetchAndProcessSvg(url, sanitize).then((content) => {
122
+ // Cache the result (including empty strings for failed requests)
123
+ cache.content.set(url, content);
124
+ // Clean up the pending request
125
+ cache.requests.delete(url);
126
+ return content;
127
+ });
128
+ cache.requests.set(url, request);
55
129
  }
56
- return req;
130
+ return request;
57
131
  };
58
132
  /**
59
- * Validates and sanitizes the SVG content.
60
- * @param {string} svgContent - The SVG content to validate.
61
- * @returns {string} - The sanitized SVG content.
133
+ * Clears the icon cache - useful for testing or memory management
62
134
  */
63
- export const validateContent = (svgContent) => {
64
- if (typeof window === 'undefined' || isNil(svgContent))
65
- return '';
66
- const svgTag = 'svg';
67
- const iconCssClass = 'bq-icon__svg';
68
- const div = document.createElement('div');
69
- div.innerHTML = svgContent;
70
- const svgElm = div.querySelector(svgTag);
71
- if (svgElm) {
72
- const existingClasses = svgElm.getAttribute('class') || '';
73
- svgElm.setAttribute('class', `${existingClasses} ${iconCssClass}`.trim());
74
- svgElm.setAttribute('part', svgTag);
75
- svgElm.removeAttribute('height');
76
- svgElm.removeAttribute('width');
77
- if (isValid(svgElm)) {
78
- return div.innerHTML;
79
- }
80
- }
81
- return '';
135
+ export const clearIconCache = () => {
136
+ cache.requests.clear();
137
+ cache.content.clear();
82
138
  };
83
139
  /**
84
- * Checks if an HTML element is valid (i.e., does not contain scripts or event handlers).
85
- * @param {HTMLElement} elm - The element to check.
86
- * @returns {boolean} - True if the element is valid, false otherwise.
140
+ * Gets cache statistics for debugging
87
141
  */
88
- export const isValid = (elm) => {
89
- if (!elm)
90
- return false;
91
- if (elm.nodeType !== Node.ELEMENT_NODE)
92
- return false;
93
- if (elm.nodeName.toLowerCase() === 'script')
94
- return false;
95
- for (const attribute of Array.from(elm.attributes)) {
96
- if (isString(attribute.value) && attribute.value.toLowerCase().startsWith('on')) {
97
- return false;
98
- }
99
- }
100
- for (const childNode of Array.from(elm.children)) {
101
- if (!isValid(childNode))
102
- return false;
103
- }
104
- return true;
105
- };
142
+ export const getCacheStats = () => ({
143
+ pendingRequests: cache.requests.size,
144
+ cachedContent: cache.content.size,
145
+ urls: Array.from(cache.content.keys()),
146
+ });
147
+ // Export cache for external access if needed
148
+ export { cache as iconCache };
106
149
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../../../packages/beeq/src/components/icon/helper/request.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAE,QAAiB,EAAoB,EAAE;IAC1E,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,QAAiB,EAAoB,EAAE;IACtF,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC5D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAElE,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,YAAY,GAAG,cAAc,CAAC;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;IAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,eAAe,IAAI,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAY,EAAW,EAAE;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE1D,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAkB,EAAE,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Icon request helper */\n/* -------------------------------------------------------------------------- */\n\nimport { isNil, isString } from '../../../shared/utils';\n\nconst requests = new Map<string, Promise<unknown>>();\nexport const iconContent = new Map<string, string>();\n\n/**\n * Fetches SVG content from a given URL and optionally sanitizes it.\n * @param {string} url - The URL to fetch the SVG from.\n * @param {boolean} sanitize - Whether to sanitize the SVG content.\n * @returns {Promise<unknown>} - A promise that resolves to the SVG content.\n */\nconst fetchSvg = async (url: string, sanitize: boolean): Promise<unknown> => {\n if (isNil(url) || typeof fetch === 'undefined' || typeof window === 'undefined') {\n return undefined;\n }\n\n if (requests.has(url)) return requests.get(url);\n\n try {\n const response = await fetch(url);\n\n if (!response.ok) {\n iconContent.set(url, '');\n return undefined;\n }\n\n let svgContent = await response.text();\n\n if (sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n\n iconContent.set(url, svgContent);\n return svgContent;\n } catch (error) {\n console.error(`[BqIcon] Failed to fetch SVG from ${url}:`, error);\n iconContent.set(url, '');\n return undefined;\n }\n};\n\n/**\n * Retrieves the SVG content for a given URL, fetching and caching it if necessary.\n * @param {string} url - The URL to fetch the SVG from.\n * @param {boolean} sanitize - Whether to sanitize the SVG content.\n * @returns {Promise<unknown>} - A promise that resolves to the SVG content.\n */\nexport const getSvgContent = async (url: string, sanitize: boolean): Promise<unknown> => {\n if (isNil(url)) return undefined;\n\n let req = requests.get(url);\n\n if (isNil(req)) {\n req = fetchSvg(url, sanitize);\n requests.set(url, req);\n }\n return req;\n};\n\n/**\n * Validates and sanitizes the SVG content.\n * @param {string} svgContent - The SVG content to validate.\n * @returns {string} - The sanitized SVG content.\n */\nexport const validateContent = (svgContent: string): string => {\n if (typeof window === 'undefined' || isNil(svgContent)) return '';\n\n const svgTag = 'svg';\n const iconCssClass = 'bq-icon__svg';\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n\n const svgElm = div.querySelector(svgTag);\n\n if (svgElm) {\n const existingClasses = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', `${existingClasses} ${iconCssClass}`.trim());\n svgElm.setAttribute('part', svgTag);\n svgElm.removeAttribute('height');\n svgElm.removeAttribute('width');\n\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n\n return '';\n};\n\n/**\n * Checks if an HTML element is valid (i.e., does not contain scripts or event handlers).\n * @param {HTMLElement} elm - The element to check.\n * @returns {boolean} - True if the element is valid, false otherwise.\n */\nexport const isValid = (elm: Element): boolean => {\n if (!elm) return false;\n if (elm.nodeType !== Node.ELEMENT_NODE) return false;\n if (elm.nodeName.toLowerCase() === 'script') return false;\n\n for (const attribute of Array.from(elm.attributes)) {\n if (isString(attribute.value) && attribute.value.toLowerCase().startsWith('on')) {\n return false;\n }\n }\n\n for (const childNode of Array.from(elm.children) as HTMLElement[]) {\n if (!isValid(childNode)) return false;\n }\n\n return true;\n};\n"]}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../../../../packages/beeq/src/components/icon/helper/request.ts"],"names":[],"mappings":"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","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Icon request helper */\n/* -------------------------------------------------------------------------- */\n\nimport { isClient, isNil } from '../../../shared/utils';\n\nconst SVG_TAG = 'svg';\nconst ICON_CSS_CLASS = 'bq-icon__svg';\n\ninterface IconCache {\n requests: Map<string, Promise<string>>;\n content: Map<string, string>;\n}\n\nconst cache: IconCache = {\n requests: new Map(),\n content: new Map(),\n};\n\n/**\n * Sanitizes SVG element by setting required attributes and removing unwanted ones\n * @param svg - The SVG element to sanitize\n */\nconst sanitizeSvgElement = (svg: SVGElement): void => {\n const currentClass = svg.getAttribute('class') || '';\n\n svg.setAttribute('class', `${currentClass} ${ICON_CSS_CLASS}`.trim());\n svg.setAttribute('part', SVG_TAG);\n svg.removeAttribute('height');\n svg.removeAttribute('width');\n};\n\n/**\n * Validates element security (no scripts or event handlers)\n * @param element - The element to validate\n * @returns True if the element is valid, false otherwise\n */\nconst validateElement = (element: Element): boolean => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) return false;\n if (element.nodeName.toLowerCase() === 'script') return false;\n\n // Check for malicious attributes using modern array methods\n const hasUnsafeAttribute = Array.from(element.attributes).some((attr) => {\n const value = attr.value?.toLowerCase() || '';\n const name = attr.name.toLowerCase();\n\n // Check for event handlers\n if (name.startsWith('on')) return true;\n // Check for javascript: URLs\n if (value.includes('javascript:')) return true;\n\n return false;\n });\n\n if (hasUnsafeAttribute) return false;\n\n // Recursively validate children\n return Array.from(element.children).every((child) => validateElement(child));\n};\n\n/**\n * Processes SVG content with security checks and sanitization\n * @param content - The SVG content to process\n * @returns The processed and sanitized SVG content\n */\nconst processSvgContent = (content: string): string => {\n if (!isClient() || isNil(content)) return '';\n\n try {\n const parser = document.createElement('div');\n parser.innerHTML = content;\n\n const svg = parser.querySelector(SVG_TAG);\n if (!svg || !validateElement(svg)) {\n console.warn('[BqIcon] SVG content failed security validation');\n return '';\n }\n\n sanitizeSvgElement(svg);\n return parser.innerHTML;\n } catch (error) {\n console.error('[BqIcon] Error processing SVG content:', error);\n return '';\n }\n};\n\n/**\n * Fetches and processes SVG content from URL\n * @param url - The URL of the SVG to fetch\n * @param shouldSanitize - Whether to sanitize the SVG content\n * @returns Promise that resolves to the processed SVG content\n */\nconst fetchAndProcessSvg = async (url: string, shouldSanitize = true): Promise<string> => {\n if (!isClient()) return '';\n\n try {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}: ${response.statusText}`);\n }\n\n const content = await response.text();\n\n if (!content.trim()) {\n console.warn(`[BqIcon] Empty SVG content received from ${url}`);\n return '';\n }\n\n return shouldSanitize ? processSvgContent(content) : content;\n } catch (error) {\n console.error(`[BqIcon] Failed to fetch SVG from ${url}:`, error);\n return '';\n }\n};\n\n/**\n * Retrieves SVG content with caching, security validation, and sanitization\n * @param url - The URL of the SVG to fetch\n * @param sanitize - Whether to sanitize the SVG content (default: true)\n * @returns Promise that resolves to the processed SVG content or undefined\n */\nexport const getSvgContent = async (url?: string, sanitize = true): Promise<string | undefined> => {\n if (!isClient() || isNil(url)) return undefined;\n\n // Return cached content if available\n if (cache.content.has(url)) {\n const cachedContent = cache.content.get(url);\n return cachedContent || undefined;\n }\n\n // Check for pending request\n let request = cache.requests.get(url);\n\n if (!request) {\n // Create new request with proper cleanup\n request = fetchAndProcessSvg(url, sanitize).then((content) => {\n // Cache the result (including empty strings for failed requests)\n cache.content.set(url, content);\n // Clean up the pending request\n cache.requests.delete(url);\n return content;\n });\n\n cache.requests.set(url, request);\n }\n\n return request;\n};\n\n/**\n * Clears the icon cache - useful for testing or memory management\n */\nexport const clearIconCache = (): void => {\n cache.requests.clear();\n cache.content.clear();\n};\n\n/**\n * Gets cache statistics for debugging\n */\nexport const getCacheStats = () => ({\n pendingRequests: cache.requests.size,\n cachedContent: cache.content.size,\n urls: Array.from(cache.content.keys()),\n});\n\n// Export cache for external access if needed\nexport { cache as iconCache };\n"]}
@@ -2,5 +2,5 @@
2
2
  * Built by Endavans
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
- import{p as a,H as r,c as e,h as n}from"./p-DBkP6C_Q.js";import{v as o}from"./p-zh4P02Kn.js";import{b as i}from"./p-uqkxeAeG.js";import{d as b}from"./p-CJrRuo-b.js";const d=["small","medium"];const t=["filled","ghost"];class c{el;header;panel;animation;isClosing;isExpanding;animationOptions={duration:200,easing:"ease-in-out"};constructor(a){this.el=a;this.header=a.querySelector("summary");this.panel=a.querySelector(".bq-accordion__body");this.animation=null;this.isClosing=false;this.isExpanding=false}open(){if(!this.isClosing&&this.el.open)return;this.el.style.height=`${this.el.offsetHeight}px`;this.el.open=true;window.requestAnimationFrame((()=>this.expand()))}close(){if(!this.isExpanding&&!this.el.open)return;this.isClosing=true;const a=`${this.el.offsetHeight}px`;const r=`${this.header.offsetHeight}px`;if(this.animation){this.animation.cancel()}this.animation=this.el.animate({height:[a,r]},this.animationOptions);this.animation.onfinish=()=>this.onAnimationFinish(false);this.animation.oncancel=()=>this.isClosing=false}expand(){this.isExpanding=true;const a=`${this.el.offsetHeight}px`;const r=`${this.header.offsetHeight+this.panel.offsetHeight}px`;if(this.animation){this.animation.cancel()}this.animation=this.el.animate({height:[a,r]},this.animationOptions);this.animation.onfinish=()=>this.onAnimationFinish(true);this.animation.oncancel=()=>this.isExpanding=false}onAnimationFinish(a){this.el.open=a;this.animation=null;this.isClosing=false;this.isExpanding=false;this.el.removeAttribute("style");const r=new Event("accordionTransitionEnd",{bubbles:false,composed:true});this.el.dispatchEvent(r)}}const s='.transform{--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;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))}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq.light,.light,[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.beeq.dark,.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.block{display:block}.flex{display:flex}.hidden{display:none}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.list-none{list-style-type:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-\\[--bq-accordion--medium-gap\\]{gap:var(--bq-accordion--medium-gap)}.gap-\\[--bq-accordion--small-gap\\]{gap:var(--bq-accordion--small-gap)}.overflow-clip{overflow:clip}.rounded-ee-\\[--bq-accordion--medium-radius\\]{border-end-end-radius:var(--bq-accordion--medium-radius)}.rounded-ee-\\[--bq-accordion--small-radius\\]{border-end-end-radius:var(--bq-accordion--small-radius)}.rounded-ee-\\[0px\\]{border-end-end-radius:0}.rounded-es-\\[--bq-accordion--medium-radius\\]{border-end-start-radius:var(--bq-accordion--medium-radius)}.rounded-es-\\[--bq-accordion--small-radius\\]{border-end-start-radius:var(--bq-accordion--small-radius)}.rounded-es-\\[0px\\]{border-end-start-radius:0}.rounded-se-\\[--bq-accordion--medium-radius\\]{border-start-end-radius:var(--bq-accordion--medium-radius)}.rounded-se-\\[--bq-accordion--small-radius\\]{border-start-end-radius:var(--bq-accordion--small-radius)}.rounded-se-\\[0px\\]{border-start-end-radius:0}.rounded-ss-\\[--bq-accordion--medium-radius\\]{border-start-start-radius:var(--bq-accordion--medium-radius)}.rounded-ss-\\[--bq-accordion--small-radius\\]{border-start-start-radius:var(--bq-accordion--small-radius)}.rounded-ss-\\[0px\\]{border-start-start-radius:0}.border-\\[length\\:--bq-accordion--collapsed-border-width\\]{border-width:var(--bq-accordion--collapsed-border-width)}.border-\\[length\\:--bq-accordion--expanded-border-width\\]{border-width:var(--bq-accordion--expanded-border-width)}.border-\\[length\\:--bq-accordion--panel-filled-border-width\\]{border-width:var(--bq-accordion--panel-filled-border-width)}.border-\\[length\\:--bq-accordion--panel-ghost-border-width\\]{border-width:var(--bq-accordion--panel-ghost-border-width)}.border-\\[color\\:--bq-accordion--collapsed-border-color\\]{border-color:var(--bq-accordion--collapsed-border-color)}.border-\\[color\\:--bq-accordion--expanded-border-color\\]{border-color:var(--bq-accordion--expanded-border-color)}.border-\\[color\\:--bq-accordion--panel-filled-border-color\\]{border-color:var(--bq-accordion--panel-filled-border-color)}.border-\\[color\\:--bq-accordion--panel-ghost-border-color\\]{border-color:var(--bq-accordion--panel-ghost-border-color)}.bg-\\[--bq-accordion--filled-collapsed-background\\]{background-color:var(--bq-accordion--filled-collapsed-background)}.bg-\\[--bq-accordion--filled-expanded-background\\]{background-color:var(--bq-accordion--filled-expanded-background)}.bg-\\[--bq-accordion--ghost-collapsed-background\\]{background-color:var(--bq-accordion--ghost-collapsed-background)}.bg-\\[--bq-accordion--ghost-expanded-background\\]{background-color:var(--bq-accordion--ghost-expanded-background)}.pe-\\[--bq-accordion--medium-padding-end\\]{padding-inline-end:var(--bq-accordion--medium-padding-end)}.pe-\\[--bq-accordion--panel-medium-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end)}.pe-\\[--bq-accordion--panel-medium-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end)}.pe-\\[--bq-accordion--panel-small-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end)}.pe-\\[--bq-accordion--panel-small-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end)}.pe-\\[--bq-accordion--small-padding-end\\]{padding-inline-end:var(--bq-accordion--small-padding-end)}.ps-\\[--bq-accordion--medium-padding-start\\]{padding-inline-start:var(--bq-accordion--medium-padding-start)}.ps-\\[--bq-accordion--panel-medium-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.ps-\\[--bq-accordion--panel-medium-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.ps-\\[--bq-accordion--panel-small-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.ps-\\[--bq-accordion--panel-small-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.ps-\\[--bq-accordion--small-padding-start\\]{padding-inline-start:var(--bq-accordion--small-padding-start)}.text-\\[--bq-accordion--filled-collapsed-text-color\\]{color:var(--bq-accordion--filled-collapsed-text-color)}.text-\\[--bq-accordion--filled-expanded-text-color\\]{color:var(--bq-accordion--filled-expanded-text-color)}.text-\\[--bq-accordion--ghost-collapsed-text-color\\]{color:var(--bq-accordion--ghost-collapsed-text-color)}.text-\\[--bq-accordion--ghost-expanded-text-color\\]{color:var(--bq-accordion--ghost-expanded-text-color)}.opacity-60{opacity:.6}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.bs-0{block-size:0}.bs-auto{block-size:auto}.p-b-\\[--bq-accordion--medium-padding-y\\]{padding-block:var(--bq-accordion--medium-padding-y)}.p-b-\\[--bq-accordion--panel-medium-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-filled-padding-y)}.p-b-\\[--bq-accordion--panel-medium-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y)}.p-b-\\[--bq-accordion--panel-small-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-small-filled-padding-y)}.p-b-\\[--bq-accordion--panel-small-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-small-ghost-padding-y)}.p-b-\\[--bq-accordion--small-padding-y\\]{padding-block:var(--bq-accordion--small-padding-y)}.\\[transition-behavior\\:allow-discrete\\]{transition-behavior:allow-discrete}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-accordion--small-padding-y:var(--bq-spacing-xs);--bq-accordion--small-padding-start:var(--bq-spacing-s);--bq-accordion--small-padding-end:var(--bq-spacing-s);--bq-accordion--small-gap:var(--bq-spacing-xs);--bq-accordion--small-radius:var(--bq-radius--xs);--bq-accordion--medium-padding-y:var(--bq-spacing-s);--bq-accordion--medium-padding-start:var(--bq-spacing-m);--bq-accordion--medium-padding-end:var(--bq-spacing-m);--bq-accordion--medium-gap:var(--bq-spacing-m);--bq-accordion--medium-radius:var(--bq-radius--xs);--bq-accordion--collapsed-border-color:transparent;--bq-accordion--collapsed-border-style:none;--bq-accordion--collapsed-border-width:unset;--bq-accordion--expanded-border-color:transparent;--bq-accordion--expanded-border-style:none;--bq-accordion--expanded-border-width:unset;--bq-accordion--filled-collapsed-background:var(--bq-ui--secondary);--bq-accordion--filled-collapsed-text-color:var(--bq-text--primary);--bq-accordion--filled-expanded-background:var(--bq-ui--brand-alt);--bq-accordion--filled-expanded-text-color:var(--bq-text--primary);--bq-accordion--ghost-collapsed-background:transparent;--bq-accordion--ghost-collapsed-text-color:var(--bq-text--primary);--bq-accordion--ghost-expanded-background:transparent;--bq-accordion--ghost-expanded-text-color:var(--bq-text--brand);--bq-accordion--panel-filled-border-color:var(--bq-stroke--primary);--bq-accordion--panel-filled-border-style:solid;--bq-accordion--panel-filled-border-width:var(--bq-stroke-s);--bq-accordion--panel-small-filled-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-start:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-end:var(--bq-spacing-s);--bq-accordion--panel-medium-filled-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-start:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-end:var(--bq-spacing-m);--bq-accordion--panel-ghost-border-color:transparent;--bq-accordion--panel-ghost-border-style:none;--bq-accordion--panel-ghost-border-width:unset;--bq-accordion--panel-small-ghost-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-ghost-padding-start:var(--bq-spacing-l);--bq-accordion--panel-small-ghost-padding-end:var(--bq-spacing-l);--bq-accordion--panel-medium-ghost-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-ghost-padding-start:var(--bq-spacing-xl);--bq-accordion--panel-medium-ghost-padding-end:var(--bq-spacing-xl);display:block}@supports (interpolate-size:allow-keywords){.bq-accordion:not(.no-animation){interpolate-size:allow-keywords}}.bq-accordion.disabled{cursor:not-allowed;opacity:.6}.bq-accordion.disabled .bq-accordion__header{pointer-events:none}.bq-accordion.small .bq-accordion__header{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:var(--bq-accordion--small-radius);border-start-start-radius:var(--bq-accordion--small-radius);gap:var(--bq-accordion--small-gap);padding-block:var(--bq-accordion--small-padding-y);padding-inline-end:var(--bq-accordion--small-padding-end);padding-inline-start:var(--bq-accordion--small-padding-start)}.bq-accordion.medium .bq-accordion__header{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:var(--bq-accordion--medium-radius);border-start-start-radius:var(--bq-accordion--medium-radius);gap:var(--bq-accordion--medium-gap);padding-block:var(--bq-accordion--medium-padding-y);padding-inline-end:var(--bq-accordion--medium-padding-end);padding-inline-start:var(--bq-accordion--medium-padding-start)}.bq-accordion[open] .bq-accordion__header{border-color:var(--bq-accordion--expanded-border-color);border-end-end-radius:0;border-end-start-radius:0;border-style:var(--bq-accordion--expanded-border-style);border-width:var(--bq-accordion--expanded-border-width)}.bq-accordion.small .bq-accordion__content{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.medium .bq-accordion__content{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.filled .bq-accordion__header{background-color:var(--bq-accordion--filled-collapsed-background)}.bq-accordion.filled .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled .bq-accordion__header--text{color:var(--bq-accordion--filled-collapsed-text-color)}.bq-accordion.filled .bq-accordion__content{border-color:var(--bq-accordion--panel-filled-border-color);border-style:var(--bq-accordion--panel-filled-border-style);border-width:var(--bq-accordion--panel-filled-border-width)}.bq-accordion.filled[open] .bq-accordion__header{background-color:var(--bq-accordion--filled-expanded-background)}.bq-accordion.filled[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled[open] .bq-accordion__header--text{color:var(--bq-accordion--filled-expanded-text-color)}.bq-accordion.ghost .bq-accordion__header{background-color:var(--bq-accordion--ghost-collapsed-background)}.bq-accordion.ghost .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost .bq-accordion__header--text{color:var(--bq-accordion--ghost-collapsed-text-color)}.bq-accordion.ghost .bq-accordion__content{border-color:var(--bq-accordion--panel-ghost-border-color);border-style:var(--bq-accordion--panel-ghost-border-style);border-width:var(--bq-accordion--panel-ghost-border-width)}.bq-accordion.ghost[open] .bq-accordion__header{background-color:var(--bq-accordion--ghost-expanded-background)}.bq-accordion.ghost[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost[open] .bq-accordion__header--text{color:var(--bq-accordion--ghost-expanded-text-color)}.bq-accordion.small.filled .bq-accordion__content{padding-block:var(--bq-accordion--panel-small-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.bq-accordion.medium.filled .bq-accordion__content{padding-block:var(--bq-accordion--panel-medium-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.bq-accordion.small.ghost .bq-accordion__content{padding-block:var(--bq-accordion--panel-small-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.bq-accordion.medium.ghost .bq-accordion__content{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.bq-accordion::details-content{transition-behavior:allow-discrete;block-size:0;display:block;overflow:clip;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-accordion[open]::details-content{block-size:auto}.bq-accordion__header{--bq-ring-offset-width:-2px;align-items:center;border-color:var(--bq-accordion--collapsed-border-color);border-style:var(--bq-accordion--collapsed-border-style);border-width:var(--bq-accordion--collapsed-border-width);cursor:pointer;display:flex;list-style-type:none;transition-duration:.3s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-accordion__header:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-accordion__header::-webkit-details-marker,.bq-accordion__header::marker{display:none}.bq-accordion__header--text{flex:1 1 0%}.bq-accordion__header--prefix,.bq-accordion__header--suffix{align-items:center;display:flex;justify-content:center}.focus-visible\\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.hover\\:bg-hover-ui-secondary:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}@supports (interpolate-size:allow-keywords){.supports-\\[interpolate-size\\:_allow-keywords\\]\\:\\[interpolate-size\\:_allow-keywords\\]{interpolate-size:allow-keywords}}.rotate-180{--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-rotate:180deg;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))}.collapse{visibility:collapse}.static{position:static}.\\!hidden{display:none!important}.overflow-hidden{overflow:hidden}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.text-\\[color\\:--bq-icon--color\\]{color:var(--bq-icon--color)}.bs-\\[--bq-icon--size\\]{block-size:var(--bq-icon--size)}.is-\\[--bq-icon--size\\]{inline-size:var(--bq-icon--size)}';const q=a(class a extends r{constructor(){super();this.__registerHost();this.__attachShadow();this.bqBlur=e(this,"bqBlur");this.bqFocus=e(this,"bqFocus");this.bqOpen=e(this,"bqOpen");this.bqAfterOpen=e(this,"bqAfterOpen");this.bqClose=e(this,"bqClose");this.bqAfterClose=e(this,"bqAfterClose");this.bqClick=e(this,"bqClick")}accordion;prefixElem;suffixElem;detailsElem;get el(){return this}hasPrefix=false;hasSuffix=false;appearance="filled";disabled=false;expanded=false;noAnimation=false;rotate=false;size="medium";checkPropValues(){o(d,"medium",this.el,"size");o(t,"filled",this.el,"appearance")}handleExpandedChange(){const a=this.expanded?this.bqOpen.emit(this.el):this.bqClose.emit(this.el);if(a.defaultPrevented){this.expanded=!this.expanded;return}if(this.expanded){this.accordion?.open()}else{this.accordion?.close()}if(!this.isCssInterpolateSizeSupported)return;setTimeout((()=>{this.el.dispatchEvent(new CustomEvent("accordionTransitionEnd",{bubbles:false,composed:true}))}),200)}handleDisabledChange(){if(!this.disabled)return;this.expanded=false}handleJsAnimation(){if(this.isCssInterpolateSizeSupported)return;console.warn(`[bq-accordion] animating to/from intrinsic sizing keywords (interpolate-size: allow-keywords) is not supported and animation will be set through JS.\n For vertical layout, consider using the 'noAnimation' prop ('no-animation' attribute) to disable it`);this.accordion=!this.noAnimation?new c(this.detailsElem):null}bqBlur;bqFocus;bqOpen;bqAfterOpen;bqClose;bqAfterClose;bqClick;componentWillLoad(){this.checkPropValues()}componentDidLoad(){this.handleJsAnimation();this.handleExpandedChange();this.handleSlotChange()}onAccordionTransitionEnd(a){a.stopPropagation();if(a.target!==this.el)return;if(this.expanded){this.bqAfterOpen.emit(this.el);return}this.bqAfterClose.emit(this.el)}handleClick=a=>{a.preventDefault();if(this.disabled)return;this.bqClick.emit(this.el);this.expanded=!this.expanded};handleFocus=()=>{if(this.disabled)return;this.bqFocus.emit(this.el)};handleBlur=()=>{this.bqBlur.emit(this.el)};handleSlotChange=()=>{this.hasPrefix=i(this.prefixElem,"prefix");this.hasSuffix=i(this.suffixElem,"suffix")};get open(){return this.expanded&&!this.disabled}get isCssInterpolateSizeSupported(){return window.CSS?.supports("(interpolate-size: allow-keywords)")}render(){return n("details",{key:"c0371e171f0737d4979e1fc3dc0425220616414d",class:{[`bq-accordion overflow-hidden ${this.size} ${this.appearance}`]:true,"no-animation":this.noAnimation,disabled:this.disabled},ref:a=>this.detailsElem=a,open:this.open,part:"base"},n("summary",{key:"17b91ac60af140b8f4181526243523167dff3704",id:"bq-accordion__header",class:"bq-accordion__header",onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,"aria-expanded":this.expanded?"true":"false","aria-disabled":this.disabled?"true":"false","aria-controls":"bq-accordion__content",tabindex:this.disabled?-1:0,role:"button",part:"header"},n("div",{key:"1227cb1c92fac34412ed095f208b6ee13f934b9d",ref:a=>this.prefixElem=a,class:{"bq-accordion__header--prefix":true,"!hidden":!this.hasPrefix},part:"prefix"},n("slot",{key:"51373d0c1f022285989977b1da3b12330b874541",name:"prefix",onSlotchange:this.handleSlotChange})),n("div",{key:"549170ced73b77595601bc9192af70037a66fbd6",class:"bq-accordion__header--text",part:"text"},n("slot",{key:"ed11d84eeda76711ddcfaa5d211787be4606aa31",name:"header"})),n("div",{key:"acc7dc2350f6c507568f85583825875a6a6ee65e",ref:a=>this.suffixElem=a,class:{"bq-accordion__header--suffix":true,"!hidden":!this.hasSuffix},part:"suffix"},n("slot",{key:"40c1c2259993288e864f10efe42e52acf51b57f4",name:"suffix",onSlotchange:this.handleSlotChange})),n("div",{key:"edea0055c783d0040951089d996cc0f083af7702",class:{"flex items-center justify-center transition-transform duration-300 ease-in-out":true,"!hidden":this.open&&!this.rotate,"rotate-180":this.rotate&&this.open},"aria-hidden":"true"},n("slot",{key:"5c849fb8f0935bbda4e5d0335a2ecdb12fee1a71",name:"expand"},n("bq-icon",{key:"de06511d602889b05d0d21bad6ff60e564628cda",name:"plus"}))),n("div",{key:"421714371e3fc4bd7c155d13fab5aff79db5fd19",class:{"flex items-center justify-center":true,"!hidden":!this.open&&!this.rotate||this.rotate},"aria-hidden":"true"},n("slot",{key:"68350d84ad168345f996519f696289eb3f812a7a",name:"collapse"},n("bq-icon",{key:"4d5adf15da449aa7c8a5a4a635c66c7428628f35",name:"minus"})))),n("div",{key:"433cf4d76356b9b4392476f4484a49dcaea99f23",class:"bq-accordion__body overflow-hidden","aria-labelledby":"bq-accordion__header",role:"region",part:"panel"},n("slot",{key:"80d61ccc49d21b7a94be378c45e8a367372a5ec5",id:"bq-accordion__content",class:"bq-accordion__content block"})))}static get watchers(){return{size:["checkPropValues"],expanded:["handleExpandedChange"],disabled:["handleDisabledChange"],noAnimation:["handleJsAnimation"]}}static get style(){return s}},[1,"bq-accordion",{appearance:[1537],disabled:[516],expanded:[1540],noAnimation:[516,"no-animation"],rotate:[516],size:[1537],hasPrefix:[32],hasSuffix:[32]},[[0,"accordionTransitionEnd","onAccordionTransitionEnd"]],{size:["checkPropValues"],expanded:["handleExpandedChange"],disabled:["handleDisabledChange"],noAnimation:["handleJsAnimation"]}]);function l(){if(typeof customElements==="undefined"){return}const a=["bq-accordion","bq-icon"];a.forEach((a=>{switch(a){case"bq-accordion":if(!customElements.get(a)){customElements.define(a,q)}break;case"bq-icon":if(!customElements.get(a)){b()}break}}))}const u=q;const g=l;export{u as BqAccordion,g as defineCustomElement};
5
+ import{p as a,H as r,c as e,h as n}from"./p-DBkP6C_Q.js";import{v as o}from"./p-zh4P02Kn.js";import{b as i}from"./p-uqkxeAeG.js";import{d as b}from"./p-9Z6M4Uap.js";const d=["small","medium"];const t=["filled","ghost"];class c{el;header;panel;animation;isClosing;isExpanding;animationOptions={duration:200,easing:"ease-in-out"};constructor(a){this.el=a;this.header=a.querySelector("summary");this.panel=a.querySelector(".bq-accordion__body");this.animation=null;this.isClosing=false;this.isExpanding=false}open(){if(!this.isClosing&&this.el.open)return;this.el.style.height=`${this.el.offsetHeight}px`;this.el.open=true;window.requestAnimationFrame((()=>this.expand()))}close(){if(!this.isExpanding&&!this.el.open)return;this.isClosing=true;const a=`${this.el.offsetHeight}px`;const r=`${this.header.offsetHeight}px`;if(this.animation){this.animation.cancel()}this.animation=this.el.animate({height:[a,r]},this.animationOptions);this.animation.onfinish=()=>this.onAnimationFinish(false);this.animation.oncancel=()=>this.isClosing=false}expand(){this.isExpanding=true;const a=`${this.el.offsetHeight}px`;const r=`${this.header.offsetHeight+this.panel.offsetHeight}px`;if(this.animation){this.animation.cancel()}this.animation=this.el.animate({height:[a,r]},this.animationOptions);this.animation.onfinish=()=>this.onAnimationFinish(true);this.animation.oncancel=()=>this.isExpanding=false}onAnimationFinish(a){this.el.open=a;this.animation=null;this.isClosing=false;this.isExpanding=false;this.el.removeAttribute("style");const r=new Event("accordionTransitionEnd",{bubbles:false,composed:true});this.el.dispatchEvent(r)}}const s='.transform{--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;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))}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq.light,.light,[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.beeq.dark,.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.block{display:block}.flex{display:flex}.hidden{display:none}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.list-none{list-style-type:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-\\[--bq-accordion--medium-gap\\]{gap:var(--bq-accordion--medium-gap)}.gap-\\[--bq-accordion--small-gap\\]{gap:var(--bq-accordion--small-gap)}.overflow-clip{overflow:clip}.rounded-ee-\\[--bq-accordion--medium-radius\\]{border-end-end-radius:var(--bq-accordion--medium-radius)}.rounded-ee-\\[--bq-accordion--small-radius\\]{border-end-end-radius:var(--bq-accordion--small-radius)}.rounded-ee-\\[0px\\]{border-end-end-radius:0}.rounded-es-\\[--bq-accordion--medium-radius\\]{border-end-start-radius:var(--bq-accordion--medium-radius)}.rounded-es-\\[--bq-accordion--small-radius\\]{border-end-start-radius:var(--bq-accordion--small-radius)}.rounded-es-\\[0px\\]{border-end-start-radius:0}.rounded-se-\\[--bq-accordion--medium-radius\\]{border-start-end-radius:var(--bq-accordion--medium-radius)}.rounded-se-\\[--bq-accordion--small-radius\\]{border-start-end-radius:var(--bq-accordion--small-radius)}.rounded-se-\\[0px\\]{border-start-end-radius:0}.rounded-ss-\\[--bq-accordion--medium-radius\\]{border-start-start-radius:var(--bq-accordion--medium-radius)}.rounded-ss-\\[--bq-accordion--small-radius\\]{border-start-start-radius:var(--bq-accordion--small-radius)}.rounded-ss-\\[0px\\]{border-start-start-radius:0}.border-\\[length\\:--bq-accordion--collapsed-border-width\\]{border-width:var(--bq-accordion--collapsed-border-width)}.border-\\[length\\:--bq-accordion--expanded-border-width\\]{border-width:var(--bq-accordion--expanded-border-width)}.border-\\[length\\:--bq-accordion--panel-filled-border-width\\]{border-width:var(--bq-accordion--panel-filled-border-width)}.border-\\[length\\:--bq-accordion--panel-ghost-border-width\\]{border-width:var(--bq-accordion--panel-ghost-border-width)}.border-\\[color\\:--bq-accordion--collapsed-border-color\\]{border-color:var(--bq-accordion--collapsed-border-color)}.border-\\[color\\:--bq-accordion--expanded-border-color\\]{border-color:var(--bq-accordion--expanded-border-color)}.border-\\[color\\:--bq-accordion--panel-filled-border-color\\]{border-color:var(--bq-accordion--panel-filled-border-color)}.border-\\[color\\:--bq-accordion--panel-ghost-border-color\\]{border-color:var(--bq-accordion--panel-ghost-border-color)}.bg-\\[--bq-accordion--filled-collapsed-background\\]{background-color:var(--bq-accordion--filled-collapsed-background)}.bg-\\[--bq-accordion--filled-expanded-background\\]{background-color:var(--bq-accordion--filled-expanded-background)}.bg-\\[--bq-accordion--ghost-collapsed-background\\]{background-color:var(--bq-accordion--ghost-collapsed-background)}.bg-\\[--bq-accordion--ghost-expanded-background\\]{background-color:var(--bq-accordion--ghost-expanded-background)}.pe-\\[--bq-accordion--medium-padding-end\\]{padding-inline-end:var(--bq-accordion--medium-padding-end)}.pe-\\[--bq-accordion--panel-medium-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end)}.pe-\\[--bq-accordion--panel-medium-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end)}.pe-\\[--bq-accordion--panel-small-filled-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end)}.pe-\\[--bq-accordion--panel-small-ghost-padding-end\\]{padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end)}.pe-\\[--bq-accordion--small-padding-end\\]{padding-inline-end:var(--bq-accordion--small-padding-end)}.ps-\\[--bq-accordion--medium-padding-start\\]{padding-inline-start:var(--bq-accordion--medium-padding-start)}.ps-\\[--bq-accordion--panel-medium-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.ps-\\[--bq-accordion--panel-medium-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.ps-\\[--bq-accordion--panel-small-filled-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.ps-\\[--bq-accordion--panel-small-ghost-padding-start\\]{padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.ps-\\[--bq-accordion--small-padding-start\\]{padding-inline-start:var(--bq-accordion--small-padding-start)}.text-\\[--bq-accordion--filled-collapsed-text-color\\]{color:var(--bq-accordion--filled-collapsed-text-color)}.text-\\[--bq-accordion--filled-expanded-text-color\\]{color:var(--bq-accordion--filled-expanded-text-color)}.text-\\[--bq-accordion--ghost-collapsed-text-color\\]{color:var(--bq-accordion--ghost-collapsed-text-color)}.text-\\[--bq-accordion--ghost-expanded-text-color\\]{color:var(--bq-accordion--ghost-expanded-text-color)}.opacity-60{opacity:.6}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.bs-0{block-size:0}.bs-auto{block-size:auto}.p-b-\\[--bq-accordion--medium-padding-y\\]{padding-block:var(--bq-accordion--medium-padding-y)}.p-b-\\[--bq-accordion--panel-medium-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-filled-padding-y)}.p-b-\\[--bq-accordion--panel-medium-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y)}.p-b-\\[--bq-accordion--panel-small-filled-padding-y\\]{padding-block:var(--bq-accordion--panel-small-filled-padding-y)}.p-b-\\[--bq-accordion--panel-small-ghost-padding-y\\]{padding-block:var(--bq-accordion--panel-small-ghost-padding-y)}.p-b-\\[--bq-accordion--small-padding-y\\]{padding-block:var(--bq-accordion--small-padding-y)}.\\[transition-behavior\\:allow-discrete\\]{transition-behavior:allow-discrete}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-accordion--small-padding-y:var(--bq-spacing-xs);--bq-accordion--small-padding-start:var(--bq-spacing-s);--bq-accordion--small-padding-end:var(--bq-spacing-s);--bq-accordion--small-gap:var(--bq-spacing-xs);--bq-accordion--small-radius:var(--bq-radius--xs);--bq-accordion--medium-padding-y:var(--bq-spacing-s);--bq-accordion--medium-padding-start:var(--bq-spacing-m);--bq-accordion--medium-padding-end:var(--bq-spacing-m);--bq-accordion--medium-gap:var(--bq-spacing-m);--bq-accordion--medium-radius:var(--bq-radius--xs);--bq-accordion--collapsed-border-color:transparent;--bq-accordion--collapsed-border-style:none;--bq-accordion--collapsed-border-width:unset;--bq-accordion--expanded-border-color:transparent;--bq-accordion--expanded-border-style:none;--bq-accordion--expanded-border-width:unset;--bq-accordion--filled-collapsed-background:var(--bq-ui--secondary);--bq-accordion--filled-collapsed-text-color:var(--bq-text--primary);--bq-accordion--filled-expanded-background:var(--bq-ui--brand-alt);--bq-accordion--filled-expanded-text-color:var(--bq-text--primary);--bq-accordion--ghost-collapsed-background:transparent;--bq-accordion--ghost-collapsed-text-color:var(--bq-text--primary);--bq-accordion--ghost-expanded-background:transparent;--bq-accordion--ghost-expanded-text-color:var(--bq-text--brand);--bq-accordion--panel-filled-border-color:var(--bq-stroke--primary);--bq-accordion--panel-filled-border-style:solid;--bq-accordion--panel-filled-border-width:var(--bq-stroke-s);--bq-accordion--panel-small-filled-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-start:var(--bq-spacing-s);--bq-accordion--panel-small-filled-padding-end:var(--bq-spacing-s);--bq-accordion--panel-medium-filled-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-start:var(--bq-spacing-m);--bq-accordion--panel-medium-filled-padding-end:var(--bq-spacing-m);--bq-accordion--panel-ghost-border-color:transparent;--bq-accordion--panel-ghost-border-style:none;--bq-accordion--panel-ghost-border-width:unset;--bq-accordion--panel-small-ghost-padding-y:var(--bq-spacing-s);--bq-accordion--panel-small-ghost-padding-start:var(--bq-spacing-l);--bq-accordion--panel-small-ghost-padding-end:var(--bq-spacing-l);--bq-accordion--panel-medium-ghost-padding-y:var(--bq-spacing-m);--bq-accordion--panel-medium-ghost-padding-start:var(--bq-spacing-xl);--bq-accordion--panel-medium-ghost-padding-end:var(--bq-spacing-xl);display:block}@supports (interpolate-size:allow-keywords){.bq-accordion:not(.no-animation){interpolate-size:allow-keywords}}.bq-accordion.disabled{cursor:not-allowed;opacity:.6}.bq-accordion.disabled .bq-accordion__header{pointer-events:none}.bq-accordion.small .bq-accordion__header{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:var(--bq-accordion--small-radius);border-start-start-radius:var(--bq-accordion--small-radius);gap:var(--bq-accordion--small-gap);padding-block:var(--bq-accordion--small-padding-y);padding-inline-end:var(--bq-accordion--small-padding-end);padding-inline-start:var(--bq-accordion--small-padding-start)}.bq-accordion.medium .bq-accordion__header{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:var(--bq-accordion--medium-radius);border-start-start-radius:var(--bq-accordion--medium-radius);gap:var(--bq-accordion--medium-gap);padding-block:var(--bq-accordion--medium-padding-y);padding-inline-end:var(--bq-accordion--medium-padding-end);padding-inline-start:var(--bq-accordion--medium-padding-start)}.bq-accordion[open] .bq-accordion__header{border-color:var(--bq-accordion--expanded-border-color);border-end-end-radius:0;border-end-start-radius:0;border-style:var(--bq-accordion--expanded-border-style);border-width:var(--bq-accordion--expanded-border-width)}.bq-accordion.small .bq-accordion__content{border-end-end-radius:var(--bq-accordion--small-radius);border-end-start-radius:var(--bq-accordion--small-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.medium .bq-accordion__content{border-end-end-radius:var(--bq-accordion--medium-radius);border-end-start-radius:var(--bq-accordion--medium-radius);border-start-end-radius:0;border-start-start-radius:0}.bq-accordion.filled .bq-accordion__header{background-color:var(--bq-accordion--filled-collapsed-background)}.bq-accordion.filled .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled .bq-accordion__header--text{color:var(--bq-accordion--filled-collapsed-text-color)}.bq-accordion.filled .bq-accordion__content{border-color:var(--bq-accordion--panel-filled-border-color);border-style:var(--bq-accordion--panel-filled-border-style);border-width:var(--bq-accordion--panel-filled-border-width)}.bq-accordion.filled[open] .bq-accordion__header{background-color:var(--bq-accordion--filled-expanded-background)}.bq-accordion.filled[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.filled[open] .bq-accordion__header--text{color:var(--bq-accordion--filled-expanded-text-color)}.bq-accordion.ghost .bq-accordion__header{background-color:var(--bq-accordion--ghost-collapsed-background)}.bq-accordion.ghost .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost .bq-accordion__header--text{color:var(--bq-accordion--ghost-collapsed-text-color)}.bq-accordion.ghost .bq-accordion__content{border-color:var(--bq-accordion--panel-ghost-border-color);border-style:var(--bq-accordion--panel-ghost-border-style);border-width:var(--bq-accordion--panel-ghost-border-width)}.bq-accordion.ghost[open] .bq-accordion__header{background-color:var(--bq-accordion--ghost-expanded-background)}.bq-accordion.ghost[open] .bq-accordion__header:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}.bq-accordion.ghost[open] .bq-accordion__header--text{color:var(--bq-accordion--ghost-expanded-text-color)}.bq-accordion.small.filled .bq-accordion__content{padding-block:var(--bq-accordion--panel-small-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-small-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-small-filled-padding-start)}.bq-accordion.medium.filled .bq-accordion__content{padding-block:var(--bq-accordion--panel-medium-filled-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-filled-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-filled-padding-start)}.bq-accordion.small.ghost .bq-accordion__content{padding-block:var(--bq-accordion--panel-small-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-small-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-small-ghost-padding-start)}.bq-accordion.medium.ghost .bq-accordion__content{padding-block:var(--bq-accordion--panel-medium-ghost-padding-y);padding-inline-end:var(--bq-accordion--panel-medium-ghost-padding-end);padding-inline-start:var(--bq-accordion--panel-medium-ghost-padding-start)}.bq-accordion::details-content{transition-behavior:allow-discrete;block-size:0;display:block;overflow:clip;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-accordion[open]::details-content{block-size:auto}.bq-accordion__header{--bq-ring-offset-width:-2px;align-items:center;border-color:var(--bq-accordion--collapsed-border-color);border-style:var(--bq-accordion--collapsed-border-style);border-width:var(--bq-accordion--collapsed-border-width);cursor:pointer;display:flex;list-style-type:none;transition-duration:.3s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-accordion__header:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-accordion__header::-webkit-details-marker,.bq-accordion__header::marker{display:none}.bq-accordion__header--text{flex:1 1 0%}.bq-accordion__header--prefix,.bq-accordion__header--suffix{align-items:center;display:flex;justify-content:center}.focus-visible\\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.hover\\:bg-hover-ui-secondary:hover{background-color:color-mix(in srgb,var(--bq-ui--secondary),var(--bq-hover) 20%)}@supports (interpolate-size:allow-keywords){.supports-\\[interpolate-size\\:_allow-keywords\\]\\:\\[interpolate-size\\:_allow-keywords\\]{interpolate-size:allow-keywords}}.rotate-180{--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-rotate:180deg;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))}.collapse{visibility:collapse}.static{position:static}.\\!hidden{display:none!important}.overflow-hidden{overflow:hidden}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.text-\\[color\\:--bq-icon--color\\]{color:var(--bq-icon--color)}.bs-\\[--bq-icon--size\\]{block-size:var(--bq-icon--size)}.is-\\[--bq-icon--size\\]{inline-size:var(--bq-icon--size)}';const q=a(class a extends r{constructor(){super();this.__registerHost();this.__attachShadow();this.bqBlur=e(this,"bqBlur");this.bqFocus=e(this,"bqFocus");this.bqOpen=e(this,"bqOpen");this.bqAfterOpen=e(this,"bqAfterOpen");this.bqClose=e(this,"bqClose");this.bqAfterClose=e(this,"bqAfterClose");this.bqClick=e(this,"bqClick")}accordion;prefixElem;suffixElem;detailsElem;get el(){return this}hasPrefix=false;hasSuffix=false;appearance="filled";disabled=false;expanded=false;noAnimation=false;rotate=false;size="medium";checkPropValues(){o(d,"medium",this.el,"size");o(t,"filled",this.el,"appearance")}handleExpandedChange(){const a=this.expanded?this.bqOpen.emit(this.el):this.bqClose.emit(this.el);if(a.defaultPrevented){this.expanded=!this.expanded;return}if(this.expanded){this.accordion?.open()}else{this.accordion?.close()}if(!this.isCssInterpolateSizeSupported)return;setTimeout((()=>{this.el.dispatchEvent(new CustomEvent("accordionTransitionEnd",{bubbles:false,composed:true}))}),200)}handleDisabledChange(){if(!this.disabled)return;this.expanded=false}handleJsAnimation(){if(this.isCssInterpolateSizeSupported)return;console.warn(`[bq-accordion] animating to/from intrinsic sizing keywords (interpolate-size: allow-keywords) is not supported and animation will be set through JS.\n For vertical layout, consider using the 'noAnimation' prop ('no-animation' attribute) to disable it`);this.accordion=!this.noAnimation?new c(this.detailsElem):null}bqBlur;bqFocus;bqOpen;bqAfterOpen;bqClose;bqAfterClose;bqClick;componentWillLoad(){this.checkPropValues()}componentDidLoad(){this.handleJsAnimation();this.handleExpandedChange();this.handleSlotChange()}onAccordionTransitionEnd(a){a.stopPropagation();if(a.target!==this.el)return;if(this.expanded){this.bqAfterOpen.emit(this.el);return}this.bqAfterClose.emit(this.el)}handleClick=a=>{a.preventDefault();if(this.disabled)return;this.bqClick.emit(this.el);this.expanded=!this.expanded};handleFocus=()=>{if(this.disabled)return;this.bqFocus.emit(this.el)};handleBlur=()=>{this.bqBlur.emit(this.el)};handleSlotChange=()=>{this.hasPrefix=i(this.prefixElem,"prefix");this.hasSuffix=i(this.suffixElem,"suffix")};get open(){return this.expanded&&!this.disabled}get isCssInterpolateSizeSupported(){return window.CSS?.supports("(interpolate-size: allow-keywords)")}render(){return n("details",{key:"c0371e171f0737d4979e1fc3dc0425220616414d",class:{[`bq-accordion overflow-hidden ${this.size} ${this.appearance}`]:true,"no-animation":this.noAnimation,disabled:this.disabled},ref:a=>this.detailsElem=a,open:this.open,part:"base"},n("summary",{key:"17b91ac60af140b8f4181526243523167dff3704",id:"bq-accordion__header",class:"bq-accordion__header",onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,"aria-expanded":this.expanded?"true":"false","aria-disabled":this.disabled?"true":"false","aria-controls":"bq-accordion__content",tabindex:this.disabled?-1:0,role:"button",part:"header"},n("div",{key:"1227cb1c92fac34412ed095f208b6ee13f934b9d",ref:a=>this.prefixElem=a,class:{"bq-accordion__header--prefix":true,"!hidden":!this.hasPrefix},part:"prefix"},n("slot",{key:"51373d0c1f022285989977b1da3b12330b874541",name:"prefix",onSlotchange:this.handleSlotChange})),n("div",{key:"549170ced73b77595601bc9192af70037a66fbd6",class:"bq-accordion__header--text",part:"text"},n("slot",{key:"ed11d84eeda76711ddcfaa5d211787be4606aa31",name:"header"})),n("div",{key:"acc7dc2350f6c507568f85583825875a6a6ee65e",ref:a=>this.suffixElem=a,class:{"bq-accordion__header--suffix":true,"!hidden":!this.hasSuffix},part:"suffix"},n("slot",{key:"40c1c2259993288e864f10efe42e52acf51b57f4",name:"suffix",onSlotchange:this.handleSlotChange})),n("div",{key:"edea0055c783d0040951089d996cc0f083af7702",class:{"flex items-center justify-center transition-transform duration-300 ease-in-out":true,"!hidden":this.open&&!this.rotate,"rotate-180":this.rotate&&this.open},"aria-hidden":"true"},n("slot",{key:"5c849fb8f0935bbda4e5d0335a2ecdb12fee1a71",name:"expand"},n("bq-icon",{key:"de06511d602889b05d0d21bad6ff60e564628cda",name:"plus"}))),n("div",{key:"421714371e3fc4bd7c155d13fab5aff79db5fd19",class:{"flex items-center justify-center":true,"!hidden":!this.open&&!this.rotate||this.rotate},"aria-hidden":"true"},n("slot",{key:"68350d84ad168345f996519f696289eb3f812a7a",name:"collapse"},n("bq-icon",{key:"4d5adf15da449aa7c8a5a4a635c66c7428628f35",name:"minus"})))),n("div",{key:"433cf4d76356b9b4392476f4484a49dcaea99f23",class:"bq-accordion__body overflow-hidden","aria-labelledby":"bq-accordion__header",role:"region",part:"panel"},n("slot",{key:"80d61ccc49d21b7a94be378c45e8a367372a5ec5",id:"bq-accordion__content",class:"bq-accordion__content block"})))}static get watchers(){return{size:["checkPropValues"],expanded:["handleExpandedChange"],disabled:["handleDisabledChange"],noAnimation:["handleJsAnimation"]}}static get style(){return s}},[1,"bq-accordion",{appearance:[1537],disabled:[516],expanded:[1540],noAnimation:[516,"no-animation"],rotate:[516],size:[1537],hasPrefix:[32],hasSuffix:[32]},[[0,"accordionTransitionEnd","onAccordionTransitionEnd"]],{size:["checkPropValues"],expanded:["handleExpandedChange"],disabled:["handleDisabledChange"],noAnimation:["handleJsAnimation"]}]);function l(){if(typeof customElements==="undefined"){return}const a=["bq-accordion","bq-icon"];a.forEach((a=>{switch(a){case"bq-accordion":if(!customElements.get(a)){customElements.define(a,q)}break;case"bq-icon":if(!customElements.get(a)){b()}break}}))}const u=q;const g=l;export{u as BqAccordion,g as defineCustomElement};
6
6
  //# sourceMappingURL=bq-accordion.js.map