import { layout as s } from "@universityofmaryland/web-elements-library/composite";
import * as r from "@universityofmaryland/web-utilities-library/validation";
import { Register as n, Attributes as e, Slots as a, Lifecycle as m } from "@universityofmaryland/web-model-library";
import { createSlot as i } from "@universityofmaryland/web-utilities-library/elements";
import { layout as d } from "@universityofmaryland/web-elements-library/atomic";
const u = "umd-element-logo", p = {
  image: {
    required: !0
  }
}, g = (t) => s.box.logo({
  image: r.getValidatedSlotImage({
    element: t,
    slotName: a.name.assets.image
  }),
  text: a.text.default({ element: t }),
  isThemeDark: e.isTheme.dark({ element: t }),
  isBordered: e.isVisual.bordered({ element: t })
}), C = n.webComponent({
  tagName: u,
  slots: p,
  createComponent: g
});
var R = C;
const b = "umd-layout-image-expand", h = {
  content: {
    required: !0
  },
  image: {
    required: !0
  }
}, f = (t) => s.image.expand({
  content: i("content"),
  image: r.getValidatedSlotImage({
    element: t,
    slotName: a.name.assets.image
  })
}), v = n.webComponent({
  tagName: b,
  slots: h,
  createComponent: f
});
var Y = v;
const y = "umd-element-modal", $ = (t) => {
  const o = () => {
    t.setAttribute(
      e.names.layout.hidden,
      e.values.state.TRUE
    );
  }, l = {
    content: a.content.default({ element: t, isDefaultStyling: !1 }),
    isHidden: e.isLayout.hidden({ element: t }),
    context: t,
    callback: o
  };
  return d.overlay.modal(l);
}, k = e.handler.common.visualShowHide({
  onShow: (t) => t.events?.show(),
  onHide: (t) => t.events?.hide()
});
var E = n.webComponent({
  tagName: y,
  attributes: k,
  createComponent: $
});
const N = "umd-element-scroll-top", _ = (t) => {
  const o = {
    isFixed: t.hasAttribute(
      e.names.deprecated.layout.LAYOUT_FIXED
    )
  };
  return s.scrollTop(o);
};
var K = n.webComponent({
  tagName: N,
  createComponent: _,
  afterConnect: m.hooks.loadOnConnect
});
const c = ({
  element: t,
  isThemeDark: o
}) => ({
  headline: a.headline.default({ element: t }),
  actions: a.actions.default({ element: t }),
  isThemeDark: o
}), T = "umd-element-section-intro", w = (t) => s.sectionIntro.small({
  ...c({
    element: t,
    isThemeDark: e.isTheme.dark({ element: t })
  }),
  text: a.text.default({ element: t }),
  hasSeparator: t.hasAttribute(
    e.names.deprecated.option.OPTIONAL_HAS_SEPARATOR
  ),
  includesAnimation: e.includesFeature.animation({ element: t })
}), S = n.webComponent({
  tagName: T,
  createComponent: w,
  afterConnect: m.hooks.loadAnimation
});
var M = S;
const A = "umd-element-section-intro-wide", x = (t) => s.sectionIntro.wide(
  c({
    element: t,
    isThemeDark: e.isTheme.dark({ element: t })
  })
), I = n.webComponent({
  tagName: A,
  createComponent: x
});
var B = I;
const O = "umd-element-sticky-columns", P = {
  "sticky-column": {
    required: !0
  },
  "static-column": {
    required: !0
  }
}, L = e.handler.combine(
  e.handler.observe.visuallyPosition({
    callback: (t, o) => t.events?.setPosition({ value: o })
  }),
  // Deprecated
  e.handler.observe.visuallyPosition({
    name: e.names.deprecated.layout.LAYOUT_STICKY_TOP,
    callback: (t, o) => t.events?.setPosition({ value: o })
  })
), D = (t) => s.stickyColumns({
  stickyColumn: i(a.name.STICKY_COLUMN),
  staticColumn: i(a.name.STATIC_COLUMN),
  isStickyLast: !e.isVisual.stickyFirst({ element: t }),
  topPosition: e.getValue.topPosition({ element: t })
}), q = n.webComponent({
  tagName: O,
  slots: P,
  createComponent: D,
  attributes: L
});
var X = q;
export {
  M as a,
  R as b,
  X as c,
  Y as i,
  E as m,
  K as s,
  B as w
};
//# sourceMappingURL=sticky-columns-CRvJYWgm.js.map
