boottent-design 0.1.232 → 0.1.233

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.
Files changed (45) hide show
  1. package/dist/DESIGN.md +6 -6
  2. package/dist/article-asset-card-B30fjI_9.js +86 -0
  3. package/dist/article-asset-card-CuTpHnoq.cjs +1 -0
  4. package/dist/components/article-asset-card.cjs.js +1 -0
  5. package/dist/components/article-asset-card.es.js +5 -0
  6. package/dist/components/environment-asset-photo.cjs.js +1 -0
  7. package/dist/components/environment-asset-photo.es.js +5 -0
  8. package/dist/components/event-asset-banner.cjs.js +1 -0
  9. package/dist/components/event-asset-banner.es.js +5 -0
  10. package/dist/components/lecturer-card.cjs.js +1 -0
  11. package/dist/components/lecturer-card.es.js +5 -0
  12. package/dist/components/portfolio-asset-card.cjs.js +1 -0
  13. package/dist/components/portfolio-asset-card.es.js +5 -0
  14. package/dist/components/title-tag-card.cjs.js +1 -1
  15. package/dist/components/title-tag-card.es.js +1 -1
  16. package/dist/components.cjs.js +1 -1
  17. package/dist/components.es.js +17 -7
  18. package/dist/environment-asset-photo-DMSQ1Ext.cjs +1 -0
  19. package/dist/environment-asset-photo-Dk8pKTD3.js +16 -0
  20. package/dist/event-asset-banner-DLK5HF29.js +78 -0
  21. package/dist/event-asset-banner-I7Wv47iX.cjs +1 -0
  22. package/dist/lecturer-card-DLMnM4fU.cjs +1 -0
  23. package/dist/lecturer-card-DQCphrTD.js +128 -0
  24. package/dist/portfolio-asset-card-DVhoypCN.cjs +1 -0
  25. package/dist/portfolio-asset-card-DfO26fVb.js +96 -0
  26. package/dist/shared-BI0VJM6L.cjs +1 -0
  27. package/dist/shared-BvvrEmni.js +20 -0
  28. package/dist/styles.css +1 -1
  29. package/dist/title-tag-card-C-pn0u7P.cjs +1 -0
  30. package/dist/types/article-asset-card.d.ts +61 -0
  31. package/dist/types/components/article-asset-card.d.ts +2 -0
  32. package/dist/types/components/environment-asset-photo.d.ts +2 -0
  33. package/dist/types/components/event-asset-banner.d.ts +2 -0
  34. package/dist/types/components/lecturer-card.d.ts +2 -0
  35. package/dist/types/components/portfolio-asset-card.d.ts +2 -0
  36. package/dist/types/components.d.ts +156 -0
  37. package/dist/types/environment-asset-photo.d.ts +11 -0
  38. package/dist/types/event-asset-banner.d.ts +56 -0
  39. package/dist/types/lecturer-card.d.ts +26 -0
  40. package/dist/types/portfolio-asset-card.d.ts +37 -0
  41. package/dist/ui/tag.cjs.js +1 -1
  42. package/dist/ui/tag.es.js +8 -8
  43. package/package.json +1 -1
  44. package/dist/title-tag-card-BUwC66xf.cjs +0 -1
  45. package/dist/{title-tag-card-DrsNewbF.js → title-tag-card-CoPGtka1.js} +1 -1
package/dist/DESIGN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > [!WARNING]
4
4
  > **자동 생성된 파일 — 직접 수정 금지**
5
- > 생성 일시: 2026. 4. 27. 오후 2:16:26
5
+ > 생성 일시: 2026. 4. 28. 오후 4:35:08
6
6
  > 원본 소스: boottent-design v0.1.232
7
7
 
8
8
  ## 1. 개요 (Overview)
