component.tsx 806 B

12345678910111213141516171819202122232425262728293031323334
  1. import { css } from "@linaria/core";
  2. import { string } from "vue-types";
  3. import { Text } from "../../..";
  4. import { createUIComp } from "../../../defines/createUIComp";
  5. import { useCompData } from ".";
  6. export const Component = createUIComp({
  7. props: {
  8. compId: string().isRequired,
  9. },
  10. setup(props) {
  11. const { value, children } = useCompData(props.compId);
  12. return () => (
  13. <>
  14. <Text.Component compId={children.title.id} />
  15. <Text.Component
  16. class={compStyle}
  17. style={{
  18. "--theme-color": value.themeColor,
  19. }}
  20. compId={children.subTitle.id}
  21. />
  22. </>
  23. );
  24. },
  25. });
  26. const compStyle = css`
  27. width: 3rem;
  28. margin: 0 auto;
  29. border-top: 1px solid;
  30. border-bottom: 1px solid;
  31. border-color: var(--theme-color);
  32. `;