@hivcd-printshop/design-system 1.5.1 → 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";
@@ -2164,11 +2178,10 @@ var Toast = forwardRef7(function Toast2({ message, open, duration = 3e3, onClose
2164
2178
  role: "status",
2165
2179
  "aria-live": "polite",
2166
2180
  className: cn(
2167
- "w-full h-fit py-2.5 bg-gray08",
2168
- "mt-7 mx-8",
2181
+ "w-full h-fit py-2.5 px-4 bg-gray08",
2169
2182
  "text-white text-center text-body1-regular",
2170
2183
  "shadow-[0_2px_15px_rgba(0,0,0,0.18)]",
2171
- controlled && "transition-opacity duration-300",
2184
+ controlled && "transition-opacity",
2172
2185
  controlled && (visible ? "opacity-100" : "opacity-0"),
2173
2186
  className
2174
2187
  ),
@@ -2180,7 +2193,7 @@ var Toast = forwardRef7(function Toast2({ message, open, duration = 3e3, onClose
2180
2193
  "div",
2181
2194
  {
2182
2195
  className: cn(
2183
- "fixed inset-x-0 z-5000 pointer-events-none",
2196
+ "fixed inset-x-0 z-5000 pointer-events-none h-full my-7 mx-8",
2184
2197
  position === "top" ? "top-0" : "bottom-0"
2185
2198
  ),
2186
2199
  children: banner
@@ -2225,6 +2238,81 @@ var HeaderBar = ({ className, children, onClick, active, ...props }) => {
2225
2238
  }
2226
2239
  );
2227
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
+ };
2228
2316
  export {
2229
2317
  Accordion,
2230
2318
  BackButton,
@@ -2242,6 +2330,7 @@ export {
2242
2330
  ColumnText,
2243
2331
  ColumnTextStyle,
2244
2332
  Dropdown,
2333
+ EmptyState,
2245
2334
  FormCheckBox,
2246
2335
  FormColor,
2247
2336
  FormFile,
@@ -2270,6 +2359,7 @@ export {
2270
2359
  SearchBar,
2271
2360
  SelectBoxOption,
2272
2361
  SideRadioAccordion,
2362
+ SlotButton,
2273
2363
  TNB,
2274
2364
  TabSwitch,
2275
2365
  Tag,