@@ -1643,18 +1643,18 @@ import { cn }
1643
1643
  {
1644
1644
  // size : padding, border-radius, 텍스트 크기
1645
1645
  size: {
1646
- sm: "px-1 py-0.5 text-[13px] font-normal",
1647
- md: "px-1 py-1 text-[13px] font-normal",
1648
- lg: "px-2 py-1 text-sm font-medium",
1646
+ sm: "px-2 py-1 text-xs font-normal rounded",
1647
+ md: "px-2.5 py-1 text-sm font-normal rounded-md",
1648
+ lg: "px-3.5 py-1.5 text-base font-medium rounded-lg",
1649
1649
  },
1650
1650
  // shape : round, square, adCard
1651
1651
  shape: {
1652
- square: "rounded",
1652
+ square: "",
1653
1653
  round: "rounded-full",
1654
1654
  },
1655
1655
  // variant : solid과 outline을 결합하여 하나의 값으로 처리
1656
1656
  variant: {
1657
- ad: "rounded-none rounded-bl-xl text-sm font-normal px-2 py-1 absolute top-0 right-0 bg-grey-800 text-white",
1657
+ ad: "rounded-t-none rounded-br-none rounded-bl-xl text-sm font-normal px-2.5 py-1 absolute top-0 right-0 bg-grey-800 text-white",
1658
1658
  "solid-primary-50": "bg-main-50 text-main-600",
1659
1659
  "solid-primary-100": "bg-main-100 text-main-600",
1660
1660
  "solid-primary-600": "bg-main-600 text-main-50",
@@ -0,0 +1,86 @@
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
+ import { c as t } from "./index-BFsbj9HY.js";
3
+ import "./ui/accordion.es.js";
4
+ import "./ui/alert-dialog.es.js";
5
+ import "@radix-ui/react-aspect-ratio";
6
+ import "./ui/avatar.es.js";
7
+ import "./ui/badge.es.js";
8
+ import "./ui/button.es.js";
9
+ import "./ui/calendar.es.js";
10
+ import "./ui/callout.es.js";
11
+ import "./ui/card.es.js";
12
+ import "./ui/checkbox.es.js";
13
+ import "lucide-react";
14
+ import "./ui/command.es.js";
15
+ import "./ui/dialog.es.js";
16
+ import "./ui/dropdown-menu.es.js";
17
+ import "./ui/file-uploader.es.js";
18
+ import "./ui/form.es.js";
19
+ import { Icon as d } from "./ui/icons.es.js";
20
+ import "./ui/input.es.js";
21
+ import "./ui/label.es.js";
22
+ import "./ui/month-picker.es.js";
23
+ import "./ui/multi-select.es.js";
24
+ import "./ui/navigation-menu.es.js";
25
+ import "./ui/popover.es.js";
26
+ import "./ui/radio-group.es.js";
27
+ import "./ui/scroll-area.es.js";
28
+ import "./ui/select.es.js";
29
+ import "./ui/separator.es.js";
30
+ import "@radix-ui/react-slider";
31
+ import "react";
32
+ import "./ui/switch.es.js";
33
+ import "./ui/tabs.es.js";
34
+ import "./ui/tag.es.js";
35
+ import "./ui/text.es.js";
36
+ import "./ui/textarea.es.js";
37
+ import "./ui/toast.es.js";
38
+ import "./ui/toggle.es.js";
39
+ import "./ui/toggle-group.es.js";
40
+ import "./ui/tooltip.es.js";
41
+ import { i as u, r as b } from "./shared-BvvrEmni.js";
42
+ const g = {
43
+ bootcamp: { text: "부트캠프", color: "", background: "" },
44
+ job: { text: "취업꿀팁", color: t.brown[500], background: t.brown[50] },
45
+ study: { text: "개념정리", color: t.lime[500], background: t.lime[50] },
46
+ insight: { text: "인사이트", color: t.blue[500], background: t.blue[50] },
47
+ webtoon: { text: "개발자툰", color: "", background: "" }
48
+ };
49
+ function x({ children: o, backgroundColor: l, color: m }) {
50
+ return /* @__PURE__ */ r(
51
+ "div",
52
+ {
53
+ style: { backgroundColor: l, color: m },
54
+ className: "whitespace-nowrap break-keep rounded bg-grey-100 px-2 py-0.5 text-regular13 text-grey-600 xs:text-regular14",
55
+ children: o
56
+ }
57
+ );
58
+ }
59
+ function io({ article: o, href: l, isYoutube: m, onYoutubeClick: n, renderLink: s }) {
60
+ const c = l ?? o.linkUrl, p = m ?? u(o.linkUrl), e = o.category ? g[o.category] : void 0, a = /* @__PURE__ */ i("div", { className: "flex w-full flex-col", children: [
61
+ /* @__PURE__ */ i("div", { className: "relative w-full shrink-0 overflow-hidden", children: [
62
+ /* @__PURE__ */ r("img", { src: o.imageUrl, alt: "image", className: "aspect-video w-full object-cover", loading: "lazy" }),
63
+ p && /* @__PURE__ */ r("div", { className: "absolute inset-0 flex items-center justify-center bg-white/30", children: /* @__PURE__ */ r(d.Play, { size: "40" }) })
64
+ ] }),
65
+ /* @__PURE__ */ i("div", { className: "flex flex-col items-start gap-2 p-4", children: [
66
+ e && /* @__PURE__ */ r(x, { backgroundColor: e.background || "", color: e.color || "", children: e.text }),
67
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-2", children: [
68
+ /* @__PURE__ */ r("p", { className: "line-clamp-2 text-semibold14 xs:text-semibold16", children: o.title }),
69
+ /* @__PURE__ */ r("p", { className: "line-clamp-3 text-regular13 text-grey-500 xs:text-regular14", children: o.description })
70
+ ] })
71
+ ] })
72
+ ] });
73
+ return /* @__PURE__ */ r("li", { className: "w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-white", "data-asset-id": o.assetId, children: p ? /* @__PURE__ */ r(
74
+ "button",
75
+ {
76
+ type: "button",
77
+ onClick: n,
78
+ className: "block w-full text-left",
79
+ "aria-label": "유튜브 영상 열기",
80
+ children: a
81
+ }
82
+ ) : s ? s({ href: c, children: a }) : b({ href: c, className: "block w-full", children: a }) });
83
+ }
84
+ export {
85
+ io as A
86
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),i=require("./index-DKCqkplO.cjs");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");require("./ui/button.cjs.js");require("./ui/calendar.cjs.js");require("./ui/callout.cjs.js");require("./ui/card.cjs.js");require("./ui/checkbox.cjs.js");require("lucide-react");require("./ui/command.cjs.js");require("./ui/dialog.cjs.js");require("./ui/dropdown-menu.cjs.js");require("./ui/file-uploader.cjs.js");require("./ui/form.cjs.js");const x=require("./ui/icons.cjs.js");require("./ui/input.cjs.js");require("./ui/label.cjs.js");require("./ui/month-picker.cjs.js");require("./ui/multi-select.cjs.js");require("./ui/navigation-menu.cjs.js");require("./ui/popover.cjs.js");require("./ui/radio-group.cjs.js");require("./ui/scroll-area.cjs.js");require("./ui/select.cjs.js");require("./ui/separator.cjs.js");require("@radix-ui/react-slider");require("react");require("./ui/switch.cjs.js");require("./ui/tabs.cjs.js");require("./ui/tag.cjs.js");require("./ui/text.cjs.js");require("./ui/textarea.cjs.js");require("./ui/toast.cjs.js");require("./ui/toggle.cjs.js");require("./ui/toggle-group.cjs.js");require("./ui/tooltip.cjs.js");const n=require("./shared-BI0VJM6L.cjs"),q={bootcamp:{text:"부트캠프",color:"",background:""},job:{text:"취업꿀팁",color:i.colors.brown[500],background:i.colors.brown[50]},study:{text:"개념정리",color:i.colors.lime[500],background:i.colors.lime[50]},insight:{text:"인사이트",color:i.colors.blue[500],background:i.colors.blue[50]},webtoon:{text:"개발자툰",color:"",background:""}};function b({children:r,backgroundColor:s,color:o}){return e.jsx("div",{style:{backgroundColor:s,color:o},className:"whitespace-nowrap break-keep rounded bg-grey-100 px-2 py-0.5 text-regular13 text-grey-600 xs:text-regular14",children:r})}function g({article:r,href:s,isYoutube:o,onYoutubeClick:d,renderLink:u}){const c=s??r.linkUrl,a=o??n.isYoutubeUrl(r.linkUrl),l=r.category?q[r.category]:void 0,t=e.jsxs("div",{className:"flex w-full flex-col",children:[e.jsxs("div",{className:"relative w-full shrink-0 overflow-hidden",children:[e.jsx("img",{src:r.imageUrl,alt:"image",className:"aspect-video w-full object-cover",loading:"lazy"}),a&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-white/30",children:e.jsx(x.Icon.Play,{size:"40"})})]}),e.jsxs("div",{className:"flex flex-col items-start gap-2 p-4",children:[l&&e.jsx(b,{backgroundColor:l.background||"",color:l.color||"",children:l.text}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("p",{className:"line-clamp-2 text-semibold14 xs:text-semibold16",children:r.title}),e.jsx("p",{className:"line-clamp-3 text-regular13 text-grey-500 xs:text-regular14",children:r.description})]})]})]});return e.jsx("li",{className:"w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-white","data-asset-id":r.assetId,children:a?e.jsx("button",{type:"button",onClick:d,className:"block w-full text-left","aria-label":"유튜브 영상 열기",children:t}):u?u({href:c,children:t}):n.renderDefaultAnchor({href:c,className:"block w-full",children:t})})}exports.ArticleAssetCard=g;
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../article-asset-card-CuTpHnoq.cjs");exports.ArticleAssetCard=e.ArticleAssetCard;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { A as s } from "../article-asset-card-B30fjI_9.js";
3
+ export {
4
+ s as ArticleAssetCard
5
+ };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../environment-asset-photo-DMSQ1Ext.cjs");exports.EnvironmentAssetPhoto=e.EnvironmentAssetPhoto;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { E as t } from "../environment-asset-photo-Dk8pKTD3.js";
3
+ export {
4
+ t as EnvironmentAssetPhoto
5
+ };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../event-asset-banner-I7Wv47iX.cjs");exports.EventAssetBanner=e.EventAssetBanner;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { E as s } from "../event-asset-banner-DLK5HF29.js";
3
+ export {
4
+ s as EventAssetBanner
5
+ };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../lecturer-card-DLMnM4fU.cjs");exports.LecturerCard=e.LecturerCard;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { L as t } from "../lecturer-card-DQCphrTD.js";
3
+ export {
4
+ t as LecturerCard
5
+ };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../portfolio-asset-card-DVhoypCN.cjs");exports.PortfolioAssetCard=e.PortfolioAssetCard;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { P as r } from "../portfolio-asset-card-DfO26fVb.js";
3
+ export {
4
+ r as PortfolioAssetCard
5
+ };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../title-tag-card-BUwC66xf.cjs");exports.TitleTagCard=e.TitleTagCard;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../title-tag-card-C-pn0u7P.cjs");exports.TitleTagCard=e.TitleTagCard;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { T as r } from "../title-tag-card-DrsNewbF.js";
2
+ import { T as r } from "../title-tag-card-CoPGtka1.js";
3
3
  export {
4
4
  r as TitleTagCard
5
5
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./event-card-P9DJCupH.cjs"),r=require("./main-banner-image-Ce2c6ODO.cjs"),a=require("./premium-card-BbkNnfVA.cjs"),n=require("./title-tag-card-BUwC66xf.cjs");exports.EventCard=e.EventCard;exports.MainBannerImage=r.MainBannerImage;exports.PremiumCard=a.PremiumCard;exports.TitleTagCard=n.TitleTagCard;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./event-card-P9DJCupH.cjs"),r=require("./main-banner-image-Ce2c6ODO.cjs"),t=require("./premium-card-BbkNnfVA.cjs"),n=require("./title-tag-card-C-pn0u7P.cjs"),a=require("./article-asset-card-CuTpHnoq.cjs"),s=require("./environment-asset-photo-DMSQ1Ext.cjs"),i=require("./event-asset-banner-I7Wv47iX.cjs"),o=require("./lecturer-card-DLMnM4fU.cjs"),d=require("./portfolio-asset-card-DVhoypCN.cjs");exports.EventCard=e.EventCard;exports.MainBannerImage=r.MainBannerImage;exports.PremiumCard=t.PremiumCard;exports.TitleTagCard=n.TitleTagCard;exports.ArticleAssetCard=a.ArticleAssetCard;exports.EnvironmentAssetPhoto=s.EnvironmentAssetPhoto;exports.EventAssetBanner=i.EventAssetBanner;exports.LecturerCard=o.LecturerCard;exports.PortfolioAssetCard=d.PortfolioAssetCard;
@@ -1,11 +1,21 @@
1
1
  "use client";
