asterui 0.12.19 → 0.12.21

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 (204) hide show
  1. package/dist/components/Code.d.ts +2 -0
  2. package/dist/components/CopyButton.d.ts +34 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +205 -203
  5. package/dist/index.js.map +1 -1
  6. package/dist/index10.js +91 -121
  7. package/dist/index10.js.map +1 -1
  8. package/dist/index100.js +5 -13
  9. package/dist/index100.js.map +1 -1
  10. package/dist/index101.js +11 -43
  11. package/dist/index101.js.map +1 -1
  12. package/dist/index102.js +44 -11
  13. package/dist/index102.js.map +1 -1
  14. package/dist/index103.js +10 -12
  15. package/dist/index103.js.map +1 -1
  16. package/dist/index104.js +14 -7
  17. package/dist/index104.js.map +1 -1
  18. package/dist/index105.js +7 -12
  19. package/dist/index105.js.map +1 -1
  20. package/dist/index106.js +11 -29
  21. package/dist/index106.js.map +1 -1
  22. package/dist/index107.js +29 -16
  23. package/dist/index107.js.map +1 -1
  24. package/dist/index108.js +21 -0
  25. package/dist/index108.js.map +1 -0
  26. package/dist/index11.js +123 -30
  27. package/dist/index11.js.map +1 -1
  28. package/dist/index12.js +28 -263
  29. package/dist/index12.js.map +1 -1
  30. package/dist/index13.js +257 -105
  31. package/dist/index13.js.map +1 -1
  32. package/dist/index14.js +108 -153
  33. package/dist/index14.js.map +1 -1
  34. package/dist/index15.js +154 -146
  35. package/dist/index15.js.map +1 -1
  36. package/dist/index16.js +150 -5
  37. package/dist/index16.js.map +1 -1
  38. package/dist/index17.js +5 -71
  39. package/dist/index17.js.map +1 -1
  40. package/dist/index18.js +70 -24
  41. package/dist/index18.js.map +1 -1
  42. package/dist/index19.js +23 -194
  43. package/dist/index19.js.map +1 -1
  44. package/dist/index20.js +188 -106
  45. package/dist/index20.js.map +1 -1
  46. package/dist/index21.js +107 -177
  47. package/dist/index21.js.map +1 -1
  48. package/dist/index22.js +181 -107
  49. package/dist/index22.js.map +1 -1
  50. package/dist/index23.js +110 -19
  51. package/dist/index23.js.map +1 -1
  52. package/dist/index24.js +17 -41
  53. package/dist/index24.js.map +1 -1
  54. package/dist/index25.js +43 -32
  55. package/dist/index25.js.map +1 -1
  56. package/dist/index26.js +30 -170
  57. package/dist/index26.js.map +1 -1
  58. package/dist/index27.js +171 -40
  59. package/dist/index27.js.map +1 -1
  60. package/dist/index28.js +41 -17
  61. package/dist/index28.js.map +1 -1
  62. package/dist/index29.js +17 -33
  63. package/dist/index29.js.map +1 -1
  64. package/dist/index30.js +33 -52
  65. package/dist/index30.js.map +1 -1
  66. package/dist/index31.js +50 -61
  67. package/dist/index31.js.map +1 -1
  68. package/dist/index32.js +60 -181
  69. package/dist/index32.js.map +1 -1
  70. package/dist/index33.js +184 -18
  71. package/dist/index33.js.map +1 -1
  72. package/dist/index34.js +15 -271
  73. package/dist/index34.js.map +1 -1
  74. package/dist/index35.js +270 -1083
  75. package/dist/index35.js.map +1 -1
  76. package/dist/index36.js +1086 -16
  77. package/dist/index36.js.map +1 -1
  78. package/dist/index37.js +17 -17
  79. package/dist/index37.js.map +1 -1
  80. package/dist/index38.js +15 -120
  81. package/dist/index38.js.map +1 -1
  82. package/dist/index39.js +119 -37
  83. package/dist/index39.js.map +1 -1
  84. package/dist/index40.js +40 -398
  85. package/dist/index40.js.map +1 -1
  86. package/dist/index41.js +390 -89
  87. package/dist/index41.js.map +1 -1
  88. package/dist/index42.js +91 -253
  89. package/dist/index42.js.map +1 -1
  90. package/dist/index43.js +249 -145
  91. package/dist/index43.js.map +1 -1
  92. package/dist/index44.js +155 -15
  93. package/dist/index44.js.map +1 -1
  94. package/dist/index45.js +15 -17
  95. package/dist/index45.js.map +1 -1
  96. package/dist/index46.js +16 -136
  97. package/dist/index46.js.map +1 -1
  98. package/dist/index47.js +134 -10
  99. package/dist/index47.js.map +1 -1
  100. package/dist/index48.js +13 -35
  101. package/dist/index48.js.map +1 -1
  102. package/dist/index49.js +35 -34
  103. package/dist/index49.js.map +1 -1
  104. package/dist/index50.js +34 -81
  105. package/dist/index50.js.map +1 -1
  106. package/dist/index51.js +71 -166
  107. package/dist/index51.js.map +1 -1
  108. package/dist/index52.js +167 -144
  109. package/dist/index52.js.map +1 -1
  110. package/dist/index53.js +152 -11
  111. package/dist/index53.js.map +1 -1
  112. package/dist/index54.js +10 -20
  113. package/dist/index54.js.map +1 -1
  114. package/dist/index55.js +55 -12
  115. package/dist/index55.js.map +1 -1
  116. package/dist/index56.js +14 -7
  117. package/dist/index56.js.map +1 -1
  118. package/dist/index57.js +6 -333
  119. package/dist/index57.js.map +1 -1
  120. package/dist/index58.js +334 -47
  121. package/dist/index58.js.map +1 -1
  122. package/dist/index59.js +47 -122
  123. package/dist/index59.js.map +1 -1
  124. package/dist/index60.js +120 -108
  125. package/dist/index60.js.map +1 -1
  126. package/dist/index61.js +107 -167
  127. package/dist/index61.js.map +1 -1
  128. package/dist/index62.js +167 -29
  129. package/dist/index62.js.map +1 -1
  130. package/dist/index63.js +30 -120
  131. package/dist/index63.js.map +1 -1
  132. package/dist/index64.js +116 -80
  133. package/dist/index64.js.map +1 -1
  134. package/dist/index65.js +85 -19
  135. package/dist/index65.js.map +1 -1
  136. package/dist/index66.js +19 -73
  137. package/dist/index66.js.map +1 -1
  138. package/dist/index67.js +71 -54
  139. package/dist/index67.js.map +1 -1
  140. package/dist/index68.js +56 -44
  141. package/dist/index68.js.map +1 -1
  142. package/dist/index69.js +42 -49
  143. package/dist/index69.js.map +1 -1
  144. package/dist/index70.js +50 -121
  145. package/dist/index70.js.map +1 -1
  146. package/dist/index71.js +118 -102
  147. package/dist/index71.js.map +1 -1
  148. package/dist/index72.js +105 -72
  149. package/dist/index72.js.map +1 -1
  150. package/dist/index73.js +73 -67
  151. package/dist/index73.js.map +1 -1
  152. package/dist/index74.js +66 -19
  153. package/dist/index74.js.map +1 -1
  154. package/dist/index75.js +18 -55
  155. package/dist/index75.js.map +1 -1
  156. package/dist/index76.js +55 -251
  157. package/dist/index76.js.map +1 -1
  158. package/dist/index77.js +254 -22
  159. package/dist/index77.js.map +1 -1
  160. package/dist/index78.js +22 -31
  161. package/dist/index78.js.map +1 -1
  162. package/dist/index79.js +30 -93
  163. package/dist/index79.js.map +1 -1
  164. package/dist/index80.js +89 -324
  165. package/dist/index80.js.map +1 -1
  166. package/dist/index81.js +322 -73
  167. package/dist/index81.js.map +1 -1
  168. package/dist/index82.js +79 -39
  169. package/dist/index82.js.map +1 -1
  170. package/dist/index83.js +40 -23
  171. package/dist/index83.js.map +1 -1
  172. package/dist/index84.js +21 -93
  173. package/dist/index84.js.map +1 -1
  174. package/dist/index85.js +87 -148
  175. package/dist/index85.js.map +1 -1
  176. package/dist/index86.js +147 -152
  177. package/dist/index86.js.map +1 -1
  178. package/dist/index87.js +159 -63
  179. package/dist/index87.js.map +1 -1
  180. package/dist/index88.js +65 -35
  181. package/dist/index88.js.map +1 -1
  182. package/dist/index89.js +35 -234
  183. package/dist/index89.js.map +1 -1
  184. package/dist/index90.js +231 -31
  185. package/dist/index90.js.map +1 -1
  186. package/dist/index91.js +34 -210
  187. package/dist/index91.js.map +1 -1
  188. package/dist/index92.js +195 -198
  189. package/dist/index92.js.map +1 -1
  190. package/dist/index93.js +159 -241
  191. package/dist/index93.js.map +1 -1
  192. package/dist/index94.js +283 -166
  193. package/dist/index94.js.map +1 -1
  194. package/dist/index95.js +173 -253
  195. package/dist/index95.js.map +1 -1
  196. package/dist/index96.js +253 -121
  197. package/dist/index96.js.map +1 -1
  198. package/dist/index97.js +126 -14
  199. package/dist/index97.js.map +1 -1
  200. package/dist/index98.js +12 -31
  201. package/dist/index98.js.map +1 -1
  202. package/dist/index99.js +32 -5
  203. package/dist/index99.js.map +1 -1
  204. package/package.json +1 -1
