@hivcd-printshop/design-system 1.5.2 → 1.6.0

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/index.mjs CHANGED
@@ -276,6 +276,20 @@ var IconClose = ({ className, stroke }) => {
276
276
  }
277
277
  );
278
278
  };
279
+ var IconMinus = ({ className, stroke }) => {
280
+ return /* @__PURE__ */ jsx(
281
+ "svg",
282
+ {
283
+ className,
284
+ width: "20",
285
+ height: "20",
286
+ viewBox: "0 0 20 20",
287
+ fill: "none",
288
+ xmlns: "http://www.w3.org/2000/svg",
289
+ children: /* @__PURE__ */ jsx("path", { d: "M16.6673 10.0013H3.33398", stroke: stroke || "currentColor" })
290
+ }
291
+ );
292
+ };
279
293
 
280
294
  // src/components/Accordion/Accordion.tsx
281
295
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
@@ -2224,6 +2238,81 @@ var HeaderBar = ({ className, children, onClick, active, ...props }) => {
2224
2238
  }
2225
2239
  );
2226
2240
  };
2241
+
2242
+ // src/components/EmptyState/EmptyState.tsx
2243
+ import { jsx as jsx43 } from "react/jsx-runtime";
2244
+ var EmptyState = ({ className, children }) => {
2245
+ return /* @__PURE__ */ jsx43(
2246
+ "div",
2247
+ {
2248
+ className: cn(
2249
+ "empty-state",
2250
+ "flex items-center justify-center h-full w-full",
2251
+ "text-body3-regular text-strong",
2252
+ className
2253
+ ),
2254
+ children: children ?? "No content available."
2255
+ }
2256
+ );
2257
+ };
2258
+
2259
+ // src/components/SlotButton/SlotButton.tsx
2260
+ import { useState as useState8 } from "react";
2261
+ import { jsx as jsx44, jsxs as jsxs25 } from "react/jsx-runtime";
2262
+ var SlotButton = ({
2263
+ onClick,
2264
+ isEditing,
2265
+ reserved,
2266
+ blocked,
2267
+ color,
2268
+ className
2269
+ }) => {
2270
+ const [isHovered, setIsHovered] = useState8(false);
2271
+ const showMinusIcon = isEditing && isHovered;
2272
+ return /* @__PURE__ */ jsxs25(
2273
+ "button",
2274
+ {
2275
+ onClick,
2276
+ onMouseEnter: isEditing ? () => setIsHovered(true) : void 0,
2277
+ onMouseLeave: isEditing ? () => setIsHovered(false) : void 0,
2278
+ style: !showMinusIcon && color ? { backgroundColor: color } : void 0,
2279
+ className: cn(
2280
+ // 자식 요소들을 겹치기 위해 relative 추가
2281
+ "relative h-7 w-7 rounded-full flex items-center justify-center transition-colors",
2282
+ showMinusIcon ? "bg-gray09 cursor-pointer" : cn(
2283
+ !color && "bg-black",
2284
+ blocked && "bg-white box-border border border-gray03",
2285
+ className
2286
+ )
2287
+ ),
2288
+ children: [
2289
+ !reserved && /* @__PURE__ */ jsx44(
2290
+ "div",
2291
+ {
2292
+ className: cn(
2293
+ // absolute로 위치를 고정하고 투명도로 애니메이션 처리
2294
+ "absolute h-3.5 w-3.5 rounded-full bg-white transition-opacity",
2295
+ blocked && "box-border border border-gray03",
2296
+ showMinusIcon ? "opacity-0" : "opacity-100"
2297
+ // 호버 시 스르륵 사라짐
2298
+ )
2299
+ }
2300
+ ),
2301
+ isEditing && /* @__PURE__ */ jsx44(
2302
+ IconMinus,
2303
+ {
2304
+ className: cn(
2305
+ // absolute로 위치를 고정하고 투명도로 애니메이션 처리
2306
+ "absolute text-white w-5 h-5 transition-opacity",
2307
+ showMinusIcon ? "opacity-100" : "opacity-0"
2308
+ // 호버 시 스르륵 나타남
2309
+ )
2310
+ }
2311
+ )
2312
+ ]
2313
+ }
2314
+ );
2315
+ };
2227
2316
  export {
2228
2317
  Accordion,
2229
2318
  BackButton,
@@ -2241,6 +2330,7 @@ export {
2241
2330
  ColumnText,
2242
2331
  ColumnTextStyle,
2243
2332
  Dropdown,
2333
+ EmptyState,
2244
2334
  FormCheckBox,
2245
2335
  FormColor,
2246
2336
  FormFile,
@@ -2269,6 +2359,7 @@ export {
2269
2359
  SearchBar,
2270
2360
  SelectBoxOption,
2271
2361
  SideRadioAccordion,
2362
+ SlotButton,
2272
2363
  TNB,
2273
2364
  TabSwitch,
2274
2365
  Tag,