carbon-react 159.2.3 → 159.2.5
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.
- package/esm/__spec_helper__/mock-match-media.d.ts +2 -0
- package/esm/__spec_helper__/mock-match-media.js +1 -1
- package/esm/components/text-editor/__internal__/__ui__/Toolbar/toolbar.component.js +1 -1
- package/esm/global.d.ts +2 -0
- package/esm/hooks/__internal__/useIsAboveBreakpoint/useIsAboveBreakpoint.js +1 -1
- package/esm/hooks/useMediaQuery/useMediaQuery.d.ts +9 -1
- package/esm/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/lib/__spec_helper__/mock-match-media.d.ts +2 -0
- package/lib/__spec_helper__/mock-match-media.js +1 -1
- package/lib/components/text-editor/__internal__/__ui__/Toolbar/toolbar.component.js +1 -1
- package/lib/global.d.ts +2 -0
- package/lib/hooks/__internal__/useIsAboveBreakpoint/useIsAboveBreakpoint.js +1 -1
- package/lib/hooks/useMediaQuery/useMediaQuery.d.ts +9 -1
- package/lib/hooks/useMediaQuery/useMediaQuery.js +1 -1
- package/package.json +1 -1
|
@@ -2,3 +2,5 @@ export declare const setupMatchMediaMock: () => void;
|
|
|
2
2
|
export declare const mockMatchMedia: (matches: boolean) => {
|
|
3
3
|
removeEventListener: jest.Mock<any, any, any>;
|
|
4
4
|
};
|
|
5
|
+
/** Simulate a media query change — updates `matches` and fires captured listeners */
|
|
6
|
+
export declare const simulateMediaQueryChange: (matches: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=!1,t=!1;const n=jest.fn()
|
|
1
|
+
let e=!1,t=!1;const n=jest.fn();let o=new Set;const r=()=>{if("undefined"==typeof window)return;const r=()=>{};Object.defineProperty(global.window,"matchMedia",{writable:!0,value:e=>({get matches(){return t},media:e,onchange:null,addEventListener:(e,t)=>{o.add(t)},removeEventListener:(e,t)=>{o.delete(t),n()},dispatchEvent:r})}),e=!0},a=r=>{if(!e)throw new Error("window.matchMedia has not been mocked. Did you call setupMatchMediaMock()?");return t=r,o=new Set,{removeEventListener:n}},d=e=>{t=e,o.forEach((e=>e()))};export{a as mockMatchMedia,r as setupMatchMediaMock,d as simulateMediaQueryChange};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{useLexicalComposerContext as r}from"@lexical/react/LexicalComposerContext";import{mergeRegister as n}from"@lexical/utils";import{$getSelection as i,$isRangeSelection as l,$getRoot as a,$createTextNode as s,$
|
|
1
|
+
import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import{useLexicalComposerContext as r}from"@lexical/react/LexicalComposerContext";import{mergeRegister as n}from"@lexical/utils";import{$getSelection as i,$isRangeSelection as l,$getRoot as a,$createTextNode as s,$isParagraphNode as c,$createParagraphNode as d}from"lexical";import{useRef as p,useState as u,useCallback as m,useEffect as f}from"react";import{StyledToolbarWrapper as b,StyledToolbar as h,CommandButtons as y}from"./toolbar.style.js";import x from"../../../../button/button.component.js";import g from"../../../../../hooks/__internal__/useLocale/useLocale.js";import v from"./buttons/bold.component.js";import j from"./buttons/hyperlink.component.js";import k from"./buttons/italic.component.js";import E from"./buttons/list.component.js";import O from"./buttons/save.component.js";import w from"./buttons/typography.component.js";import D from"./buttons/underline.component.js";import F from"./button-group/button-group.component.js";import{TEXT_EDITOR_ACTION_TYPES as B}from"../../__utils__/constants.js";import{Textbox as P}from"../../../../textbox/textbox.component.js";import{$createLinkNode as z}from"@lexical/link";import{Dialog as C}from"../../../../dialog/dialog.component.js";import{Form as L}from"../../../../form/form.component.js";import"../../../../form/required-fields-indicator/required-fields-indicator.component.js";import{Box as S}from"../../../../box/box.component.js";import{Typography as $}from"../../../../typography/typography.component.js";function A(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function I(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable})))),r.forEach((function(t){A(e,t,o[t])}))}return e}function _(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))})),e}const T=({contentEditorRef:A,namespace:T,hasHeader:q,onCancel:W,onSave:H,size:M="medium",toolbarControls:R=["typography","bold","italic","underline","unordered-list","ordered-list","link"]})=>{var U,K,N,G,J,Q;const[V]=r(),X=V.isEditable(),Y=p(null),[Z,ee]=u(!1),[te,oe]=u(!1),[re,ne]=u(!1),[ie,le]=u(!1),[ae,se]=u(!1),[ce,de]=u(-1),[pe,ue]=u(""),[me,fe]=u(""),[be,he]=u(!1),[ye,xe]=u(!1),ge=p(null),ve=p(null),je=p(!1),ke=m((()=>{const e=V.getRootElement();e&&(je.current=e.contains(document.activeElement)),le(!0)}),[V]),Ee=g(),Oe=R.includes("typography"),we=R.includes("bold")||R.includes("italic")||R.includes("underline"),De=R.includes("unordered-list")||R.includes("ordered-list"),Fe=R.includes("link"),Be=m((()=>{const e=i();l(e)&&(ee(e.hasFormat(B.Bold)),oe(e.hasFormat(B.Italic)),ne(e.hasFormat(B.Underline)))}),[]);f((()=>n(V.registerUpdateListener((({editorState:e})=>{e.read((()=>{V.isEditable()&&Be()}))})))),[Be,V]),f((()=>{ie&&V.read((()=>{const e=i();if(l(e)){const t=e.getTextContent();ue(t)}}))}),[ie,V]);const Pe=()=>{ue(""),fe(""),he(!1),xe(!1),le(!1)};return X?e(b,{"data-role":`${T}-toolbar-wrapper`,hasHeader:q,id:`${T}-toolbar-wrapper`,size:M,children:[e(h,{role:"toolbar","aria-label":Ee.textEditor.toolbarAriaLabel(),"data-role":`${T}-toolbar`,id:`${T}-toolbar`,ref:Y,onKeyDown:e=>{var t,o;if(0===R.length||!Y.current)return;const r=Array.from(null===(t=Y.current)||void 0===t?void 0:t.querySelectorAll("button.toolbar-button"));if(!r.length)return;const n=r.findIndex((e=>{var t;return e.id===(null===(t=document.activeElement)||void 0===t?void 0:t.id)}));let i=-1;switch(e.key){case"ArrowRight":e.preventDefault(),ae||(i=n<r.length-1?n+1:0);break;case"ArrowLeft":e.preventDefault(),ae||(i=n>0?n-1:r.length-1);break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=r.length-1;break;default:return}r.forEach(((e,t)=>{e.tabIndex=t===i?0:-1})),i>-1&&(null===(o=r[i])||void 0===o||o.focus())},tabIndex:-1,children:[e(t,{children:[Oe&&o(F,{name:"typography-formatting-buttons",namespace:T,showDivider:we||De||Fe,children:o(w,{contentEditorRef:A,namespace:T,isFirstButton:!0,isOpen:ae,setIsOpen:se,focusedIndex:ce,setFocusedIndex:de,size:M})}),we&&e(F,{name:"text-formatting-buttons",namespace:T,showDivider:De||Fe,children:[R.includes("bold")&&o(v,{isActive:Z,namespace:T,isFirstButton:!Oe,size:M}),R.includes("italic")&&o(k,{isActive:te,namespace:T,isFirstButton:!Oe&&!R.includes("bold"),size:M}),R.includes("underline")&&o(D,{isActive:re,namespace:T,isFirstButton:!Oe&&!R.includes("bold")&&!R.includes("italic"),size:M})]}),De&&o(F,{name:"list-formatting-buttons",namespace:T,showDivider:Fe,children:o(E,{namespace:T,olIsFirstButton:!Oe&&!we&&!R.includes("unordered-list"),showOL:R.includes("ordered-list"),showUL:R.includes("unordered-list"),ulIsFirstButton:!Oe&&!we,size:M})}),Fe&&o(F,{name:"hyperlink-formatting-buttons",namespace:T,showDivider:!1,children:o(j,{namespace:T,isFirstButton:!Oe&&!we&&!De,setDialogOpen:ke,size:M})})]}),o(C,{open:ie,onCancel:()=>{Pe()},title:Ee.textEditor.hyperlink.dialogTitle(),"data-role":`${T}-hyperlink-dialog`,"aria-label":Ee.textEditor.hyperlink.dialogTitle(),size:"medium-small",children:o(L,{leftSideButtons:o(x,{"data-role":`${T}-hyperlink-cancel-button`,onClick:()=>{Pe()},children:Ee.textEditor.cancelButton()}),saveButton:o(x,{buttonType:"primary",type:"submit","data-role":`${T}-hyperlink-save-button`,children:Ee.textEditor.saveButton()}),onSubmit:e=>{e.preventDefault(),e.stopPropagation();const t=!pe.trim(),o=!me.trim();var r,n;(he(t),xe(o),t||o)?t?null===(r=ge.current)||void 0===r||r.focus():null===(n=ve.current)||void 0===n||n.focus():V.isEditable()&&(V.update((()=>{const e=a(),t=z(me);t.append(s(pe));const o=je.current?i():null;if(l(o))o.insertNodes([t]);else{const o=e.getLastChild();if(c(o))o.append(t);else{const o=d();o.append(t),e.append(o)}}})),Pe())},children:e(S,{display:"flex",flexDirection:"column",gap:"16px",children:[e($,{fontSize:"14px",fontWeight:"500",lineHeight:"21px",children:[o("span",{style:{color:"var(--input-labelset-label-required)"},children:"*"})," ",null===(U=(K=Ee.textEditor.hyperlink).formKey)||void 0===U?void 0:U.call(K)]}),e(S,{display:"flex",gap:"24px",flexWrap:"wrap",children:[o(S,{flex:"1 1 200px",minWidth:"200px",maxWidth:"560px",children:o(P,_(I({label:Ee.textEditor.hyperlink.textFieldLabel(),name:"text",required:!0,validationMessagePositionTop:!1},be&&{error:null===(N=(G=Ee.textEditor.hyperlink).textFieldErrorMessage)||void 0===N?void 0:N.call(G)}),{"data-role":`${T}-hyperlink-text-field`,value:pe,ref:ge,onChange:e=>{ue(e.target.value),he(!1)}}))}),o(S,{flex:"1 1 200px",minWidth:"200px",maxWidth:"560px",children:o(P,_(I({label:Ee.textEditor.hyperlink.linkFieldLabel(),name:"link",required:!0,validationMessagePositionTop:!1},ye&&{error:null===(J=(Q=Ee.textEditor.hyperlink).linkFieldErrorMessage)||void 0===J?void 0:J.call(Q)}),{"data-role":`${T}-hyperlink-link-field`,value:me,ref:ve,onChange:e=>{fe(e.target.value),xe(!1)}}))})]})]})})})]}),e(y,{"data-role":`${T}-command-buttons`,children:[W&&o(x,{buttonType:"tertiary","data-role":`${T}-cancel-button`,"aria-label":Ee.textEditor.cancelButtonAria(),onClick:()=>null==W?void 0:W(V),size:M,className:"command-button",children:Ee.textEditor.cancelButton()}),H&&o(O,{namespace:T,onSave:H,size:M})]})]}):null};export{T as default};
|
package/esm/global.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ModalList } from "./__internal__/modal/modal-manager";
|
|
2
|
+
import { type QueryEntry } from "./hooks/useMediaQuery/useMediaQuery";
|
|
2
3
|
|
|
3
4
|
declare global {
|
|
4
5
|
module "*.png";
|
|
@@ -16,6 +17,7 @@ declare global {
|
|
|
16
17
|
originalValues: string[];
|
|
17
18
|
restoreValues?: (() => void) | null;
|
|
18
19
|
};
|
|
20
|
+
__CARBON_INTERNALS_MEDIA_QUERY_CACHE?: Map<string, QueryEntry>;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"../../useMediaQuery/useMediaQuery.js";function i(i){const r=
|
|
1
|
+
import e from"../../useMediaQuery/useMediaQuery.js";function i(i){const r=i?`(min-width:${i}px)`:"",t=e(r);if(r)return t}export{i as default};
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
type Listener = () => void;
|
|
2
|
+
export interface QueryEntry {
|
|
3
|
+
mediaQueryList: MediaQueryList;
|
|
4
|
+
listeners: Set<Listener>;
|
|
5
|
+
nativeHandler: () => void;
|
|
6
|
+
refCount: number;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: (queryInput: string) => boolean | undefined;
|
|
9
|
+
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as e,useLayoutEffect as
|
|
1
|
+
import{useState as e,useCallback as t,useLayoutEffect as r,useEffect as n}from"react";import{getWindow as s}from"../../__internal__/dom/globals.js";const a=s(),i=a?r:n,c="__CARBON_INTERNALS_MEDIA_QUERY_CACHE",o="__CARBON_MQ_",u=e=>(e[c]||(e[c]=new Map),e[c]),l=(e,t)=>{try{sessionStorage.setItem(`${o}${e}`,String(t))}catch(e){}};var d=r=>{var n;const s=(e=>e.replace(/\s+/g," ").replace(/:\s*/g,": ").replace(/\(\s*/g,"(").replace(/\s*\)/g,")").trim())(null!==(n=null==r?void 0:r.replace(/^@media( ?)/m,""))&&void 0!==n?n:""),[c,d]=e((()=>a&&s?(e=>{try{const t=sessionStorage.getItem(`${o}${e}`);return"true"===t||"false"!==t&&void 0}catch(e){return}})(s):void 0)),m=t((()=>{if(!a)return;const e=u(a).get(s);e&&(d(e.mediaQueryList.matches),l(s,e.mediaQueryList.matches))}),[s]);return i((()=>{if(!a||!s)return;const{matches:e,unsubscribe:t}=((e,t,r)=>{const{entry:n,cache:s}=((e,t)=>{const r=u(t),n=r.get(e);if(n)return{entry:n,cache:r};const s=t.matchMedia(e),a={mediaQueryList:s,listeners:new Set,nativeHandler:()=>{a.listeners.forEach((e=>e()))},refCount:0};return s.addEventListener("change",a.nativeHandler),r.set(e,a),{entry:a,cache:r}})(e,r);return n.refCount+=1,n.listeners.add(t),{matches:n.mediaQueryList.matches,unsubscribe:()=>{n.listeners.delete(t),n.refCount-=1,n.refCount||(n.mediaQueryList.removeEventListener("change",n.nativeHandler),s.delete(e))}}})(s,m,a);return d(e),l(s,e),t}),[s,m]),c};export{d as default};
|
|
@@ -2,3 +2,5 @@ export declare const setupMatchMediaMock: () => void;
|
|
|
2
2
|
export declare const mockMatchMedia: (matches: boolean) => {
|
|
3
3
|
removeEventListener: jest.Mock<any, any, any>;
|
|
4
4
|
};
|
|
5
|
+
/** Simulate a media query change — updates `matches` and fires captured listeners */
|
|
6
|
+
export declare const simulateMediaQueryChange: (matches: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";let e=!1,t=!1;const n=jest.fn();exports.mockMatchMedia=
|
|
1
|
+
"use strict";let e=!1,t=!1;const n=jest.fn();let a=new Set;exports.mockMatchMedia=r=>{if(!e)throw new Error("window.matchMedia has not been mocked. Did you call setupMatchMediaMock()?");return t=r,a=new Set,{removeEventListener:n}},exports.setupMatchMediaMock=()=>{if("undefined"==typeof window)return;const r=()=>{};Object.defineProperty(global.window,"matchMedia",{writable:!0,value:e=>({get matches(){return t},media:e,onchange:null,addEventListener:(e,t)=>{a.add(t)},removeEventListener:(e,t)=>{a.delete(t),n()},dispatchEvent:r})}),e=!0},exports.simulateMediaQueryChange=e=>{t=e,a.forEach((e=>e()))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@lexical/react/LexicalComposerContext"),r=require("@lexical/utils"),n=require("lexical"),o=require("react"),i=require("./toolbar.style.js"),l=require("../../../../button/button.component.js"),a=require("../../../../../hooks/__internal__/useLocale/useLocale.js"),s=require("./buttons/bold.component.js"),u=require("./buttons/hyperlink.component.js"),d=require("./buttons/italic.component.js"),c=require("./buttons/list.component.js"),p=require("./buttons/save.component.js"),x=require("./buttons/typography.component.js"),b=require("./buttons/underline.component.js"),f=require("./button-group/button-group.component.js"),m=require("../../__utils__/constants.js"),h=require("../../../../textbox/textbox.component.js"),g=require("@lexical/link"),y=require("../../../../dialog/dialog.component.js"),j=require("../../../../form/form.component.js");require("../../../../form/required-fields-indicator/required-fields-indicator.component.js");var v=require("../../../../box/box.component.js"),E=require("../../../../typography/typography.component.js");function k(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){k(e,t,r[t])}))}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}exports.default=({contentEditorRef:k,namespace:q,hasHeader:T,onCancel:w,onSave:$,size:D="medium",toolbarControls:P=["typography","bold","italic","underline","unordered-list","ordered-list","link"]})=>{var B,C,_,F,I
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@lexical/react/LexicalComposerContext"),r=require("@lexical/utils"),n=require("lexical"),o=require("react"),i=require("./toolbar.style.js"),l=require("../../../../button/button.component.js"),a=require("../../../../../hooks/__internal__/useLocale/useLocale.js"),s=require("./buttons/bold.component.js"),u=require("./buttons/hyperlink.component.js"),d=require("./buttons/italic.component.js"),c=require("./buttons/list.component.js"),p=require("./buttons/save.component.js"),x=require("./buttons/typography.component.js"),b=require("./buttons/underline.component.js"),f=require("./button-group/button-group.component.js"),m=require("../../__utils__/constants.js"),h=require("../../../../textbox/textbox.component.js"),g=require("@lexical/link"),y=require("../../../../dialog/dialog.component.js"),j=require("../../../../form/form.component.js");require("../../../../form/required-fields-indicator/required-fields-indicator.component.js");var v=require("../../../../box/box.component.js"),E=require("../../../../typography/typography.component.js");function k(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){k(e,t,r[t])}))}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}exports.default=({contentEditorRef:k,namespace:q,hasHeader:T,onCancel:w,onSave:$,size:D="medium",toolbarControls:P=["typography","bold","italic","underline","unordered-list","ordered-list","link"]})=>{var B,C,_,F,R,I;const[L]=t.useLexicalComposerContext(),z=L.isEditable(),A=o.useRef(null),[N,W]=o.useState(!1),[M,H]=o.useState(!1),[U,X]=o.useState(!1),[Y,K]=o.useState(!1),[G,J]=o.useState(!1),[Q,V]=o.useState(-1),[Z,ee]=o.useState(""),[te,re]=o.useState(""),[ne,oe]=o.useState(!1),[ie,le]=o.useState(!1),ae=o.useRef(null),se=o.useRef(null),ue=o.useRef(!1),de=o.useCallback((()=>{const e=L.getRootElement();e&&(ue.current=e.contains(document.activeElement)),K(!0)}),[L]),ce=a.default(),pe=P.includes("typography"),xe=P.includes("bold")||P.includes("italic")||P.includes("underline"),be=P.includes("unordered-list")||P.includes("ordered-list"),fe=P.includes("link"),me=o.useCallback((()=>{const e=n.$getSelection();n.$isRangeSelection(e)&&(W(e.hasFormat(m.TEXT_EDITOR_ACTION_TYPES.Bold)),H(e.hasFormat(m.TEXT_EDITOR_ACTION_TYPES.Italic)),X(e.hasFormat(m.TEXT_EDITOR_ACTION_TYPES.Underline)))}),[]);o.useEffect((()=>r.mergeRegister(L.registerUpdateListener((({editorState:e})=>{e.read((()=>{L.isEditable()&&me()}))})))),[me,L]),o.useEffect((()=>{Y&&L.read((()=>{const e=n.$getSelection();if(n.$isRangeSelection(e)){const t=e.getTextContent();ee(t)}}))}),[Y,L]);const he=()=>{ee(""),re(""),oe(!1),le(!1),K(!1)};return z?e.jsxs(i.StyledToolbarWrapper,{"data-role":`${q}-toolbar-wrapper`,hasHeader:T,id:`${q}-toolbar-wrapper`,size:D,children:[e.jsxs(i.StyledToolbar,{role:"toolbar","aria-label":ce.textEditor.toolbarAriaLabel(),"data-role":`${q}-toolbar`,id:`${q}-toolbar`,ref:A,onKeyDown:e=>{var t,r;if(0===P.length||!A.current)return;const n=Array.from(null===(t=A.current)||void 0===t?void 0:t.querySelectorAll("button.toolbar-button"));if(!n.length)return;const o=n.findIndex((e=>{var t;return e.id===(null===(t=document.activeElement)||void 0===t?void 0:t.id)}));let i=-1;switch(e.key){case"ArrowRight":e.preventDefault(),G||(i=o<n.length-1?o+1:0);break;case"ArrowLeft":e.preventDefault(),G||(i=o>0?o-1:n.length-1);break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=n.length-1;break;default:return}n.forEach(((e,t)=>{e.tabIndex=t===i?0:-1})),i>-1&&(null===(r=n[i])||void 0===r||r.focus())},tabIndex:-1,children:[e.jsxs(e.Fragment,{children:[pe&&e.jsx(f.default,{name:"typography-formatting-buttons",namespace:q,showDivider:xe||be||fe,children:e.jsx(x.default,{contentEditorRef:k,namespace:q,isFirstButton:!0,isOpen:G,setIsOpen:J,focusedIndex:Q,setFocusedIndex:V,size:D})}),xe&&e.jsxs(f.default,{name:"text-formatting-buttons",namespace:q,showDivider:be||fe,children:[P.includes("bold")&&e.jsx(s.default,{isActive:N,namespace:q,isFirstButton:!pe,size:D}),P.includes("italic")&&e.jsx(d.default,{isActive:M,namespace:q,isFirstButton:!pe&&!P.includes("bold"),size:D}),P.includes("underline")&&e.jsx(b.default,{isActive:U,namespace:q,isFirstButton:!pe&&!P.includes("bold")&&!P.includes("italic"),size:D})]}),be&&e.jsx(f.default,{name:"list-formatting-buttons",namespace:q,showDivider:fe,children:e.jsx(c.default,{namespace:q,olIsFirstButton:!pe&&!xe&&!P.includes("unordered-list"),showOL:P.includes("ordered-list"),showUL:P.includes("unordered-list"),ulIsFirstButton:!pe&&!xe,size:D})}),fe&&e.jsx(f.default,{name:"hyperlink-formatting-buttons",namespace:q,showDivider:!1,children:e.jsx(u.default,{namespace:q,isFirstButton:!pe&&!xe&&!be,setDialogOpen:de,size:D})})]}),e.jsx(y.Dialog,{open:Y,onCancel:()=>{he()},title:ce.textEditor.hyperlink.dialogTitle(),"data-role":`${q}-hyperlink-dialog`,"aria-label":ce.textEditor.hyperlink.dialogTitle(),size:"medium-small",children:e.jsx(j.Form,{leftSideButtons:e.jsx(l.default,{"data-role":`${q}-hyperlink-cancel-button`,onClick:()=>{he()},children:ce.textEditor.cancelButton()}),saveButton:e.jsx(l.default,{buttonType:"primary",type:"submit","data-role":`${q}-hyperlink-save-button`,children:ce.textEditor.saveButton()}),onSubmit:e=>{e.preventDefault(),e.stopPropagation();const t=!Z.trim(),r=!te.trim();var o,i;(oe(t),le(r),t||r)?t?null===(o=ae.current)||void 0===o||o.focus():null===(i=se.current)||void 0===i||i.focus():L.isEditable()&&(L.update((()=>{const e=n.$getRoot(),t=g.$createLinkNode(te);t.append(n.$createTextNode(Z));const r=ue.current?n.$getSelection():null;if(n.$isRangeSelection(r))r.insertNodes([t]);else{const r=e.getLastChild();if(n.$isParagraphNode(r))r.append(t);else{const r=n.$createParagraphNode();r.append(t),e.append(r)}}})),he())},children:e.jsxs(v.Box,{display:"flex",flexDirection:"column",gap:"16px",children:[e.jsxs(E.Typography,{fontSize:"14px",fontWeight:"500",lineHeight:"21px",children:[e.jsx("span",{style:{color:"var(--input-labelset-label-required)"},children:"*"})," ",null===(B=(C=ce.textEditor.hyperlink).formKey)||void 0===B?void 0:B.call(C)]}),e.jsxs(v.Box,{display:"flex",gap:"24px",flexWrap:"wrap",children:[e.jsx(v.Box,{flex:"1 1 200px",minWidth:"200px",maxWidth:"560px",children:e.jsx(h.Textbox,S(O({label:ce.textEditor.hyperlink.textFieldLabel(),name:"text",required:!0,validationMessagePositionTop:!1},ne&&{error:null===(_=(F=ce.textEditor.hyperlink).textFieldErrorMessage)||void 0===_?void 0:_.call(F)}),{"data-role":`${q}-hyperlink-text-field`,value:Z,ref:ae,onChange:e=>{ee(e.target.value),oe(!1)}}))}),e.jsx(v.Box,{flex:"1 1 200px",minWidth:"200px",maxWidth:"560px",children:e.jsx(h.Textbox,S(O({label:ce.textEditor.hyperlink.linkFieldLabel(),name:"link",required:!0,validationMessagePositionTop:!1},ie&&{error:null===(R=(I=ce.textEditor.hyperlink).linkFieldErrorMessage)||void 0===R?void 0:R.call(I)}),{"data-role":`${q}-hyperlink-link-field`,value:te,ref:se,onChange:e=>{re(e.target.value),le(!1)}}))})]})]})})})]}),e.jsxs(i.CommandButtons,{"data-role":`${q}-command-buttons`,children:[w&&e.jsx(l.default,{buttonType:"tertiary","data-role":`${q}-cancel-button`,"aria-label":ce.textEditor.cancelButtonAria(),onClick:()=>null==w?void 0:w(L),size:D,className:"command-button",children:ce.textEditor.cancelButton()}),$&&e.jsx(p.default,{namespace:q,onSave:$,size:D})]})]}):null};
|
package/lib/global.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ModalList } from "./__internal__/modal/modal-manager";
|
|
2
|
+
import { type QueryEntry } from "./hooks/useMediaQuery/useMediaQuery";
|
|
2
3
|
|
|
3
4
|
declare global {
|
|
4
5
|
module "*.png";
|
|
@@ -16,6 +17,7 @@ declare global {
|
|
|
16
17
|
originalValues: string[];
|
|
17
18
|
restoreValues?: (() => void) | null;
|
|
18
19
|
};
|
|
20
|
+
__CARBON_INTERNALS_MEDIA_QUERY_CACHE?: Map<string, QueryEntry>;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../useMediaQuery/useMediaQuery.js");exports.default=function(r){const t=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../useMediaQuery/useMediaQuery.js");exports.default=function(r){const t=r?`(min-width:${r}px)`:"",u=e.default(t);if(t)return u};
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
type Listener = () => void;
|
|
2
|
+
export interface QueryEntry {
|
|
3
|
+
mediaQueryList: MediaQueryList;
|
|
4
|
+
listeners: Set<Listener>;
|
|
5
|
+
nativeHandler: () => void;
|
|
6
|
+
refCount: number;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: (queryInput: string) => boolean | undefined;
|
|
9
|
+
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");const t=require("../../__internal__/dom/globals.js").getWindow(),r=t?e.useLayoutEffect:e.useEffect,s="__CARBON_INTERNALS_MEDIA_QUERY_CACHE",n="__CARBON_MQ_",a=e=>(e[s]||(e[s]=new Map),e[s]),c=(e,t)=>{try{sessionStorage.setItem(`${n}${e}`,String(t))}catch(e){}};exports.default=s=>{var i;const u=(e=>e.replace(/\s+/g," ").replace(/:\s*/g,": ").replace(/\(\s*/g,"(").replace(/\s*\)/g,")").trim())(null!==(i=null==s?void 0:s.replace(/^@media( ?)/m,""))&&void 0!==i?i:""),[o,l]=e.useState((()=>t&&u?(e=>{try{const t=sessionStorage.getItem(`${n}${e}`);return"true"===t||"false"!==t&&void 0}catch(e){return}})(u):void 0)),d=e.useCallback((()=>{if(!t)return;const e=a(t).get(u);e&&(l(e.mediaQueryList.matches),c(u,e.mediaQueryList.matches))}),[u]);return r((()=>{if(!t||!u)return;const{matches:e,unsubscribe:r}=((e,t,r)=>{const{entry:s,cache:n}=((e,t)=>{const r=a(t),s=r.get(e);if(s)return{entry:s,cache:r};const n=t.matchMedia(e),c={mediaQueryList:n,listeners:new Set,nativeHandler:()=>{c.listeners.forEach((e=>e()))},refCount:0};return n.addEventListener("change",c.nativeHandler),r.set(e,c),{entry:c,cache:r}})(e,r);return s.refCount+=1,s.listeners.add(t),{matches:s.mediaQueryList.matches,unsubscribe:()=>{s.listeners.delete(t),s.refCount-=1,s.refCount||(s.mediaQueryList.removeEventListener("change",s.nativeHandler),n.delete(e))}}})(u,d,t);return l(e),c(u,e),r}),[u,d]),o};
|