se-design 1.0.62 → 1.0.63-dev

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index230.js","sources":["../node_modules/prop-types/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n"],"names":["ReactIs","require$$0","throwOnDirectAccess","propTypesModule","require$$1","require$$2"],"mappings":";;;;AAOA,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,MAAIA,IAAUC,EAAA,GAIVC,IAAsB;AAC1BC,EAAAA,EAAA,UAAiBC,EAAA,EAAqCJ,EAAQ,WAAWE,CAAmB;AAC9F;AAGEC,EAAAA,EAAA,UAAiBE,IAAqC;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index230.js","sources":["../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"],"sourcesContent":["import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };"],"names":["_setPrototypeOf","_inheritsLoose","t","o","setPrototypeOf"],"mappings":"AACA,OAAAA,OAAA;AAAA,SAASC,EAAeC,GAAGC,GAAG;AAC5B,EAAAD,EAAE,YAAY,OAAO,OAAOC,EAAE,SAAS,GAAGD,EAAE,UAAU,cAAcA,GAAGE,EAAeF,GAAGC,CAAC;AAC5F;","x_google_ignoreList":[0]}
package/dist/index231.js CHANGED
@@ -1,25 +1,173 @@
1
- const l = ["button:not([disabled])", "[href]", "input:not([disabled])", "select:not([disabled])", "textarea:not([disabled])", '[tabindex]:not([tabindex="-1"]):not([disabled])', '[contenteditable="true"]'].join(", "), a = [l, '[role="menuitem"]', '[role="option"]', '[role="menuitemcheckbox"]', '[role="menuitemradio"]'].join(", ");
2
- function u({
3
- container: e,
4
- includeRoles: t = !1,
5
- additionalSelectors: r = [],
6
- filterHidden: s = !1
7
- }) {
8
- if (!e) return [];
9
- const d = [t ? a : l, ...r].filter(Boolean).join(", "), i = Array.from(e.querySelectorAll(d));
10
- return s ? i.filter((n) => {
11
- const o = window.getComputedStyle(n);
12
- return o.display !== "none" && o.visibility !== "hidden" && o.opacity !== "0" && !n.hasAttribute("hidden") && n.offsetWidth > 0 && n.offsetHeight > 0;
13
- }) : i;
14
- }
15
- function c(e) {
16
- const t = u(e);
17
- return t.length > 0 ? t[0] : null;
18
- }
1
+ import { __spreadArray as D } from "./index234.js";
2
+ import { parse as ut } from "./index235.js";
3
+ var g = /* @__PURE__ */ new Map(), Y = function(t) {
4
+ return t.cloneNode(!0);
5
+ }, z = function() {
6
+ return window.location.protocol === "file:";
7
+ }, Z = function(t, o, n) {
8
+ var e = new XMLHttpRequest();
9
+ e.onreadystatechange = function() {
10
+ try {
11
+ if (!/\.svg/i.test(t) && e.readyState === 2) {
12
+ var s = e.getResponseHeader("Content-Type");
13
+ if (!s)
14
+ throw new Error("Content type not found");
15
+ var i = ut(s).type;
16
+ if (!(i === "image/svg+xml" || i === "text/plain"))
17
+ throw new Error("Invalid content type: ".concat(i));
18
+ }
19
+ if (e.readyState === 4) {
20
+ if (e.status === 404 || e.responseXML === null)
21
+ throw new Error(z() ? "Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver." : "Unable to load SVG file: " + t);
22
+ if (e.status === 200 || z() && e.status === 0)
23
+ n(null, e);
24
+ else
25
+ throw new Error("There was a problem injecting the SVG: " + e.status + " " + e.statusText);
26
+ }
27
+ } catch (a) {
28
+ if (e.abort(), a instanceof Error)
29
+ n(a, e);
30
+ else
31
+ throw a;
32
+ }
33
+ }, e.open("GET", t), e.withCredentials = o, e.overrideMimeType && e.overrideMimeType("text/xml"), e.send();
34
+ }, v = {}, B = function(t, o) {
35
+ v[t] = v[t] || [], v[t].push(o);
36
+ }, ft = function(t) {
37
+ for (var o = function(i, a) {
38
+ setTimeout(function() {
39
+ if (Array.isArray(v[t])) {
40
+ var u = g.get(t), p = v[t][i];
41
+ u instanceof SVGSVGElement && p(null, Y(u)), u instanceof Error && p(u), i === v[t].length - 1 && delete v[t];
42
+ }
43
+ }, 0);
44
+ }, n = 0, e = v[t].length; n < e; n++)
45
+ o(n);
46
+ }, lt = function(t, o, n) {
47
+ if (g.has(t)) {
48
+ var e = g.get(t);
49
+ if (e === void 0) {
50
+ B(t, n);
51
+ return;
52
+ }
53
+ if (e instanceof SVGSVGElement) {
54
+ n(null, Y(e));
55
+ return;
56
+ }
57
+ }
58
+ g.set(t, void 0), B(t, n), Z(t, o, function(s, i) {
59
+ var a;
60
+ s ? g.set(t, s) : ((a = i.responseXML) === null || a === void 0 ? void 0 : a.documentElement) instanceof SVGSVGElement && g.set(t, i.responseXML.documentElement), ft(t);
61
+ });
62
+ }, ct = function(t, o, n) {
63
+ Z(t, o, function(e, s) {
64
+ var i;
65
+ e ? n(e) : ((i = s.responseXML) === null || i === void 0 ? void 0 : i.documentElement) instanceof SVGSVGElement && n(null, s.responseXML.documentElement);
66
+ });
67
+ }, dt = 0, vt = function() {
68
+ return ++dt;
69
+ }, l = [], J = {}, pt = "http://www.w3.org/2000/svg", F = "http://www.w3.org/1999/xlink", K = function(t, o, n, e, s, i, a) {
70
+ var u = t.getAttribute("data-src") || t.getAttribute("src");
71
+ if (!u) {
72
+ a(new Error("Invalid data-src or src attribute"));
73
+ return;
74
+ }
75
+ if (l.indexOf(t) !== -1) {
76
+ l.splice(l.indexOf(t), 1), t = null;
77
+ return;
78
+ }
79
+ l.push(t), t.setAttribute("src", "");
80
+ var p = e ? lt : ct;
81
+ p(u, s, function(j, r) {
82
+ if (!r) {
83
+ l.splice(l.indexOf(t), 1), t = null, a(j);
84
+ return;
85
+ }
86
+ var w = t.getAttribute("id");
87
+ w && r.setAttribute("id", w);
88
+ var S = t.getAttribute("title");
89
+ S && r.setAttribute("title", S);
90
+ var E = t.getAttribute("width");
91
+ E && r.setAttribute("width", E);
92
+ var y = t.getAttribute("height");
93
+ y && r.setAttribute("height", y);
94
+ var G = Array.from(new Set(D(D(D([], (r.getAttribute("class") || "").split(" "), !0), ["injected-svg"], !1), (t.getAttribute("class") || "").split(" "), !0))).join(" ").trim();
95
+ r.setAttribute("class", G);
96
+ var b = t.getAttribute("style");
97
+ b && r.setAttribute("style", b), r.setAttribute("data-src", u);
98
+ var R = [].filter.call(t.attributes, function(f) {
99
+ return /^data-\w[\w-]*$/.test(f.name);
100
+ });
101
+ if (Array.prototype.forEach.call(R, function(f) {
102
+ f.name && f.value && r.setAttribute(f.name, f.value);
103
+ }), n) {
104
+ var h = {
105
+ clipPath: ["clip-path"],
106
+ "color-profile": ["color-profile"],
107
+ cursor: ["cursor"],
108
+ filter: ["filter"],
109
+ linearGradient: ["fill", "stroke"],
110
+ marker: ["marker", "marker-start", "marker-mid", "marker-end"],
111
+ mask: ["mask"],
112
+ path: [],
113
+ pattern: ["fill", "stroke"],
114
+ radialGradient: ["fill", "stroke"]
115
+ }, C, d, m, T, k;
116
+ Object.keys(h).forEach(function(f) {
117
+ C = f, m = h[f], d = r.querySelectorAll(C + "[id]");
118
+ for (var nt = function(I, mt) {
119
+ T = d[I].id, k = T + "-" + vt();
120
+ var M;
121
+ Array.prototype.forEach.call(m, function(W) {
122
+ M = r.querySelectorAll("[" + W + '*="' + T + '"]');
123
+ for (var O = 0, st = M.length; O < st; O++) {
124
+ var $ = M[O].getAttribute(W);
125
+ $ && !$.match(new RegExp('url\\("?#' + T + '"?\\)')) || M[O].setAttribute(W, "url(#" + k + ")");
126
+ }
127
+ });
128
+ for (var U = r.querySelectorAll("[*|href]"), H = [], N = 0, at = U.length; N < at; N++) {
129
+ var P = U[N].getAttributeNS(F, "href");
130
+ P && P.toString() === "#" + d[I].id && H.push(U[N]);
131
+ }
132
+ for (var Q = 0, ot = H.length; Q < ot; Q++)
133
+ H[Q].setAttributeNS(F, "href", "#" + k);
134
+ d[I].id = k;
135
+ }, _ = 0, it = d.length; _ < it; _++)
136
+ nt(_);
137
+ });
138
+ }
139
+ r.removeAttribute("xmlns:a");
140
+ for (var x = r.querySelectorAll("script"), L = [], V, q, A = 0, tt = x.length; A < tt; A++)
141
+ q = x[A].getAttribute("type"), (!q || q === "application/ecmascript" || q === "application/javascript" || q === "text/javascript") && (V = x[A].innerText || x[A].textContent, V && L.push(V), r.removeChild(x[A]));
142
+ if (L.length > 0 && (o === "always" || o === "once" && !J[u])) {
143
+ for (var X = 0, et = L.length; X < et; X++)
144
+ new Function(L[X])(window);
145
+ J[u] = !0;
146
+ }
147
+ var rt = r.querySelectorAll("style");
148
+ if (Array.prototype.forEach.call(rt, function(f) {
149
+ f.textContent += "";
150
+ }), r.setAttribute("xmlns", pt), r.setAttribute("xmlns:xlink", F), i(r), !t.parentNode) {
151
+ l.splice(l.indexOf(t), 1), t = null, a(new Error("Parent node is null"));
152
+ return;
153
+ }
154
+ t.parentNode.replaceChild(r, t), l.splice(l.indexOf(t), 1), t = null, a(null, r);
155
+ });
156
+ }, wt = function(t, o) {
157
+ var n = o === void 0 ? {} : o, e = n.afterAll, s = e === void 0 ? function() {
158
+ } : e, i = n.afterEach, a = i === void 0 ? function() {
159
+ } : i, u = n.beforeEach, p = u === void 0 ? function() {
160
+ } : u, j = n.cacheRequests, r = j === void 0 ? !0 : j, w = n.evalScripts, S = w === void 0 ? "never" : w, E = n.httpRequestWithCredentials, y = E === void 0 ? !1 : E, G = n.renumerateIRIElements, b = G === void 0 ? !0 : G;
161
+ if (t && "length" in t)
162
+ for (var R = 0, h = 0, C = t.length; h < C; h++)
163
+ K(t[h], S, b, r, y, p, function(d, m) {
164
+ a(d, m), t && "length" in t && t.length === ++R && s(R);
165
+ });
166
+ else t ? K(t, S, b, r, y, p, function(d, m) {
167
+ a(d, m), s(1), t = null;
168
+ }) : s(0);
169
+ };
19
170
  export {
20
- l as FOCUSABLE_SELECTOR,
21
- a as FOCUSABLE_WITH_ROLES_SELECTOR,
22
- c as getFirstFocusableElement,
23
- u as getFocusableElements
171
+ wt as SVGInjector
24
172
  };