package/dist/index48.js CHANGED
@@ -1,38 +1,16 @@
1
- import { jsxs as a, jsx as s } from "react/jsx-runtime";
2
- const f = ({
3
- size: r = "md",
4
- type: t = "spinner",
5
- className: d = "",
6
- spinning: l = !0,
7
- children: n,
8
- tip: e,
9
- ...i
10
- }) => {
11
- const c = {
12
- xs: "loading-xs",
13
- sm: "loading-sm",
14
- md: "loading-md",
15
- lg: "loading-lg"
16
- }, o = ["loading", {
17
- spinner: "loading-spinner",
18
- dots: "loading-dots",
19
- ring: "loading-ring",
20
- ball: "loading-ball",
21
- bars: "loading-bars",
22
- infinity: "loading-infinity"
23
- }[t], c[r], d].filter(Boolean).join(" ");
24
- return n ? /* @__PURE__ */ a("div", { className: "relative", ...i, children: [
25
- l && /* @__PURE__ */ a("div", { className: "absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10", children: [
26
- /* @__PURE__ */ s("span", { className: o }),
27
- e && /* @__PURE__ */ s("p", { className: "mt-2 text-sm", children: e })
28
- ] }),
29
- /* @__PURE__ */ s("div", { className: l ? "pointer-events-none" : "", children: n })
30
- ] }) : l ? /* @__PURE__ */ a("div", { className: "flex flex-col items-center gap-2", ...i, children: [
31
- /* @__PURE__ */ s("span", { className: o }),
32
- e && /* @__PURE__ */ s("p", { className: "text-sm", children: e })
33
- ] }) : null;
34
- };
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ function e({ children: s, className: o = "", ...t }) {
3
+ const i = ["list", o].filter(Boolean).join(" ");
4
+ return /* @__PURE__ */ n("ul", { className: i, ...t, children: s });
5
+ }
6
+ function l({ children: s, className: o = "", ...t }) {
7
+ const i = ["list-row", o].filter(Boolean).join(" ");
8
+ return /* @__PURE__ */ n("li", { className: i, ...t, children: s });
9
+ }
10
+ const r = Object.assign(e, {
11
+ Row: l
12
+ });
35
13
  export {
36
- f as Loading
14
+ r as List
37
15
  };
