boottent-design 0.1.252 → 0.1.254

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.
package/dist/DESIGN.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  > [!WARNING]
4
4
  > **자동 생성된 파일 — 직접 수정 금지**
5
- > 생성 일시: 2026. 5. 22. 오후 2:27:57
6
- > 원본 소스: boottent-design v0.1.252
5
+ > 생성 일시: 2026. 5. 22. 오후 4:30:03
6
+ > 원본 소스: boottent-design v0.1.254
7
7
 
8
8
  ## 1. 개요 (Overview)
9
9
 
@@ -0,0 +1,177 @@
1
+ import { jsx as r, jsxs as t } from "react/jsx-runtime";
2
+ import "./ui/accordion.es.js";
3
+ import "./ui/alert-dialog.es.js";
4
+ import { c as u } from "./common-C3JaD1vJ.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 "./ui/input.es.js";
20
+ import "./ui/label.es.js";
21
+ import "./ui/month-picker.es.js";
22
+ import "./ui/multi-select.es.js";
23
+ import "./ui/navigation-menu.es.js";
24
+ import "./ui/popover.es.js";
25
+ import "./ui/radio-group.es.js";
26
+ import "./ui/scroll-area.es.js";
27
+ import "./ui/select.es.js";
28
+ import "./ui/separator.es.js";
29
+ import "@radix-ui/react-slider";
30
+ import "react";
31
+ import "./ui/switch.es.js";
32
+ import "./ui/tabs.es.js";
33
+ import { Tag as Q } from "./ui/tag.es.js";
34
+ import "./ui/text.es.js";
35
+ import "./ui/textarea.es.js";
36
+ import "./ui/toast.es.js";
37
+ import "./ui/toggle.es.js";
38
+ import "./ui/toggle-group.es.js";
39
+ import "./ui/tooltip.es.js";
40
+ import { g as R } from "./image-loading-BX5rKZfC.js";
41
+ import { d as V, a as X, c as Y } from "./camp-card-format-QrakDFC6.js";
42
+ function Z({ tag: e }) {
43
+ return /* @__PURE__ */ r("li", { className: "rounded", children: /* @__PURE__ */ r(
44
+ "div",
45
+ {
46
+ style: {
47
+ color: e.color,
48
+ backgroundColor: e.background,
49
+ border: `1px solid ${e.border ?? "transparent"}`
50
+ },
51
+ className: u("inline-block whitespace-nowrap rounded px-1 py-0.5 text-regular13", e.className),
52
+ children: e.text
53
+ }
54
+ ) });
55
+ }
56
+ function p(e, o = "sm") {
57
+ return /* @__PURE__ */ r(
58
+ Q,
59
+ {
60
+ style: {
61
+ background: e.background,
62
+ color: e.color,
63
+ border: `1px solid ${e.border ?? e.background ?? "transparent"}`
64
+ },
65
+ size: o,
66
+ variant: o === "ad" ? "ad" : void 0,
67
+ className: e.className,
68
+ children: e.text
69
+ }
70
+ );
71
+ }
72
+ function Ge({
73
+ brandName: e,
74
+ title: o,
75
+ batchName: f = "",
76
+ imageUrl: i,
77
+ imageAlt: h = "header image",
78
+ tuitionText: x,
79
+ locationText: v,
80
+ scheduleText: w,
81
+ startDate: b,
82
+ endDate: N,
83
+ period: g,
84
+ tuition: y,
85
+ earlyBirdTuition: k,
86
+ earlyBirdEndDate: C,
87
+ isFree: T,
88
+ onoffText: $,
89
+ cityLabels: j,
90
+ costOptionText: L,
91
+ tags: a = [],
92
+ statusBadge: n,
93
+ adBadge: m,
94
+ adTitle: s,
95
+ isAd: S = !1,
96
+ className: A,
97
+ style: B,
98
+ bookmarkSlot: D,
99
+ latestBatchSlot: E,
100
+ imageOverlaySlot: I,
101
+ imageWrapper: c,
102
+ imagePriority: q,
103
+ imageLoading: z,
104
+ imageFetchPriority: F,
105
+ imageDecoding: G
106
+ }) {
107
+ const H = R({
108
+ imagePriority: q,
109
+ imageLoading: z,
110
+ imageFetchPriority: F,
111
+ imageDecoding: G
112
+ }), J = `${o} ${f || ""}`.trim(), K = x ?? L ?? V({
113
+ tuition: y ?? void 0,
114
+ isFree: T,
115
+ earlyBirdTuition: k ?? void 0,
116
+ earlyBirdEndDate: C ?? void 0
117
+ }), M = v ?? X({
118
+ onoffText: $,
119
+ cityLabels: j,
120
+ format: "desktop"
121
+ }), O = w ?? Y({
122
+ startDate: b,
123
+ endDate: N,
124
+ period: g
125
+ }), l = i ? /* @__PURE__ */ r("button", { type: "button", className: "absolute inset-0", children: /* @__PURE__ */ r(
126
+ "img",
127
+ {
128
+ src: i,
129
+ alt: h,
130
+ className: "h-full w-full object-cover transition-all hover:scale-110",
131
+ ...H
132
+ }
133
+ ) }) : null;
134
+ return /* @__PURE__ */ t(
135
+ "div",
136
+ {
137
+ className: u(
138
+ "bt-ds-surface bt-ds-text-reset relative flex h-full w-full flex-col overflow-hidden rounded-lg border border-grey-200 bg-white",
139
+ A
140
+ ),
141
+ style: B,
142
+ children: [
143
+ /* @__PURE__ */ t("div", { className: "relative aspect-[9/5] w-full shrink-0", children: [
144
+ /* @__PURE__ */ t("div", { className: "absolute inset-0 z-0 flex items-center justify-center overflow-hidden", children: [
145
+ l ? c ? c(l) : l : null,
146
+ I,
147
+ /* @__PURE__ */ t("div", { className: "absolute bottom-2 right-2 flex flex-col items-end gap-1", children: [
148
+ n ? p(n, "sm") : null,
149
+ E
150
+ ] })
151
+ ] }),
152
+ m ? p(m, "ad") : null,
153
+ D
154
+ ] }),
155
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-2 p-4 text-regular14", children: [
156
+ /* @__PURE__ */ r("div", { children: e }),
157
+ /* @__PURE__ */ t("div", { className: "flex w-full flex-col gap-3", children: [
158
+ /* @__PURE__ */ r("div", { className: "line-clamp-3 w-full text-semibold16 font-medium", children: J }),
159
+ S && s ? /* @__PURE__ */ r("div", { className: "line-clamp-2 break-keep rounded-md bg-yellow-400/50 px-2 py-1 text-grey-800", children: s }) : null,
160
+ a.length > 0 ? /* @__PURE__ */ r("ul", { className: "flex w-full max-w-full shrink-0 grow-0 flex-wrap justify-start gap-[5px] overflow-x-hidden whitespace-normal", children: a.map((d, P) => /* @__PURE__ */ r(Z, { tag: d }, `${String(d.text)}-${P}`)) }) : null
161
+ ] }),
162
+ /* @__PURE__ */ t("div", { className: "flex w-full flex-col gap-2 text-regular13", children: [
163
+ /* @__PURE__ */ t("p", { className: "w-full overflow-hidden truncate whitespace-nowrap", children: [
164
+ /* @__PURE__ */ r("span", { children: K }),
165
+ " · ",
166
+ /* @__PURE__ */ r("span", { children: M })
167
+ ] }),
168
+ /* @__PURE__ */ r("p", { className: "w-full overflow-hidden truncate whitespace-nowrap", children: O })
169
+ ] })
170
+ ] })
171
+ ]
172
+ }
173
+ );
174
+ }
175
+ export {
176
+ Ge as C
177
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const m=require("./common-Ds1lanOg.cjs");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");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 O=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 P=require("./image-loading-DZFBFoVv.cjs"),s=require("./camp-card-format-rjZZu4G6.cjs");function Q({tag:r}){return e.jsx("li",{className:"rounded",children:e.jsx("div",{style:{color:r.color,backgroundColor:r.background,border:`1px solid ${r.border??"transparent"}`},className:m.cn("inline-block whitespace-nowrap rounded px-1 py-0.5 text-regular13",r.className),children:r.text})})}function x(r,i="sm"){return e.jsx(O.Tag,{style:{background:r.background,color:r.color,border:`1px solid ${r.border??r.background??"transparent"}`},size:i,variant:i==="ad"?"ad":void 0,className:r.className,children:r.text})}function V({brandName:r,title:i,batchName:f="",imageUrl:a,imageAlt:q="header image",tuitionText:h,locationText:p,scheduleText:v,startDate:w,endDate:g,period:j,tuition:b,earlyBirdTuition:N,earlyBirdEndDate:C,isFree:y,onoffText:k,cityLabels:T,costOptionText:L,tags:t=[],statusBadge:n,adBadge:o,adTitle:u,isAd:$=!1,className:S,style:A,bookmarkSlot:B,latestBatchSlot:D,imageOverlaySlot:E,imageWrapper:c,imagePriority:F,imageLoading:I,imageFetchPriority:R,imageDecoding:_}){const z=P.getImageLoadingAttributes({imagePriority:F,imageLoading:I,imageFetchPriority:R,imageDecoding:_}),G=`${i} ${f||""}`.trim(),H=h??L??s.formatCampCardTuitionText({tuition:b??void 0,isFree:y,earlyBirdTuition:N??void 0,earlyBirdEndDate:C??void 0}),J=p??s.formatCampCardLocationText({onoffText:k,cityLabels:T,format:"desktop"}),K=v??s.formatCampCardScheduleText({startDate:w,endDate:g,period:j}),l=a?e.jsx("button",{type:"button",className:"absolute inset-0",children:e.jsx("img",{src:a,alt:q,className:"h-full w-full object-cover transition-all hover:scale-110",...z})}):null;return e.jsxs("div",{className:m.cn("bt-ds-surface bt-ds-text-reset relative flex h-full w-full flex-col overflow-hidden rounded-lg border border-grey-200 bg-white",S),style:A,children:[e.jsxs("div",{className:"relative aspect-[9/5] w-full shrink-0",children:[e.jsxs("div",{className:"absolute inset-0 z-0 flex items-center justify-center overflow-hidden",children:[l?c?c(l):l:null,E,e.jsxs("div",{className:"absolute bottom-2 right-2 flex flex-col items-end gap-1",children:[n?x(n,"sm"):null,D]})]}),o?x(o,"ad"):null,B]}),e.jsxs("div",{className:"flex flex-col gap-2 p-4 text-regular14",children:[e.jsx("div",{children:r}),e.jsxs("div",{className:"flex w-full flex-col gap-3",children:[e.jsx("div",{className:"line-clamp-3 w-full text-semibold16 font-medium",children:G}),$&&u?e.jsx("div",{className:"line-clamp-2 break-keep rounded-md bg-yellow-400/50 px-2 py-1 text-grey-800",children:u}):null,t.length>0?e.jsx("ul",{className:"flex w-full max-w-full shrink-0 grow-0 flex-wrap justify-start gap-[5px] overflow-x-hidden whitespace-normal",children:t.map((d,M)=>e.jsx(Q,{tag:d},`${String(d.text)}-${M}`))}):null]}),e.jsxs("div",{className:"flex w-full flex-col gap-2 text-regular13",children:[e.jsxs("p",{className:"w-full overflow-hidden truncate whitespace-nowrap",children:[e.jsx("span",{children:H})," · ",e.jsx("span",{children:J})]}),e.jsx("p",{className:"w-full overflow-hidden truncate whitespace-nowrap",children:K})]})]})]})}exports.CampCard=V;
@@ -0,0 +1,91 @@
1
+ const c = (e) => {
2
+ if (!e || typeof e != "string") return null;
3
+ const r = f(e), [t, o] = r.split(" ");
4
+ if (!t) return null;
5
+ const [n, i, u] = t.split("-");
6
+ return !n || !i || !u ? null : {
7
+ year: n,
8
+ shortYear: n.slice(2),
9
+ month: i,
10
+ monthNumber: Number(i),
11
+ day: u,
12
+ time: o
13
+ };
14
+ };
15
+ function f(e) {
16
+ if (typeof e != "string") return "";
17
+ const r = e.trim();
18
+ if (!r) return "";
19
+ const t = r.split(" ");
20
+ return t.length === 3 && t[1] === "00:00" ? `${t[0]} ${t[2]}` : t.length === 2 ? `${t[0]} ${t[1]}` : r;
21
+ }
22
+ function a(e) {
23
+ const r = c(e);
24
+ if (!r) return "";
25
+ const { year: t, month: o, day: n, time: i } = r;
26
+ if (n === "98") return `${t}년 ${Number(o)}월중`;
27
+ if (n === "99") return `${t}년 ${Number(o)}월중(예상)`;
28
+ const u = `${t}.${o}.${n}`;
29
+ return !i || i === "23:59" || i === "00:00" ? u : `${u} ${i}`;
30
+ }
31
+ function m(e) {
32
+ const r = Number(e);
33
+ if (!Number.isFinite(r)) return "";
34
+ if (r < 7)
35
+ return r <= 0 ? "하루" : `${r + 1}일`;
36
+ if (r < 60) return `약 ${Math.round(r / 7)}주`;
37
+ const t = Math.floor(r / 30), o = r % 30;
38
+ return o >= 10 && o < 20 ? `약 ${t}.5개월` : `약 ${Math.round(r / 30)}개월`;
39
+ }
40
+ function $({
41
+ startDate: e,
42
+ endDate: r,
43
+ period: t
44
+ }) {
45
+ const o = a(e).slice(2), n = a(r).slice(2), i = m(t);
46
+ return !o && !n && !i ? "" : `${o} ~ ${n} (${i})`;
47
+ }
48
+ function d({
49
+ onoffText: e = "",
50
+ cityLabels: r,
51
+ format: t = "desktop"
52
+ }) {
53
+ const o = r ?? [], n = o.length > 0 ? `(${o.join(", ")})` : "";
54
+ return t === "mobile" ? `${e || ""}${n ? ` ${n}` : ""}` : `${e || ""} ${n}`;
55
+ }
56
+ function p({
57
+ tuition: e,
58
+ isFree: r,
59
+ earlyBirdTuition: t,
60
+ earlyBirdEndDate: o
61
+ }) {
62
+ const n = Number(e ?? 0);
63
+ return r ?? (!n || n === 0) ? "무료" : t && l({ tuition: n, earlyBirdTuition: t, earlyBirdEndDate: o }) ? s(t) : s(n);
64
+ }
65
+ function s(e, r = "default") {
66
+ const t = Number(e ?? 0);
67
+ return t < 10 || r === "raw" ? `${(t * 1e4).toLocaleString()}원` : e ? `${t.toLocaleString()}만원` : "";
68
+ }
69
+ function l({
70
+ tuition: e,
71
+ earlyBirdTuition: r,
72
+ earlyBirdEndDate: t
73
+ }) {
74
+ if (!(!!r && r !== 0 && Number(e ?? 0) > r)) return !1;
75
+ if (t) {
76
+ const n = Date.now(), i = new Date(n);
77
+ i.setHours(i.getHours() + 9);
78
+ const [u] = i.toISOString().split("T");
79
+ return u.localeCompare(t) <= 0;
80
+ }
81
+ return !0;
82
+ }
83
+ export {
84
+ d as a,
85
+ m as b,
86
+ $ as c,
87
+ p as d,
88
+ s as e,
89
+ a as f,
90
+ l as i
91
+ };
@@ -0,0 +1 @@
1
+ "use strict";const c=e=>{if(!e||typeof e!="string")return null;const r=l(e),[t,o]=r.split(" ");if(!t)return null;const[n,i,a]=t.split("-");return!n||!i||!a?null:{year:n,shortYear:n.slice(2),month:i,monthNumber:Number(i),day:a,time:o}};function l(e){if(typeof e!="string")return"";const r=e.trim();if(!r)return"";const t=r.split(" ");return t.length===3&&t[1]==="00:00"?`${t[0]} ${t[2]}`:t.length===2?`${t[0]} ${t[1]}`:r}function s(e){const r=c(e);if(!r)return"";const{year:t,month:o,day:n,time:i}=r;if(n==="98")return`${t}년 ${Number(o)}월중`;if(n==="99")return`${t}년 ${Number(o)}월중(예상)`;const a=`${t}.${o}.${n}`;return!i||i==="23:59"||i==="00:00"?a:`${a} ${i}`}function f(e){const r=Number(e);if(!Number.isFinite(r))return"";if(r<7)return r<=0?"하루":`${r+1}일`;if(r<60)return`약 ${Math.round(r/7)}주`;const t=Math.floor(r/30),o=r%30;return o>=10&&o<20?`약 ${t}.5개월`:`약 ${Math.round(r/30)}개월`}function d({startDate:e,endDate:r,period:t}){const o=s(e).slice(2),n=s(r).slice(2),i=f(t);return!o&&!n&&!i?"":`${o} ~ ${n} (${i})`}function p({onoffText:e="",cityLabels:r,format:t="desktop"}){const o=r??[],n=o.length>0?`(${o.join(", ")})`:"";return t==="mobile"?`${e||""}${n?` ${n}`:""}`:`${e||""} ${n}`}function $({tuition:e,isFree:r,earlyBirdTuition:t,earlyBirdEndDate:o}){const n=Number(e??0);return r??(!n||n===0)?"무료":t&&m({tuition:n,earlyBirdTuition:t,earlyBirdEndDate:o})?u(t):u(n)}function u(e,r="default"){const t=Number(e??0);return t<10||r==="raw"?`${(t*1e4).toLocaleString()}원`:e?`${t.toLocaleString()}만원`:""}function m({tuition:e,earlyBirdTuition:r,earlyBirdEndDate:t}){if(!(!!r&&r!==0&&Number(e??0)>r))return!1;if(t){const n=Date.now(),i=new Date(n);i.setHours(i.getHours()+9);const[a]=i.toISOString().split("T");return a.localeCompare(t)<=0}return!0}exports.formatCampCardDateText=s;exports.formatCampCardLocationText=p;exports.formatCampCardPeriodText=f;exports.formatCampCardScheduleText=d;exports.formatCampCardTuitionText=$;exports.formatTuitionAmountText=u;exports.isEarlyBirdApplied=m;
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../camp-card-Dr0h_TPh.cjs"),a=require("../camp-card-format-rjZZu4G6.cjs");exports.CampCard=t.CampCard;exports.formatCampCardDateText=a.formatCampCardDateText;exports.formatCampCardLocationText=a.formatCampCardLocationText;exports.formatCampCardPeriodText=a.formatCampCardPeriodText;exports.formatCampCardScheduleText=a.formatCampCardScheduleText;exports.formatCampCardTuitionText=a.formatCampCardTuitionText;exports.formatTuitionAmountText=a.formatTuitionAmountText;exports.isEarlyBirdApplied=a.isEarlyBirdApplied;
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { C as r } from "../camp-card-7lzkmQep.js";
3
+ import { f as o, a as m, b as C, c as d, d as i, e as p, i as s } from "../camp-card-format-QrakDFC6.js";
4
+ export {
5
+ r as CampCard,
6
+ o as formatCampCardDateText,
7
+ m as formatCampCardLocationText,
8
+ C as formatCampCardPeriodText,
9
+ d as formatCampCardScheduleText,
10
+ i as formatCampCardTuitionText,
11
+ p as formatTuitionAmountText,
12
+ s as isEarlyBirdApplied
13
+ };
@@ -0,0 +1 @@
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../mobile-camp-card-Bw4spa_e.cjs");exports.MobileCampCard=e.MobileCampCard;
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ import { M as o } from "../mobile-camp-card-BOdQvH0P.js";
3
+ export {
4
+ o as MobileCampCard
5
+ };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./event-card-B7TYQ2do.cjs"),t=require("./main-banner-image-DdV4qseq.cjs"),o=require("./premium-card-Diea6qG_.cjs"),n=require("./title-tag-card-Cn0V-8Ga.cjs"),a=require("./article-asset-card-CM_WiHYI.cjs"),s=require("./blog-review-card-OX6KhSpS.cjs"),i=require("./company-info-card-H1BDbRoL.cjs"),d=require("./environment-asset-photo-CXxtAAax.cjs"),u=require("./event-asset-banner-BRsgu3Hc.cjs"),C=require("./lecturer-card-CGPXVDdx.cjs"),c=require("./partner-list-card-DL_omz4v.cjs"),e=require("./portfolio-asset-card-BlgNFtHc.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 t=require("./event-card-B7TYQ2do.cjs"),a=require("./main-banner-image-DdV4qseq.cjs"),o=require("./premium-card-Diea6qG_.cjs"),i=require("./title-tag-card-Cn0V-8Ga.cjs"),n=require("./article-asset-card-CM_WiHYI.cjs"),C=require("./blog-review-card-OX6KhSpS.cjs"),d=require("./camp-card-Dr0h_TPh.cjs"),e=require("./camp-card-format-rjZZu4G6.cjs"),s=require("./company-info-card-H1BDbRoL.cjs"),m=require("./environment-asset-photo-CXxtAAax.cjs"),u=require("./event-asset-banner-BRsgu3Hc.cjs"),c=require("./lecturer-card-CGPXVDdx.cjs"),l=require("./partner-list-card-DL_omz4v.cjs"),p=require("./mobile-camp-card-Bw4spa_e.cjs"),r=require("./portfolio-asset-card-BlgNFtHc.cjs"),T=require("./youtube-video-modal-pooOcDO1.cjs");exports.EventCard=t.EventCard;exports.MainBannerImage=a.MainBannerImage;exports.PremiumCard=o.PremiumCard;exports.TitleTagCard=i.TitleTagCard;exports.ArticleAssetCard=n.ArticleAssetCard;exports.BlogReviewCard=C.BlogReviewCard;exports.CampCard=d.CampCard;exports.formatCampCardDateText=e.formatCampCardDateText;exports.formatCampCardLocationText=e.formatCampCardLocationText;exports.formatCampCardPeriodText=e.formatCampCardPeriodText;exports.formatCampCardScheduleText=e.formatCampCardScheduleText;exports.formatCampCardTuitionText=e.formatCampCardTuitionText;exports.formatTuitionAmountText=e.formatTuitionAmountText;exports.isEarlyBirdApplied=e.isEarlyBirdApplied;exports.CompanyInfoCard=s.CompanyInfoCard;exports.EnvironmentAssetPhoto=m.EnvironmentAssetPhoto;exports.EventAssetBanner=u.EventAssetBanner;exports.LecturerCard=c.LecturerCard;exports.PartnerListCard=l.PartnerListCard;exports.MobileCampCard=p.MobileCampCard;exports.PortfolioAssetCard=r.PortfolioAssetCard;exports.PortfolioAssetFooter=r.PortfolioAssetFooter;exports.YoutubeVideoModal=T.YoutubeVideoModal;
@@ -1,30 +1,42 @@
1
1
  "use client";
2
- import { E as e } from "./event-card-DoePuHu8.js";
2
+ import { E as o } from "./event-card-DoePuHu8.js";
3
3
  import { M as t } from "./main-banner-image-DoYpMy7T.js";
4
4
  import { P as m } from "./premium-card-BzFA2A5p.js";
5
- import { T as n } from "./title-tag-card-CEjHX43m.js";
6
- import { A as x } from "./article-asset-card-lw8aNjSM.js";
7
- import { B as i } from "./blog-review-card-DTM0poKi.js";
8
- import { C as P } from "./company-info-card-BVCaYbYN.js";
9
- import { E as A } from "./environment-asset-photo-BCR9v2we.js";
10
- import { E as u } from "./event-asset-banner-CbhdfmpK.js";
11
- import { L as B } from "./lecturer-card-B80BJVu3.js";
12
- import { P as g } from "./partner-list-card-Bx-UZxGG.js";
13
- import { P as M, a as T } from "./portfolio-asset-card-C_opxeH0.js";
14
- import { Y } from "./youtube-video-modal-CENnr9lf.js";
5
+ import { T as p } from "./title-tag-card-CEjHX43m.js";
6
+ import { A as d } from "./article-asset-card-lw8aNjSM.js";
7
+ import { B as x } from "./blog-review-card-DTM0poKi.js";
8
+ import { C as l } from "./camp-card-7lzkmQep.js";
9
+ import { f as u, a as A, b as P, c as E, d as c, e as B, i as M } from "./camp-card-format-QrakDFC6.js";
10
+ import { C as L } from "./company-info-card-BVCaYbYN.js";
11
+ import { E as g } from "./environment-asset-photo-BCR9v2we.js";
12
+ import { E as y } from "./event-asset-banner-CbhdfmpK.js";
13
+ import { L as Y } from "./lecturer-card-B80BJVu3.js";
14
+ import { P as D } from "./partner-list-card-Bx-UZxGG.js";
15
+ import { M as R } from "./mobile-camp-card-BOdQvH0P.js";
16
+ import { P as V, a as j } from "./portfolio-asset-card-C_opxeH0.js";
17
+ import { Y as q } from "./youtube-video-modal-CENnr9lf.js";
15
18
  export {
16
- x as ArticleAssetCard,
17
- i as BlogReviewCard,
18
- P as CompanyInfoCard,
19
- A as EnvironmentAssetPhoto,
20
- u as EventAssetBanner,
21
- e as EventCard,
22
- B as LecturerCard,
19
+ d as ArticleAssetCard,
20
+ x as BlogReviewCard,
21
+ l as CampCard,
22
+ L as CompanyInfoCard,
23
+ g as EnvironmentAssetPhoto,
24
+ y as EventAssetBanner,
25
+ o as EventCard,
26
+ Y as LecturerCard,
23
27
  t as MainBannerImage,
24
- g as PartnerListCard,
25
- M as PortfolioAssetCard,
26
- T as PortfolioAssetFooter,
28
+ R as MobileCampCard,
29
+ D as PartnerListCard,
30
+ V as PortfolioAssetCard,
31
+ j as PortfolioAssetFooter,
27
32
  m as PremiumCard,
28
- n as TitleTagCard,
29
- Y as YoutubeVideoModal
33
+ p as TitleTagCard,
34
+ q as YoutubeVideoModal,
35
+ u as formatCampCardDateText,
36
+ A as formatCampCardLocationText,
37
+ P as formatCampCardPeriodText,
38
+ E as formatCampCardScheduleText,
39
+ c as formatCampCardTuitionText,
40
+ B as formatTuitionAmountText,
41
+ M as isEarlyBirdApplied
30
42
  };
@@ -0,0 +1,195 @@
1
+ import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
+ import "./ui/accordion.es.js";
3
+ import "./ui/alert-dialog.es.js";
4
+ import { c as a } from "./common-C3JaD1vJ.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 "./ui/input.es.js";
20
+ import "./ui/label.es.js";
21
+ import "./ui/month-picker.es.js";
22
+ import "./ui/multi-select.es.js";
23
+ import "./ui/navigation-menu.es.js";
24
+ import "./ui/popover.es.js";
25
+ import "./ui/radio-group.es.js";
26
+ import "./ui/scroll-area.es.js";
27
+ import "./ui/select.es.js";
28
+ import "./ui/separator.es.js";
29
+ import "@radix-ui/react-slider";
30
+ import "react";
31
+ import "./ui/switch.es.js";
32
+ import "./ui/tabs.es.js";
33
+ import { Tag as V } from "./ui/tag.es.js";
34
+ import "./ui/text.es.js";
35
+ import "./ui/textarea.es.js";
36
+ import "./ui/toast.es.js";
37
+ import "./ui/toggle.es.js";
38
+ import "./ui/toggle-group.es.js";
39
+ import "./ui/tooltip.es.js";
40
+ import { g as W } from "./image-loading-BX5rKZfC.js";
41
+ import { d as X, a as Y, c as Z } from "./camp-card-format-QrakDFC6.js";
42
+ function h({ children: e }) {
43
+ return /* @__PURE__ */ r("div", { className: "whitespace-nowrap rounded border border-transparent bg-grey-100 px-[5px] py-0.5 text-regular13 text-grey-600", children: e });
44
+ }
45
+ function _({ tag: e }) {
46
+ return /* @__PURE__ */ r("li", { className: "rounded", children: /* @__PURE__ */ r(
47
+ "div",
48
+ {
49
+ style: {
50
+ color: e.color,
51
+ backgroundColor: e.background,
52
+ border: `1px solid ${e.border ?? "transparent"}`
53
+ },
54
+ className: a("inline-block whitespace-nowrap rounded px-1 py-0.5 text-regular13", e.className),
55
+ children: e.text
56
+ }
57
+ ) });
58
+ }
59
+ function g(e) {
60
+ return /* @__PURE__ */ r(
61
+ V,
62
+ {
63
+ variant: "ad",
64
+ size: "ad",
65
+ style: {
66
+ color: e.color,
67
+ backgroundColor: e.background,
68
+ border: e.border ? `1px solid ${e.border}` : void 0
69
+ },
70
+ className: a("text-xs", e.className),
71
+ children: e.text
72
+ }
73
+ );
74
+ }
75
+ function Ge({
76
+ brandName: e,
77
+ title: w,
78
+ batchName: v = "",
79
+ imageUrl: s,
80
+ imageAlt: b,
81
+ tuitionText: y,
82
+ locationText: N,
83
+ scheduleText: $,
84
+ startDate: k,
85
+ endDate: C,
86
+ period: j,
87
+ tuition: L,
88
+ earlyBirdTuition: S,
89
+ earlyBirdEndDate: I,
90
+ isFree: T,
91
+ onoffText: z,
92
+ cityLabels: M,
93
+ tags: m = [],
94
+ statusBadge: n,
95
+ adBadge: p,
96
+ adTitle: l,
97
+ isAd: o = !1,
98
+ isShowRegTag: q = !1,
99
+ earlyBirdText: c,
100
+ afterTuitionText: d,
101
+ govtCostText: u,
102
+ height: A,
103
+ className: D,
104
+ bookmarkSlot: E,
105
+ imageOverlaySlot: P,
106
+ imagePriority: B,
107
+ imageLoading: F,
108
+ imageFetchPriority: G,
109
+ imageDecoding: H
110
+ }) {
111
+ const J = W({
112
+ imagePriority: B,
113
+ imageLoading: F,
114
+ imageFetchPriority: G,
115
+ imageDecoding: H
116
+ }), i = `${w} ${v || ""}`.trim(), x = b ?? `${e} ${i} | ${l || ""}`.trim(), K = y ?? X({
117
+ tuition: L ?? void 0,
118
+ isFree: T,
119
+ earlyBirdTuition: S ?? void 0,
120
+ earlyBirdEndDate: I ?? void 0
121
+ }), O = N ?? Y({
122
+ onoffText: z,
123
+ cityLabels: M,
124
+ format: "mobile"
125
+ }), Q = $ ?? Z({
126
+ startDate: k,
127
+ endDate: C,
128
+ period: j
129
+ });
130
+ return /* @__PURE__ */ t(
131
+ "div",
132
+ {
133
+ style: { height: A },
134
+ className: a(
135
+ "bt-ds-surface bt-ds-text-reset relative z-10 box-border flex h-full w-full flex-col overflow-hidden rounded-[10px] border border-grey-200 bg-white p-4 md:p-[25px] lg:h-[226px] lg:p-[30px]",
136
+ D
137
+ ),
138
+ children: [
139
+ p ? g(p) : null,
140
+ !o && q && n ? /* @__PURE__ */ r("div", { className: "absolute right-0 top-0 break-keep", children: g(n) }) : null,
141
+ /* @__PURE__ */ t("div", { className: "flex flex-col justify-center gap-2 overflow-hidden md:gap-4", children: [
142
+ /* @__PURE__ */ t("div", { className: "flex items-start justify-between gap-4", children: [
143
+ /* @__PURE__ */ t("div", { className: "flex w-[calc(100%-110px)] flex-col gap-2 md:gap-4", children: [
144
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-2 md:gap-[15px]", children: [
145
+ /* @__PURE__ */ r("h3", { className: "text-regular13", children: e }),
146
+ /* @__PURE__ */ t(
147
+ "h3",
148
+ {
149
+ className: "line-clamp-2 max-h-12 text-sm font-medium md:text-medium14",
150
+ title: `${e} ${i} ${o && l ? l : ""}`.trim(),
151
+ children: [
152
+ i,
153
+ /* @__PURE__ */ r("span", { className: "sr-only", children: e })
154
+ ]
155
+ }
156
+ ),
157
+ o && l ? /* @__PURE__ */ r(
158
+ "h4",
159
+ {
160
+ className: "line-clamp-2 break-keep rounded-md bg-yellow-400/50 px-2 py-1 text-[13px] text-grey-800 md:text-regular16 md:text-grey-800",
161
+ title: l,
162
+ children: l
163
+ }
164
+ ) : null
165
+ ] }),
166
+ m.length > 0 ? /* @__PURE__ */ r("ul", { className: "flex w-full max-w-full shrink-0 grow-0 flex-wrap justify-start gap-[5px] overflow-x-hidden whitespace-normal", children: m.map((f, R) => /* @__PURE__ */ r(_, { tag: f }, `${String(f.text)}-${R}`)) }) : null
167
+ ] }),
168
+ /* @__PURE__ */ t("div", { className: "bt-ds-surface bt-ds-radius-10 relative mt-7 flex aspect-square w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[10px] border border-grey-200 bg-grey-100 md:w-[99px] lg:w-28", children: [
169
+ s ? /* @__PURE__ */ r("img", { src: s, alt: x, className: "h-full w-full object-cover", ...J }) : null,
170
+ P,
171
+ /* @__PURE__ */ r("span", { className: "sr-only", children: x })
172
+ ] })
173
+ ] }),
174
+ /* @__PURE__ */ t("div", { className: "mt-2 flex w-full flex-col gap-2 text-regular13", children: [
175
+ /* @__PURE__ */ t("div", { className: "flex w-full items-center justify-start overflow-hidden truncate whitespace-nowrap ", children: [
176
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-1 whitespace-nowrap", children: [
177
+ /* @__PURE__ */ r("p", { children: K }),
178
+ c ? /* @__PURE__ */ r(h, { children: c }) : null,
179
+ d ? /* @__PURE__ */ r("div", { children: d }) : null,
180
+ u ? /* @__PURE__ */ r(h, { children: u }) : null
181
+ ] }),
182
+ " · ",
183
+ /* @__PURE__ */ r("span", { children: O })
184
+ ] }),
185
+ /* @__PURE__ */ r("p", { className: "w-full overflow-hidden truncate whitespace-nowrap", children: Q })
186
+ ] })
187
+ ] }),
188
+ E
189
+ ]
190
+ }
191
+ );
192
+ }
193
+ export {
194
+ Ge as M
195
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("react/jsx-runtime");require("./ui/accordion.cjs.js");require("./ui/alert-dialog.cjs.js");const a=require("./common-Ds1lanOg.cjs");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");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 Q=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 V=require("./image-loading-DZFBFoVv.cjs"),t=require("./camp-card-format-rjZZu4G6.cjs");function f({children:r}){return e.jsx("div",{className:"whitespace-nowrap rounded border border-transparent bg-grey-100 px-[5px] py-0.5 text-regular13 text-grey-600",children:r})}function W({tag:r}){return e.jsx("li",{className:"rounded",children:e.jsx("div",{style:{color:r.color,backgroundColor:r.background,border:`1px solid ${r.border??"transparent"}`},className:a.cn("inline-block whitespace-nowrap rounded px-1 py-0.5 text-regular13",r.className),children:r.text})})}function q(r){return e.jsx(Q.Tag,{variant:"ad",size:"ad",style:{color:r.color,backgroundColor:r.background,border:r.border?`1px solid ${r.border}`:void 0},className:a.cn("text-xs",r.className),children:r.text})}function X({brandName:r,title:g,batchName:j="",imageUrl:n,imageAlt:w,tuitionText:v,locationText:b,scheduleText:y,startDate:N,endDate:C,period:$,tuition:k,earlyBirdTuition:L,earlyBirdEndDate:S,isFree:I,onoffText:T,cityLabels:z,tags:o=[],statusBadge:c,adBadge:d,adTitle:l,isAd:i=!1,isShowRegTag:M=!1,earlyBirdText:u,afterTuitionText:x,govtCostText:m,height:A,className:D,bookmarkSlot:E,imageOverlaySlot:F,imagePriority:P,imageLoading:R,imageFetchPriority:_,imageDecoding:B}){const G=V.getImageLoadingAttributes({imagePriority:P,imageLoading:R,imageFetchPriority:_,imageDecoding:B}),s=`${g} ${j||""}`.trim(),p=w??`${r} ${s} | ${l||""}`.trim(),H=v??t.formatCampCardTuitionText({tuition:k??void 0,isFree:I,earlyBirdTuition:L??void 0,earlyBirdEndDate:S??void 0}),J=b??t.formatCampCardLocationText({onoffText:T,cityLabels:z,format:"mobile"}),K=y??t.formatCampCardScheduleText({startDate:N,endDate:C,period:$});return e.jsxs("div",{style:{height:A},className:a.cn("bt-ds-surface bt-ds-text-reset relative z-10 box-border flex h-full w-full flex-col overflow-hidden rounded-[10px] border border-grey-200 bg-white p-4 md:p-[25px] lg:h-[226px] lg:p-[30px]",D),children:[d?q(d):null,!i&&M&&c?e.jsx("div",{className:"absolute right-0 top-0 break-keep",children:q(c)}):null,e.jsxs("div",{className:"flex flex-col justify-center gap-2 overflow-hidden md:gap-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex w-[calc(100%-110px)] flex-col gap-2 md:gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2 md:gap-[15px]",children:[e.jsx("h3",{className:"text-regular13",children:r}),e.jsxs("h3",{className:"line-clamp-2 max-h-12 text-sm font-medium md:text-medium14",title:`${r} ${s} ${i&&l?l:""}`.trim(),children:[s,e.jsx("span",{className:"sr-only",children:r})]}),i&&l?e.jsx("h4",{className:"line-clamp-2 break-keep rounded-md bg-yellow-400/50 px-2 py-1 text-[13px] text-grey-800 md:text-regular16 md:text-grey-800",title:l,children:l}):null]}),o.length>0?e.jsx("ul",{className:"flex w-full max-w-full shrink-0 grow-0 flex-wrap justify-start gap-[5px] overflow-x-hidden whitespace-normal",children:o.map((h,O)=>e.jsx(W,{tag:h},`${String(h.text)}-${O}`))}):null]}),e.jsxs("div",{className:"bt-ds-surface bt-ds-radius-10 relative mt-7 flex aspect-square w-[88px] shrink-0 items-center justify-center overflow-hidden rounded-[10px] border border-grey-200 bg-grey-100 md:w-[99px] lg:w-28",children:[n?e.jsx("img",{src:n,alt:p,className:"h-full w-full object-cover",...G}):null,F,e.jsx("span",{className:"sr-only",children:p})]})]}),e.jsxs("div",{className:"mt-2 flex w-full flex-col gap-2 text-regular13",children:[e.jsxs("div",{className:"flex w-full items-center justify-start overflow-hidden truncate whitespace-nowrap ",children:[e.jsxs("div",{className:"flex items-center gap-1 whitespace-nowrap",children:[e.jsx("p",{children:H}),u?e.jsx(f,{children:u}):null,x?e.jsx("div",{children:x}):null,m?e.jsx(f,{children:m}):null]})," · ",e.jsx("span",{children:J})]}),e.jsx("p",{className:"w-full overflow-hidden truncate whitespace-nowrap",children:K})]})]}),E]})}exports.MobileCampCard=X;