set alignEdge(val) {
    if (typeof val !== 'string' || !val.length) {
      return;
    }

    // Sanitize the alignment edge
    let edge;
    if (ALIGNMENT_EDGES.includes(val)) {
      edge = val;
    } else {
      edge = ALIGNMENT_EDGES[0];
    }

    // `alignEdge` is standardized against `align` by way of being the "first" item
    // in the comma-delimited setting.
    if (this.hasAttribute(attributes.ALIGN_EDGE)) {
      this.removeAttribute(attributes.ALIGN_EDGE);
    }

    // Only update if the value has changed
    if (this.#alignEdge !== edge) {
      let alignX = this.alignX;
      let alignY = this.alignY;

      this.#alignEdge = edge;

      // Determine how to format the `align` property.
      // Using `alignEdge === 'center'` is shorthand for automatically centering the component.
      if (edge === 'center') {
        alignX = edge;
        alignY = edge;
      } else if (ALIGNMENTS_EDGES_Y.includes(edge)) {
        alignY = edge;
      } else {
        alignX = edge;
      }
      this.align = formatAlignAttribute(alignX, alignY, edge);
    }
  }
/**
   *  Specifies the edge of the parent element to be placed adjacent,
   *  in configurations where a relative placement occurs
   * @param {string} val The edge to align to
   */
Specifies the edge of the parent element to be placed adjacent,
in configurations where a relative placement occurs
@param {string} val The edge to align to
Specifies the edge of the parent element to be placed adjacent in configurations where a relative placement occurs @param { string } val The edge to align to
set alignEdge(val) {
    if (typeof val !== 'string' || !val.length) {
      return;
    }
    let edge;
    if (ALIGNMENT_EDGES.includes(val)) {
      edge = val;
    } else {
      edge = ALIGNMENT_EDGES[0];
    }
    if (this.hasAttribute(attributes.ALIGN_EDGE)) {
      this.removeAttribute(attributes.ALIGN_EDGE);
    }
    if (this.#alignEdge !== edge) {
      let alignX = this.alignX;
      let alignY = this.alignY;
      this.#alignEdge = edge;
      if (edge === 'center') {
        alignX = edge;
        alignY = edge;
      } else if (ALIGNMENTS_EDGES_Y.includes(edge)) {
        alignY = edge;
      } else {
        alignX = edge;
      }
      this.align = formatAlignAttribute(alignX, alignY, edge);
    }
  }
set alignEdge ( val ) { if ( typeof val !== 'string' || ! val . length ) { return ; } let edge ; if ( ALIGNMENT_EDGES . includes ( val ) ) { edge = val ; } else { edge = ALIGNMENT_EDGES [ 0 ] ; } if ( this . hasAttribute ( attributes . ALIGN_EDGE ) ) { this . removeAttribute ( attributes . ALIGN_EDGE ) ; } if ( this . #alignEdge !== edge ) { let alignX = this . alignX ; let alignY = this . alignY ; this . #alignEdge = edge ; if ( edge === 'center' ) { alignX = edge ; alignY = edge ; } else if ( ALIGNMENTS_EDGES_Y . includes ( edge ) ) { alignY = edge ; } else { alignX = edge ; } this . align = formatAlignAttribute ( alignX , alignY , edge ) ; } }
Specifies the edge of the parent element to be placed adjacent,
  in configurations where a relative placement occurs
 @param {string} val The edge to align to
Specifies the edge of the parent element to be placed adjacent in configurations where a relative placement occurs @param { string } val The edge to align to
// Sanitize the alignment edge // `alignEdge` is standardized against `align` by way of being the "first" item // in the comma-delimited setting. // Only update if the value has changed // Determine how to format the `align` property. // Using `alignEdge === 'center'` is shorthand for automatically centering the component.