25
173
  //# sourceMappingURL=index231.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index231.js","sources":["../src/utils/a11y/focusableElements.ts"],"sourcesContent":["/**\n * Utilities for finding focusable elements within a container.\n * \n * Used for focus management in modals, popovers, and other interactive overlays.\n */\n\n/**\n * Base selector for standard focusable elements.\n * Matches: buttons, links, inputs, selects, textareas, elements with tabindex >= 0, contenteditable.\n */\nexport const FOCUSABLE_SELECTOR = [\n 'button:not([disabled])',\n '[href]',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"]):not([disabled])',\n '[contenteditable=\"true\"]'\n].join(', ');\n\n/**\n * Extended selector that includes ARIA role-based focusable elements.\n * Useful for composite widgets like menus, listboxes, etc.\n */\nexport const FOCUSABLE_WITH_ROLES_SELECTOR = [\n FOCUSABLE_SELECTOR,\n '[role=\"menuitem\"]',\n '[role=\"option\"]',\n '[role=\"menuitemcheckbox\"]',\n '[role=\"menuitemradio\"]'\n].join(', ');\n\n/**\n * Options for getFocusableElements\n */\nexport interface GetFocusableElementsOptions {\n /**\n * Container element to search within. If null/undefined, returns empty array.\n */\n container: HTMLElement | null;\n /**\n * Whether to include role-based focusable elements (menuitem, option, etc.).\n * Default: false (uses base selector only)\n */\n includeRoles?: boolean;\n /**\n * Additional custom selectors to include.\n */\n additionalSelectors?: string[];\n /**\n * Whether to filter out hidden/invisible elements.\n * Default: false (returns all matching elements regardless of visibility)\n */\n filterHidden?: boolean;\n}\n\n/**\n * Get all focusable elements within a container.\n * \n * @example Basic usage (standard focusable elements)\n * ```ts\n * const focusables = getFocusableElements({ container: dialogRef.current });\n * focusables[0]?.focus(); // Focus first element\n * ```\n * \n * @example With role-based elements (for menus/listboxes)\n * ```ts\n * const focusables = getFocusableElements({ \n * container: menuRef.current,\n * includeRoles: true \n * });\n * ```\n * \n * @example With custom selectors\n * ```ts\n * const focusables = getFocusableElements({ \n * container: customWidgetRef.current,\n * additionalSelectors: ['[data-focusable=\"true\"]']\n * });\n * ```\n */\nexport function getFocusableElements({\n container,\n includeRoles = false,\n additionalSelectors = [],\n filterHidden = false\n}: GetFocusableElementsOptions): HTMLElement[] {\n if (!container) return [];\n\n const selector = [\n includeRoles ? FOCUSABLE_WITH_ROLES_SELECTOR : FOCUSABLE_SELECTOR,\n ...additionalSelectors\n ].filter(Boolean).join(', ');\n\n const elements = Array.from(container.querySelectorAll<HTMLElement>(selector));\n\n if (!filterHidden) return elements;\n\n // Filter out hidden/invisible elements\n return elements.filter((el) => {\n const style = window.getComputedStyle(el);\n return (\n style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n style.opacity !== '0' &&\n !el.hasAttribute('hidden') &&\n el.offsetWidth > 0 &&\n el.offsetHeight > 0\n );\n });\n}\n\n/**\n * Get the first focusable element in a container.\n * Returns null if none found.\n */\nexport function getFirstFocusableElement(\n options: GetFocusableElementsOptions\n): HTMLElement | null {\n const focusables = getFocusableElements(options);\n return focusables.length > 0 ? focusables[0] : null;\n}\n\n/**\n * Get the last focusable element in a container.\n * Returns null if none found.\n */\nexport function getLastFocusableElement(\n options: GetFocusableElementsOptions\n): HTMLElement | null {\n const focusables = getFocusableElements(options);\n return focusables.length > 0 ? focusables[focusables.length - 1] : null;\n}\n"],"names":["FOCUSABLE_SELECTOR","join","FOCUSABLE_WITH_ROLES_SELECTOR","getFocusableElements","container","includeRoles","additionalSelectors","filterHidden","selector","filter","Boolean","elements","Array","from","querySelectorAll","el","style","window","getComputedStyle","display","visibility","opacity","hasAttribute","offsetWidth","offsetHeight","getFirstFocusableElement","options","focusables","length"],"mappings":"AAUO,MAAMA,IAAqB,CAChC,0BACA,UACA,yBACA,0BACA,4BACA,mDACA,0BAA0B,EAC1BC,KAAK,IAAI,GAMEC,IAAgC,CAC3CF,GACA,qBACA,mBACA,6BACA,wBAAwB,EACxBC,KAAK,IAAI;AAmDJ,SAASE,EAAqB;AAAA,EACnCC,WAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,qBAAAA,IAAsB,CAAA;AAAA,EACtBC,cAAAA,IAAe;AACY,GAAkB;AAC7C,MAAI,CAACH,EAAW,QAAO,CAAA;AAEvB,QAAMI,IAAW,CACfH,IAAeH,IAAgCF,GAC/C,GAAGM,CAAmB,EACtBG,OAAOC,OAAO,EAAET,KAAK,IAAI,GAErBU,IAAWC,MAAMC,KAAKT,EAAUU,iBAA8BN,CAAQ,CAAC;AAE7E,SAAKD,IAGEI,EAASF,OAAQM,CAAAA,MAAO;AAC7B,UAAMC,IAAQC,OAAOC,iBAAiBH,CAAE;AACxC,WACEC,EAAMG,YAAY,UAClBH,EAAMI,eAAe,YACrBJ,EAAMK,YAAY,OAClB,CAACN,EAAGO,aAAa,QAAQ,KACzBP,EAAGQ,cAAc,KACjBR,EAAGS,eAAe;AAAA,EAEtB,CAAC,IAbyBb;AAc5B;AAMO,SAASc,EACdC,GACoB;AACpB,QAAMC,IAAaxB,EAAqBuB,CAAO;AAC/C,SAAOC,EAAWC,SAAS,IAAID,EAAW,CAAC,IAAI;AACjD;"}
