boottent-design 0.1.239 → 0.1.240

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 (29) hide show
  1. package/README.md +39 -0
  2. package/dist/DESIGN.md +2 -2
  3. package/dist/{article-asset-card-DDCyeYax.js → article-asset-card-BArztiG9.js} +1 -1
  4. package/dist/{article-asset-card-D_0h2aoW.cjs → article-asset-card-Dfzz2i_R.cjs} +1 -1
  5. package/dist/{company-info-card-ZrmCOUfe.js → company-info-card-CbfighQM.js} +7 -7
  6. package/dist/company-info-card-qkBbW3NR.cjs +1 -0
  7. package/dist/components/article-asset-card.cjs.js +1 -1
  8. package/dist/components/article-asset-card.es.js +1 -1
  9. package/dist/components/company-info-card.cjs.js +1 -1
  10. package/dist/components/company-info-card.es.js +1 -1
  11. package/dist/components/environment-asset-photo.cjs.js +1 -1
  12. package/dist/components/environment-asset-photo.es.js +1 -1
  13. package/dist/components/lecturer-card.cjs.js +1 -1
  14. package/dist/components/lecturer-card.es.js +1 -1
  15. package/dist/components/portfolio-asset-card.cjs.js +1 -1
  16. package/dist/components/portfolio-asset-card.es.js +1 -1
  17. package/dist/components.cjs.js +1 -1
  18. package/dist/components.es.js +5 -5
  19. package/dist/{environment-asset-photo-pHNLfro7.js → environment-asset-photo-BnAny_--.js} +13 -13
  20. package/dist/environment-asset-photo-sckCXEJl.cjs +1 -0
  21. package/dist/foundation.css +110 -0
  22. package/dist/lecturer-card-DBiqWwkS.cjs +1 -0
  23. package/dist/{lecturer-card-BNo89TCP.js → lecturer-card-DxUE7e2-.js} +4 -4
  24. package/dist/{portfolio-asset-card-B6qJWws_.js → portfolio-asset-card-BMp0bpvB.js} +5 -5
  25. package/dist/{portfolio-asset-card-CI1Wnz8B.cjs → portfolio-asset-card-LGVusg6G.cjs} +1 -1
  26. package/package.json +1 -1
  27. package/dist/company-info-card-DB77Q4C_.cjs +0 -1
  28. package/dist/environment-asset-photo-Bv7Sof-X.cjs +0 -1
  29. package/dist/lecturer-card-BzZb7Jzl.cjs +0 -1