38
16
  //# sourceMappingURL=index48.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index48.js","sources":["../src/components/Loading.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface LoadingProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'xs' | 'sm' | 'md' | 'lg'\n type?: 'spinner' | 'dots' | 'ring' | 'ball' | 'bars' | 'infinity'\n spinning?: boolean\n children?: React.ReactNode\n tip?: string\n}\n\nexport const Loading: React.FC<LoadingProps> = ({\n size = 'md',\n type = 'spinner',\n className = '',\n spinning = true,\n children,\n tip,\n ...rest\n}) => {\n const sizeClasses = {\n xs: 'loading-xs',\n sm: 'loading-sm',\n md: 'loading-md',\n lg: 'loading-lg',\n }\n\n const typeClasses = {\n spinner: 'loading-spinner',\n dots: 'loading-dots',\n ring: 'loading-ring',\n ball: 'loading-ball',\n bars: 'loading-bars',\n infinity: 'loading-infinity',\n }\n\n const spinnerClasses = ['loading', typeClasses[type], sizeClasses[size], className]\n .filter(Boolean)\n .join(' ')\n\n if (children) {\n return (\n <div className=\"relative\" {...rest}>\n {spinning && (\n <div className=\"absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10\">\n <span className={spinnerClasses}></span>\n {tip && <p className=\"mt-2 text-sm\">{tip}</p>}\n </div>\n )}\n <div className={spinning ? 'pointer-events-none' : ''}>{children}</div>\n </div>\n )\n }\n\n if (!spinning) {\n return null\n }\n\n return (\n <div className=\"flex flex-col items-center gap-2\" {...rest}>\n <span className={spinnerClasses}></span>\n {tip && <p className=\"text-sm\">{tip}</p>}\n </div>\n )\n}\n"],"names":["Loading","size","type","className","spinning","children","tip","rest","sizeClasses","spinnerClasses","jsxs","jsx"],"mappings":";AAUO,MAAMA,IAAkC,CAAC;AAAA,EAC9C,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAYAC,IAAiB,CAAC,WATJ;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EAAA,EAGmCP,CAAI,GAAGM,EAAYP,CAAI,GAAGE,CAAS,EAC/E,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAIE,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAU,YAAY,GAAGH,GAC3B,UAAA;AAAA,IAAAH,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,mGACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,MAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,gBAAgB,UAAAL,EAAA,CAAI;AAAA,IAAA,GAC3C;AAAA,sBAED,OAAA,EAAI,WAAWF,IAAW,wBAAwB,IAAK,UAAAC,EAAA,CAAS;AAAA,EAAA,GACnE,IAICD,IAKH,gBAAAM,EAAC,OAAA,EAAI,WAAU,oCAAoC,GAAGH,GACpD,UAAA;AAAA,IAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,IAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,WAAW,UAAAL,EAAA,CAAI;AAAA,EAAA,GACtC,IAPO;AASX;"}
1
+ {"version":3,"file":"index48.js","sources":["../src/components/List.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface ListProps extends React.HTMLAttributes<HTMLUListElement> {\n children: React.ReactNode\n}\n\nexport interface ListRowProps extends React.LiHTMLAttributes<HTMLLIElement> {\n children: React.ReactNode\n}\n\nfunction ListRoot({ children, className = '', ...rest }: ListProps) {\n const classes = ['list', className].filter(Boolean).join(' ')\n return <ul className={classes} {...rest}>{children}</ul>\n}\n\nfunction ListRow({ children, className = '', ...rest }: ListRowProps) {\n const classes = ['list-row', className].filter(Boolean).join(' ')\n return <li className={classes} {...rest}>{children}</li>\n}\n\nexport const List = Object.assign(ListRoot, {\n Row: ListRow,\n})\n"],"names":["ListRoot","children","className","rest","classes","ListRow","List"],"mappings":";AAUA,SAASA,EAAS,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,KAAmB;AAClE,QAAMC,IAAU,CAAC,QAAQF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC5D,2BAAQ,MAAA,EAAG,WAAWE,GAAU,GAAGD,GAAO,UAAAF,GAAS;AACrD;AAEA,SAASI,EAAQ,EAAE,UAAAJ,GAAU,WAAAC,IAAY,IAAI,GAAGC,KAAsB;AACpE,QAAMC,IAAU,CAAC,YAAYF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAChE,2BAAQ,MAAA,EAAG,WAAWE,GAAU,GAAGD,GAAO,UAAAF,GAAS;AACrD;AAEO,MAAMK,IAAO,OAAO,OAAON,GAAU;AAAA,EAC1C,KAAKK;AACP,CAAC;"}
package/dist/index49.js CHANGED
@@ -1,37 +1,38 @@
1
- import { jsx as l } from "react/jsx-runtime";
2
- import { forwardRef as o } from "react";
3
- const i = {
4
- squircle: "mask-squircle",
5
- heart: "mask-heart",
6
- hexagon: "mask-hexagon",
7
- "hexagon-2": "mask-hexagon-2",
8
- decagon: "mask-decagon",
9
- pentagon: "mask-pentagon",
10
- diamond: "mask-diamond",
11
- square: "mask-square",
12
- circle: "mask-circle",
13
- star: "mask-star",
14
- "star-2": "mask-star-2",
15
- triangle: "mask-triangle",
16
- "triangle-2": "mask-triangle-2",
17
- "triangle-3": "mask-triangle-3",
18
- "triangle-4": "mask-triangle-4"
19
- }, k = {
20
- "half-1": "mask-half-1",
21
- "half-2": "mask-half-2"
22
- }, g = o(
23
- ({ shape: s, half: a, children: e, className: r = "", ...n }, m) => {
24
- const t = [
25
- "mask",
26
- i[s],
27
- a ? k[a] : "",
28
- r
29
- ].filter(Boolean).join(" ");
30
- return /* @__PURE__ */ l("div", { ref: m, className: t, ...n, children: e });
31
- }
32
- );
33
- g.displayName = "Mask";
1
+ import { jsxs as a, jsx as s } from "react/jsx-runtime";
2
+ const f = ({
3
+ size: r = "md",
4
+ type: t = "spinner",
5
+ className: d = "",
6
+ spinning: l = !0,
7
+ children: n,
8
+ tip: e,
9
+ ...i
10
+ }) => {
11
+ const c = {
12
+ xs: "loading-xs",
13
+ sm: "loading-sm",
14
+ md: "loading-md",
15
+ lg: "loading-lg"
16
+ }, o = ["loading", {
17
+ spinner: "loading-spinner",
18
+ dots: "loading-dots",
19
+ ring: "loading-ring",
20
+ ball: "loading-ball",
21
+ bars: "loading-bars",
22
+ infinity: "loading-infinity"
23
+ }[t], c[r], d].filter(Boolean).join(" ");
24
+ return n ? /* @__PURE__ */ a("div", { className: "relative", ...i, children: [
25
+ l && /* @__PURE__ */ a("div", { className: "absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10", children: [
26
+ /* @__PURE__ */ s("span", { className: o }),
27
+ e && /* @__PURE__ */ s("p", { className: "mt-2 text-sm", children: e })
28
+ ] }),
29
+ /* @__PURE__ */ s("div", { className: l ? "pointer-events-none" : "", children: n })
30
+ ] }) : l ? /* @__PURE__ */ a("div", { className: "flex flex-col items-center gap-2", ...i, children: [
31
+ /* @__PURE__ */ s("span", { className: o }),
32
+ e && /* @__PURE__ */ s("p", { className: "text-sm", children: e })
33
+ ] }) : null;
34
+ };
34
35
  export {
35
- g as Mask
36
+ f as Loading
36
37
  };