2
- import { E as e } from "./event-card-DeIzR5uk.js";
3
- import { M as m } from "./main-banner-image-Cwwt6xKE.js";
4
- import { P as n } from "./premium-card-B0RyOTbr.js";
5
- import { T as f } from "./title-tag-card-DrsNewbF.js";
2
+ import { E as o } from "./event-card-DeIzR5uk.js";
3
+ import { M as a } from "./main-banner-image-Cwwt6xKE.js";
4
+ import { P as m } from "./premium-card-B0RyOTbr.js";
5
+ import { T as f } from "./title-tag-card-CoPGtka1.js";
6
+ import { A as x } from "./article-asset-card-B30fjI_9.js";
7
+ import { E as d } from "./environment-asset-photo-Dk8pKTD3.js";
8
+ import { E as C } from "./event-asset-banner-DLK5HF29.js";
9
+ import { L as P } from "./lecturer-card-DQCphrTD.js";
10
+ import { P as c } from "./portfolio-asset-card-DfO26fVb.js";
6
11
  export {
7
- e as EventCard,
8
- m as MainBannerImage,
9
- n as PremiumCard,
12
+ x as ArticleAssetCard,
13
+ d as EnvironmentAssetPhoto,
14
+ C as EventAssetBanner,
15
+ o as EventCard,
16
+ P as LecturerCard,
17
+ a as MainBannerImage,
18
+ c as PortfolioAssetCard,
19
+ m as PremiumCard,
10
20
  f as TitleTagCard
11
21
  };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime");function l({imageUrl:r,index:t,onClick:s}){return e.jsx("li",{children:e.jsx("button",{type:"button",onClick:s,className:"flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg border border-grey-200","aria-label":`학습 환경 사진 ${t+1}번 크게 보기`,children:e.jsx("img",{src:r,alt:`학습 환경 사진 ${t+1}`,className:"h-full w-full object-cover",loading:"lazy"})})})}exports.EnvironmentAssetPhoto=l;