package/README.md CHANGED
@@ -8,6 +8,7 @@
8
8
  - [설치](#설치)
9
9
  - [빠른 사용법 (Tailwind 설정 불필요)](#빠른-사용법-tailwind-설정-불필요)
10
10
  - [Tailwind 앱 권장 사용법](#tailwind-앱-권장-사용법)
11
+ - [다른 컴포넌트 라이브러리와 공존 (antd, MUI 등)](#다른-컴포넌트-라이브러리와-공존-antd-mui-등)
11
12
  - [성능 권장 import](#성능-권장-import)
12
13
  - [모듈 import 경로](#모듈-import-경로)
13
14
  - [제작 및 배포](#제작-및-배포)
@@ -98,6 +99,43 @@ export function Sample() {
98
99
  }
99
100
  ```
100
101
 
102
+ > **Note** — `boottent-design/foundation.css`는 자체 스코프된 Tailwind preflight 리셋을 내장하고 있어, 소비자 앱이 `tailwind.config.js`에서 `corePlugins: { preflight: false }`로 설정해도 디자인시스템 컴포넌트는 정상 렌더링됩니다. (antd, MUI 등 다른 컴포넌트 라이브러리와 공존하는 환경 대응.)
103
+
104
+ ### 다른 컴포넌트 라이브러리와 공존 (antd, MUI 등)
105
+
106
+ antd처럼 자체 글로벌 리셋(`<button>`, `<input>` 등)을 가진 컴포넌트 라이브러리는 Tailwind preflight와 충돌할 수 있습니다.
107
+ 디자인시스템은 이 충돌을 피하면서도 자체 컴포넌트는 Storybook과 동일하게 렌더되도록 설계되어 있습니다.
108
+
109
+ - `foundation.css`의 preflight 리셋은 `:where()`로 래핑되어 **specificity 0**으로 출력됩니다.
110
+ - antd의 `.ant-btn` 같이 클래스 기반 selector(specificity ≥ 0,1,0)는 그대로 이깁니다 → antd 컴포넌트는 영향 없음.
111
+ - DS 컴포넌트가 의존하는 `border-style: solid`, `<button>`/`<li>`/`<p>` 기본 리셋은 브라우저 기본값을 정리해 Tailwind 유틸리티(`border`, `rounded-lg` 등)가 의도대로 작동합니다.
112
+
113
+ 권장 설정:
114
+
115
+ ```js
116
+ // tailwind.config.js
117
+ module.exports = {
118
+ presets: [require("boottent-design/tailwind-preset")],
119
+ content: [
120
+ "./src/**/*.{ts,tsx}",
121
+ "./node_modules/boottent-design/dist/**/*.{js,cjs,mjs}",
122
+ ],
123
+ corePlugins: {
124
+ preflight: false, // antd 등과 충돌 회피
125
+ },
126
+ };
127
+ ```
128
+
129
+ 권장 import 순서 (앱 엔트리):
130
+
131
+ ```tsx
132
+ import "antd/dist/antd.css"; // 또는 antd less
133
+ import "./globals.css"; // 앱의 글로벌 스타일
134
+ import "boottent-design/foundation.css"; // DS는 마지막에 둬 변수/리셋이 우선
135
+ ```
136
+
137
+ 이 구성에서 소비자는 추가 조치 없이 DS 컴포넌트가 Storybook과 동일한 외형으로 렌더되는 것을 기대할 수 있습니다.
138
+
101
139
  ### 성능 권장 import
102
140
 
103
141
  소비자 앱 빌드 시간을 줄이려면 배럴 import보다 deep import를 권장합니다.
@@ -128,6 +166,7 @@ export function Sample() {
128
166
  ### 참고
129
167
 
130
168
  - Tailwind를 직접 운영하는 소비자 앱은 `styles.css` 대신 `foundation.css + tailwind-preset` 조합을 권장합니다.
169
+ - `foundation.css`는 self-sufficient합니다. 즉, 토큰(CSS 변수, Pretendard, 커스텀 유틸리티)뿐 아니라 **스코프된 Tailwind preflight 리셋**까지 포함하고 있어 `preflight: false` 환경에서도 DS 컴포넌트가 정상 렌더됩니다. 단 Tailwind 유틸리티 클래스 자체(예: `text-semibold14`, `bg-grey-100`)는 소비자 앱의 Tailwind 빌드에서 생성되므로 `tailwind-preset`과 `content` 설정은 여전히 필요합니다.
131
170
  - `styles.css`는 Tailwind 미사용 소비자를 위한 올인원 엔트리로 계속 유지됩니다.
132
171
 
133
172
  ## 제작 및 배포
package/dist/DESIGN.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  > [!WARNING]
4
4
  > **자동 생성된 파일 — 직접 수정 금지**
5
- > 생성 일시: 2026. 5. 19. 오후 4:21:30
6
- > 원본 소스: boottent-design v0.1.239
5
+ > 생성 일시: 2026. 5. 20. 오후 4:21:53
6
+ > 원본 소스: boottent-design v0.1.240
7
7
 
8
8
  ## 1. 개요 (Overview)
9
9
 
@@ -73,7 +73,7 @@ function ot({
73
73
  return /* @__PURE__ */ r(
74
74
  "div",
75
75
  {
76
- className: "h-full w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-white",
76
+ className: "h-full w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-background",
77
77
  "data-asset-id": t.assetId,
78
78
  children: /* @__PURE__ */ i("div", { className: "flex h-full w-full flex-col", children: [
79
79
  /* @__PURE__ */ i("div", { className: "relative w-full shrink-0 overflow-hidden", children: [
@@ -1 +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 n=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 d=require("./image-loading-DZFBFoVv.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 g({children:r,backgroundColor:o,color:t}){return e.jsx("div",{style:{backgroundColor:o,color:t},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 x({article:r,isYoutube:o=!1,imagePriority:t,imageLoading:l,imageFetchPriority:u,imageDecoding:a}){const s=r.category?q[r.category]:void 0,c=d.getImageLoadingAttributes({imagePriority:t,imageLoading:l,imageFetchPriority:u,imageDecoding:a});return e.jsx("div",{className:"h-full w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-white","data-asset-id":r.assetId,children:e.jsxs("div",{className:"flex h-full 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",...c}),o&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-white/30",children:e.jsx(n.Icon.Play,{size:"40"})})]}),e.jsxs("div",{className:"flex flex-col items-start gap-2 p-4",children:[s&&e.jsx(g,{backgroundColor:s.background||"",color:s.color||"",children:s.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})]})]})]})})}exports.ArticleAssetCard=x;
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 n=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 d=require("./image-loading-DZFBFoVv.cjs"),g={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 q({children:r,backgroundColor:o,color:t}){return e.jsx("div",{style:{backgroundColor:o,color:t},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 x({article:r,isYoutube:o=!1,imagePriority:t,imageLoading:l,imageFetchPriority:u,imageDecoding:a}){const s=r.category?g[r.category]:void 0,c=d.getImageLoadingAttributes({imagePriority:t,imageLoading:l,imageFetchPriority:u,imageDecoding:a});return e.jsx("div",{className:"h-full w-full list-none overflow-hidden rounded-[10px] border border-grey-200 bg-background","data-asset-id":r.assetId,children:e.jsxs("div",{className:"flex h-full 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",...c}),o&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-white/30",children:e.jsx(n.Icon.Play,{size:"40"})})]}),e.jsxs("div",{className:"flex flex-col items-start gap-2 p-4",children:[s&&e.jsx(q,{backgroundColor:s.background||"",color:s.color||"",children:s.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})]})]})]})})}exports.ArticleAssetCard=x;
@@ -42,24 +42,24 @@ function ot({
42
42
  intro: e,
43
43
  roleText: o = "운영",
44
44
  descriptionId: a,
45
- imagePriority: p,
46
- imageLoading: s,
47
- imageFetchPriority: n,
45
+ imagePriority: n,
46
+ imageLoading: p,
47
+ imageFetchPriority: s,
48
48
  imageDecoding: l
49
49
  }) {
50
50
  const { introductionData: i, companyId: c } = e;
51
51
  if (!i) return null;
52
52
  const d = a ?? `company-info-${c}`, h = x({
53
- imagePriority: p,
54
- imageLoading: s,
55
- imageFetchPriority: n,
53
+ imagePriority: n,
54
+ imageLoading: p,
55
+ imageFetchPriority: s,
56
56
  imageDecoding: l
57
57
  });
58
58
  return /* @__PURE__ */ r(
59
59
  g.Outline,
60
60
  {
61
61
  size: "lg",
62
- className: "flex max-h-44 min-h-24 shrink-0 items-stretch justify-between gap-4 md:gap-5",
62
+ className: "flex max-h-44 min-h-24 shrink-0 items-stretch justify-between gap-4 bg-background md:gap-5",
63
63
  children: [
64
64
  /* @__PURE__ */ r("span", { id: d, className: "sr-only", children: [
65
65
  e.companyName,
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const q=require("./common-Ds1lanOg.cjs");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");const h=require("./ui/button.cjs.js");require("./ui/calendar.cjs.js");const x=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");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");const a=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 g=require("./image-loading-DZFBFoVv.cjs");function f({intro:i,roleText:s="운영",descriptionId:n,imagePriority:t,imageLoading:u,imageFetchPriority:l,imageDecoding:c}){const{introductionData:r,companyId:o}=i;if(!r)return null;const d=n??`company-info-${o}`,m=g.getImageLoadingAttributes({imagePriority:t,imageLoading:u,imageFetchPriority:l,imageDecoding:c});return e.jsxs(x.Callout.Outline,{size:"lg",className:"flex max-h-44 min-h-24 shrink-0 items-stretch justify-between gap-4 bg-background md:gap-5",children:[e.jsxs("span",{id:d,className:"sr-only",children:[i.companyName,"은(는) 본 부트캠프의 ",s,"사로, 상세 소개 페이지로 이동할 수 있다."]}),e.jsx("div",{className:"flex aspect-square w-16 shrink-0 items-center justify-center self-start overflow-hidden rounded-full border border-grey-200 bg-white",children:e.jsx("img",{src:r.logo,alt:`${i.companyName} 로고`,width:100,height:100,className:"object-contain",...m})}),e.jsx("div",{className:"min-h-0 flex-1 self-stretch",children:e.jsxs("div",{className:"flex h-full min-h-0 flex-col items-start gap-1 overflow-y-auto pr-1",children:[e.jsxs("div",{className:"flex w-full shrink-0 items-center gap-[5px]",children:[e.jsx(a.Text,{className:"line-clamp-1 font-semibold",children:r.companyName}),e.jsx("span",{"aria-label":"회사 역할",children:s})]}),e.jsx(a.Text,{className:"whitespace-pre-wrap text-start text-grey-600",children:r.title})]})}),e.jsx("span",{className:q.cn(h.buttonVariants({variant:"outline",theme:"secondary"}),"hidden self-center md:inline-flex"),"aria-hidden":"true",children:"자세히 보기"})]})}exports.CompanyInfoCard=f;
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../article-asset-card-D_0h2aoW.cjs");exports.ArticleAssetCard=e.ArticleAssetCard;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../article-asset-card-Dfzz2i_R.cjs");exports.ArticleAssetCard=e.ArticleAssetCard;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { A as s } from "../article-asset-card-DDCyeYax.js";
2
+ import { A as s } from "../article-asset-card-BArztiG9.js";
3
3
  export {
4
4
  s as ArticleAssetCard
5
5
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../company-info-card-DB77Q4C_.cjs");exports.CompanyInfoCard=e.CompanyInfoCard;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../company-info-card-qkBbW3NR.cjs");exports.CompanyInfoCard=e.CompanyInfoCard;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { C as e } from "../company-info-card-ZrmCOUfe.js";
2
+ import { C as e } from "../company-info-card-CbfighQM.js";
3
3
  export {
4
4
  e as CompanyInfoCard
5
5
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../environment-asset-photo-Bv7Sof-X.cjs");exports.EnvironmentAssetPhoto=e.EnvironmentAssetPhoto;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../environment-asset-photo-sckCXEJl.cjs");exports.EnvironmentAssetPhoto=e.EnvironmentAssetPhoto;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { E as t } from "../environment-asset-photo-pHNLfro7.js";
2
+ import { E as t } from "../environment-asset-photo-BnAny_--.js";
3
3
  export {
4
4
  t as EnvironmentAssetPhoto
5
5
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../lecturer-card-BzZb7Jzl.cjs");exports.LecturerCard=e.LecturerCard;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../lecturer-card-DBiqWwkS.cjs");exports.LecturerCard=e.LecturerCard;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { L as t } from "../lecturer-card-BNo89TCP.js";
2
+ import { L as t } from "../lecturer-card-DxUE7e2-.js";
3
3
  export {
4
4
  t as LecturerCard
5
5
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../portfolio-asset-card-CI1Wnz8B.cjs");exports.PortfolioAssetCard=o.PortfolioAssetCard;exports.PortfolioAssetFooter=o.PortfolioAssetFooter;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../portfolio-asset-card-LGVusg6G.cjs");exports.PortfolioAssetCard=o.PortfolioAssetCard;exports.PortfolioAssetFooter=o.PortfolioAssetFooter;
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { P as t, a as e } from "../portfolio-asset-card-B6qJWws_.js";
2
+ import { P as t, a as e } from "../portfolio-asset-card-BMp0bpvB.js";
3
3
  export {
4
4
  t as PortfolioAssetCard,
5
5
  e as PortfolioAssetFooter
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./event-card-CtP5nHb-.cjs"),t=require("./main-banner-image-DrgP1NNQ.cjs"),o=require("./premium-card-2JBwM6aL.cjs"),n=require("./title-tag-card-DfVSv6a_.cjs"),a=require("./article-asset-card-D_0h2aoW.cjs"),s=require("./blog-review-card-ONlNLtgL.cjs"),i=require("./company-info-card-DB77Q4C_.cjs"),d=require("./environment-asset-photo-Bv7Sof-X.cjs"),u=require("./event-asset-banner-B5VlsOHj.cjs"),C=require("./lecturer-card-BzZb7Jzl.cjs"),c=require("./partner-list-card-BFLCQG68.cjs"),e=require("./portfolio-asset-card-CI1Wnz8B.cjs"),l=require("./youtube-video-modal-pooOcDO1.cjs");exports.EventCard=r.EventCard;exports.MainBannerImage=t.MainBannerImage;exports.PremiumCard=o.PremiumCard;exports.TitleTagCard=n.TitleTagCard;exports.ArticleAssetCard=a.ArticleAssetCard;exports.BlogReviewCard=s.BlogReviewCard;exports.CompanyInfoCard=i.CompanyInfoCard;exports.EnvironmentAssetPhoto=d.EnvironmentAssetPhoto;exports.EventAssetBanner=u.EventAssetBanner;exports.LecturerCard=C.LecturerCard;exports.PartnerListCard=c.PartnerListCard;exports.PortfolioAssetCard=e.PortfolioAssetCard;exports.PortfolioAssetFooter=e.PortfolioAssetFooter;exports.YoutubeVideoModal=l.YoutubeVideoModal;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./event-card-CtP5nHb-.cjs"),t=require("./main-banner-image-DrgP1NNQ.cjs"),o=require("./premium-card-2JBwM6aL.cjs"),n=require("./title-tag-card-DfVSv6a_.cjs"),a=require("./article-asset-card-Dfzz2i_R.cjs"),s=require("./blog-review-card-ONlNLtgL.cjs"),i=require("./company-info-card-qkBbW3NR.cjs"),d=require("./environment-asset-photo-sckCXEJl.cjs"),u=require("./event-asset-banner-B5VlsOHj.cjs"),C=require("./lecturer-card-DBiqWwkS.cjs"),c=require("./partner-list-card-BFLCQG68.cjs"),e=require("./portfolio-asset-card-LGVusg6G.cjs"),l=require("./youtube-video-modal-pooOcDO1.cjs");exports.EventCard=r.EventCard;exports.MainBannerImage=t.MainBannerImage;exports.PremiumCard=o.PremiumCard;exports.TitleTagCard=n.TitleTagCard;exports.ArticleAssetCard=a.ArticleAssetCard;exports.BlogReviewCard=s.BlogReviewCard;exports.CompanyInfoCard=i.CompanyInfoCard;exports.EnvironmentAssetPhoto=d.EnvironmentAssetPhoto;exports.EventAssetBanner=u.EventAssetBanner;exports.LecturerCard=C.LecturerCard;exports.PartnerListCard=c.PartnerListCard;exports.PortfolioAssetCard=e.PortfolioAssetCard;exports.PortfolioAssetFooter=e.PortfolioAssetFooter;exports.YoutubeVideoModal=l.YoutubeVideoModal;
@@ -3,14 +3,14 @@ import { E as e } from "./event-card-DmVD1K4_.js";
3
3
  import { M as t } from "./main-banner-image-xEWh1NVs.js";
4
4
  import { P as m } from "./premium-card-TDA3lplm.js";
5
5
  import { T as n } from "./title-tag-card-D_jVbsE3.js";
6
- import { A as x } from "./article-asset-card-DDCyeYax.js";
6
+ import { A as x } from "./article-asset-card-BArztiG9.js";
7
7
  import { B as i } from "./blog-review-card-4XlcSDgR.js";
8
- import { C as P } from "./company-info-card-ZrmCOUfe.js";
9
- import { E as A } from "./environment-asset-photo-pHNLfro7.js";
8
+ import { C as P } from "./company-info-card-CbfighQM.js";
9
+ import { E as A } from "./environment-asset-photo-BnAny_--.js";
10
10
  import { E as u } from "./event-asset-banner-Ciodpld1.js";
11
- import { L as B } from "./lecturer-card-BNo89TCP.js";
11
+ import { L as B } from "./lecturer-card-DxUE7e2-.js";
12
12
  import { P as g } from "./partner-list-card-CICvp20I.js";
13
- import { P as M, a as T } from "./portfolio-asset-card-B6qJWws_.js";
13
+ import { P as M, a as T } from "./portfolio-asset-card-BMp0bpvB.js";
14
14
  import { Y } from "./youtube-video-modal-CENnr9lf.js";
15
15
  export {
16
16
  x as ArticleAssetCard,
@@ -1,26 +1,26 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { g as c } from "./image-loading-BX5rKZfC.js";
3
- function d({
3
+ function m({
4
4
  imageUrl: r,
5
5
  index: t,
6
6
  onClick: o,
7
- imagePriority: l,
8
- imageLoading: s,
9
- imageFetchPriority: a,
10
- imageDecoding: i
7
+ imagePriority: a,
8
+ imageLoading: l,
9
+ imageFetchPriority: n,
10
+ imageDecoding: s
11
11
  }) {
12
- const n = c({
13
- imagePriority: l,
14
- imageLoading: s,
15
- imageFetchPriority: a,
16
- imageDecoding: i
12
+ const i = c({
13
+ imagePriority: a,
14
+ imageLoading: l,
15
+ imageFetchPriority: n,
16
+ imageDecoding: s
17
17
  });
18
18
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
19
19
  "button",
20
20
  {
21
21
  type: "button",
22
22
  onClick: o,
23
- className: "flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg border border-grey-200",
23
+ className: "flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg border border-grey-200 bg-background",
24
24
  "aria-label": `학습 환경 사진 ${t + 1}번 크게 보기`,
25
25
  children: /* @__PURE__ */ e(
26
26
  "img",
@@ -28,12 +28,12 @@ function d({
28
28
  src: r,
29
29
  alt: `학습 환경 사진 ${t + 1}`,
30
30
  className: "h-full w-full object-cover",
31
- ...n
31
+ ...i
32
32
  }
33
33
  )
34
34
  }
35
35
  ) });
36
36
  }
37
37
  export {
38
- d as E
38
+ m as E
39
39
  };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime"),u=require("./image-loading-DZFBFoVv.cjs");function c({imageUrl:r,index:t,onClick:n,imagePriority:i,imageLoading:o,imageFetchPriority:s,imageDecoding:a}){const l=u.getImageLoadingAttributes({imagePriority:i,imageLoading:o,imageFetchPriority:s,imageDecoding:a});return e.jsx("li",{children:e.jsx("button",{type:"button",onClick:n,className:"flex aspect-square w-full items-center justify-center overflow-hidden rounded-lg border border-grey-200 bg-background","aria-label":`학습 환경 사진 ${t+1}번 크게 보기`,children:e.jsx("img",{src:r,alt:`학습 환경 사진 ${t+1}`,className:"h-full w-full object-cover",...l})})})}exports.EnvironmentAssetPhoto=c;
@@ -1,3 +1,113 @@
1
+ /* Scoped Tailwind preflight equivalent.
2
+ Uses :where() for zero specificity so consumers' own rules win naturally.
3
+ Provides the base reset that DS components assume (Storybook gets it via @tailwind base). */
4
+
5
+ *,
6
+ ::before,
7
+ ::after {
8
+ box-sizing: border-box;
9
+ border-width: 0;
10
+ border-style: solid;
11
+ border-color: currentColor;
12
+ }
13
+
14
+ :where(html) {
15
+ -webkit-text-size-adjust: 100%;
16
+ -moz-tab-size: 4;
17
+ tab-size: 4;
18
+ line-height: 1.5;
19
+ }
20
+
21
+ :where(body) {
22
+ margin: 0;
23
+ line-height: inherit;
24
+ }
25
+
26
+ :where(hr) {
27
+ height: 0;
28
+ color: inherit;
29
+ border-top-width: 1px;
30
+ }
31
+
32
+ :where(h1, h2, h3, h4, h5, h6) {
33
+ font-size: inherit;
34
+ font-weight: inherit;
35
+ margin: 0;
36
+ }
37
+
38
+ :where(p, blockquote, dl, dd, figure) {
39
+ margin: 0;
40
+ }
41
+
42
+ :where(ol, ul, menu) {
43
+ list-style: none;
44
+ margin: 0;
45
+ padding: 0;
46
+ }
47
+
48
+ :where(a) {
49
+ color: inherit;
50
+ text-decoration: inherit;
51
+ }
52
+
53
+ :where(b, strong) {
54
+ font-weight: bolder;
55
+ }
56
+
57
+ :where(button, input, optgroup, select, textarea) {
58
+ font-family: inherit;
59
+ font-size: 100%;
60
+ font-weight: inherit;
61
+ line-height: inherit;
62
+ color: inherit;
63
+ margin: 0;
64
+ padding: 0;
65
+ }
66
+
67
+ :where(button, [type="button"], [type="reset"], [type="submit"]) {
68
+ -webkit-appearance: button;
69
+ background-color: transparent;
70
+ background-image: none;
71
+ cursor: pointer;
72
+ }
73
+
74
+ :where(img, svg, video, canvas, audio, iframe, embed, object) {
75
+ display: block;
76
+ vertical-align: middle;
77
+ }
78
+
79
+ :where(img, video) {
80
+ max-width: 100%;
81
+ height: auto;
82
+ }
83
+
84
+ :where(table) {
85
+ text-indent: 0;
86
+ border-color: inherit;
87
+ border-collapse: collapse;
88
+ }
89
+
90
+ :where(fieldset) {
91
+ margin: 0;
92
+ padding: 0;
93
+ }
94
+
95
+ :where(legend) {
96
+ padding: 0;
97
+ }
98
+
99
+ :where(textarea) {
100
+ resize: vertical;
101
+ }
102
+
103
+ :where([role="button"], button) {
104
+ cursor: pointer;
105
+ }
106
+
107
+ :where(:disabled) {
108
+ cursor: default;
109
+ }
110
+
1
111
  @font-face {
2
112
  font-family: "Pretendard";
3
113
  src:
@@ -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 w=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 v=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 y=require("./image-loading-DZFBFoVv.cjs");function L({keyPrefix:a,lecturer:r,roleLabel:q,isMobile:s,isExpanded:i,onToggleExpand:m,description:l,idx:g,numberOfLecturers:x,imagePriority:h,imageLoading:f,imageFetchPriority:b,imageDecoding:p}){const t=`${a}-name`,u=`${a}-srdesc`,n=`${a}-content`,c=s&&l.length>3,j=y.getImageLoadingAttributes({imagePriority:h,imageLoading:f,imageFetchPriority:b,imageDecoding:p});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 bg-background px-[30px] py-5",x===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",...j})}):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(w.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(v.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",s&&i&&"pb-6"),children:[l.map((N,o)=>s&&!i&&o>=3?null:e.jsx("li",{children:N},o)),c&&e.jsx("li",{className:"absolute bottom-0 right-0",children:e.jsxs("button",{type:"button",onClick:()=>m(g),"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=L;
@@ -45,9 +45,9 @@ function ur({
45
45
  roleLabel: u,
46
46
  isMobile: o,
47
47
  isExpanded: t,
48
- onToggleExpand: f,
48
+ onToggleExpand: g,
49
49
  description: l,
50
- idx: g,
50
+ idx: f,
51
51
  numberOfLecturers: h,
52
52
  imagePriority: b,
53
53
  imageLoading: x,
@@ -65,7 +65,7 @@ function ur({
65
65
  {
66
66
  "aria-labelledby": m,
67
67
  className: d(
68
- "flex h-full w-full items-start gap-5 rounded-[10px] border border-grey-200 px-[30px] py-5",
68
+ "flex h-full w-full items-start gap-5 rounded-[10px] border border-grey-200 bg-background px-[30px] py-5",
69
69
  h === 1 && "col-span-2"
70
70
  ),
71
71
  children: [
@@ -109,7 +109,7 @@ function ur({
109
109
  "button",
110
110
  {
111
111
  type: "button",
112
- onClick: () => f(g),
112
+ onClick: () => g(f),
113
113
  "aria-expanded": t,
114
114
  "aria-controls": s,
115
115
  className: "bg-white pl-1 text-main-600",
@@ -18,7 +18,7 @@ import "./ui/dialog.es.js";
18
18
  import "./ui/dropdown-menu.es.js";
19
19
  import "./ui/file-uploader.es.js";
20
20
  import "./ui/form.es.js";
21
- import { Icon as w } from "./ui/icons.es.js";
21
+ import { Icon as v } from "./ui/icons.es.js";
22
22
  import "./ui/input.es.js";
23
23
  import "./ui/label.es.js";
24
24
  import "./ui/month-picker.es.js";
@@ -39,7 +39,7 @@ import "./ui/toast.es.js";
39
39
  import "./ui/toggle.es.js";
40
40
  import "./ui/toggle-group.es.js";
41
41
  import "./ui/tooltip.es.js";
42
- import { g as v } from "./image-loading-BX5rKZfC.js";
42
+ import { g as w } from "./image-loading-BX5rKZfC.js";
43
43
  function ot({
44
44
  portfolio: i,
45
45
  isYoutube: t = !1,
@@ -51,16 +51,16 @@ function ot({
51
51
  const o = u(
52
52
  () => i.tags.split(",").map((l) => l.trim()).filter(Boolean),
53
53
  [i.tags]
54
- ), d = 48, p = v({
54
+ ), d = 48, p = w({
55
55
  imagePriority: s,
56
56
  imageLoading: a,
57
57
  imageFetchPriority: r,
58
58
  imageDecoding: c
59
59
  });
60
- return /* @__PURE__ */ m("div", { className: "flex h-full flex-col overflow-hidden rounded-2xl border border-grey-200 bg-white shadow-sm", children: [
60
+ return /* @__PURE__ */ m("div", { className: "flex h-full flex-col overflow-hidden rounded-2xl border border-grey-200 bg-background shadow-sm", children: [
61
61
  /* @__PURE__ */ m("div", { className: "relative w-full overflow-hidden bg-grey-100", style: { aspectRatio: "4/3" }, children: [
62
62
  /* @__PURE__ */ e("img", { src: i.imageUrl, alt: i.title, className: "h-full w-full object-cover", ...p }),
63
- t && /* @__PURE__ */ e("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ e("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-white/90 shadow-md", children: /* @__PURE__ */ e(w.Play, { size: "22", fill: g.grey[800] }) }) })
63
+ t && /* @__PURE__ */ e("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ e("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-white/90 shadow-md", children: /* @__PURE__ */ e(v.Play, { size: "22", fill: g.grey[800] }) }) })
64
64
  ] }),
65
65
  /* @__PURE__ */ m("div", { className: "flex flex-1 flex-col gap-2.5 p-4", children: [
66
66
  /* @__PURE__ */ e("p", { className: "line-clamp-2 text-sm font-semibold leading-snug text-grey-900", children: i.title }),
@@ -1 +1 @@
1
- "use strict";const e=require("react/jsx-runtime"),a=require("react"),x=require("./index-DKCqkplO.cjs");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const q=require("./common-Ds1lanOg.cjs");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");const g=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 f=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 h=require("./image-loading-DZFBFoVv.cjs");function j({portfolio:i,isYoutube:r=!1,imagePriority:l,imageLoading:n,imageFetchPriority:s,imageDecoding:c}){const u=a.useMemo(()=>i.tags.split(",").map(t=>t.trim()).filter(Boolean),[i.tags]),d=48,o=h.getImageLoadingAttributes({imagePriority:l,imageLoading:n,imageFetchPriority:s,imageDecoding:c});return 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:i.imageUrl,alt:i.title,className:"h-full w-full object-cover",...o}),r&&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(f.Icon.Play,{size:"22",fill:x.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:i.title}),u.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 overflow-hidden",style:{maxHeight:d},children:u.map((t,m)=>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+m))})]})]})}const w=a.memo(function({portfolio:r,campTitle:l}){if(!(r.classTitle&&r.campId||r.introduction))return null;const s=l??r.classTitle;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("div",{className:q.cn(g.buttonVariants({variant:"text",theme:"secondary"}),"w-full justify-start text-xs text-grey-600"),children:a.isValidElement(s)?s:e.jsx("span",{className:"w-full overflow-hidden truncate text-start underline",children:s})}),r.introduction&&e.jsx("p",{children:r.introduction.companyName})]})});exports.PortfolioAssetCard=j;exports.PortfolioAssetFooter=w;
1
+ "use strict";const e=require("react/jsx-runtime"),a=require("react"),x=require("./index-DKCqkplO.cjs");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const q=require("./common-Ds1lanOg.cjs");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");const g=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 f=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 h=require("./image-loading-DZFBFoVv.cjs");function j({portfolio:i,isYoutube:r=!1,imagePriority:l,imageLoading:n,imageFetchPriority:s,imageDecoding:c}){const u=a.useMemo(()=>i.tags.split(",").map(t=>t.trim()).filter(Boolean),[i.tags]),d=48,o=h.getImageLoadingAttributes({imagePriority:l,imageLoading:n,imageFetchPriority:s,imageDecoding:c});return e.jsxs("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-grey-200 bg-background shadow-sm",children:[e.jsxs("div",{className:"relative w-full overflow-hidden bg-grey-100",style:{aspectRatio:"4/3"},children:[e.jsx("img",{src:i.imageUrl,alt:i.title,className:"h-full w-full object-cover",...o}),r&&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(f.Icon.Play,{size:"22",fill:x.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:i.title}),u.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 overflow-hidden",style:{maxHeight:d},children:u.map((t,m)=>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+m))})]})]})}const b=a.memo(function({portfolio:r,campTitle:l}){if(!(r.classTitle&&r.campId||r.introduction))return null;const s=l??r.classTitle;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("div",{className:q.cn(g.buttonVariants({variant:"text",theme:"secondary"}),"w-full justify-start text-xs text-grey-600"),children:a.isValidElement(s)?s:e.jsx("span",{className:"w-full overflow-hidden truncate text-start underline",children:s})}),r.introduction&&e.jsx("p",{children:r.introduction.companyName})]})});exports.PortfolioAssetCard=j;exports.PortfolioAssetFooter=b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boottent-design",
3
- "version": "0.1.239",
3
+ "version": "0.1.240",
4
4
  "description": "부트텐트 디자인시스템 라이브러리",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const q=require("./common-Ds1lanOg.cjs");require("@radix-ui/react-aspect-ratio");require("./ui/avatar.cjs.js");require("./ui/badge.cjs.js");const h=require("./ui/button.cjs.js");require("./ui/calendar.cjs.js");const x=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");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");const t=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 f=require("./image-loading-DZFBFoVv.cjs");function g({intro:i,roleText:s="운영",descriptionId:a,imagePriority:n,imageLoading:u,imageFetchPriority:l,imageDecoding:c}){const{introductionData:r,companyId:o}=i;if(!r)return null;const m=a??`company-info-${o}`,d=f.getImageLoadingAttributes({imagePriority:n,imageLoading:u,imageFetchPriority:l,imageDecoding:c});return e.jsxs(x.Callout.Outline,{size:"lg",className:"flex max-h-44 min-h-24 shrink-0 items-stretch justify-between gap-4 md:gap-5",children:[e.jsxs("span",{id:m,className:"sr-only",children:[i.companyName,"은(는) 본 부트캠프의 ",s,"사로, 상세 소개 페이지로 이동할 수 있다."]}),e.jsx("div",{className:"flex aspect-square w-16 shrink-0 items-center justify-center self-start overflow-hidden rounded-full border border-grey-200 bg-white",children:e.jsx("img",{src:r.logo,alt:`${i.companyName} 로고`,width:100,height:100,className:"object-contain",...d})}),e.jsx("div",{className:"min-h-0 flex-1 self-stretch",children:e.jsxs("div",{className:"flex h-full min-h-0 flex-col items-start gap-1 overflow-y-auto pr-1",children:[e.jsxs("div",{className:"flex w-full shrink-0 items-center gap-[5px]",children:[e.jsx(t.Text,{className:"line-clamp-1 font-semibold",children:r.companyName}),e.jsx("span",{"aria-label":"회사 역할",children:s})]}),e.jsx(t.Text,{className:"whitespace-pre-wrap text-start text-grey-600",children:r.title})]})}),e.jsx("span",{className:q.cn(h.buttonVariants({variant:"outline",theme:"secondary"}),"hidden self-center md:inline-flex"),"aria-hidden":"true",children:"자세히 보기"})]})}exports.CompanyInfoCard=g;
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),u=require("./image-loading-DZFBFoVv.cjs");function c({imageUrl:r,index:t,onClick:i,imagePriority:n,imageLoading:o,imageFetchPriority:s,imageDecoding:a}){const l=u.getImageLoadingAttributes({imagePriority:n,imageLoading:o,imageFetchPriority:s,imageDecoding:a});return e.jsx("li",{children:e.jsx("button",{type:"button",onClick:i,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",...l})})})}exports.EnvironmentAssetPhoto=c;
@@ -1 +0,0 @@
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 w=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 v=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 y=require("./image-loading-DZFBFoVv.cjs");function L({keyPrefix:a,lecturer:r,roleLabel:q,isMobile:s,isExpanded:i,onToggleExpand:m,description:l,idx:g,numberOfLecturers:x,imagePriority:h,imageLoading:f,imageFetchPriority:p,imageDecoding:b}){const t=`${a}-name`,u=`${a}-srdesc`,n=`${a}-content`,c=s&&l.length>3,j=y.getImageLoadingAttributes({imagePriority:h,imageLoading:f,imageFetchPriority:p,imageDecoding:b});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",x===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",...j})}):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(w.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(v.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",s&&i&&"pb-6"),children:[l.map((N,o)=>s&&!i&&o>=3?null:e.jsx("li",{children:N},o)),c&&e.jsx("li",{className:"absolute bottom-0 right-0",children:e.jsxs("button",{type:"button",onClick:()=>m(g),"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=L;