37
38
  //# sourceMappingURL=index49.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index49.js","sources":["../src/components/Mask.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport type MaskShape =\n | 'squircle'\n | 'heart'\n | 'hexagon'\n | 'hexagon-2'\n | 'decagon'\n | 'pentagon'\n | 'diamond'\n | 'square'\n | 'circle'\n | 'star'\n | 'star-2'\n | 'triangle'\n | 'triangle-2'\n | 'triangle-3'\n | 'triangle-4'\n\nexport type MaskHalf = 'half-1' | 'half-2'\n\nexport interface MaskProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Shape of the mask */\n shape: MaskShape\n /** Show only half of the mask */\n half?: MaskHalf\n /** Content to mask (typically an image) */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nconst shapeClasses: Record<MaskShape, string> = {\n squircle: 'mask-squircle',\n heart: 'mask-heart',\n hexagon: 'mask-hexagon',\n 'hexagon-2': 'mask-hexagon-2',\n decagon: 'mask-decagon',\n pentagon: 'mask-pentagon',\n diamond: 'mask-diamond',\n square: 'mask-square',\n circle: 'mask-circle',\n star: 'mask-star',\n 'star-2': 'mask-star-2',\n triangle: 'mask-triangle',\n 'triangle-2': 'mask-triangle-2',\n 'triangle-3': 'mask-triangle-3',\n 'triangle-4': 'mask-triangle-4',\n}\n\nconst halfClasses: Record<MaskHalf, string> = {\n 'half-1': 'mask-half-1',\n 'half-2': 'mask-half-2',\n}\n\nexport const Mask = forwardRef<HTMLDivElement, MaskProps>(\n ({ shape, half, children, className = '', ...props }, ref) => {\n const classes = [\n 'mask',\n shapeClasses[shape],\n half ? halfClasses[half] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\n\nMask.displayName = 'Mask'\n"],"names":["shapeClasses","halfClasses","Mask","forwardRef","shape","half","children","className","props","ref","classes"],"mappings":";;AAgCA,MAAMA,IAA0C;AAAA,EAC9C,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAChB,GAEMC,IAAwC;AAAA,EAC5C,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAAOC;AAAA,EAClB,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AAC5D,UAAMC,IAAU;AAAA,MACd;AAAA,MACAV,EAAaI,CAAK;AAAA,MAClBC,IAAOJ,EAAYI,CAAI,IAAI;AAAA,MAC3BE;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BACG,OAAA,EAAI,KAAAE,GAAU,WAAWC,GAAU,GAAGF,GACpC,UAAAF,GACH;AAAA,EAEJ;AACF;AAEAJ,EAAK,cAAc;"}
