asterui 0.12.16 → 0.12.18

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 (144) hide show
  1. package/dist/components/Card.d.ts +14 -2
  2. package/dist/components/Checkbox.d.ts +3 -1
  3. package/dist/components/Form.d.ts +7 -1
  4. package/dist/components/Input.d.ts +10 -2
  5. package/dist/components/Select.d.ts +8 -0
  6. package/dist/index.d.ts +0 -2
  7. package/dist/index.js +134 -136
  8. package/dist/index.js.map +1 -1
  9. package/dist/index10.js +70 -65
  10. package/dist/index10.js.map +1 -1
  11. package/dist/index100.js +43 -11
  12. package/dist/index100.js.map +1 -1
  13. package/dist/index101.js +11 -44
  14. package/dist/index101.js.map +1 -1
  15. package/dist/index102.js +12 -10
  16. package/dist/index102.js.map +1 -1
  17. package/dist/index103.js +7 -14
  18. package/dist/index103.js.map +1 -1
  19. package/dist/index104.js +12 -7
  20. package/dist/index104.js.map +1 -1
  21. package/dist/index105.js +29 -11
  22. package/dist/index105.js.map +1 -1
  23. package/dist/index106.js +16 -29
  24. package/dist/index106.js.map +1 -1
  25. package/dist/index13.js +86 -68
  26. package/dist/index13.js.map +1 -1
  27. package/dist/index34.js +198 -158
  28. package/dist/index34.js.map +1 -1
  29. package/dist/index42.js +185 -148
  30. package/dist/index42.js.map +1 -1
  31. package/dist/index43.js +19 -19
  32. package/dist/index43.js.map +1 -1
  33. package/dist/index46.js +134 -18
  34. package/dist/index46.js.map +1 -1
  35. package/dist/index47.js +10 -134
  36. package/dist/index47.js.map +1 -1
  37. package/dist/index48.js +35 -13
  38. package/dist/index48.js.map +1 -1
  39. package/dist/index49.js +34 -35
  40. package/dist/index49.js.map +1 -1
  41. package/dist/index50.js +81 -34
  42. package/dist/index50.js.map +1 -1
  43. package/dist/index51.js +166 -71
  44. package/dist/index51.js.map +1 -1
  45. package/dist/index52.js +144 -167
  46. package/dist/index52.js.map +1 -1
  47. package/dist/index53.js +11 -152
  48. package/dist/index53.js.map +1 -1
  49. package/dist/index54.js +20 -10
  50. package/dist/index54.js.map +1 -1
  51. package/dist/index55.js +14 -22
  52. package/dist/index55.js.map +1 -1
  53. package/dist/index56.js +7 -14
  54. package/dist/index56.js.map +1 -1
  55. package/dist/index57.js +333 -6
  56. package/dist/index57.js.map +1 -1
  57. package/dist/index58.js +47 -334
  58. package/dist/index58.js.map +1 -1
  59. package/dist/index59.js +122 -47
  60. package/dist/index59.js.map +1 -1
  61. package/dist/index60.js +108 -120
  62. package/dist/index60.js.map +1 -1
  63. package/dist/index61.js +167 -107
  64. package/dist/index61.js.map +1 -1
  65. package/dist/index62.js +29 -167
  66. package/dist/index62.js.map +1 -1
  67. package/dist/index63.js +120 -30
  68. package/dist/index63.js.map +1 -1
  69. package/dist/index64.js +80 -116
  70. package/dist/index64.js.map +1 -1
  71. package/dist/index65.js +19 -85
  72. package/dist/index65.js.map +1 -1
  73. package/dist/index66.js +73 -19
  74. package/dist/index66.js.map +1 -1
  75. package/dist/index67.js +54 -71
  76. package/dist/index67.js.map +1 -1
  77. package/dist/index68.js +44 -56
  78. package/dist/index68.js.map +1 -1
  79. package/dist/index69.js +49 -42
  80. package/dist/index69.js.map +1 -1
  81. package/dist/index70.js +121 -50
  82. package/dist/index70.js.map +1 -1
  83. package/dist/index71.js +102 -118
  84. package/dist/index71.js.map +1 -1
  85. package/dist/index72.js +72 -105
  86. package/dist/index72.js.map +1 -1
  87. package/dist/index73.js +68 -41
  88. package/dist/index73.js.map +1 -1
  89. package/dist/index74.js +19 -66
  90. package/dist/index74.js.map +1 -1
  91. package/dist/index75.js +55 -18
  92. package/dist/index75.js.map +1 -1
  93. package/dist/index76.js +251 -55
  94. package/dist/index76.js.map +1 -1
  95. package/dist/index77.js +22 -254
  96. package/dist/index77.js.map +1 -1
  97. package/dist/index78.js +31 -22
  98. package/dist/index78.js.map +1 -1
  99. package/dist/index79.js +93 -30
  100. package/dist/index79.js.map +1 -1
  101. package/dist/index80.js +324 -89
  102. package/dist/index80.js.map +1 -1
  103. package/dist/index81.js +73 -322
  104. package/dist/index81.js.map +1 -1
  105. package/dist/index82.js +39 -79
  106. package/dist/index82.js.map +1 -1
  107. package/dist/index83.js +23 -40
  108. package/dist/index83.js.map +1 -1
  109. package/dist/index84.js +93 -21
  110. package/dist/index84.js.map +1 -1
  111. package/dist/index85.js +148 -87
  112. package/dist/index85.js.map +1 -1
  113. package/dist/index86.js +152 -147
  114. package/dist/index86.js.map +1 -1
  115. package/dist/index87.js +63 -159
  116. package/dist/index87.js.map +1 -1
  117. package/dist/index88.js +35 -65
  118. package/dist/index88.js.map +1 -1
  119. package/dist/index89.js +234 -35
  120. package/dist/index89.js.map +1 -1
  121. package/dist/index90.js +31 -231
  122. package/dist/index90.js.map +1 -1
  123. package/dist/index91.js +210 -34
  124. package/dist/index91.js.map +1 -1
  125. package/dist/index92.js +198 -195
  126. package/dist/index92.js.map +1 -1
  127. package/dist/index93.js +241 -159
  128. package/dist/index93.js.map +1 -1
  129. package/dist/index94.js +166 -283
  130. package/dist/index94.js.map +1 -1
  131. package/dist/index95.js +253 -173
  132. package/dist/index95.js.map +1 -1
  133. package/dist/index96.js +14 -258
  134. package/dist/index96.js.map +1 -1
  135. package/dist/index97.js +31 -12
  136. package/dist/index97.js.map +1 -1
  137. package/dist/index98.js +5 -32
  138. package/dist/index98.js.map +1 -1
  139. package/dist/index99.js +13 -5
  140. package/dist/index99.js.map +1 -1
  141. package/package.json +1 -1
  142. package/dist/components/Label.d.ts +0 -15
  143. package/dist/index107.js +0 -21
  144. package/dist/index107.js.map +0 -1