@@ -0,0 +1,16 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ function n({ imageUrl: l, index: r, onClick: t }) {
3
+ return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
4
+ "button",
5
+ {
6
+ type: "button",
7
+ onClick: t,
8
+ className: "flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg border border-grey-200",
9
+ "aria-label": `학습 환경 사진 ${r + 1}번 크게 보기`,
10
+ children: /* @__PURE__ */ e("img", { src: l, alt: `학습 환경 사진 ${r + 1}`, className: "h-full w-full object-cover", loading: "lazy" })
11
+ }
12
+ ) });
13
+ }
14
+ export {
15
+ n as E
16
+ };
@@ -0,0 +1,78 @@
1
+ import { jsxs as t, jsx as l } from "react/jsx-runtime";
2
+ import { c as g } from "./common-C3JaD1vJ.js";
3
+ import { r as w } from "./shared-BvvrEmni.js";
4
+ const y = {
5
+ presentation: { value: "presentation", label: "사전설명회" },
6
+ seminar: { value: "seminar", label: "세미나" },
7
+ preNotice: { value: "preNotice", label: "사전알림" },
8
+ coffeeChat: { value: "coffeeChat", label: "커피챗" }
9
+ };
10
+ function C({ eventValue: o, link: m, buttonClass: b, loading: n, renderLink: i }) {
11
+ var f;
12
+ const { imageUrl: a, eventImageUrl: r, title: s, eventTitle: c, colors: e, linkUrl: h, eventType: d, eventDate: x } = o, v = ((f = y[d]) == null ? void 0 : f.label) ?? d, p = m ?? h, u = /* @__PURE__ */ t("div", { className: "relative flex aspect-[4.5/1] w-full items-center overflow-hidden rounded-[10px] border border-grey-200 xs:aspect-[5/1] sm:aspect-[6/1] md:aspect-[8/1] lg:aspect-[6/1] xl:aspect-[7/1]", children: [
13
+ /* @__PURE__ */ l("div", { className: "relative flex h-full w-1/4 shrink-0 items-center", children: /* @__PURE__ */ l(
14
+ "img",
15
+ {
16
+ src: (r == null ? void 0 : r.pc) || (a == null ? void 0 : a.pc) || "",
17
+ alt: o.companyId,
18
+ className: "absolute h-full w-full object-cover",
19
+ loading: "lazy"
20
+ }
21
+ ) }),
22
+ /* @__PURE__ */ t(
23
+ "div",
24
+ {
25
+ style: {
26
+ backgroundColor: e.background,
27
+ color: e.title
28
+ },
29
+ className: "relative flex h-full w-full grow items-center justify-between gap-[5px] p-5",
30
+ children: [
31
+ /* @__PURE__ */ t("div", { className: "flex h-full grow flex-col items-start justify-center gap-[5px]", children: [
32
+ /* @__PURE__ */ t("div", { style: { color: e.date }, className: "text-medium14", children: [
33
+ v,
34
+ "﹒",
35
+ x.replaceAll("-", ".")
36
+ ] }),
37
+ /* @__PURE__ */ l("div", { style: { color: e.title }, className: "whitespace-nowrap text-semibold14 xs:text-semibold18", children: (c == null ? void 0 : c.pc) || (s == null ? void 0 : s.pc) }),
38
+ /* @__PURE__ */ l(
39
+ "div",
40
+ {
41
+ style: {
42
+ background: `linear-gradient(to right, transparent, ${e.background})`
43
+ },
44
+ className: "absolute right-full h-full w-[2%]"
45
+ }
46
+ )
47
+ ] }),
48
+ /* @__PURE__ */ l(
49
+ "button",
50
+ {
51
+ style: {
52
+ background: e.button,
53
+ color: e.buttonText
54
+ },
55
+ className: g(
56
+ "hidden",
57
+ "rounded",
58
+ "px-3",
59
+ "py-2",
60
+ "text-regular14",
61
+ "md:block",
62
+ "lg:hidden",
63
+ "xl:block",
64
+ "whitespace-nowrap",
65
+ b
66
+ ),
67
+ children: "자세히 보기 ->"
68
+ }
69
+ )
70
+ ]
71
+ }
72
+ )
73
+ ] });
74
+ return i ? i({ href: p, className: "w-full", children: u, disabled: n }) : w({ href: p, className: "w-full", children: u, disabled: n });
75
+ }
76
+ export {
77
+ C as E
78
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),v=require("./common-Ds1lanOg.cjs"),g=require("./shared-BI0VJM6L.cjs"),w={presentation:{value:"presentation",label:"사전설명회"},seminar:{value:"seminar",label:"세미나"},preNotice:{value:"preNotice",label:"사전알림"},coffeeChat:{value:"coffeeChat",label:"커피챗"}};function j({eventValue:c,link:f,buttonClass:h,loading:n,renderLink:o}){var p;const{imageUrl:s,eventImageUrl:t,title:a,eventTitle:r,colors:l,linkUrl:x,eventType:i,eventDate:b}=c,m=((p=w[i])==null?void 0:p.label)??i,d=f??x,u=e.jsxs("div",{className:"relative flex aspect-[4.5/1] w-full items-center overflow-hidden rounded-[10px] border border-grey-200 xs:aspect-[5/1] sm:aspect-[6/1] md:aspect-[8/1] lg:aspect-[6/1] xl:aspect-[7/1]",children:[e.jsx("div",{className:"relative flex h-full w-1/4 shrink-0 items-center",children:e.jsx("img",{src:(t==null?void 0:t.pc)||(s==null?void 0:s.pc)||"",alt:c.companyId,className:"absolute h-full w-full object-cover",loading:"lazy"})}),e.jsxs("div",{style:{backgroundColor:l.background,color:l.title},className:"relative flex h-full w-full grow items-center justify-between gap-[5px] p-5",children:[e.jsxs("div",{className:"flex h-full grow flex-col items-start justify-center gap-[5px]",children:[e.jsxs("div",{style:{color:l.date},className:"text-medium14",children:[m,"﹒",b.replaceAll("-",".")]}),e.jsx("div",{style:{color:l.title},className:"whitespace-nowrap text-semibold14 xs:text-semibold18",children:(r==null?void 0:r.pc)||(a==null?void 0:a.pc)}),e.jsx("div",{style:{background:`linear-gradient(to right, transparent, ${l.background})`},className:"absolute right-full h-full w-[2%]"})]}),e.jsx("button",{style:{background:l.button,color:l.buttonText},className:v.cn("hidden","rounded","px-3","py-2","text-regular14","md:block","lg:hidden","xl:block","whitespace-nowrap",h),children:"자세히 보기 ->"})]})]});return o?o({href:d,className:"w-full",children:u,disabled:n}):g.renderDefaultAnchor({href:d,className:"w-full",children:u,disabled:n})}exports.EventAssetBanner=j;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),d=require("./common-Ds1lanOg.cjs");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");require("./ui/button.cjs.js");require("./ui/calendar.cjs.js");require("./ui/callout.cjs.js");require("./ui/card.cjs.js");require("./ui/checkbox.cjs.js");require("lucide-react");require("./ui/command.cjs.js");require("./ui/dialog.cjs.js");require("./ui/dropdown-menu.cjs.js");require("./ui/file-uploader.cjs.js");require("./ui/form.cjs.js");const g=require("./ui/icons.cjs.js");require("./ui/input.cjs.js");require("./ui/label.cjs.js");require("./ui/month-picker.cjs.js");require("./ui/multi-select.cjs.js");require("./ui/navigation-menu.cjs.js");require("./ui/popover.cjs.js");require("./ui/radio-group.cjs.js");require("./ui/scroll-area.cjs.js");require("./ui/select.cjs.js");require("./ui/separator.cjs.js");require("@radix-ui/react-slider");require("react");require("./ui/switch.cjs.js");require("./ui/tabs.cjs.js");const p=require("./ui/tag.cjs.js");require("./ui/text.cjs.js");require("./ui/textarea.cjs.js");require("./ui/toast.cjs.js");require("./ui/toggle.cjs.js");require("./ui/toggle-group.cjs.js");require("./ui/tooltip.cjs.js");function j({keyPrefix:l,lecturer:r,roleLabel:q,isMobile:a,isExpanded:i,onToggleExpand:m,description:s,idx:x,numberOfLecturers:h}){const t=`${l}-name`,u=`${l}-srdesc`,n=`${l}-content`,c=a&&s.length>3;return e.jsxs("article",{"aria-labelledby":t,className:d.cn("flex h-full w-full items-start gap-5 rounded-[10px] border border-grey-200 px-[30px] py-5",h===1&&"col-span-2"),children:[e.jsx("div",{className:"shrink-0",children:r.imageUrl?e.jsx("div",{className:"relative flex aspect-square w-[60px] items-center justify-center overflow-hidden rounded-full border border-grey-200",children:e.jsx("img",{src:r.imageUrl,alt:`${r.lecturerName} 프로필 이미지`,className:"h-full w-full object-cover",loading:"lazy"})}):e.jsx("div",{className:"relative flex aspect-square w-[60px] items-center justify-center overflow-hidden rounded-full bg-grey-100","aria-label":`${r.lecturerName} 프로필 이미지 없음`,children:e.jsx(g.Icon.Profile,{size:"32",fill:"#A2A3A4","aria-hidden":"true"})})}),e.jsxs("div",{className:"flex w-full flex-col gap-2 text-regular14 text-grey-800",children:[e.jsxs("header",{className:"flex items-center gap-2 text-semibold16",children:[e.jsx("span",{id:t,children:r.lecturerName}),e.jsx(p.Tag,{variant:"solid-secondary-100",size:"sm",className:"px-1 py-0.5",children:q})]}),e.jsx("span",{className:"sr-only",id:u,children:"강사 소개를 목록으로 안내한다."}),e.jsxs("ul",{id:n,"aria-describedby":u,"aria-expanded":c?i:void 0,className:d.cn("relative flex w-full flex-col whitespace-pre-wrap break-keep text-grey-600",a&&i&&"pb-6"),children:[s.map((f,o)=>a&&!i&&o>=3?null:e.jsx("li",{children:f},o)),c&&e.jsx("li",{className:"absolute bottom-0 right-0",children:e.jsxs("button",{type:"button",onClick:()=>m(x),"aria-expanded":i,"aria-controls":n,className:"bg-white pl-1 text-main-600",children:[i?"...정보 숨기기":"...정보 더보기",e.jsx("span",{"aria-hidden":"true",className:"absolute right-full h-full w-8 bg-gradient-to-r from-transparent to-white"})]})})]})]})]})}exports.LecturerCard=j;
@@ -0,0 +1,128 @@
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
+ import { c as d } from "./common-C3JaD1vJ.js";
3
+ import "./ui/accordion.es.js";
4
+ import "./ui/alert-dialog.es.js";
5
+ import "@radix-ui/react-aspect-ratio";
6
+ import "./ui/avatar.es.js";
7
+ import "./ui/badge.es.js";
8
+ import "./ui/button.es.js";
9
+ import "./ui/calendar.es.js";
10
+ import "./ui/callout.es.js";
11
+ import "./ui/card.es.js";
12
+ import "./ui/checkbox.es.js";
13
+ import "lucide-react";
14
+ import "./ui/command.es.js";
15
+ import "./ui/dialog.es.js";
16
+ import "./ui/dropdown-menu.es.js";
17
+ import "./ui/file-uploader.es.js";
18
+ import "./ui/form.es.js";
19
+ import { Icon as x } from "./ui/icons.es.js";
20
+ import "./ui/input.es.js";
21
+ import "./ui/label.es.js";
22
+ import "./ui/month-picker.es.js";
23
+ import "./ui/multi-select.es.js";
24
+ import "./ui/navigation-menu.es.js";
25
+ import "./ui/popover.es.js";
26
+ import "./ui/radio-group.es.js";
27
+ import "./ui/scroll-area.es.js";
28
+ import "./ui/select.es.js";
29
+ import "./ui/separator.es.js";
30
+ import "@radix-ui/react-slider";
31
+ import "react";
32
+ import "./ui/switch.es.js";
33
+ import "./ui/tabs.es.js";
34
+ import { Tag as N } from "./ui/tag.es.js";
35
+ import "./ui/text.es.js";
36
+ import "./ui/textarea.es.js";
37
+ import "./ui/toast.es.js";
38
+ import "./ui/toggle.es.js";
39
+ import "./ui/toggle-group.es.js";
40
+ import "./ui/tooltip.es.js";
41
+ function or({
42
+ keyPrefix: l,
43
+ lecturer: e,
44
+ roleLabel: f,
45
+ isMobile: a,
46
+ isExpanded: t,
47
+ onToggleExpand: h,
48
+ description: o,
49
+ idx: u,
50
+ numberOfLecturers: g
51
+ }) {
52
+ const m = `${l}-name`, p = `${l}-srdesc`, s = `${l}-content`, n = a && o.length > 3;
53
+ return /* @__PURE__ */ i(
54
+ "article",
55
+ {
56
+ "aria-labelledby": m,
57
+ className: d(
58
+ "flex h-full w-full items-start gap-5 rounded-[10px] border border-grey-200 px-[30px] py-5",
59
+ g === 1 && "col-span-2"
60
+ ),
61
+ children: [
62
+ /* @__PURE__ */ r("div", { className: "shrink-0", children: e.imageUrl ? /* @__PURE__ */ r("div", { className: "relative flex aspect-square w-[60px] items-center justify-center overflow-hidden rounded-full border border-grey-200", children: /* @__PURE__ */ r(
63
+ "img",
64
+ {
65
+ src: e.imageUrl,
66
+ alt: `${e.lecturerName} 프로필 이미지`,
67
+ className: "h-full w-full object-cover",
68
+ loading: "lazy"
69
+ }
70
+ ) }) : /* @__PURE__ */ r(
71
+ "div",
72
+ {
73
+ className: "relative flex aspect-square w-[60px] items-center justify-center overflow-hidden rounded-full bg-grey-100",
74
+ "aria-label": `${e.lecturerName} 프로필 이미지 없음`,
75
+ children: /* @__PURE__ */ r(x.Profile, { size: "32", fill: "#A2A3A4", "aria-hidden": "true" })
76
+ }
77
+ ) }),
78
+ /* @__PURE__ */ i("div", { className: "flex w-full flex-col gap-2 text-regular14 text-grey-800", children: [
79
+ /* @__PURE__ */ i("header", { className: "flex items-center gap-2 text-semibold16", children: [
80
+ /* @__PURE__ */ r("span", { id: m, children: e.lecturerName }),
81
+ /* @__PURE__ */ r(N, { variant: "solid-secondary-100", size: "sm", className: "px-1 py-0.5", children: f })
82
+ ] }),
83
+ /* @__PURE__ */ r("span", { className: "sr-only", id: p, children: "강사 소개를 목록으로 안내한다." }),
84
+ /* @__PURE__ */ i(
85
+ "ul",
86
+ {
87
+ id: s,
88
+ "aria-describedby": p,
89
+ "aria-expanded": n ? t : void 0,
90
+ className: d(
91
+ "relative flex w-full flex-col whitespace-pre-wrap break-keep text-grey-600",
92
+ a && t && "pb-6"
93
+ ),
94
+ children: [
95
+ o.map(
96
+ (b, c) => a && !t && c >= 3 ? null : /* @__PURE__ */ r("li", { children: b }, c)
97
+ ),
98
+ n && /* @__PURE__ */ r("li", { className: "absolute bottom-0 right-0", children: /* @__PURE__ */ i(
99
+ "button",
100
+ {
101
+ type: "button",
102
+ onClick: () => h(u),
103
+ "aria-expanded": t,
104
+ "aria-controls": s,
105
+ className: "bg-white pl-1 text-main-600",
106
+ children: [
107
+ t ? "...정보 숨기기" : "...정보 더보기",
108
+ /* @__PURE__ */ r(
109
+ "span",
110
+ {
111
+ "aria-hidden": "true",
112
+ className: "absolute right-full h-full w-8 bg-gradient-to-r from-transparent to-white"
113
+ }
114
+ )
115
+ ]
116
+ }
117
+ ) })
118
+ ]
119
+ }
120
+ )
121
+ ] })
122
+ ]
123
+ }
124
+ );
125
+ }
126
+ export {
127
+ or as L
128
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),m=require("react"),f=require("./index-DKCqkplO.cjs");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");const o=require("./ui/button.cjs.js");require("./ui/calendar.cjs.js");require("./ui/callout.cjs.js");require("./ui/card.cjs.js");require("./ui/checkbox.cjs.js");require("lucide-react");require("./ui/command.cjs.js");require("./ui/dialog.cjs.js");require("./ui/dropdown-menu.cjs.js");require("./ui/file-uploader.cjs.js");require("./ui/form.cjs.js");const g=require("./ui/icons.cjs.js");require("./ui/input.cjs.js");require("./ui/label.cjs.js");require("./ui/month-picker.cjs.js");require("./ui/multi-select.cjs.js");require("./ui/navigation-menu.cjs.js");require("./ui/popover.cjs.js");require("./ui/radio-group.cjs.js");require("./ui/scroll-area.cjs.js");require("./ui/select.cjs.js");require("./ui/separator.cjs.js");require("@radix-ui/react-slider");require("./ui/switch.cjs.js");require("./ui/tabs.cjs.js");require("./ui/tag.cjs.js");require("./ui/text.cjs.js");require("./ui/textarea.cjs.js");require("./ui/toast.cjs.js");require("./ui/toggle.cjs.js");require("./ui/toggle-group.cjs.js");require("./ui/tooltip.cjs.js");const u=require("./shared-BI0VJM6L.cjs");function w({portfolio:l,isYoutube:r,isFooter:i=!0,onYoutubeClick:c,renderLink:s,renderCampLink:h}){const n=r??u.isYoutubeUrl(l.linkUrl),d=m.useMemo(()=>l.tags.split(",").map(t=>t.trim()).filter(Boolean),[l.tags]),a=e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-grey-200 bg-white shadow-sm",children:[e.jsxs("div",{className:"relative w-full overflow-hidden bg-grey-100",style:{aspectRatio:"4/3"},children:[e.jsx("img",{src:l.imageUrl,alt:l.title,loading:"lazy",className:"h-full w-full object-cover"}),n&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30",children:e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-white/90 shadow-md",children:e.jsx(g.Icon.Play,{size:"22",fill:f.colors.grey[800]})})})]}),e.jsxs("div",{className:"flex flex-1 flex-col gap-2.5 p-4",children:[e.jsx("p",{className:"line-clamp-2 text-sm font-semibold leading-snug text-grey-900",children:l.title}),d.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 overflow-hidden",style:{maxHeight:48},children:d.map((t,q)=>e.jsx("span",{className:"max-w-full truncate rounded-md bg-grey-100 px-2 py-0.5 text-[11px] font-medium leading-[17px] text-grey-500",children:t},t+q))})]})]}),x=l.linkUrl;return e.jsxs("div",{className:"flex h-full flex-col gap-2",children:[n?e.jsx("button",{onClick:c,"aria-label":`${l.title} 영상 재생`,className:"w-full flex-1 text-left",children:a}):s?s({href:x,className:"w-full flex-1",children:a}):u.renderDefaultAnchor({href:x,className:"w-full flex-1",children:a}),i&&e.jsx(j,{portfolio:l,renderCampLink:h})]})}const j=m.memo(function({portfolio:r,renderCampLink:i}){if(!(r.classTitle&&r.campId||r.introduction))return null;const s=r.campId?`/camps/${r.campId}`:"";return e.jsxs("div",{className:"flex w-full flex-col items-start gap-1 overflow-hidden text-xs text-grey-600",children:[r.classTitle&&r.campId&&e.jsx(o.Button,{variant:"text",theme:"secondary",className:"w-full justify-start text-xs text-grey-600",children:i?i({href:s,className:"w-full overflow-hidden truncate text-start underline",children:r.classTitle}):u.renderDefaultAnchor({href:s,className:"w-full overflow-hidden truncate text-start underline",children:r.classTitle})}),r.introduction&&e.jsx("p",{children:r.introduction.companyName})]})});exports.PortfolioAssetCard=w;
@@ -0,0 +1,96 @@
1
+ import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
+ import h, { useMemo as x } from "react";
3
+ import { c as g } from "./index-BFsbj9HY.js";
4
+ import "./ui/accordion.es.js";
5
+ import "./ui/alert-dialog.es.js";
6
+ import "@radix-ui/react-aspect-ratio";
7
+ import "./ui/avatar.es.js";
8
+ import "./ui/badge.es.js";
9
+ import { Button as w } from "./ui/button.es.js";
10
+ import "./ui/calendar.es.js";
11
+ import "./ui/callout.es.js";
12
+ import "./ui/card.es.js";
13
+ import "./ui/checkbox.es.js";
14
+ import "lucide-react";
15
+ import "./ui/command.es.js";
16
+ import "./ui/dialog.es.js";
17
+ import "./ui/dropdown-menu.es.js";
18
+ import "./ui/file-uploader.es.js";
19
+ import "./ui/form.es.js";
20
+ import { Icon as v } from "./ui/icons.es.js";
21
+ import "./ui/input.es.js";
22
+ import "./ui/label.es.js";
23
+ import "./ui/month-picker.es.js";
24
+ import "./ui/multi-select.es.js";
25
+ import "./ui/navigation-menu.es.js";
26
+ import "./ui/popover.es.js";
27
+ import "./ui/radio-group.es.js";
28
+ import "./ui/scroll-area.es.js";
29
+ import "./ui/select.es.js";
30
+ import "./ui/separator.es.js";
31
+ import "@radix-ui/react-slider";
32
+ import "./ui/switch.es.js";
33
+ import "./ui/tabs.es.js";
34
+ import "./ui/tag.es.js";
35
+ import "./ui/text.es.js";
36
+ import "./ui/textarea.es.js";
37
+ import "./ui/toast.es.js";
38
+ import "./ui/toggle.es.js";
39
+ import "./ui/toggle-group.es.js";
40
+ import "./ui/tooltip.es.js";
41
+ import { i as y, r as p } from "./shared-BvvrEmni.js";
42
+ function oe({
43
+ portfolio: l,
44
+ isYoutube: e,
45
+ isFooter: a = !0,
46
+ onYoutubeClick: c,
47
+ renderLink: r,
48
+ renderCampLink: u
49
+ }) {
50
+ const n = e ?? y(l.linkUrl), o = x(
51
+ () => l.tags.split(",").map((s) => s.trim()).filter(Boolean),
52
+ [l.tags]
53
+ ), m = /* @__PURE__ */ i("div", { className: "flex h-full flex-col overflow-hidden rounded-2xl border border-grey-200 bg-white shadow-sm", children: [
54
+ /* @__PURE__ */ i("div", { className: "relative w-full overflow-hidden bg-grey-100", style: { aspectRatio: "4/3" }, children: [
55
+ /* @__PURE__ */ t("img", { src: l.imageUrl, alt: l.title, loading: "lazy", className: "h-full w-full object-cover" }),
56
+ n && /* @__PURE__ */ t("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ t("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-white/90 shadow-md", children: /* @__PURE__ */ t(v.Play, { size: "22", fill: g.grey[800] }) }) })
57
+ ] }),
58
+ /* @__PURE__ */ i("div", { className: "flex flex-1 flex-col gap-2.5 p-4", children: [
59
+ /* @__PURE__ */ t("p", { className: "line-clamp-2 text-sm font-semibold leading-snug text-grey-900", children: l.title }),
60
+ o.length > 0 && /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-1 overflow-hidden", style: { maxHeight: 48 }, children: o.map((s, f) => /* @__PURE__ */ t(
61
+ "span",
62
+ {
63
+ className: "max-w-full truncate rounded-md bg-grey-100 px-2 py-0.5 text-[11px] font-medium leading-[17px] text-grey-500",
64
+ children: s
65
+ },
66
+ s + f
67
+ )) })
68
+ ] })
69
+ ] }), d = l.linkUrl;
70
+ return /* @__PURE__ */ i("div", { className: "flex h-full flex-col gap-2", children: [
71
+ n ? /* @__PURE__ */ t("button", { onClick: c, "aria-label": `${l.title} 영상 재생`, className: "w-full flex-1 text-left", children: m }) : r ? r({ href: d, className: "w-full flex-1", children: m }) : p({ href: d, className: "w-full flex-1", children: m }),
72
+ a && /* @__PURE__ */ t(N, { portfolio: l, renderCampLink: u })
73
+ ] });
74
+ }
75
+ const N = h.memo(function({
76
+ portfolio: e,
77
+ renderCampLink: a
78
+ }) {
79
+ if (!(e.classTitle && e.campId || e.introduction)) return null;
80
+ const r = e.campId ? `/camps/${e.campId}` : "";
81
+ return /* @__PURE__ */ i("div", { className: "flex w-full flex-col items-start gap-1 overflow-hidden text-xs text-grey-600", children: [
82
+ e.classTitle && e.campId && /* @__PURE__ */ t(w, { variant: "text", theme: "secondary", className: "w-full justify-start text-xs text-grey-600", children: a ? a({
83
+ href: r,
84
+ className: "w-full overflow-hidden truncate text-start underline",
85
+ children: e.classTitle
86
+ }) : p({
87
+ href: r,
88
+ className: "w-full overflow-hidden truncate text-start underline",
89
+ children: e.classTitle
90
+ }) }),
91
+ e.introduction && /* @__PURE__ */ t("p", { children: e.introduction.companyName })
92
+ ] });
93
+ });
94
+ export {
95
+ oe as P
96
+ };
@@ -0,0 +1 @@
1
+ "use strict";const s=require("react/jsx-runtime"),i=e=>e?e.includes("youtu.be")||e.includes("youtube.com"):!1,c=({href:e,className:n,children:o,disabled:r})=>{const t=e.startsWith("http");return s.jsx("a",{href:e,className:`${r?"cursor-default":"cursor-pointer"} ${n??""}`.trim(),target:t?"_blank":void 0,rel:t?"noreferrer":void 0,onClick:r?u=>u.preventDefault():void 0,"aria-disabled":r||void 0,children:o})};exports.isYoutubeUrl=i;exports.renderDefaultAnchor=c;
@@ -0,0 +1,20 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ const u = (r) => r ? r.includes("youtu.be") || r.includes("youtube.com") : !1, c = ({ href: r, className: o, children: n, disabled: t }) => {
3
+ const e = r.startsWith("http");
4
+ return /* @__PURE__ */ i(
5
+ "a",
6
+ {
7
+ href: r,
8
+ className: `${t ? "cursor-default" : "cursor-pointer"} ${o ?? ""}`.trim(),
9
+ target: e ? "_blank" : void 0,
10
+ rel: e ? "noreferrer" : void 0,
11
+ onClick: t ? (s) => s.preventDefault() : void 0,
12
+ "aria-disabled": t || void 0,
13
+ children: n
14
+ }
15
+ );
16
+ };
17
+ export {
18
+ u as i,
19
+ c as r
20
+ };