1
+ {"version":3,"file":"index49.js","sources":["../src/components/Loading.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface LoadingProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'xs' | 'sm' | 'md' | 'lg'\n type?: 'spinner' | 'dots' | 'ring' | 'ball' | 'bars' | 'infinity'\n spinning?: boolean\n children?: React.ReactNode\n tip?: string\n}\n\nexport const Loading: React.FC<LoadingProps> = ({\n size = 'md',\n type = 'spinner',\n className = '',\n spinning = true,\n children,\n tip,\n ...rest\n}) => {\n const sizeClasses = {\n xs: 'loading-xs',\n sm: 'loading-sm',\n md: 'loading-md',\n lg: 'loading-lg',\n }\n\n const typeClasses = {\n spinner: 'loading-spinner',\n dots: 'loading-dots',\n ring: 'loading-ring',\n ball: 'loading-ball',\n bars: 'loading-bars',\n infinity: 'loading-infinity',\n }\n\n const spinnerClasses = ['loading', typeClasses[type], sizeClasses[size], className]\n .filter(Boolean)\n .join(' ')\n\n if (children) {\n return (\n <div className=\"relative\" {...rest}>\n {spinning && (\n <div className=\"absolute inset-0 flex flex-col items-center justify-center bg-base-100/50 backdrop-blur-sm z-10\">\n <span className={spinnerClasses}></span>\n {tip && <p className=\"mt-2 text-sm\">{tip}</p>}\n </div>\n )}\n <div className={spinning ? 'pointer-events-none' : ''}>{children}</div>\n </div>\n )\n }\n\n if (!spinning) {\n return null\n }\n\n return (\n <div className=\"flex flex-col items-center gap-2\" {...rest}>\n <span className={spinnerClasses}></span>\n {tip && <p className=\"text-sm\">{tip}</p>}\n </div>\n )\n}\n"],"names":["Loading","size","type","className","spinning","children","tip","rest","sizeClasses","spinnerClasses","jsxs","jsx"],"mappings":";AAUO,MAAMA,IAAkC,CAAC;AAAA,EAC9C,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAYAC,IAAiB,CAAC,WATJ;AAAA,IAClB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,EAAA,EAGmCP,CAAI,GAAGM,EAAYP,CAAI,GAAGE,CAAS,EAC/E,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAIE,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAU,YAAY,GAAGH,GAC3B,UAAA;AAAA,IAAAH,KACC,gBAAAM,EAAC,OAAA,EAAI,WAAU,mGACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,MAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,gBAAgB,UAAAL,EAAA,CAAI;AAAA,IAAA,GAC3C;AAAA,sBAED,OAAA,EAAI,WAAWF,IAAW,wBAAwB,IAAK,UAAAC,EAAA,CAAS;AAAA,EAAA,GACnE,IAICD,IAKH,gBAAAM,EAAC,OAAA,EAAI,WAAU,oCAAoC,GAAGH,GACpD,UAAA;AAAA,IAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWF,EAAA,CAAgB;AAAA,IAChCH,KAAO,gBAAAK,EAAC,KAAA,EAAE,WAAU,WAAW,UAAAL,EAAA,CAAI;AAAA,EAAA,GACtC,IAPO;AASX;"}
package/dist/index50.js CHANGED
@@ -1,84 +1,37 @@
1
- import { jsx as H } from "react/jsx-runtime";
2
- import I, { useRef as R, useState as b, useCallback as K, useLayoutEffect as A } from "react";
3
- const d = {
4
- sm: 640,
5
- md: 768,
6
- lg: 1024,
7
- xl: 1280,
8
- "2xl": 1536
9
- };
10
- function L(t, e) {
11
- return typeof t == "number" ? t : t ? t["2xl"] !== void 0 && e >= d["2xl"] ? t["2xl"] : t.xl !== void 0 && e >= d.xl ? t.xl : t.lg !== void 0 && e >= d.lg ? t.lg : t.md !== void 0 && e >= d.md ? t.md : t.sm !== void 0 && e >= d.sm ? t.sm : t.xs !== void 0 ? t.xs : 3 : 3;
12
- }
13
- const O = ({
14
- children: t,
15
- columns: e = 3,
16
- gap: r = 16,
17
- className: z = "",
18
- style: M,
19
- ...P
20
- }) => {
21
- const u = R(null), [l, T] = b([]), [y, N] = b(0), w = R([]), c = I.Children.toArray(t), s = K(() => {
22
- const i = u.current;
23
- if (!i || c.length === 0) return;
24
- const n = i.offsetWidth, m = typeof window < "u" ? window.innerWidth : n, a = L(e, m), j = (n - r * (a - 1)) / a, o = new Array(a).fill(0), W = [];
25
- c.forEach((_, x) => {
26
- const C = w.current[x];
27
- if (!C) return;
28
- let h = 0, E = o[0];
29
- for (let f = 1; f < a; f++)
30
- o[f] < E && (E = o[f], h = f);
31
- const k = h * (j + r), B = o[h];
32
- W[x] = { left: k, top: B };
33
- const F = C.offsetHeight;
34
- o[h] += F + r;
35
- }), T(W), N(Math.max(...o) - r);
36
- }, [t, e, r, c.length]);
37
- A(() => {
38
- s();
39
- const i = () => {
40
- s();
41
- };
42
- return window.addEventListener("resize", i), () => window.removeEventListener("resize", i);
43
- }, [s]), A(() => {
44
- const i = setTimeout(s, 0);
45
- return () => clearTimeout(i);
46
- }, [t, s]);
47
- const v = u.current?.offsetWidth ?? 0, S = typeof window < "u" ? window.innerWidth : v, g = L(e, S), p = v > 0 ? (v - r * (g - 1)) / g : 0;
48
- return /* @__PURE__ */ H(
49
- "div",
50
- {
51
- ref: u,
52
- className: z,
53
- style: {
54
- position: "relative",
55
- height: y > 0 ? y : void 0,
56
- ...M
57
- },
58
- ...P,
59
- children: c.map((i, n) => /* @__PURE__ */ H(
60
- "div",
61
- {
62
- ref: (m) => {
63
- w.current[n] = m;
64
- },
65
- style: {
66
- position: l.length > 0 ? "absolute" : "relative",
67
- left: l[n]?.left ?? 0,
68
- top: l[n]?.top ?? 0,
69
- width: p > 0 ? p : "100%",
70
- visibility: l.length > 0 ? "visible" : "hidden"
71
- },
72
- children: i
73
- },
74
- n
75
- ))
76
- }
77
- );
78
- };
79
- O.displayName = "Masonry";
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as o } from "react";
3
+ const i = {
4
+ squircle: "mask-squircle",
5
+ heart: "mask-heart",
6
+ hexagon: "mask-hexagon",
7
+ "hexagon-2": "mask-hexagon-2",
8
+ decagon: "mask-decagon",
9
+ pentagon: "mask-pentagon",
10
+ diamond: "mask-diamond",
11
+ square: "mask-square",
12
+ circle: "mask-circle",
13
+ star: "mask-star",
14
+ "star-2": "mask-star-2",
15
+ triangle: "mask-triangle",
16
+ "triangle-2": "mask-triangle-2",
17
+ "triangle-3": "mask-triangle-3",
18
+ "triangle-4": "mask-triangle-4"
19
+ }, k = {
20
+ "half-1": "mask-half-1",
21
+ "half-2": "mask-half-2"
22
+ }, g = o(
23
+ ({ shape: s, half: a, children: e, className: r = "", ...n }, m) => {
24
+ const t = [
25
+ "mask",
26
+ i[s],
27
+ a ? k[a] : "",
28
+ r
29
+ ].filter(Boolean).join(" ");
30
+ return /* @__PURE__ */ l("div", { ref: m, className: t, ...n, children: e });
31
+ }
32
+ );
33
+ g.displayName = "Mask";
80
34
  export {
81
- O as Masonry,
82
- O as default
35
+ g as Mask
83
36
  };
