/*!
 * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */

import { createReactRootElements } from "./createReactRootElements.js";
import { encapsulateShadowDomFromGlobalStyles } from "./encapsulateShadowDomFromGlobalStyles.js";
export const createShadowDomElements = (containerElement, nonce = window.cspNonce) => {
  const shadowRoot = containerElement.attachShadow({
    mode: "open"
  });
  const {
    appRootElement,
    stylesRootElement
  } = createReactRootElements();
  shadowRoot.appendChild(appRootElement);
  shadowRoot.appendChild(stylesRootElement);
  encapsulateShadowDomFromGlobalStyles({
    nonce,
    stylesRootElement
  });
  return {
    emotionRootElement: stylesRootElement,
    shadowRootElement: appRootElement
  };
};
export const createShadowRootElement = containerElement => {
  const shadowRoot = containerElement.attachShadow({
    mode: "open"
  });
  const emotionRootElement = document.createElement("style");
  emotionRootElement.setAttribute("id", "style-root");
  emotionRootElement.setAttribute("nonce", window.cspNonce);
  const shadowRootElement = document.createElement("div");
  shadowRootElement.setAttribute("id", "shadow-root");
  shadowRoot.appendChild(emotionRootElement);
  shadowRoot.appendChild(shadowRootElement);
  return [emotionRootElement, shadowRootElement];
};
//# sourceMappingURL=createShadowDomElements.js.map