1
+ {"version":3,"file":"index231.js","sources":["../node_modules/@tanem/svg-injector/dist/svg-injector.esm.js"],"sourcesContent":["import { __spreadArray } from 'tslib';\nimport { parse } from 'content-type';\n\nvar cache = new Map();\n\nvar cloneSvg = function cloneSvg(sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\n\nvar isLocal = function isLocal() {\n return window.location.protocol === 'file:';\n};\n\nvar makeAjaxRequest = function makeAjaxRequest(url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parse(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal() ? 'Note: SVG injection ajax calls do not work locally without ' + 'adjusting security settings in your browser. Or consider ' + 'using a local webserver.' : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 || isLocal() && httpRequest.status === 0) {\n callback(null, httpRequest);\n } else {\n throw new Error('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n }\n }\n } catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n } else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\n\nvar requestQueue = {};\nvar queueRequest = function queueRequest(url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nvar processRequestQueue = function processRequestQueue(url) {\n var _loop_1 = function _loop_1(i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i);\n }\n};\n\nvar loadSvgCached = function loadSvgCached(url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\n\nvar loadSvgUncached = function loadSvgUncached(url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n } else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\n\nvar idCounter = 0;\nvar uniqueId = function uniqueId() {\n return ++idCounter;\n};\n\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function injectElement(el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function _loop_1(a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue && !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\n\nvar SVGInjector = function SVGInjector(elements, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.afterAll,\n afterAll = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _b.afterEach,\n afterEach = _d === void 0 ? function () {\n return undefined;\n } : _d,\n _e = _b.beforeEach,\n beforeEach = _e === void 0 ? function () {\n return undefined;\n } : _e,\n _f = _b.cacheRequests,\n cacheRequests = _f === void 0 ? true : _f,\n _g = _b.evalScripts,\n evalScripts = _g === void 0 ? 'never' : _g,\n _h = _b.httpRequestWithCredentials,\n httpRequestWithCredentials = _h === void 0 ? false : _h,\n _j = _b.renumerateIRIElements,\n renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n } else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n } else {\n afterAll(0);\n }\n};\n\nexport { SVGInjector };\n//# sourceMappingURL=svg-injector.esm.js.map\n"],"names":["__spreadArray","parse_1","cache","cloneSvg","sourceSvg","isLocal","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","contentType","type","parse","error","requestQueue","queueRequest","processRequestQueue","_loop_1","len","cacheValue","i","loadSvgCached","_a","loadSvgUncached","idCounter","uniqueId","injectedElements","ranScripts","svgNamespace","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","loadSvg","svg","elId","elTitle","elWidth","elHeight","mergedClasses","elStyle","elData","at","dataAttr","iriElementsAndProperties_1","element_1","elements_1","properties_1","currentId_1","newId_1","key","a","elementsLen","referencingElements","property","b","referencingElementLen","attrValue","allLinks","links","c","allLinksLen","href","d","linksLen","scripts","scriptsToEval","script","scriptType","scriptsLen","l","scriptsToEvalLen","styleTags","styleTag","SVGInjector","elements","_b","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index232.js CHANGED
@@ -1,22 +1,14 @@
1
- import { useEffect as s } from "react";
2
- const u = {
3
- block: "nearest"
4
- };
5
- function m({
6
- containerRef: t,
7
- activeIndex: o,
8
- itemSelector: r = '[role="option"]',
9
- enabled: c = !0,
10
- scrollOptions: e = u
11
- }) {
12
- s(() => {
13
- if (!c || o < 0 || !t?.current)
14
- return;
15
- const n = t.current.querySelectorAll(r)[o];
16
- n && n.scrollIntoView(e);
17
- }, [o, t, r, c, e]);
18
- }
1
+ import { __module as r } from "./index236.js";
2
+ import { __require as e } from "./index237.js";
3
+ import { __require as o } from "./index238.js";
4
+ import { __require as p } from "./index239.js";
5
+ if (process.env.NODE_ENV !== "production") {
6
+ var s = e(), i = !0;
7
+ r.exports = o()(s.isElement, i);
8
+ } else
9
+ r.exports = p()();
10
+ var _ = r.exports;
19
11
  export {
20
- m as useScrollActiveIntoView
12
+ _ as p
21
13
  };
22
14
  //# sourceMappingURL=index232.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index232.js","sources":["../src/utils/a11y/useScrollActiveIntoView.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nconst DEFAULT_SCROLL_OPTIONS: ScrollIntoViewOptions = { block: 'nearest' };\n\nexport interface UseScrollActiveIntoViewOptions {\n /**\n * Ref to the container element\n */\n containerRef?: RefObject<HTMLElement | null>;\n \n /**\n * Index of the currently active/highlighted item (-1 if none)\n */\n activeIndex: number;\n \n /**\n * CSS selector for item elements\n * Default: '[role=\"option\"]'\n */\n itemSelector?: string;\n \n /**\n * Whether scrolling is enabled\n * Default: true\n */\n enabled?: boolean;\n \n /**\n * ScrollIntoView options\n * Default: { block: 'nearest' }\n */\n scrollOptions?: ScrollIntoViewOptions;\n}\n\n/**\n * Hook to automatically scroll the active item into view.\n * \n * Useful for aria-activedescendant patterns where DOM focus stays\n * on the container (e.g., input field) but we need to visually show\n * which descendant option is logically active.\n * \n * Common use cases:\n * - Combobox dropdown options\n * - Menu items with virtual focus\n * - Grid cells with keyboard navigation\n * - Tree view items\n * - Listbox options\n * \n * @example\n * ```tsx\n * const [highlightedIndex, setHighlightedIndex] = useState(-1);\n * const listboxRef = useRef<HTMLDivElement>(null);\n * \n * useScrollActiveIntoView({\n * containerRef: listboxRef,\n * activeIndex: highlightedIndex,\n * itemSelector: '[role=\"option\"]'\n * });\n * \n * // Now when highlightedIndex changes, the item scrolls into view\n * ```\n * \n * @example Custom scroll behavior\n * ```tsx\n * useScrollActiveIntoView({\n * containerRef: menuRef,\n * activeIndex: activeMenuIndex,\n * itemSelector: '[role=\"menuitem\"]',\n * scrollOptions: { block: 'center', behavior: 'smooth' }\n * });\n * ```\n */\nexport function useScrollActiveIntoView({\n containerRef,\n activeIndex,\n itemSelector = '[role=\"option\"]',\n enabled = true,\n scrollOptions = DEFAULT_SCROLL_OPTIONS\n}: UseScrollActiveIntoViewOptions): void {\n useEffect(() => {\n // Early returns for disabled states\n if (!enabled || activeIndex < 0 || !containerRef?.current) {\n return;\n }\n \n const container = containerRef.current;\n const items = container.querySelectorAll(itemSelector);\n const activeItem = items[activeIndex] as HTMLElement;\n \n if (activeItem) {\n activeItem.scrollIntoView(scrollOptions);\n }\n }, [activeIndex, containerRef, itemSelector, enabled, scrollOptions]);\n}\n"],"names":["useEffect","DEFAULT_SCROLL_OPTIONS","block","useScrollActiveIntoView","containerRef","activeIndex","itemSelector","enabled","scrollOptions","current","activeItem","querySelectorAll","scrollIntoView"],"mappings":"AAGA,SAAA,aAAAA,SAAA;AAAA,MAAMC,IAAgD;AAAA,EAAEC,OAAO;AAAU;AAsElE,SAASC,EAAwB;AAAA,EACtCC,cAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,SAAAA,IAAU;AAAA,EACVC,eAAAA,IAAgBP;AACc,GAAS;AACvCD,EAAAA,EAAU,MAAM;AAEd,QAAI,CAACO,KAAWF,IAAc,KAAK,CAACD,GAAcK;AAChD;AAKF,UAAMC,IAFYN,EAAaK,QACPE,iBAAiBL,CAAY,EAC5BD,CAAW;AAEpC,IAAIK,KACFA,EAAWE,eAAeJ,CAAa;AAAA,EAE3C,GAAG,CAACH,GAAaD,GAAcE,GAAcC,GAASC,CAAa,CAAC;AACtE;"}
1
+ {"version":3,"file":"index232.js","sources":["../node_modules/prop-types/index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n"],"names":["ReactIs","require$$0","throwOnDirectAccess","propTypesModule","require$$1","require$$2"],"mappings":";;;;AAOA,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,MAAIA,IAAUC,EAAA,GAIVC,IAAsB;AAC1BC,EAAAA,EAAA,UAAiBC,EAAA,EAAqCJ,EAAQ,WAAWE,CAAmB;AAC9F;AAGEC,EAAAA,EAAA,UAAiBE,IAAqC;;","x_google_ignoreList":[0]}
package/dist/index29.js CHANGED
@@ -1,27 +1,27 @@
1
- import e, { forwardRef as G } from "react";
2
- import { Icon as H } from "./index5.js";
1
+ import e, { forwardRef as H } from "react";
2
+ import { Icon as J } from "./index5.js";
3
3
  import { Button as b } from "./index3.js";
4
4
  import { useStableId as I } from "./index184.js";
5
- import { getRegionAttributes as J } from "./index65.js";
6
- import { useAccessiblePress as K } from "./index66.js";
5
+ import { getRegionAttributes as K } from "./index65.js";
6
+ import { useAccessiblePress as M } from "./index66.js";
7
7
  /* empty css */
8
8
  function d() {
9
- return d = Object.assign ? Object.assign.bind() : function(a) {
9
+ return d = Object.assign ? Object.assign.bind() : function(n) {
10
10
  for (var t = 1; t < arguments.length; t++) {
11
11
  var r = arguments[t];
12
- for (var o in r) ({}).hasOwnProperty.call(r, o) && (a[o] = r[o]);
12
+ for (var o in r) ({}).hasOwnProperty.call(r, o) && (n[o] = r[o]);
13
13
  }
14
- return a;
14
+ return n;
15
15
  }, d.apply(null, arguments);
16
16
  }
17
- const n = {
17
+ const a = {
18
18
  bannerCtn: "relative rounded-[12px] flex pr-3.5",
19
19
  bannerContentCtn: "pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2",
20
20
  bannerLinkCta: "text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]",
21
21
  bannerImageCtn: "flex",
22
22
  bannerCloseIconCtn: "absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1 inline-flex items-center justify-center",
23
23
  bannerButton: "self-start"
24
- }, ee = /* @__PURE__ */ G((a, t) => {
24
+ }, ae = /* @__PURE__ */ H((n, t) => {
25
25
  const {
26
26
  bannerClassName: r,
27
27
  bannerBgColor: o,
@@ -33,8 +33,8 @@ const n = {
33
33
  imageWidth: N = "30%",
34
34
  imageAlt: B = "",
35
35
  hasCloseIcon: E,
36
- closeIconName: L,
37
- onClose: P,
36
+ closeIconName: P,
37
+ onClose: L,
38
38
  onBannerClick: i,
39
39
  hasLinkCta: T,
40
40
  onCtaClick: p,
@@ -48,36 +48,37 @@ const n = {
48
48
  secondaryCtaText: S,
49
49
  secondaryCtaAriaLabel: O,
50
50
  automationId: _ = "",
51
- titleId: c
52
- } = a, g = i ? "cursor-pointer" : "", f = I(c, "banner-title"), y = I(void 0, "banner-description"), l = J({
51
+ titleId: c,
52
+ disabledPrimaryButton: z = !1
53
+ } = n, g = i ? "cursor-pointer" : "", f = I(c, "banner-title"), y = I(void 0, "banner-description"), l = K({
53
54
  titleId: f,
54
55
  descriptionId: m ? y : void 0,
55
56
  isFocusable: !!c
56
57
  }), {
57
- pressProps: z,
58
- role: F,
59
- tabIndex: W
60
- } = K({
58
+ pressProps: F,
59
+ role: W,
60
+ tabIndex: q
61
+ } = M({
61
62
  isNative: !1,
62
63
  onClick: i ? () => i() : void 0
63
- }), q = i ? {
64
- ...z,
65
- role: F,
66
- tabIndex: W
64
+ }), D = i ? {
65
+ ...F,
66
+ role: W,
67
+ tabIndex: q
67
68
  } : {}, x = () => v && /* @__PURE__ */ e.createElement("div", {
68
- className: `${n.bannerImageCtn} ${g} banner-image-ctn ${s === "right" ? "mr-5 ml-0 justify-end" : "ml-5 mr-0 justify-start"} min-h-full`,
69
+ className: `${a.bannerImageCtn} ${g} banner-image-ctn ${s === "right" ? "mr-5 ml-0 justify-end" : "ml-5 mr-0 justify-start"} min-h-full`,
69
70
  style: {
70
71
  width: N
71
72
  },
72
73
  onClick: i
73
74
  }, /* @__PURE__ */ e.createElement("img", {
74
- src: a.bannerImage,
75
+ src: n.bannerImage,
75
76
  alt: B,
76
77
  className: "max-w-[initial] h-[initial] max-h-[150px] object-contain"
77
78
  }));
78
79
  return /* @__PURE__ */ e.createElement("div", {
79
80
  ref: t,
80
- className: `${n.bannerCtn} ${g} ${r} banner-ctn`,
81
+ className: `${a.bannerCtn} ${g} ${r} banner-ctn`,
81
82
  style: {
82
83
  backgroundColor: o
83
84
  },
@@ -87,8 +88,8 @@ const n = {
87
88
  "aria-describedby": l["aria-describedby"],
88
89
  tabIndex: l.tabIndex
89
90
  }, s === "left" && x(), /* @__PURE__ */ e.createElement("div", d({
90
- className: `${n.bannerContentCtn} w-[100%] banner-content-ctn`
91
- }, q), /* @__PURE__ */ e.createElement(k, {
91
+ className: `${a.bannerContentCtn} w-[100%] banner-content-ctn`
92
+ }, D), /* @__PURE__ */ e.createElement(k, {
92
93
  id: f,
93
94
  className: "banner-title",
94
95
  tabIndex: c ? -1 : void 0
@@ -97,10 +98,10 @@ const n = {
97
98
  className: "banner-description"
98
99
  }, m), /* @__PURE__ */ e.createElement("div", {
99
100
  className: "flex gap-3",
100
- onClick: (D) => D.stopPropagation()
101
+ onClick: (G) => G.stopPropagation()
101
102
  }, T && /* @__PURE__ */ e.createElement(b, {
102
103
  type: "link",
103
- className: n.bannerLinkCta,
104
+ className: a.bannerLinkCta,
104
105
  onClick: p,
105
106
  label: C,
106
107
  ariaLabel: u
@@ -109,26 +110,27 @@ const n = {
109
110
  size: "sm",
110
111
  label: C,
111
112
  onClick: p,
112
- className: n?.bannerButton,
113
+ className: a?.bannerButton,
113
114
  "data-automation-id": "banner-main-cta",
114
- ariaLabel: u
115
+ ariaLabel: u,
116
+ disabled: z
115
117
  }), w && /* @__PURE__ */ e.createElement(b, {
116
118
  type: R,
117
119
  size: "sm",
118
120
  label: S,
119
121
  onClick: $,
120
- className: n?.secondaryBannerButton,
122
+ className: a?.secondaryBannerButton,
121
123
  "data-automation-id": "banner-secondary-cta",
122
124
  ariaLabel: O
123
- }))), s === "right" && x(), E && /* @__PURE__ */ e.createElement(H, {
124
- name: L,
125
- className: n.bannerCloseIconCtn,
126
- onClick: P,
125
+ }))), s === "right" && x(), E && /* @__PURE__ */ e.createElement(J, {
126
+ name: P,
127
+ className: a.bannerCloseIconCtn,
128
+ onClick: L,
127
129
  ariaLabel: "Close banner",
128
130
  shouldStopPropagation: !0
129
131
  }));
130
132
  });
131
133
  export {
132
- ee as Banner
134
+ ae as Banner
133
135
  };
134
136
  //# sourceMappingURL=index29.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index29.js","sources":["../src/components/Banner/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Map } from '../../utils/common.types';\nimport { Icon } from 'components/Icon';\nimport { Button } from 'components/Button';\nimport { useStableId } from '../../utils/useStableId';\nimport { useAccessiblePress } from '../../utils/a11y';\nimport { getRegionAttributes } from '../../utils/a11y/regionAttributes';\nimport './style.scss';\n\nexport interface BannerProps {\n bannerClassName?: string | '';\n bannerBgColor?: string | '';\n title: string | '';\n titleTag?: 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n description: string | '';\n hasImage?: boolean | false;\n imagePosition?: 'left' | 'right' | '';\n imageWidth?: string | '30%';\n imageAlt?: string | '';\n bannerImage: string | '';\n hasCloseIcon?: boolean | false;\n closeIconName: string | '';\n onClose: () => void | (() => {});\n onBannerClick?: () => void | (() => {});\n hasButtonCta?: boolean | false;\n hasSecondaryButtonCta?: boolean | false;\n buttonType?: 'primary' | 'secondary' | 'link';\n secondaryButtonType?: 'primary' | 'secondary' | 'ghost' | 'link';\n hasLinkCta?: boolean | false;\n ctaText: string | '';\n secondaryCtaText: string | '';\n onCtaClick: () => void | (() => {});\n onSecondaryCtaClick: () => void | (() => {});\n /**\n * Accessible name for primary CTA button (screen reader only, if different from visible label).\n */\n ctaAriaLabel?: string;\n /**\n * Accessible name for secondary CTA button (screen reader only, if different from visible label).\n */\n secondaryCtaAriaLabel?: string;\n automationId?: string;\n // Optional title ID for external control (e.g., focus management)\n titleId?: string;\n}\n\nconst classNames: Map = {\n bannerCtn: `relative rounded-[12px] flex pr-3.5`,\n bannerContentCtn: 'pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2',\n bannerLinkCta: 'text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]',\n bannerImageCtn: 'flex',\n bannerCloseIconCtn:\n 'absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1 inline-flex items-center justify-center',\n bannerButton: 'self-start'\n};\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const {\n bannerClassName,\n bannerBgColor,\n title,\n titleTag: TitleTag = 'span',\n description,\n hasImage,\n imagePosition = 'right',\n imageWidth = '30%',\n imageAlt = '',\n hasCloseIcon,\n closeIconName,\n onClose,\n onBannerClick,\n hasLinkCta,\n onCtaClick,\n onSecondaryCtaClick,\n hasButtonCta,\n buttonType = 'secondary',\n ctaText,\n ctaAriaLabel,\n hasSecondaryButtonCta = false,\n secondaryButtonType = 'secondary',\n secondaryCtaText,\n secondaryCtaAriaLabel,\n automationId = '',\n titleId: providedTitleId\n } = props;\n\n const isClickableClass = onBannerClick ? 'cursor-pointer' : '';\n const titleId = useStableId(providedTitleId, 'banner-title');\n const descriptionId = useStableId(undefined, 'banner-description');\n\n const regionAttributes = getRegionAttributes({\n titleId,\n descriptionId: description ? descriptionId : undefined,\n isFocusable: !!providedTitleId\n });\n\n // When banner is clickable, make the content area keyboard-activatable (Enter/Space).\n // We intentionally keep this as an extra tab stop (per dashboard banner behavior).\n const { pressProps: bannerContentPressProps, role: bannerContentRole, tabIndex: bannerContentTabIndex } =\n useAccessiblePress({\n isNative: false,\n onClick: onBannerClick ? () => onBannerClick() : undefined\n });\n\n const bannerContentClickableProps = onBannerClick\n ? {\n ...bannerContentPressProps,\n role: bannerContentRole,\n tabIndex: bannerContentTabIndex\n }\n : {};\n\n const renderImage = () =>\n hasImage && (\n <div\n className={`${classNames.bannerImageCtn} ${isClickableClass} banner-image-ctn ${imagePosition === 'right' ? 'mr-5 ml-0 justify-end' : 'ml-5 mr-0 justify-start'} min-h-full`}\n style={{ width: imageWidth }}\n onClick={onBannerClick}\n >\n <img src={props.bannerImage} alt={imageAlt} className=\"max-w-[initial] h-[initial] max-h-[150px] object-contain\" />\n </div>\n );\n\n return (\n <div \n ref={ref}\n className={`${classNames.bannerCtn} ${isClickableClass} ${bannerClassName} banner-ctn`} \n style={{ backgroundColor: bannerBgColor }} \n data-automation-id={automationId}\n role={regionAttributes.role}\n aria-labelledby={regionAttributes['aria-labelledby']}\n aria-describedby={regionAttributes['aria-describedby']}\n tabIndex={regionAttributes.tabIndex}\n >\n {imagePosition === 'left' && renderImage()}\n <div \n className={`${classNames.bannerContentCtn} w-[100%] banner-content-ctn`} \n {...bannerContentClickableProps}\n >\n <TitleTag id={titleId} className=\"banner-title\" tabIndex={providedTitleId ? -1 : undefined}>{title}</TitleTag>\n <span id={descriptionId} className=\"banner-description\">{description}</span>\n <div className=\"flex gap-3\" onClick={(e) => e.stopPropagation()}>\n {hasLinkCta && (\n <Button \n type=\"link\" \n className={classNames.bannerLinkCta} \n onClick={onCtaClick} \n label={ctaText}\n ariaLabel={ctaAriaLabel}\n />\n )}\n {hasButtonCta && (\n <Button\n type={buttonType}\n size=\"sm\"\n label={ctaText}\n onClick={onCtaClick}\n className={classNames?.bannerButton}\n data-automation-id=\"banner-main-cta\"\n ariaLabel={ctaAriaLabel}\n />\n )}\n {hasSecondaryButtonCta && (\n <Button\n type={secondaryButtonType}\n size=\"sm\"\n label={secondaryCtaText}\n onClick={onSecondaryCtaClick}\n className={classNames?.secondaryBannerButton}\n data-automation-id=\"banner-secondary-cta\"\n ariaLabel={secondaryCtaAriaLabel}\n />\n )}\n </div>\n </div>\n {imagePosition === 'right' && renderImage()}\n {hasCloseIcon && (\n <Icon\n name={closeIconName}\n className={classNames.bannerCloseIconCtn}\n onClick={onClose}\n ariaLabel=\"Close banner\"\n shouldStopPropagation\n />\n )}\n </div>\n );\n});\n"],"names":["classNames","bannerCtn","bannerContentCtn","bannerLinkCta","bannerImageCtn","bannerCloseIconCtn","bannerButton","Banner","forwardRef","props","ref","bannerClassName","bannerBgColor","title","titleTag","TitleTag","description","hasImage","imagePosition","imageWidth","imageAlt","hasCloseIcon","closeIconName","onClose","onBannerClick","hasLinkCta","onCtaClick","onSecondaryCtaClick","hasButtonCta","buttonType","ctaText","ctaAriaLabel","hasSecondaryButtonCta","secondaryButtonType","secondaryCtaText","secondaryCtaAriaLabel","automationId","titleId","providedTitleId","isClickableClass","useStableId","descriptionId","undefined","regionAttributes","getRegionAttributes","isFocusable","pressProps","bannerContentPressProps","role","bannerContentRole","tabIndex","bannerContentTabIndex","useAccessiblePress","isNative","onClick","bannerContentClickableProps","renderImage","React","createElement","className","style","width","src","bannerImage","alt","backgroundColor","_extends","id","e","stopPropagation","Button","type","label","ariaLabel","size","secondaryBannerButton","Icon","name","shouldStopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"index29.js","sources":["../src/components/Banner/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Map } from '../../utils/common.types';\nimport { Icon } from 'components/Icon';\nimport { Button } from 'components/Button';\nimport { useStableId } from '../../utils/useStableId';\nimport { useAccessiblePress } from '../../utils/a11y';\nimport { getRegionAttributes } from '../../utils/a11y/regionAttributes';\nimport './style.scss';\n\nexport interface BannerProps {\n bannerClassName?: string | '';\n bannerBgColor?: string | '';\n title: string | '';\n titleTag?: 'span' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n description: string | '';\n hasImage?: boolean | false;\n imagePosition?: 'left' | 'right' | '';\n imageWidth?: string | '30%';\n imageAlt?: string | '';\n bannerImage: string | '';\n hasCloseIcon?: boolean | false;\n closeIconName: string | '';\n onClose: () => void | (() => {});\n onBannerClick?: () => void | (() => {});\n hasButtonCta?: boolean | false;\n hasSecondaryButtonCta?: boolean | false;\n buttonType?: 'primary' | 'secondary' | 'link';\n secondaryButtonType?: 'primary' | 'secondary' | 'ghost' | 'link';\n hasLinkCta?: boolean | false;\n ctaText: string | '';\n secondaryCtaText: string | '';\n onCtaClick: () => void | (() => {});\n onSecondaryCtaClick: () => void | (() => {});\n /**\n * Accessible name for primary CTA button (screen reader only, if different from visible label).\n */\n ctaAriaLabel?: string;\n /**\n * Accessible name for secondary CTA button (screen reader only, if different from visible label).\n */\n secondaryCtaAriaLabel?: string;\n automationId?: string;\n // Optional title ID for external control (e.g., focus management)\n titleId?: string;\n disabledPrimaryButton?: boolean;\n}\n\nconst classNames: Map = {\n bannerCtn: `relative rounded-[12px] flex pr-3.5`,\n bannerContentCtn: 'pt-5 pl-6 pb-5 pr-2 flex flex-col gap-2',\n bannerLinkCta: 'text-[#1088e7] cursor-pointer text-base leading-6 hover: text-[#0078d4]',\n bannerImageCtn: 'flex',\n bannerCloseIconCtn:\n 'absolute top-[12px] right-[12px] cursor-pointer hover:bg-[var(--color-gray-100)] rounded-full p-1 inline-flex items-center justify-center',\n bannerButton: 'self-start'\n};\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const {\n bannerClassName,\n bannerBgColor,\n title,\n titleTag: TitleTag = 'span',\n description,\n hasImage,\n imagePosition = 'right',\n imageWidth = '30%',\n imageAlt = '',\n hasCloseIcon,\n closeIconName,\n onClose,\n onBannerClick,\n hasLinkCta,\n onCtaClick,\n onSecondaryCtaClick,\n hasButtonCta,\n buttonType = 'secondary',\n ctaText,\n ctaAriaLabel,\n hasSecondaryButtonCta = false,\n secondaryButtonType = 'secondary',\n secondaryCtaText,\n secondaryCtaAriaLabel,\n automationId = '',\n titleId: providedTitleId,\n disabledPrimaryButton = false\n } = props;\n\n const isClickableClass = onBannerClick ? 'cursor-pointer' : '';\n const titleId = useStableId(providedTitleId, 'banner-title');\n const descriptionId = useStableId(undefined, 'banner-description');\n\n const regionAttributes = getRegionAttributes({\n titleId,\n descriptionId: description ? descriptionId : undefined,\n isFocusable: !!providedTitleId\n });\n\n // When banner is clickable, make the content area keyboard-activatable (Enter/Space).\n // We intentionally keep this as an extra tab stop (per dashboard banner behavior).\n const { pressProps: bannerContentPressProps, role: bannerContentRole, tabIndex: bannerContentTabIndex } =\n useAccessiblePress({\n isNative: false,\n onClick: onBannerClick ? () => onBannerClick() : undefined\n });\n\n const bannerContentClickableProps = onBannerClick\n ? {\n ...bannerContentPressProps,\n role: bannerContentRole,\n tabIndex: bannerContentTabIndex\n }\n : {};\n\n const renderImage = () =>\n hasImage && (\n <div\n className={`${classNames.bannerImageCtn} ${isClickableClass} banner-image-ctn ${imagePosition === 'right' ? 'mr-5 ml-0 justify-end' : 'ml-5 mr-0 justify-start'} min-h-full`}\n style={{ width: imageWidth }}\n onClick={onBannerClick}\n >\n <img src={props.bannerImage} alt={imageAlt} className=\"max-w-[initial] h-[initial] max-h-[150px] object-contain\" />\n </div>\n );\n\n return (\n <div \n ref={ref}\n className={`${classNames.bannerCtn} ${isClickableClass} ${bannerClassName} banner-ctn`} \n style={{ backgroundColor: bannerBgColor }} \n data-automation-id={automationId}\n role={regionAttributes.role}\n aria-labelledby={regionAttributes['aria-labelledby']}\n aria-describedby={regionAttributes['aria-describedby']}\n tabIndex={regionAttributes.tabIndex}\n >\n {imagePosition === 'left' && renderImage()}\n <div \n className={`${classNames.bannerContentCtn} w-[100%] banner-content-ctn`} \n {...bannerContentClickableProps}\n >\n <TitleTag id={titleId} className=\"banner-title\" tabIndex={providedTitleId ? -1 : undefined}>{title}</TitleTag>\n <span id={descriptionId} className=\"banner-description\">{description}</span>\n <div className=\"flex gap-3\" onClick={(e) => e.stopPropagation()}>\n {hasLinkCta && (\n <Button \n type=\"link\" \n className={classNames.bannerLinkCta} \n onClick={onCtaClick} \n label={ctaText}\n ariaLabel={ctaAriaLabel}\n />\n )}\n {hasButtonCta && (\n <Button\n type={buttonType}\n size=\"sm\"\n label={ctaText}\n onClick={onCtaClick}\n className={classNames?.bannerButton}\n data-automation-id=\"banner-main-cta\"\n ariaLabel={ctaAriaLabel}\n disabled={disabledPrimaryButton}\n />\n )}\n {hasSecondaryButtonCta && (\n <Button\n type={secondaryButtonType}\n size=\"sm\"\n label={secondaryCtaText}\n onClick={onSecondaryCtaClick}\n className={classNames?.secondaryBannerButton}\n data-automation-id=\"banner-secondary-cta\"\n ariaLabel={secondaryCtaAriaLabel}\n />\n )}\n </div>\n </div>\n {imagePosition === 'right' && renderImage()}\n {hasCloseIcon && (\n <Icon\n name={closeIconName}\n className={classNames.bannerCloseIconCtn}\n onClick={onClose}\n ariaLabel=\"Close banner\"\n shouldStopPropagation\n />\n )}\n </div>\n );\n});\n"],"names":["classNames","bannerCtn","bannerContentCtn","bannerLinkCta","bannerImageCtn","bannerCloseIconCtn","bannerButton","Banner","forwardRef","props","ref","bannerClassName","bannerBgColor","title","titleTag","TitleTag","description","hasImage","imagePosition","imageWidth","imageAlt","hasCloseIcon","closeIconName","onClose","onBannerClick","hasLinkCta","onCtaClick","onSecondaryCtaClick","hasButtonCta","buttonType","ctaText","ctaAriaLabel","hasSecondaryButtonCta","secondaryButtonType","secondaryCtaText","secondaryCtaAriaLabel","automationId","titleId","providedTitleId","disabledPrimaryButton","isClickableClass","useStableId","descriptionId","undefined","regionAttributes","getRegionAttributes","isFocusable","pressProps","bannerContentPressProps","role","bannerContentRole","tabIndex","bannerContentTabIndex","useAccessiblePress","isNative","onClick","bannerContentClickableProps","renderImage","React","createElement","className","style","width","src","bannerImage","alt","backgroundColor","_extends","id","e","stopPropagation","Button","type","label","ariaLabel","size","disabled","secondaryBannerButton","Icon","name","shouldStopPropagation"],"mappings":"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"}