84
37
  //# sourceMappingURL=index50.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index50.js","sources":["../src/components/Masonry.tsx"],"sourcesContent":["import React, { useRef, useState, useLayoutEffect, useCallback } from 'react'\n\nexport interface MasonryProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n columns?:\n | number\n | {\n xs?: number\n sm?: number\n md?: number\n lg?: number\n xl?: number\n '2xl'?: number\n }\n gap?: number\n}\n\n// Tailwind breakpoints in pixels\nconst BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n}\n\nfunction getColumnsForWidth(\n columns: MasonryProps['columns'],\n width: number\n): number {\n if (typeof columns === 'number') {\n return columns\n }\n\n if (!columns) return 3\n\n // Find the appropriate column count for current width\n // Start from largest breakpoint and work down\n if (columns['2xl'] !== undefined && width >= BREAKPOINTS['2xl']) {\n return columns['2xl']\n }\n if (columns.xl !== undefined && width >= BREAKPOINTS.xl) {\n return columns.xl\n }\n if (columns.lg !== undefined && width >= BREAKPOINTS.lg) {\n return columns.lg\n }\n if (columns.md !== undefined && width >= BREAKPOINTS.md) {\n return columns.md\n }\n if (columns.sm !== undefined && width >= BREAKPOINTS.sm) {\n return columns.sm\n }\n if (columns.xs !== undefined) {\n return columns.xs\n }\n\n // Default fallback\n return 3\n}\n\nexport const Masonry: React.FC<MasonryProps> = ({\n children,\n columns = 3,\n gap = 16,\n className = '',\n style,\n ...rest\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [positions, setPositions] = useState<\n Array<{ left: number; top: number }>\n >([])\n const [containerHeight, setContainerHeight] = useState(0)\n const itemRefs = useRef<(HTMLDivElement | null)[]>([])\n\n const childArray = React.Children.toArray(children)\n\n const calculateLayout = useCallback(() => {\n const container = containerRef.current\n if (!container || childArray.length === 0) return\n\n const containerWidth = container.offsetWidth\n // Use viewport width for responsive breakpoints (matches Tailwind behavior)\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : containerWidth\n const numColumns = getColumnsForWidth(columns, viewportWidth)\n const columnWidth = (containerWidth - gap * (numColumns - 1)) / numColumns\n\n // Track height of each column\n const columnHeights = new Array(numColumns).fill(0)\n const newPositions: Array<{ left: number; top: number }> = []\n\n // Place each item in the shortest column\n childArray.forEach((_, index) => {\n const itemEl = itemRefs.current[index]\n if (!itemEl) return\n\n // Find shortest column\n let shortestColumn = 0\n let minHeight = columnHeights[0]\n for (let i = 1; i < numColumns; i++) {\n if (columnHeights[i] < minHeight) {\n minHeight = columnHeights[i]\n shortestColumn = i\n }\n }\n\n // Calculate position\n const left = shortestColumn * (columnWidth + gap)\n const top = columnHeights[shortestColumn]\n\n newPositions[index] = { left, top }\n\n // Update column height\n const itemHeight = itemEl.offsetHeight\n columnHeights[shortestColumn] += itemHeight + gap\n })\n\n setPositions(newPositions)\n setContainerHeight(Math.max(...columnHeights) - gap)\n }, [children, columns, gap, childArray.length])\n\n // Calculate layout after render and on resize\n useLayoutEffect(() => {\n calculateLayout()\n\n const handleResize = () => {\n calculateLayout()\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [calculateLayout])\n\n // Recalculate when children change\n useLayoutEffect(() => {\n // Small delay to ensure refs are populated\n const timer = setTimeout(calculateLayout, 0)\n return () => clearTimeout(timer)\n }, [children, calculateLayout])\n\n const containerWidth = containerRef.current?.offsetWidth ?? 0\n const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : containerWidth\n const numColumns = getColumnsForWidth(columns, viewportWidth)\n const columnWidth =\n containerWidth > 0\n ? (containerWidth - gap * (numColumns - 1)) / numColumns\n : 0\n\n return (\n <div\n ref={containerRef}\n className={className}\n style={{\n position: 'relative',\n height: containerHeight > 0 ? containerHeight : undefined,\n ...style,\n }}\n {...rest}\n >\n {childArray.map((child, index) => (\n <div\n key={index}\n ref={(el) => {\n itemRefs.current[index] = el\n }}\n style={{\n position: positions.length > 0 ? 'absolute' : 'relative',\n left: positions[index]?.left ?? 0,\n top: positions[index]?.top ?? 0,\n width: columnWidth > 0 ? columnWidth : '100%',\n visibility: positions.length > 0 ? 'visible' : 'hidden',\n }}\n >\n {child}\n </div>\n ))}\n </div>\n )\n}\n\nMasonry.displayName = 'Masonry'\n\nexport default Masonry\n"],"names":["BREAKPOINTS","getColumnsForWidth","columns","width","Masonry","children","gap","className","style","rest","containerRef","useRef","positions","setPositions","useState","containerHeight","setContainerHeight","itemRefs","childArray","React","calculateLayout","useCallback","container","containerWidth","viewportWidth","numColumns","columnWidth","columnHeights","newPositions","index","itemEl","shortestColumn","minHeight","i","left","top","itemHeight","useLayoutEffect","handleResize","timer","jsx","child","el"],"mappings":"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"}