package/dist/index106.js CHANGED
@@ -1,34 +1,21 @@
1
- import { useState as v, useCallback as i, useEffect as l } from "react";
2
- function c(n, f = {}) {
3
- const { target: u, event: o = "keydown", preventDefault: r = !1 } = f, [a, d] = v(!1), t = i(
4
- (e) => {
5
- e.key === n && (r && e.preventDefault(), d(!0));
6
- },
7
- [n, r]
8
- ), s = i(
9
- (e) => {
10
- e.key === n && d(!1);
11
- },
12
- [n]
13
- );
14
- return l(() => {
15
- const e = u ?? window;
16
- return o === "keydown" ? (e.addEventListener("keydown", t), e.addEventListener("keyup", s)) : e.addEventListener("keyup", t), () => {
17
- e.removeEventListener("keydown", t), e.removeEventListener("keyup", s);
1
+ import { useState as t, useEffect as d } from "react";
2
+ function r() {
3
+ const [i, n] = t(() => typeof window > "u" ? { width: 0, height: 0 } : {
4
+ width: window.innerWidth,
5
+ height: window.innerHeight
6
+ });
7
+ return d(() => {
8
+ if (typeof window > "u") return;
9
+ const e = () => {
10
+ n({
11
+ width: window.innerWidth,
12
+ height: window.innerHeight
13
+ });
18
14
  };
19
- }, [u, o, t, s]), a;
20
- }
21
- function y(n, f, u = {}) {
22
- const { target: o, event: r = "keydown", preventDefault: a = !1 } = u;
23
- l(() => {
24
- const d = o ?? window, t = (s) => {
25
- s.key === n && (a && s.preventDefault(), f(s));
26
- };
27
- return d.addEventListener(r, t), () => d.removeEventListener(r, t);
28
- }, [o, n, f, r, a]);
15
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
16
+ }, []), i;
29
17
  }
30
18
  export {
31
- c as useKeyPress,
32
- y as useKeyPressCallback
19
+ r as useWindowSize
33
20
  };
34
21
  //# sourceMappingURL=index106.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index106.js","sources":["../src/hooks/useKeyPress.ts"],"sourcesContent":["import { useState, useEffect, useCallback } from 'react'\n\nexport interface UseKeyPressOptions {\n /** Target element (default: window) */\n target?: HTMLElement | Window | null\n /** Event type: 'keydown' | 'keyup' (default: 'keydown') */\n event?: 'keydown' | 'keyup'\n /** Prevent default browser behavior */\n preventDefault?: boolean\n}\n\n/**\n * Hook that detects when a specific key is pressed.\n *\n * @param targetKey - Key to detect (e.g., 'Enter', 'Escape', 'a')\n * @param options - Configuration options\n * @returns Whether the key is currently pressed\n *\n * @example\n * const enterPressed = useKeyPress('Enter')\n * const escapePressed = useKeyPress('Escape')\n *\n * useEffect(() => {\n * if (escapePressed) closeModal()\n * }, [escapePressed])\n *\n * @example\n * // With callback for immediate action\n * useKeyPress('Escape', { preventDefault: true })\n */\nexport function useKeyPress(\n targetKey: string,\n options: UseKeyPressOptions = {}\n): boolean {\n const { target, event = 'keydown', preventDefault = false } = options\n const [keyPressed, setKeyPressed] = useState(false)\n\n const downHandler = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n if (preventDefault) e.preventDefault()\n setKeyPressed(true)\n }\n },\n [targetKey, preventDefault]\n )\n\n const upHandler = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n setKeyPressed(false)\n }\n },\n [targetKey]\n )\n\n useEffect(() => {\n const targetElement = target ?? window\n\n if (event === 'keydown') {\n targetElement.addEventListener('keydown', downHandler as EventListener)\n targetElement.addEventListener('keyup', upHandler as EventListener)\n } else {\n targetElement.addEventListener('keyup', downHandler as EventListener)\n }\n\n return () => {\n targetElement.removeEventListener('keydown', downHandler as EventListener)\n targetElement.removeEventListener('keyup', upHandler as EventListener)\n }\n }, [target, event, downHandler, upHandler])\n\n return keyPressed\n}\n\n/**\n * Hook that calls a callback when a specific key is pressed.\n *\n * @param targetKey - Key to detect\n * @param callback - Function to call when key is pressed\n * @param options - Configuration options\n *\n * @example\n * useKeyPressCallback('Escape', () => closeModal())\n * useKeyPressCallback('Enter', () => submitForm(), { preventDefault: true })\n */\nexport function useKeyPressCallback(\n targetKey: string,\n callback: (event: KeyboardEvent) => void,\n options: UseKeyPressOptions = {}\n): void {\n const { target, event = 'keydown', preventDefault = false } = options\n\n useEffect(() => {\n const targetElement = target ?? window\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === targetKey) {\n if (preventDefault) e.preventDefault()\n callback(e)\n }\n }\n\n targetElement.addEventListener(event, handler as EventListener)\n return () => targetElement.removeEventListener(event, handler as EventListener)\n }, [target, targetKey, callback, event, preventDefault])\n}\n"],"names":["useKeyPress","targetKey","options","target","event","preventDefault","keyPressed","setKeyPressed","useState","downHandler","useCallback","upHandler","useEffect","targetElement","useKeyPressCallback","callback","handler","e"],"mappings":";AA8BO,SAASA,EACdC,GACAC,IAA8B,IACrB;AACT,QAAM,EAAE,QAAAC,GAAQ,OAAAC,IAAQ,WAAW,gBAAAC,IAAiB,OAAUH,GACxD,CAACI,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAE5CC,IAAcC;AAAA,IAClB,CAAC,MAAqB;AACpB,MAAI,EAAE,QAAQT,MACRI,OAAkB,eAAA,GACtBE,EAAc,EAAI;AAAA,IAEtB;AAAA,IACA,CAACN,GAAWI,CAAc;AAAA,EAAA,GAGtBM,IAAYD;AAAA,IAChB,CAAC,MAAqB;AACpB,MAAI,EAAE,QAAQT,KACZM,EAAc,EAAK;AAAA,IAEvB;AAAA,IACA,CAACN,CAAS;AAAA,EAAA;AAGZ,SAAAW,EAAU,MAAM;AACd,UAAMC,IAAgBV,KAAU;AAEhC,WAAIC,MAAU,aACZS,EAAc,iBAAiB,WAAWJ,CAA4B,GACtEI,EAAc,iBAAiB,SAASF,CAA0B,KAElEE,EAAc,iBAAiB,SAASJ,CAA4B,GAG/D,MAAM;AACX,MAAAI,EAAc,oBAAoB,WAAWJ,CAA4B,GACzEI,EAAc,oBAAoB,SAASF,CAA0B;AAAA,IACvE;AAAA,EACF,GAAG,CAACR,GAAQC,GAAOK,GAAaE,CAAS,CAAC,GAEnCL;AACT;AAaO,SAASQ,EACdb,GACAc,GACAb,IAA8B,CAAA,GACxB;AACN,QAAM,EAAE,QAAAC,GAAQ,OAAAC,IAAQ,WAAW,gBAAAC,IAAiB,OAAUH;AAE9D,EAAAU,EAAU,MAAM;AACd,UAAMC,IAAgBV,KAAU,QAE1Ba,IAAU,CAACC,MAAqB;AACpC,MAAIA,EAAE,QAAQhB,MACRI,OAAkB,eAAA,GACtBU,EAASE,CAAC;AAAA,IAEd;AAEA,WAAAJ,EAAc,iBAAiBT,GAAOY,CAAwB,GACvD,MAAMH,EAAc,oBAAoBT,GAAOY,CAAwB;AAAA,EAChF,GAAG,CAACb,GAAQF,GAAWc,GAAUX,GAAOC,CAAc,CAAC;AACzD;"}
1
+ {"version":3,"file":"index106.js","sources":["../src/hooks/useWindowSize.ts"],"sourcesContent":["import { useState, useEffect } from 'react'\n\nexport interface WindowSize {\n width: number\n height: number\n}\n\n/**\n * Hook that tracks window dimensions.\n * Updates on window resize.\n *\n * @returns Object with current width and height\n *\n * @example\n * const { width, height } = useWindowSize()\n *\n * return (\n * <div>\n * Window: {width} x {height}\n * {width < 768 && <MobileNav />}\n * </div>\n * )\n */\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>(() => {\n if (typeof window === 'undefined') {\n return { width: 0, height: 0 }\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n })\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n\n const handleResize = () => {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n })\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowSize\n}\n"],"names":["useWindowSize","windowSize","setWindowSize","useState","useEffect","handleResize"],"mappings":";AAuBO,SAASA,IAA4B;AAC1C,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAAqB,MACnD,OAAO,SAAW,MACb,EAAE,OAAO,GAAG,QAAQ,EAAA,IAEtB;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,EAAA,CAElB;AAED,SAAAC,EAAU,MAAM;AACd,QAAI,OAAO,SAAW,IAAa;AAEnC,UAAMC,IAAe,MAAM;AACzB,MAAAH,EAAc;AAAA,QACZ,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MAAA,CAChB;AAAA,IACH;AAEA,kBAAO,iBAAiB,UAAUG,CAAY,GACvC,MAAM,OAAO,oBAAoB,UAAUA,CAAY;AAAA,EAChE,GAAG,CAAA,CAAE,GAEEJ;AACT;"}
package/dist/index13.js CHANGED
@@ -1,98 +1,116 @@
1
- import { jsxs as e, jsx as s, Fragment as h } from "react/jsx-runtime";
2
- function g({ children: r, hoverable: a = !1, className: d = "", style: c, ...o }) {
3
- const n = [
1
+ import { jsxs as s, jsx as e, Fragment as o } from "react/jsx-runtime";
2
+ function y({ children: d, hoverable: a = !1, className: l = "", style: c, ...n }) {
3
+ const m = [
4
4
  "p-6 border border-base-content/10",
5
5
  a && "cursor-pointer hover:shadow-md transition-shadow",
6
- d
6
+ l
7
7
  ].filter(Boolean).join(" ");
8
- return /* @__PURE__ */ s("div", { className: n, style: c, ...o, children: r });
8
+ return /* @__PURE__ */ e("div", { className: m, style: c, ...n, children: d });
9
9
  }
10
- function j({
11
- children: r,
10
+ function C({ avatar: d, title: a, description: l, className: c = "", ...n }) {
11
+ return /* @__PURE__ */ s("div", { className: `flex gap-4 ${c}`, ...n, children: [
12
+ d && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: d }),
13
+ /* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
14
+ a && /* @__PURE__ */ e("div", { className: "font-medium", children: a }),
15
+ l && /* @__PURE__ */ e("div", { className: "text-sm opacity-70 mt-1", children: l })
16
+ ] })
17
+ ] });
18
+ }
19
+ function M({
20
+ children: d,
12
21
  title: a,
13
- cover: d,
14
- actions: c,
15
- className: o = "",
16
- style: n,
17
- size: m,
18
- bordered: v = !0,
19
- side: w = !1,
20
- imageFull: x = !1,
21
- actionsJustify: t = "end",
22
- loading: b = !1,
23
- hoverable: k = !1,
24
- avatar: l,
22
+ extra: l,
23
+ cover: c,
24
+ actions: n,
25
+ className: m = "",
26
+ style: h,
27
+ size: t,
28
+ bordered: b = !0,
29
+ side: k = !1,
30
+ imageFull: f = !1,
31
+ actionsJustify: N = "end",
32
+ loading: g = !1,
33
+ hoverable: j = !1,
34
+ avatar: r,
25
35
  description: i,
26
- ...f
36
+ ...u
27
37
  }) {
28
- const N = [
38
+ const v = [
29
39
  "card",
30
40
  "bg-base-100",
31
- m && {
41
+ t && {
32
42
  xs: "card-xs",
33
43
  sm: "card-sm",
34
44
  md: "card-md",
35
45
  lg: "card-lg",
36
46
  xl: "card-xl"
37
- }[m],
38
- v && "border border-base-content/10 shadow-sm",
39
- w && "card-side",
40
- x && "image-full",
41
- k && "transition-shadow hover:shadow-lg cursor-pointer",
42
- o
43
- ].filter(Boolean).join(" "), u = {
47
+ }[t],
48
+ // Don't add border when imageFull is used (it breaks the overlay effect)
49
+ b && !f && "border border-base-content/10 shadow-sm",
50
+ k && "card-side",
51
+ f && "image-full shadow-sm",
52
+ j && "transition-shadow hover:shadow-lg cursor-pointer",
53
+ m
54
+ ].filter(Boolean).join(" "), w = {
44
55
  start: "justify-start",
45
56
  center: "justify-center",
46
57
  end: "justify-end"
47
58
  };
48
- return b ? /* @__PURE__ */ e("div", { className: N, style: n, ...f, children: [
49
- d && /* @__PURE__ */ s("figure", { children: /* @__PURE__ */ s("div", { className: "skeleton h-48 w-full rounded-none" }) }),
50
- /* @__PURE__ */ e("div", { className: "card-body", children: [
51
- (l || a) && /* @__PURE__ */ e("div", { className: "flex gap-4 mb-4", children: [
52
- l && /* @__PURE__ */ s("div", { className: "skeleton w-12 h-12 rounded-full flex-shrink-0" }),
53
- /* @__PURE__ */ e("div", { className: "flex-1 space-y-2", children: [
54
- /* @__PURE__ */ s("div", { className: "skeleton h-6 w-2/3" }),
55
- i && /* @__PURE__ */ s("div", { className: "skeleton h-4 w-full" })
56
- ] })
57
- ] }),
58
- !l && !a && /* @__PURE__ */ e(h, { children: [
59
- /* @__PURE__ */ s("div", { className: "skeleton h-6 w-2/3 mb-4" }),
60
- /* @__PURE__ */ e("div", { className: "space-y-2", children: [
61
- /* @__PURE__ */ s("div", { className: "skeleton h-4 w-full" }),
62
- /* @__PURE__ */ s("div", { className: "skeleton h-4 w-5/6" }),
63
- /* @__PURE__ */ s("div", { className: "skeleton h-4 w-4/6" })
59
+ if (g)
60
+ return /* @__PURE__ */ s("div", { className: v, style: h, ...u, children: [
61
+ c && /* @__PURE__ */ e("figure", { children: /* @__PURE__ */ e("div", { className: "skeleton h-48 w-full rounded-none" }) }),
62
+ /* @__PURE__ */ s("div", { className: "card-body", children: [
63
+ (r || a) && /* @__PURE__ */ s("div", { className: "flex gap-4 mb-4", children: [
64
+ r && /* @__PURE__ */ e("div", { className: "skeleton w-12 h-12 rounded-full flex-shrink-0" }),
65
+ /* @__PURE__ */ s("div", { className: "flex-1 space-y-2", children: [
66
+ /* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3" }),
67
+ i && /* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" })
68
+ ] })
69
+ ] }),
70
+ !r && !a && /* @__PURE__ */ s(o, { children: [
71
+ /* @__PURE__ */ e("div", { className: "skeleton h-6 w-2/3 mb-4" }),
72
+ /* @__PURE__ */ s("div", { className: "space-y-2", children: [
73
+ /* @__PURE__ */ e("div", { className: "skeleton h-4 w-full" }),
74
+ /* @__PURE__ */ e("div", { className: "skeleton h-4 w-5/6" }),
75
+ /* @__PURE__ */ e("div", { className: "skeleton h-4 w-4/6" })
76
+ ] })
77
+ ] }),
78
+ n && /* @__PURE__ */ s("div", { className: `card-actions ${w[N]} mt-4`, children: [
79
+ /* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" }),
80
+ /* @__PURE__ */ e("div", { className: "skeleton h-10 w-20" })
64
81
  ] })
65
- ] }),
66
- c && /* @__PURE__ */ e("div", { className: `card-actions ${u[t]} mt-4`, children: [
67
- /* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" }),
68
- /* @__PURE__ */ s("div", { className: "skeleton h-10 w-20" })
69
82
  ] })
70
- ] })
71
- ] }) : /* @__PURE__ */ e("div", { className: N, style: n, ...f, children: [
72
- d && /* @__PURE__ */ s("figure", { children: d }),
73
- /* @__PURE__ */ e("div", { className: "card-body", children: [
74
- l || a && i ? /* @__PURE__ */ e(h, { children: [
75
- /* @__PURE__ */ e("div", { className: "flex gap-4", children: [
76
- l && /* @__PURE__ */ s("div", { className: "flex-shrink-0", children: l }),
77
- /* @__PURE__ */ e("div", { className: "flex-1 min-w-0", children: [
78
- a && /* @__PURE__ */ s("h2", { className: "card-title", children: a }),
79
- i && /* @__PURE__ */ s("p", { className: "text-sm opacity-70 mt-1", children: i })
83
+ ] });
84
+ const p = r || a && i, x = () => !a && !l ? null : l ? /* @__PURE__ */ s("div", { className: "flex justify-between items-start gap-4", children: [
85
+ a && /* @__PURE__ */ e("h2", { className: "card-title", children: a }),
86
+ /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: l })
87
+ ] }) : a ? /* @__PURE__ */ e("h2", { className: "card-title", children: a }) : null;
88
+ return /* @__PURE__ */ s("div", { className: v, style: h, ...u, children: [
89
+ c && /* @__PURE__ */ e("figure", { children: c }),
90
+ /* @__PURE__ */ s("div", { className: "card-body", children: [
91
+ p ? /* @__PURE__ */ s(o, { children: [
92
+ /* @__PURE__ */ s("div", { className: "flex gap-4", children: [
93
+ r && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: r }),
94
+ /* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
95
+ x(),
96
+ i && /* @__PURE__ */ e("p", { className: "text-sm opacity-70 mt-1", children: i })
80
97
  ] })
81
98
  ] }),
82
- r
83
- ] }) : /* @__PURE__ */ e(h, { children: [
84
- a && /* @__PURE__ */ s("h2", { className: "card-title", children: a }),
85
- r
99
+ d
100
+ ] }) : /* @__PURE__ */ s(o, { children: [
101
+ x(),
102
+ d
86
103
  ] }),
87
- c && /* @__PURE__ */ s("div", { className: `card-actions ${u[t]}`, children: c })
104
+ n && /* @__PURE__ */ e("div", { className: `card-actions ${w[N]}`, children: n })
88
105
  ] })
89
106
  ] });
90
107
  }
91
- const B = Object.assign(j, {
92
- Grid: g
108
+ const G = Object.assign(M, {
109
+ Grid: y,
110
+ Meta: C
93
111
  });
94
112
  export {
95
- B as Card,
96
- B as default
113
+ G as Card,
114
+ G as default
97
115
  };
98
116
  //# sourceMappingURL=index13.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index13.js","sources":["../src/components/Card.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children: React.ReactNode\n title?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n bordered?: boolean\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n}\n\nfunction CardGrid({ children, hoverable = false, className = '', style, ...rest }: CardGridProps) {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n )\n}\n\nfunction CardRoot({\n children,\n title,\n cover,\n actions,\n className = '',\n style,\n size,\n bordered = true,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n ...rest\n}: CardProps) {\n const sizeClasses: Record<string, string> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n }\n\n const classes = [\n 'card',\n 'bg-base-100',\n size && sizeClasses[size],\n bordered && 'border border-base-content/10 shadow-sm',\n side && 'card-side',\n imageFull && 'image-full',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n }\n\n if (loading) {\n return (\n <div className={classes} style={style} {...rest}>\n {cover && (\n <figure>\n <div className=\"skeleton h-48 w-full rounded-none\" />\n </figure>\n )}\n <div className=\"card-body\">\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className=\"skeleton w-12 h-12 rounded-full flex-shrink-0\" />}\n <div className=\"flex-1 space-y-2\">\n <div className=\"skeleton h-6 w-2/3\" />\n {description && <div className=\"skeleton h-4 w-full\" />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className=\"skeleton h-6 w-2/3 mb-4\" />\n <div className=\"space-y-2\">\n <div className=\"skeleton h-4 w-full\" />\n <div className=\"skeleton h-4 w-5/6\" />\n <div className=\"skeleton h-4 w-4/6\" />\n </div>\n </>\n )}\n {actions && (\n <div className={`card-actions ${justifyClasses[actionsJustify]} mt-4`}>\n <div className=\"skeleton h-10 w-20\" />\n <div className=\"skeleton h-10 w-20\" />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n return (\n <div className={classes} style={style} {...rest}>\n {cover && <figure>{cover}</figure>}\n <div className=\"card-body\">\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <h2 className=\"card-title\">{title}</h2>}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {title && <h2 className=\"card-title\">{title}</h2>}\n {children}\n </>\n )}\n {actions && <div className={`card-actions ${justifyClasses[actionsJustify]}`}>{actions}</div>}\n </div>\n </div>\n )\n}\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n})\n\nexport default Card\n"],"names":["CardGrid","children","hoverable","className","style","rest","classes","CardRoot","title","cover","actions","size","bordered","side","imageFull","actionsJustify","loading","avatar","description","justifyClasses","jsx","jsxs","Fragment","Card"],"mappings":"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"}
1
+ {"version":3,"file":"index13.js","sources":["../src/components/Card.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n children?: React.ReactNode\n title?: React.ReactNode\n /** Content in the top-right corner of the card header */\n extra?: React.ReactNode\n cover?: React.ReactNode\n actions?: React.ReactNode\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n bordered?: boolean\n side?: boolean\n imageFull?: boolean\n actionsJustify?: 'start' | 'center' | 'end'\n loading?: boolean\n hoverable?: boolean\n // Meta props for avatar + description layout\n avatar?: React.ReactNode\n description?: React.ReactNode\n}\n\nexport interface CardMetaProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Avatar or icon element */\n avatar?: React.ReactNode\n /** Title content */\n title?: React.ReactNode\n /** Description content */\n description?: React.ReactNode\n}\n\nexport interface CardGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n hoverable?: boolean\n}\n\nfunction CardGrid({ children, hoverable = false, className = '', style, ...rest }: CardGridProps) {\n const classes = [\n 'p-6 border border-base-content/10',\n hoverable && 'cursor-pointer hover:shadow-md transition-shadow',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={classes} style={style} {...rest}>\n {children}\n </div>\n )\n}\n\nfunction CardMeta({ avatar, title, description, className = '', ...rest }: CardMetaProps) {\n return (\n <div className={`flex gap-4 ${className}`} {...rest}>\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {title && <div className=\"font-medium\">{title}</div>}\n {description && <div className=\"text-sm opacity-70 mt-1\">{description}</div>}\n </div>\n </div>\n )\n}\n\nfunction CardRoot({\n children,\n title,\n extra,\n cover,\n actions,\n className = '',\n style,\n size,\n bordered = true,\n side = false,\n imageFull = false,\n actionsJustify = 'end',\n loading = false,\n hoverable = false,\n avatar,\n description,\n ...rest\n}: CardProps) {\n const sizeClasses: Record<string, string> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n }\n\n const classes = [\n 'card',\n 'bg-base-100',\n size && sizeClasses[size],\n // Don't add border when imageFull is used (it breaks the overlay effect)\n bordered && !imageFull && 'border border-base-content/10 shadow-sm',\n side && 'card-side',\n imageFull && 'image-full shadow-sm',\n hoverable && 'transition-shadow hover:shadow-lg cursor-pointer',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const justifyClasses: Record<string, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n }\n\n if (loading) {\n return (\n <div className={classes} style={style} {...rest}>\n {cover && (\n <figure>\n <div className=\"skeleton h-48 w-full rounded-none\" />\n </figure>\n )}\n <div className=\"card-body\">\n {(avatar || title) && (\n <div className=\"flex gap-4 mb-4\">\n {avatar && <div className=\"skeleton w-12 h-12 rounded-full flex-shrink-0\" />}\n <div className=\"flex-1 space-y-2\">\n <div className=\"skeleton h-6 w-2/3\" />\n {description && <div className=\"skeleton h-4 w-full\" />}\n </div>\n </div>\n )}\n {!avatar && !title && (\n <>\n <div className=\"skeleton h-6 w-2/3 mb-4\" />\n <div className=\"space-y-2\">\n <div className=\"skeleton h-4 w-full\" />\n <div className=\"skeleton h-4 w-5/6\" />\n <div className=\"skeleton h-4 w-4/6\" />\n </div>\n </>\n )}\n {actions && (\n <div className={`card-actions ${justifyClasses[actionsJustify]} mt-4`}>\n <div className=\"skeleton h-10 w-20\" />\n <div className=\"skeleton h-10 w-20\" />\n </div>\n )}\n </div>\n </div>\n )\n }\n\n // Render with avatar + title + description layout (meta style)\n const hasMetaLayout = avatar || (title && description)\n\n // Header with title and extra\n const renderHeader = () => {\n if (!title && !extra) return null\n\n if (extra) {\n return (\n <div className=\"flex justify-between items-start gap-4\">\n {title && <h2 className=\"card-title\">{title}</h2>}\n <div className=\"flex-shrink-0\">{extra}</div>\n </div>\n )\n }\n\n return title ? <h2 className=\"card-title\">{title}</h2> : null\n }\n\n return (\n <div className={classes} style={style} {...rest}>\n {cover && <figure>{cover}</figure>}\n <div className=\"card-body\">\n {hasMetaLayout ? (\n <>\n <div className=\"flex gap-4\">\n {avatar && <div className=\"flex-shrink-0\">{avatar}</div>}\n <div className=\"flex-1 min-w-0\">\n {renderHeader()}\n {description && <p className=\"text-sm opacity-70 mt-1\">{description}</p>}\n </div>\n </div>\n {children}\n </>\n ) : (\n <>\n {renderHeader()}\n {children}\n </>\n )}\n {actions && <div className={`card-actions ${justifyClasses[actionsJustify]}`}>{actions}</div>}\n </div>\n </div>\n )\n}\n\nexport const Card = Object.assign(CardRoot, {\n Grid: CardGrid,\n Meta: CardMeta,\n})\n\nexport default Card\n"],"names":["CardGrid","children","hoverable","className","style","rest","classes","CardMeta","avatar","title","description","jsx","jsxs","CardRoot","extra","cover","actions","size","bordered","side","imageFull","actionsJustify","loading","justifyClasses","Fragment","hasMetaLayout","renderHeader","Card"],"mappings":"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"}