1
+ {"version":3,"file":"index50.js","sources":["../src/components/Mask.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport type MaskShape =\n | 'squircle'\n | 'heart'\n | 'hexagon'\n | 'hexagon-2'\n | 'decagon'\n | 'pentagon'\n | 'diamond'\n | 'square'\n | 'circle'\n | 'star'\n | 'star-2'\n | 'triangle'\n | 'triangle-2'\n | 'triangle-3'\n | 'triangle-4'\n\nexport type MaskHalf = 'half-1' | 'half-2'\n\nexport interface MaskProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Shape of the mask */\n shape: MaskShape\n /** Show only half of the mask */\n half?: MaskHalf\n /** Content to mask (typically an image) */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nconst shapeClasses: Record<MaskShape, string> = {\n squircle: 'mask-squircle',\n heart: 'mask-heart',\n hexagon: 'mask-hexagon',\n 'hexagon-2': 'mask-hexagon-2',\n decagon: 'mask-decagon',\n pentagon: 'mask-pentagon',\n diamond: 'mask-diamond',\n square: 'mask-square',\n circle: 'mask-circle',\n star: 'mask-star',\n 'star-2': 'mask-star-2',\n triangle: 'mask-triangle',\n 'triangle-2': 'mask-triangle-2',\n 'triangle-3': 'mask-triangle-3',\n 'triangle-4': 'mask-triangle-4',\n}\n\nconst halfClasses: Record<MaskHalf, string> = {\n 'half-1': 'mask-half-1',\n 'half-2': 'mask-half-2',\n}\n\nexport const Mask = forwardRef<HTMLDivElement, MaskProps>(\n ({ shape, half, children, className = '', ...props }, ref) => {\n const classes = [\n 'mask',\n shapeClasses[shape],\n half ? halfClasses[half] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\n\nMask.displayName = 'Mask'\n"],"names":["shapeClasses","halfClasses","Mask","forwardRef","shape","half","children","className","props","ref","classes"],"mappings":";;AAgCA,MAAMA,IAA0C;AAAA,EAC9C,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAChB,GAEMC,IAAwC;AAAA,EAC5C,UAAU;AAAA,EACV,UAAU;AACZ,GAEaC,IAAOC;AAAA,EAClB,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,WAAAC,IAAY,IAAI,GAAGC,EAAA,GAASC,MAAQ;AAC5D,UAAMC,IAAU;AAAA,MACd;AAAA,MACAV,EAAaI,CAAK;AAAA,MAClBC,IAAOJ,EAAYI,CAAI,IAAI;AAAA,MAC3BE;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BACG,OAAA,EAAI,KAAAE,GAAU,WAAWC,GAAU,GAAGF,GACpC,UAAAF,GACH;AAAA,EAEJ;AACF;AAEAJ,EAAK,cAAc;"}
package/dist/index51.js CHANGED
@@ -1,179 +1,84 @@
1
- import { jsx as a, jsxs as K } from "react/jsx-runtime";
2
- import { useState as f, useRef as $, useCallback as A, useEffect as C } from "react";
3
- import { createPortal as oe } from "react-dom";
4
- const fe = ({
5
- value: p,
6
- defaultValue: q = "",
7
- onChange: E,
8
- onSelect: U,
9
- onSearch: W,
10
- options: R = [],
11
- loading: X = !1,
12
- prefix: k = "@",
13
- split: v = " ",
14
- placeholder: Y,
15
- disabled: G = !1,
16
- readOnly: J = !1,
17
- rows: V = 3,
18
- autoSize: o = !1,
19
- notFoundContent: Q = "No matches found",
20
- filterOption: x = !0,
21
- className: Z = "",
22
- dropdownClassName: _ = "",
23
- ...z
1
+ import { jsx as H } from "react/jsx-runtime";
2
+ import I, { useRef as R, useState as b, useCallback as K, useLayoutEffect as A } from "react";
3
+ const d = {
4
+ sm: 640,
5
+ md: 768,
6
+ lg: 1024,
7
+ xl: 1280,
8
+ "2xl": 1536
9
+ };
10
+ function L(t, e) {
11
+ return typeof t == "number" ? t : t ? t["2xl"] !== void 0 && e >= d["2xl"] ? t["2xl"] : t.xl !== void 0 && e >= d.xl ? t.xl : t.lg !== void 0 && e >= d.lg ? t.lg : t.md !== void 0 && e >= d.md ? t.md : t.sm !== void 0 && e >= d.sm ? t.sm : t.xs !== void 0 ? t.xs : 3 : 3;
12
+ }
13
+ const O = ({
14
+ children: t,
15
+ columns: e = 3,
16
+ gap: r = 16,
17
+ className: z = "",
18
+ style: M,
19
+ ...P
24
20
  }) => {
25
- const [ee, T] = f(q), h = p !== void 0 ? p : ee, [u, m] = f(!1), [I, N] = f(null), [D, M] = f(""), [d, y] = f(0), [g, H] = f(null), [j, te] = f({ top: 0, left: 0 }), l = $(null), b = $(null), B = $(null), ne = Array.isArray(k) ? k : [k], c = A(() => {
26
- if (!x) return R;
27
- const e = typeof x == "function" ? x : (t, n) => (n.label || n.value).toLowerCase().includes(t.toLowerCase());
28
- return R.filter((t) => e(D, t));
29
- }, [R, D, x])(), L = A(() => {
30
- const e = l.current;
31
- if (!e || !o) return;
32
- e.style.height = "auto";
33
- const t = e.scrollHeight;
34
- if (typeof o == "object") {
35
- const n = parseInt(getComputedStyle(e).lineHeight) || 20, r = o.minRows ? o.minRows * n : 0, s = o.maxRows ? o.maxRows * n : 1 / 0;
36
- e.style.height = `${Math.min(Math.max(t, r), s)}px`;
37
- } else
38
- e.style.height = `${t}px`;
39
- }, [o]);
40
- C(() => {
41
- L();
42
- }, [h, L]);
43
- const O = A(() => {
44
- const e = l.current, t = B.current;
45
- if (!e || !t || g === null) return;
46
- const n = h.substring(0, g);
47
- t.textContent = n;
48
- const r = e.getBoundingClientRect(), s = t.getBoundingClientRect(), w = parseInt(getComputedStyle(e).lineHeight) || 20;
49
- te({
50
- top: r.top + window.scrollY + w + 4,
51
- left: r.left + window.scrollX + Math.min(s.width % r.width, r.width - 200)
52
- });
53
- }, [h, g]);
54
- C(() => {
55
- u && O();
56
- }, [u, O, D]);
57
- const re = (e) => {
58
- const t = e.target.value, n = e.target.selectionStart;
59
- p === void 0 && T(t), E?.(t), se(t, n);
60
- }, se = (e, t) => {
61
- let n = null, r = null;
62
- for (const s of ne) {
63
- const i = e.substring(0, t).lastIndexOf(s);
64
- if (i !== -1) {
65
- const S = i > 0 ? e[i - 1] : v;
66
- if (S === v || S === `
67
- ` || i === 0) {
68
- const F = e.substring(i + s.length, t);
69
- if (!F.includes(v) && !F.includes(`
70
- `)) {
71
- n = s, r = i;
72
- break;
73
- }
74
- }
75
- }
76
- }
77
- if (n !== null && r !== null) {
78
- const s = e.substring(r + n.length, t);
79
- N(n), M(s), H(r), m(!0), y(0), W?.(s, n);
80
- } else
81
- m(!1), N(null), M(""), H(null);
82
- }, P = (e) => {
83
- if (e.disabled || g === null || I === null) return;
84
- const t = l.current;
85
- if (!t) return;
86
- const n = h.substring(0, g), r = h.substring(t.selectionStart), s = `${I}${e.value}${v}`, w = n + s + r;
87
- p === void 0 && T(w), E?.(w), U?.(e, I), m(!1), N(null), M(""), H(null), setTimeout(() => {
88
- const i = n.length + s.length;
89
- t.focus(), t.setSelectionRange(i, i);
90
- }, 0);
91
- }, ae = (e) => {
92
- if (u)
93
- switch (e.key) {
94
- case "ArrowDown":
95
- e.preventDefault(), y((t) => (t + 1) % Math.max(c.length, 1));
96
- break;
97
- case "ArrowUp":
98
- e.preventDefault(), y((t) => (t - 1 + c.length) % Math.max(c.length, 1));
99
- break;
100
- case "Enter":
101
- c[d] && (e.preventDefault(), P(c[d]));
102
- break;
103
- case "Escape":
104
- e.preventDefault(), m(!1);
105
- break;
106
- case "Tab":
107
- c[d] && (e.preventDefault(), P(c[d]));
108
- break;
109
- }
110
- };
111
- C(() => {
112
- const e = (t) => {
113
- b.current && !b.current.contains(t.target) && l.current && !l.current.contains(t.target) && m(!1);
21
+ const u = R(null), [l, T] = b([]), [y, N] = b(0), w = R([]), c = I.Children.toArray(t), s = K(() => {
22
+ const i = u.current;
23
+ if (!i || c.length === 0) return;
24
+ const n = i.offsetWidth, m = typeof window < "u" ? window.innerWidth : n, a = L(e, m), j = (n - r * (a - 1)) / a, o = new Array(a).fill(0), W = [];
25
+ c.forEach((_, x) => {
26
+ const C = w.current[x];
27
+ if (!C) return;
28
+ let h = 0, E = o[0];
29
+ for (let f = 1; f < a; f++)
30
+ o[f] < E && (E = o[f], h = f);
31
+ const k = h * (j + r), B = o[h];
32
+ W[x] = { left: k, top: B };
33
+ const F = C.offsetHeight;
34
+ o[h] += F + r;
35
+ }), T(W), N(Math.max(...o) - r);
36
+ }, [t, e, r, c.length]);
37
+ A(() => {
38
+ s();
39
+ const i = () => {
40
+ s();
114
41
  };
115
- return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
116
- }, []), C(() => {
117
- u && b.current && b.current.querySelector('[data-active="true"]')?.scrollIntoView({ block: "nearest" });
118
- }, [d, u]);
119
- const le = u && /* @__PURE__ */ a(
42
+ return window.addEventListener("resize", i), () => window.removeEventListener("resize", i);
43
+ }, [s]), A(() => {
44
+ const i = setTimeout(s, 0);
45
+ return () => clearTimeout(i);
46
+ }, [t, s]);
47
+ const v = u.current?.offsetWidth ?? 0, S = typeof window < "u" ? window.innerWidth : v, g = L(e, S), p = v > 0 ? (v - r * (g - 1)) / g : 0;
48
+ return /* @__PURE__ */ H(
120
49
  "div",
121
50
  {
122
- ref: b,
123
- className: `fixed z-50 bg-base-100 border border-base-300 rounded-lg shadow-lg
124
- min-w-48 max-h-60 overflow-auto ${_}`,
51
+ ref: u,
52
+ className: z,
125
53
  style: {
126
- top: j.top,
127
- left: j.left
54
+ position: "relative",
55
+ height: y > 0 ? y : void 0,
56
+ ...M
128
57
  },
129
- children: X ? /* @__PURE__ */ a("div", { className: "p-3 text-center text-base-content/60", children: /* @__PURE__ */ a("span", { className: "loading loading-spinner loading-sm" }) }) : c.length === 0 ? /* @__PURE__ */ a("div", { className: "p-3 text-center text-base-content/60 text-sm", children: Q }) : /* @__PURE__ */ a("ul", { className: "menu menu-sm p-1", children: c.map((e, t) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ K(
130
- "button",
58
+ ...P,
59
+ children: c.map((i, n) => /* @__PURE__ */ H(
60
+ "div",
131
61
  {
132
- type: "button",
133
- "data-active": t === d,
134
- className: `flex items-center gap-2 ${t === d ? "active" : ""} ${e.disabled ? "disabled opacity-50 cursor-not-allowed" : ""}`,
135
- onClick: () => P(e),
136
- onMouseEnter: () => y(t),
137
- children: [
138
- e.avatar && /* @__PURE__ */ a("div", { className: "avatar", children: /* @__PURE__ */ a("div", { className: "w-6 h-6 rounded-full", children: /* @__PURE__ */ a("img", { src: e.avatar, alt: "" }) }) }),
139
- /* @__PURE__ */ a("span", { children: e.label || e.value })
140
- ]
141
- }
142
- ) }, e.value)) })
62
+ ref: (m) => {
63
+ w.current[n] = m;
64
+ },
65
+ style: {
66
+ position: l.length > 0 ? "absolute" : "relative",
67
+ left: l[n]?.left ?? 0,
68
+ top: l[n]?.top ?? 0,
69
+ width: p > 0 ? p : "100%",
70
+ visibility: l.length > 0 ? "visible" : "hidden"
71
+ },
72
+ children: i
73
+ },
74
+ n
75
+ ))
143
76
  }
144
77
  );
145
- return /* @__PURE__ */ K("div", { className: `relative ${Z}`, "data-state": u ? "open" : "closed", ...z, children: [
146
- /* @__PURE__ */ a(
147
- "div",
148
- {
149
- ref: B,
150
- className: "invisible absolute whitespace-pre-wrap break-words",
151
- style: {
152
- font: l.current ? getComputedStyle(l.current).font : void 0,
153
- width: l.current?.clientWidth,
154
- padding: l.current ? getComputedStyle(l.current).padding : void 0
155
- },
156
- "aria-hidden": "true"
157
- }
158
- ),
159
- /* @__PURE__ */ a(
160
- "textarea",
161
- {
162
- ref: l,
163
- value: h,
164
- onChange: re,
165
- onKeyDown: ae,
166
- placeholder: Y,
167
- disabled: G,
168
- readOnly: J,
169
- rows: typeof o == "object" ? o.minRows || V : o ? 1 : V,
170
- className: "textarea textarea-bordered w-full resize-none"
171
- }
172
- ),
173
- oe(le, document.body)
174
- ] });
175
78
  };
79
+ O.displayName = "Masonry";
176
80
  export {
177
- fe as Mention
81
+ O as Masonry,
82
+ O as default
178
83
  };
179
84
  //# sourceMappingURL=index51.js.map