asterui 0.12.7 → 0.12.9

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 (179) hide show
  1. package/dist/components/Container.d.ts +7 -1
  2. package/dist/components/Fieldset.d.ts +6 -0
  3. package/dist/components/Filter.d.ts +27 -0
  4. package/dist/components/Grid.d.ts +1 -1
  5. package/dist/components/Hero.d.ts +14 -5
  6. package/dist/components/Join.d.ts +2 -2
  7. package/dist/components/Layout.d.ts +1 -1
  8. package/dist/components/Masonry.d.ts +1 -1
  9. package/dist/components/Modal.d.ts +7 -2
  10. package/dist/components/ThemeController.d.ts +12 -4
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.js +167 -165
  13. package/dist/index.js.map +1 -1
  14. package/dist/index100.js +44 -11
  15. package/dist/index100.js.map +1 -1
  16. package/dist/index101.js +10 -12
  17. package/dist/index101.js.map +1 -1
  18. package/dist/index102.js +14 -7
  19. package/dist/index102.js.map +1 -1
  20. package/dist/index103.js +7 -12
  21. package/dist/index103.js.map +1 -1
  22. package/dist/index104.js +11 -29
  23. package/dist/index104.js.map +1 -1
  24. package/dist/index105.js +29 -16
  25. package/dist/index105.js.map +1 -1
  26. package/dist/index106.js +21 -0
  27. package/dist/index106.js.map +1 -0
  28. package/dist/index18.js +23 -15
  29. package/dist/index18.js.map +1 -1
  30. package/dist/index2.js +41 -34
  31. package/dist/index2.js.map +1 -1
  32. package/dist/index21.js +1 -1
  33. package/dist/index25.js +8 -8
  34. package/dist/index25.js.map +1 -1
  35. package/dist/index27.js +13 -8
  36. package/dist/index27.js.map +1 -1
  37. package/dist/index29.js +50 -61
  38. package/dist/index29.js.map +1 -1
  39. package/dist/index30.js +60 -181
  40. package/dist/index30.js.map +1 -1
  41. package/dist/index31.js +184 -18
  42. package/dist/index31.js.map +1 -1
  43. package/dist/index32.js +15 -217
  44. package/dist/index32.js.map +1 -1
  45. package/dist/index33.js +216 -1078
  46. package/dist/index33.js.map +1 -1
  47. package/dist/index34.js +1086 -17
  48. package/dist/index34.js.map +1 -1
  49. package/dist/index35.js +30 -122
  50. package/dist/index35.js.map +1 -1
  51. package/dist/index36.js +119 -37
  52. package/dist/index36.js.map +1 -1
  53. package/dist/index37.js +34 -208
  54. package/dist/index37.js.map +1 -1
  55. package/dist/index38.js +214 -97
  56. package/dist/index38.js.map +1 -1
  57. package/dist/index39.js +93 -158
  58. package/dist/index39.js.map +1 -1
  59. package/dist/index40.js +155 -139
  60. package/dist/index40.js.map +1 -1
  61. package/dist/index41.js +146 -15
  62. package/dist/index41.js.map +1 -1
  63. package/dist/index42.js +15 -17
  64. package/dist/index42.js.map +1 -1
  65. package/dist/index43.js +17 -21
  66. package/dist/index43.js.map +1 -1
  67. package/dist/index44.js +18 -116
  68. package/dist/index44.js.map +1 -1
  69. package/dist/index45.js +134 -10
  70. package/dist/index45.js.map +1 -1
  71. package/dist/index46.js +13 -35
  72. package/dist/index46.js.map +1 -1
  73. package/dist/index47.js +35 -34
  74. package/dist/index47.js.map +1 -1
  75. package/dist/index48.js +34 -116
  76. package/dist/index48.js.map +1 -1
  77. package/dist/index49.js +71 -166
  78. package/dist/index49.js.map +1 -1
  79. package/dist/index50.js +165 -136
  80. package/dist/index50.js.map +1 -1
  81. package/dist/index51.js +146 -11
  82. package/dist/index51.js.map +1 -1
  83. package/dist/index52.js +10 -20
  84. package/dist/index52.js.map +1 -1
  85. package/dist/index53.js +22 -14
  86. package/dist/index53.js.map +1 -1
  87. package/dist/index54.js +14 -7
  88. package/dist/index54.js.map +1 -1
  89. package/dist/index55.js +6 -268
  90. package/dist/index55.js.map +1 -1
  91. package/dist/index56.js +311 -17
  92. package/dist/index56.js.map +1 -1
  93. package/dist/index57.js +17 -122
  94. package/dist/index57.js.map +1 -1
  95. package/dist/index58.js +120 -108
  96. package/dist/index58.js.map +1 -1
  97. package/dist/index59.js +107 -167
  98. package/dist/index59.js.map +1 -1
  99. package/dist/index60.js +167 -29
  100. package/dist/index60.js.map +1 -1
  101. package/dist/index61.js +30 -120
  102. package/dist/index61.js.map +1 -1
  103. package/dist/index62.js +116 -80
  104. package/dist/index62.js.map +1 -1
  105. package/dist/index63.js +85 -19
  106. package/dist/index63.js.map +1 -1
  107. package/dist/index64.js +19 -73
  108. package/dist/index64.js.map +1 -1
  109. package/dist/index65.js +71 -54
  110. package/dist/index65.js.map +1 -1
  111. package/dist/index66.js +56 -44
  112. package/dist/index66.js.map +1 -1
  113. package/dist/index67.js +42 -49
  114. package/dist/index67.js.map +1 -1
  115. package/dist/index68.js +52 -62
  116. package/dist/index68.js.map +1 -1
  117. package/dist/index69.js +56 -101
  118. package/dist/index69.js.map +1 -1
  119. package/dist/index70.js +107 -41
  120. package/dist/index70.js.map +1 -1
  121. package/dist/index71.js +41 -68
  122. package/dist/index71.js.map +1 -1
  123. package/dist/index72.js +66 -19
  124. package/dist/index72.js.map +1 -1
  125. package/dist/index73.js +18 -43
  126. package/dist/index73.js.map +1 -1
  127. package/dist/index74.js +44 -132
  128. package/dist/index74.js.map +1 -1
  129. package/dist/index75.js +132 -50
  130. package/dist/index75.js.map +1 -1
  131. package/dist/index76.js +51 -21
  132. package/dist/index76.js.map +1 -1
  133. package/dist/index77.js +22 -31
  134. package/dist/index77.js.map +1 -1
  135. package/dist/index78.js +31 -22
  136. package/dist/index78.js.map +1 -1
  137. package/dist/index79.js +20 -327
  138. package/dist/index79.js.map +1 -1
  139. package/dist/index80.js +323 -50
  140. package/dist/index80.js.map +1 -1
  141. package/dist/index81.js +56 -40
  142. package/dist/index81.js.map +1 -1
  143. package/dist/index82.js +40 -23
  144. package/dist/index82.js.map +1 -1
  145. package/dist/index83.js +21 -93
  146. package/dist/index83.js.map +1 -1
  147. package/dist/index84.js +88 -123
  148. package/dist/index84.js.map +1 -1
  149. package/dist/index85.js +147 -152
  150. package/dist/index85.js.map +1 -1
  151. package/dist/index86.js +159 -63
  152. package/dist/index86.js.map +1 -1
  153. package/dist/index87.js +65 -35
  154. package/dist/index87.js.map +1 -1
  155. package/dist/index88.js +35 -234
  156. package/dist/index88.js.map +1 -1
  157. package/dist/index89.js +231 -31
  158. package/dist/index89.js.map +1 -1
  159. package/dist/index90.js +34 -210
  160. package/dist/index90.js.map +1 -1
  161. package/dist/index91.js +195 -198
  162. package/dist/index91.js.map +1 -1
  163. package/dist/index92.js +159 -241
  164. package/dist/index92.js.map +1 -1
  165. package/dist/index93.js +283 -166
  166. package/dist/index93.js.map +1 -1
  167. package/dist/index94.js +173 -253
  168. package/dist/index94.js.map +1 -1
  169. package/dist/index95.js +258 -14
  170. package/dist/index95.js.map +1 -1
  171. package/dist/index96.js +12 -31
  172. package/dist/index96.js.map +1 -1
  173. package/dist/index97.js +32 -5
  174. package/dist/index97.js.map +1 -1
  175. package/dist/index98.js +5 -13
  176. package/dist/index98.js.map +1 -1
  177. package/dist/index99.js +11 -43
  178. package/dist/index99.js.map +1 -1
  179. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index69.js","sources":["../src/components/Result.tsx"],"sourcesContent":["import React from 'react'\n\nexport type ResultStatus = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500'\n\nexport interface ResultProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n status?: ResultStatus\n title?: React.ReactNode\n subTitle?: React.ReactNode\n icon?: React.ReactNode\n extra?: React.ReactNode\n children?: React.ReactNode\n}\n\nconst defaultIcons: Record<ResultStatus, React.ReactNode> = {\n success: (\n <svg\n className=\"w-16 h-16 text-success\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n error: (\n <svg\n className=\"w-16 h-16 text-error\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n info: (\n <svg\n className=\"w-16 h-16 text-info\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n warning: (\n <svg\n className=\"w-16 h-16 text-warning\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n ),\n '404': (\n <div className=\"text-6xl font-bold text-base-content/40\">404</div>\n ),\n '403': (\n <div className=\"text-6xl font-bold text-base-content/40\">403</div>\n ),\n '500': (\n <div className=\"text-6xl font-bold text-base-content/40\">500</div>\n ),\n}\n\nexport const Result: React.FC<ResultProps> = ({\n status = 'info',\n title,\n subTitle,\n icon,\n extra,\n children,\n className = '',\n ...rest\n}) => {\n const displayIcon = icon !== undefined ? icon : defaultIcons[status]\n\n return (\n <div\n className={`w-full flex flex-col items-center justify-center text-center p-8 ${className}`}\n data-status={status}\n {...rest}\n >\n {displayIcon && <div className=\"mb-6\">{displayIcon}</div>}\n\n {title && (\n <div className=\"text-2xl font-semibold mb-2 text-base-content\">\n {title}\n </div>\n )}\n\n {subTitle && (\n <div className=\"text-base text-base-content/70 mb-6 max-w-md\">\n {subTitle}\n </div>\n )}\n\n {children && <div className=\"mb-6 max-w-2xl\">{children}</div>}\n\n {extra && <div className=\"flex gap-2\">{extra}</div>}\n </div>\n )\n}\n\nResult.displayName = 'Result'\n\nexport default Result\n"],"names":["defaultIcons","jsx","Result","status","title","subTitle","icon","extra","children","className","rest","displayIcon","jsxs"],"mappings":";AAaA,MAAMA,IAAsD;AAAA,EAC1D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,OACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,MACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,SACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,MAAA,CAAG;AAEhE,GAEaC,IAAgC,CAAC;AAAA,EAC5C,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAcL,MAAS,SAAYA,IAAON,EAAaG,CAAM;AAEnE,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oEAAoEH,CAAS;AAAA,MACxF,eAAaN;AAAA,MACZ,GAAGO;AAAA,MAEH,UAAA;AAAA,QAAAC,KAAe,gBAAAV,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAU,GAAY;AAAA,QAElDP,KACC,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAG,GACH;AAAA,QAGDC,KACC,gBAAAJ,EAAC,OAAA,EAAI,WAAU,gDACZ,UAAAI,GACH;AAAA,QAGDG,KAAY,gBAAAP,EAAC,OAAA,EAAI,WAAU,kBAAkB,UAAAO,GAAS;AAAA,QAEtDD,KAAS,gBAAAN,EAAC,OAAA,EAAI,WAAU,cAAc,UAAAM,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD;AAEAL,EAAO,cAAc;"}
1
+ {"version":3,"file":"index69.js","sources":["../src/components/Rating.tsx"],"sourcesContent":["import React, { createContext, useContext, useId, useState } from 'react'\n\nexport interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n children: React.ReactNode\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n readOnly?: boolean\n}\n\nexport interface RatingItemProps {\n value: number\n mask?: 'star' | 'star-2' | 'heart'\n color?: string\n hidden?: boolean\n className?: string\n}\n\ninterface RatingContextValue {\n name: string\n currentValue: number\n onChange: (value: number) => void\n size?: string\n readOnly?: boolean\n}\n\nconst RatingContext = createContext<RatingContextValue | null>(null)\n\nfunction RatingRoot({\n children,\n value,\n defaultValue = 0,\n onChange,\n size,\n readOnly = false,\n className = '',\n ...rest\n}: RatingProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n const name = useId()\n\n const handleChange = (newValue: number) => {\n if (readOnly) return\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const sizeClasses = {\n xs: 'rating-xs',\n sm: 'rating-sm',\n md: 'rating-md',\n lg: 'rating-lg',\n xl: 'rating-xl',\n }\n\n const classes = ['rating', size && sizeClasses[size], className].filter(Boolean).join(' ')\n\n return (\n <RatingContext.Provider value={{ name, currentValue, onChange: handleChange, size, readOnly }}>\n <div className={classes} data-value={currentValue} {...rest}>{children}</div>\n </RatingContext.Provider>\n )\n}\n\nfunction RatingItem({ value, mask = 'star', color = 'bg-warning', hidden = false, className = '' }: RatingItemProps) {\n const context = useContext(RatingContext)\n if (!context) {\n throw new Error('Rating.Item must be used within Rating')\n }\n\n const { name, currentValue, onChange, readOnly } = context\n\n const maskClasses = {\n star: 'mask-star',\n 'star-2': 'mask-star-2',\n heart: 'mask-heart',\n }\n\n const classes = [\n 'mask',\n maskClasses[mask],\n hidden && 'rating-hidden',\n !hidden && color,\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n if (readOnly) {\n return (\n <div\n className={classes}\n aria-current={currentValue === value ? 'true' : undefined}\n aria-label={`Rating ${value}`}\n />\n )\n }\n\n return (\n <input\n type=\"radio\"\n name={name}\n className={classes}\n checked={currentValue === value}\n onChange={() => onChange(value)}\n aria-label={`Rating ${value}`}\n />\n )\n}\n\nexport const Rating = Object.assign(RatingRoot, {\n Item: RatingItem,\n})\n"],"names":["RatingContext","createContext","RatingRoot","children","value","defaultValue","onChange","size","readOnly","className","rest","internalValue","setInternalValue","useState","currentValue","name","useId","handleChange","newValue","classes","jsx","RatingItem","mask","color","hidden","context","useContext","Rating"],"mappings":";;AA2BA,MAAMA,IAAgBC,EAAyC,IAAI;AAEnE,SAASC,EAAW;AAAA,EAClB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAgB;AACd,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAASR,CAAY,GACzDS,IAAeV,MAAU,SAAYA,IAAQO,GAC7CI,IAAOC,EAAA,GAEPC,IAAe,CAACC,MAAqB;AACzC,IAAIV,MACAJ,MAAU,UACZQ,EAAiBM,CAAQ,GAE3BZ,IAAWY,CAAQ;AAAA,EACrB,GAUMC,IAAU,CAAC,UAAUZ,KARP;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,EAGyCA,CAAI,GAAGE,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEzF,SACE,gBAAAW,EAACpB,EAAc,UAAd,EAAuB,OAAO,EAAE,MAAAe,GAAM,cAAAD,GAAc,UAAUG,GAAc,MAAAV,GAAM,UAAAC,KACjF,UAAA,gBAAAY,EAAC,SAAI,WAAWD,GAAS,cAAYL,GAAe,GAAGJ,GAAO,UAAAP,EAAA,CAAS,EAAA,CACzE;AAEJ;AAEA,SAASkB,EAAW,EAAE,OAAAjB,GAAO,MAAAkB,IAAO,QAAQ,OAAAC,IAAQ,cAAc,QAAAC,IAAS,IAAO,WAAAf,IAAY,GAAA,GAAuB;AACnH,QAAMgB,IAAUC,EAAW1B,CAAa;AACxC,MAAI,CAACyB;AACH,UAAM,IAAI,MAAM,wCAAwC;AAG1D,QAAM,EAAE,MAAAV,GAAM,cAAAD,GAAc,UAAAR,GAAU,UAAAE,MAAaiB,GAQ7CN,IAAU;AAAA,IACd;AAAA,IAPkB;AAAA,MAClB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,IAAA,EAKKG,CAAI;AAAA,IAChBE,KAAU;AAAA,IACV,CAACA,KAAUD;AAAA,IACXd;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAID,IAEA,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,MACX,gBAAcL,MAAiBV,IAAQ,SAAS;AAAA,MAChD,cAAY,UAAUA,CAAK;AAAA,IAAA;AAAA,EAAA,IAM/B,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAAL;AAAA,MACA,WAAWI;AAAA,MACX,SAASL,MAAiBV;AAAA,MAC1B,UAAU,MAAME,EAASF,CAAK;AAAA,MAC9B,cAAY,UAAUA,CAAK;AAAA,IAAA;AAAA,EAAA;AAGjC;AAEO,MAAMuB,IAAS,OAAO,OAAOzB,GAAY;AAAA,EAC9C,MAAMmB;AACR,CAAC;"}
package/dist/index70.js CHANGED
@@ -1,44 +1,110 @@
1
- import { jsx as f } from "react/jsx-runtime";
2
- import { forwardRef as d } from "react";
3
- const u = d(
4
- ({
5
- size: e,
6
- color: s,
7
- ghost: l = !1,
8
- bordered: c = !0,
9
- className: t = "",
10
- children: r,
11
- ...o
12
- }, a) => {
13
- const n = {
14
- xs: "select-xs",
15
- sm: "select-sm",
16
- md: "select-md",
17
- lg: "select-lg",
18
- xl: "select-xl"
19
- }, m = {
20
- neutral: "select-neutral",
21
- primary: "select-primary",
22
- secondary: "select-secondary",
23
- accent: "select-accent",
24
- info: "select-info",
25
- success: "select-success",
26
- warning: "select-warning",
27
- error: "select-error"
28
- }, i = [
29
- "select",
30
- "w-full",
31
- c && "select-bordered",
32
- l && "select-ghost",
33
- e && n[e],
34
- s && m[s],
35
- t
36
- ].filter(Boolean).join(" ");
37
- return /* @__PURE__ */ f("select", { ref: a, className: i, ...o, children: r });
38
- }
39
- );
40
- u.displayName = "Select";
1
+ import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
+ const m = {
3
+ success: /* @__PURE__ */ e(
4
+ "svg",
5
+ {
6
+ className: "w-16 h-16 text-success",
7
+ fill: "none",
8
+ viewBox: "0 0 24 24",
9
+ stroke: "currentColor",
10
+ children: /* @__PURE__ */ e(
11
+ "path",
12
+ {
13
+ strokeLinecap: "round",
14
+ strokeLinejoin: "round",
15
+ strokeWidth: 2,
16
+ d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
17
+ }
18
+ )
19
+ }
20
+ ),
21
+ error: /* @__PURE__ */ e(
22
+ "svg",
23
+ {
24
+ className: "w-16 h-16 text-error",
25
+ fill: "none",
26
+ viewBox: "0 0 24 24",
27
+ stroke: "currentColor",
28
+ children: /* @__PURE__ */ e(
29
+ "path",
30
+ {
31
+ strokeLinecap: "round",
32
+ strokeLinejoin: "round",
33
+ strokeWidth: 2,
34
+ d: "M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"
35
+ }
36
+ )
37
+ }
38
+ ),
39
+ info: /* @__PURE__ */ e(
40
+ "svg",
41
+ {
42
+ className: "w-16 h-16 text-info",
43
+ fill: "none",
44
+ viewBox: "0 0 24 24",
45
+ stroke: "currentColor",
46
+ children: /* @__PURE__ */ e(
47
+ "path",
48
+ {
49
+ strokeLinecap: "round",
50
+ strokeLinejoin: "round",
51
+ strokeWidth: 2,
52
+ d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
53
+ }
54
+ )
55
+ }
56
+ ),
57
+ warning: /* @__PURE__ */ e(
58
+ "svg",
59
+ {
60
+ className: "w-16 h-16 text-warning",
61
+ fill: "none",
62
+ viewBox: "0 0 24 24",
63
+ stroke: "currentColor",
64
+ children: /* @__PURE__ */ e(
65
+ "path",
66
+ {
67
+ strokeLinecap: "round",
68
+ strokeLinejoin: "round",
69
+ strokeWidth: 2,
70
+ d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
71
+ }
72
+ )
73
+ }
74
+ ),
75
+ 404: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "404" }),
76
+ 403: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "403" }),
77
+ 500: /* @__PURE__ */ e("div", { className: "text-6xl font-bold text-base-content/40", children: "500" })
78
+ }, x = ({
79
+ status: t = "info",
80
+ title: n,
81
+ subTitle: s,
82
+ icon: o,
83
+ extra: r,
84
+ children: l,
85
+ className: i = "",
86
+ ...c
87
+ }) => {
88
+ const a = o !== void 0 ? o : m[t];
89
+ return /* @__PURE__ */ d(
90
+ "div",
91
+ {
92
+ className: `w-full flex flex-col items-center justify-center text-center p-8 ${i}`,
93
+ "data-status": t,
94
+ ...c,
95
+ children: [
96
+ a && /* @__PURE__ */ e("div", { className: "mb-6", children: a }),
97
+ n && /* @__PURE__ */ e("div", { className: "text-2xl font-semibold mb-2 text-base-content", children: n }),
98
+ s && /* @__PURE__ */ e("div", { className: "text-base text-base-content/70 mb-6 max-w-md", children: s }),
99
+ l && /* @__PURE__ */ e("div", { className: "mb-6 max-w-2xl", children: l }),
100
+ r && /* @__PURE__ */ e("div", { className: "flex gap-2", children: r })
101
+ ]
102
+ }
103
+ );
104
+ };
105
+ x.displayName = "Result";
41
106
  export {
42
- u as Select
107
+ x as Result,
108
+ x as default
43
109
  };
44
110
  //# sourceMappingURL=index70.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index70.js","sources":["../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n ghost?: boolean\n bordered?: boolean\n className?: string\n children?: React.ReactNode\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size,\n color,\n ghost = false,\n bordered = true,\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const sizeClasses = {\n xs: 'select-xs',\n sm: 'select-sm',\n md: 'select-md',\n lg: 'select-lg',\n xl: 'select-xl',\n }\n\n const colorClasses = {\n neutral: 'select-neutral',\n primary: 'select-primary',\n secondary: 'select-secondary',\n accent: 'select-accent',\n info: 'select-info',\n success: 'select-success',\n warning: 'select-warning',\n error: 'select-error',\n }\n\n const selectClasses = [\n 'select',\n 'w-full',\n bordered && 'select-bordered',\n ghost && 'select-ghost',\n size && sizeClasses[size],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <select ref={ref} className={selectClasses} {...props}>\n {children}\n </select>\n )\n }\n)\n\nSelect.displayName = 'Select'\n"],"names":["Select","forwardRef","size","color","ghost","bordered","className","children","props","ref","sizeClasses","colorClasses","selectClasses"],"mappings":";;AAWO,MAAMA,IAASC;AAAA,EACpB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAe;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,GAGHC,IAAgB;AAAA,MACpB;AAAA,MACA;AAAA,MACAP,KAAY;AAAA,MACZD,KAAS;AAAA,MACTF,KAAQQ,EAAYR,CAAI;AAAA,MACxBC,KAASQ,EAAaR,CAAK;AAAA,MAC3BG;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BACG,UAAA,EAAO,KAAAG,GAAU,WAAWG,GAAgB,GAAGJ,GAC7C,UAAAD,GACH;AAAA,EAEJ;AACF;AAEAP,EAAO,cAAc;"}
1
+ {"version":3,"file":"index70.js","sources":["../src/components/Result.tsx"],"sourcesContent":["import React from 'react'\n\nexport type ResultStatus = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500'\n\nexport interface ResultProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n status?: ResultStatus\n title?: React.ReactNode\n subTitle?: React.ReactNode\n icon?: React.ReactNode\n extra?: React.ReactNode\n children?: React.ReactNode\n}\n\nconst defaultIcons: Record<ResultStatus, React.ReactNode> = {\n success: (\n <svg\n className=\"w-16 h-16 text-success\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n error: (\n <svg\n className=\"w-16 h-16 text-error\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n info: (\n <svg\n className=\"w-16 h-16 text-info\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n warning: (\n <svg\n className=\"w-16 h-16 text-warning\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n ),\n '404': (\n <div className=\"text-6xl font-bold text-base-content/40\">404</div>\n ),\n '403': (\n <div className=\"text-6xl font-bold text-base-content/40\">403</div>\n ),\n '500': (\n <div className=\"text-6xl font-bold text-base-content/40\">500</div>\n ),\n}\n\nexport const Result: React.FC<ResultProps> = ({\n status = 'info',\n title,\n subTitle,\n icon,\n extra,\n children,\n className = '',\n ...rest\n}) => {\n const displayIcon = icon !== undefined ? icon : defaultIcons[status]\n\n return (\n <div\n className={`w-full flex flex-col items-center justify-center text-center p-8 ${className}`}\n data-status={status}\n {...rest}\n >\n {displayIcon && <div className=\"mb-6\">{displayIcon}</div>}\n\n {title && (\n <div className=\"text-2xl font-semibold mb-2 text-base-content\">\n {title}\n </div>\n )}\n\n {subTitle && (\n <div className=\"text-base text-base-content/70 mb-6 max-w-md\">\n {subTitle}\n </div>\n )}\n\n {children && <div className=\"mb-6 max-w-2xl\">{children}</div>}\n\n {extra && <div className=\"flex gap-2\">{extra}</div>}\n </div>\n )\n}\n\nResult.displayName = 'Result'\n\nexport default Result\n"],"names":["defaultIcons","jsx","Result","status","title","subTitle","icon","extra","children","className","rest","displayIcon","jsxs"],"mappings":";AAaA,MAAMA,IAAsD;AAAA,EAC1D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,OACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,MACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,SACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,MAAA,CAAG;AAEhE,GAEaC,IAAgC,CAAC;AAAA,EAC5C,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAcL,MAAS,SAAYA,IAAON,EAAaG,CAAM;AAEnE,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oEAAoEH,CAAS;AAAA,MACxF,eAAaN;AAAA,MACZ,GAAGO;AAAA,MAEH,UAAA;AAAA,QAAAC,KAAe,gBAAAV,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAU,GAAY;AAAA,QAElDP,KACC,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAG,GACH;AAAA,QAGDC,KACC,gBAAAJ,EAAC,OAAA,EAAI,WAAU,gDACZ,UAAAI,GACH;AAAA,QAGDG,KAAY,gBAAAP,EAAC,OAAA,EAAI,WAAU,kBAAkB,UAAAO,GAAS;AAAA,QAEtDD,KAAS,gBAAAN,EAAC,OAAA,EAAI,WAAU,cAAc,UAAAM,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD;AAEAL,EAAO,cAAc;"}
package/dist/index71.js CHANGED
@@ -1,71 +1,44 @@
1
- import { jsx as b, jsxs as h } from "react/jsx-runtime";
2
- import { useState as p, useCallback as S, createContext as j, useContext as v } from "react";
3
- const C = j(null), I = () => {
4
- const e = v(C);
5
- if (!e)
6
- throw new Error("Segmented.Item must be used within a Segmented component");
7
- return e;
8
- }, V = {
9
- xs: "btn-xs",
10
- sm: "btn-sm",
11
- md: "",
12
- lg: "btn-lg"
13
- }, k = ({
14
- value: e,
15
- disabled: o = !1,
16
- icon: n,
17
- children: l,
18
- className: a = ""
19
- }) => {
20
- const { value: i, onChange: d, size: r, disabled: c } = I(), s = i === e, t = c || o, m = () => {
21
- t || d?.(e);
22
- }, u = [
23
- "join-item",
24
- "btn",
25
- V[r],
26
- s ? "btn-active" : "",
27
- a
28
- ].filter(Boolean).join(" ");
29
- return /* @__PURE__ */ h(
30
- "button",
31
- {
32
- type: "button",
33
- className: u,
34
- disabled: t,
35
- onClick: m,
36
- "aria-pressed": s,
37
- "data-testid": `segmented-item-${e}`,
38
- children: [
39
- n && /* @__PURE__ */ b("span", { className: "mr-1", children: n }),
40
- l
41
- ]
42
- }
43
- );
44
- }, w = ({
45
- value: e,
46
- defaultValue: o,
47
- onChange: n,
48
- size: l = "md",
49
- block: a = !1,
50
- disabled: i = !1,
51
- className: d = "",
52
- children: r
53
- }) => {
54
- const [c, s] = p(o), t = e !== void 0, m = t ? e : c, u = S(
55
- (g) => {
56
- t || s(g), n?.(g);
57
- },
58
- [t, n]
59
- ), f = {
60
- value: m,
61
- onChange: u,
62
- size: l,
63
- disabled: i
64
- }, x = ["join", a ? "w-full [&>.join-item]:flex-1" : "", d].filter(Boolean).join(" ");
65
- return /* @__PURE__ */ b(C.Provider, { value: f, children: /* @__PURE__ */ b("div", { className: x, role: "group", "data-testid": "segmented", children: r }) });
66
- };
67
- w.Item = k;
1
+ import { jsx as f } from "react/jsx-runtime";
2
+ import { forwardRef as d } from "react";
3
+ const u = d(
4
+ ({
5
+ size: e,
6
+ color: s,
7
+ ghost: l = !1,
8
+ bordered: c = !0,
9
+ className: t = "",
10
+ children: r,
11
+ ...o
12
+ }, a) => {
13
+ const n = {
14
+ xs: "select-xs",
15
+ sm: "select-sm",
16
+ md: "select-md",
17
+ lg: "select-lg",
18
+ xl: "select-xl"
19
+ }, m = {
20
+ neutral: "select-neutral",
21
+ primary: "select-primary",
22
+ secondary: "select-secondary",
23
+ accent: "select-accent",
24
+ info: "select-info",
25
+ success: "select-success",
26
+ warning: "select-warning",
27
+ error: "select-error"
28
+ }, i = [
29
+ "select",
30
+ "w-full",
31
+ c && "select-bordered",
32
+ l && "select-ghost",
33
+ e && n[e],
34
+ s && m[s],
35
+ t
36
+ ].filter(Boolean).join(" ");
37
+ return /* @__PURE__ */ f("select", { ref: a, className: i, ...o, children: r });
38
+ }
39
+ );
40
+ u.displayName = "Select";
68
41
  export {
69
- w as Segmented
42
+ u as Select
70
43
  };
71
44
  //# sourceMappingURL=index71.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index71.js","sources":["../src/components/Segmented.tsx"],"sourcesContent":["import React, { useState, useCallback, createContext, useContext } from 'react'\n\nexport type SegmentedValue = string | number\n\ninterface SegmentedContextValue {\n value?: SegmentedValue\n onChange?: (value: SegmentedValue) => void\n size: 'xs' | 'sm' | 'md' | 'lg'\n disabled: boolean\n}\n\nconst SegmentedContext = createContext<SegmentedContextValue | null>(null)\n\nconst useSegmentedContext = () => {\n const context = useContext(SegmentedContext)\n if (!context) {\n throw new Error('Segmented.Item must be used within a Segmented component')\n }\n return context\n}\n\nexport interface SegmentedItemProps {\n /** Option value */\n value: SegmentedValue\n /** Disable this option */\n disabled?: boolean\n /** Icon to display before label */\n icon?: React.ReactNode\n /** Label content */\n children: React.ReactNode\n /** Additional CSS class */\n className?: string\n}\n\nconst sizeClasses = {\n xs: 'btn-xs',\n sm: 'btn-sm',\n md: '',\n lg: 'btn-lg',\n}\n\nconst SegmentedItem: React.FC<SegmentedItemProps> = ({\n value,\n disabled: itemDisabled = false,\n icon,\n children,\n className = '',\n}) => {\n const { value: selectedValue, onChange, size, disabled: groupDisabled } = useSegmentedContext()\n\n const isSelected = selectedValue === value\n const isDisabled = groupDisabled || itemDisabled\n\n const handleClick = () => {\n if (!isDisabled) {\n onChange?.(value)\n }\n }\n\n const buttonClasses = [\n 'join-item',\n 'btn',\n sizeClasses[size],\n isSelected ? 'btn-active' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n type=\"button\"\n className={buttonClasses}\n disabled={isDisabled}\n onClick={handleClick}\n aria-pressed={isSelected}\n data-testid={`segmented-item-${value}`}\n >\n {icon && <span className=\"mr-1\">{icon}</span>}\n {children}\n </button>\n )\n}\n\nexport interface SegmentedProps {\n /** Currently selected value (controlled) */\n value?: SegmentedValue\n /** Default selected value (uncontrolled) */\n defaultValue?: SegmentedValue\n /** Callback when selection changes */\n onChange?: (value: SegmentedValue) => void\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg'\n /** Take full width of container */\n block?: boolean\n /** Disable all options */\n disabled?: boolean\n /** Additional CSS class */\n className?: string\n /** Segmented.Item children */\n children: React.ReactNode\n}\n\nexport const Segmented: React.FC<SegmentedProps> & { Item: typeof SegmentedItem } = ({\n value,\n defaultValue,\n onChange,\n size = 'md',\n block = false,\n disabled = false,\n className = '',\n children,\n}) => {\n const [internalValue, setInternalValue] = useState<SegmentedValue | undefined>(defaultValue)\n\n const isControlled = value !== undefined\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = useCallback(\n (newValue: SegmentedValue) => {\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [isControlled, onChange]\n )\n\n const contextValue: SegmentedContextValue = {\n value: currentValue,\n onChange: handleChange,\n size,\n disabled,\n }\n\n const containerClasses = ['join', block ? 'w-full [&>.join-item]:flex-1' : '', className]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SegmentedContext.Provider value={contextValue}>\n <div className={containerClasses} role=\"group\" data-testid=\"segmented\">\n {children}\n </div>\n </SegmentedContext.Provider>\n )\n}\n\nSegmented.Item = SegmentedItem\n"],"names":["SegmentedContext","createContext","useSegmentedContext","context","useContext","sizeClasses","SegmentedItem","value","itemDisabled","icon","children","className","selectedValue","onChange","size","groupDisabled","isSelected","isDisabled","handleClick","buttonClasses","jsxs","jsx","Segmented","defaultValue","block","disabled","internalValue","setInternalValue","useState","isControlled","currentValue","handleChange","useCallback","newValue","contextValue","containerClasses"],"mappings":";;AAWA,MAAMA,IAAmBC,EAA4C,IAAI,GAEnEC,IAAsB,MAAM;AAChC,QAAMC,IAAUC,EAAWJ,CAAgB;AAC3C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,0DAA0D;AAE5E,SAAOA;AACT,GAeME,IAAc;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAA8C,CAAC;AAAA,EACnD,OAAAC;AAAA,EACA,UAAUC,IAAe;AAAA,EACzB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAM;AACJ,QAAM,EAAE,OAAOC,GAAe,UAAAC,GAAU,MAAAC,GAAM,UAAUC,EAAA,IAAkBb,EAAA,GAEpEc,IAAaJ,MAAkBL,GAC/BU,IAAaF,KAAiBP,GAE9BU,IAAc,MAAM;AACxB,IAAKD,KACHJ,IAAWN,CAAK;AAAA,EAEpB,GAEMY,IAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACAd,EAAYS,CAAI;AAAA,IAChBE,IAAa,eAAe;AAAA,IAC5BL;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWD;AAAA,MACX,UAAUF;AAAA,MACV,SAASC;AAAA,MACT,gBAAcF;AAAA,MACd,eAAa,kBAAkBT,CAAK;AAAA,MAEnC,UAAA;AAAA,QAAAE,KAAQ,gBAAAY,EAAC,QAAA,EAAK,WAAU,QAAQ,UAAAZ,GAAK;AAAA,QACrCC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,GAqBaY,IAAuE,CAAC;AAAA,EACnF,OAAAf;AAAA,EACA,cAAAgB;AAAA,EACA,UAAAV;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAU,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,WAAAd,IAAY;AAAA,EACZ,UAAAD;AACF,MAAM;AACJ,QAAM,CAACgB,GAAeC,CAAgB,IAAIC,EAAqCL,CAAY,GAErFM,IAAetB,MAAU,QACzBuB,IAAeD,IAAetB,IAAQmB,GAEtCK,IAAeC;AAAA,IACnB,CAACC,MAA6B;AAC5B,MAAKJ,KACHF,EAAiBM,CAAQ,GAE3BpB,IAAWoB,CAAQ;AAAA,IACrB;AAAA,IACA,CAACJ,GAAchB,CAAQ;AAAA,EAAA,GAGnBqB,IAAsC;AAAA,IAC1C,OAAOJ;AAAA,IACP,UAAUC;AAAA,IACV,MAAAjB;AAAA,IACA,UAAAW;AAAA,EAAA,GAGIU,IAAmB,CAAC,QAAQX,IAAQ,iCAAiC,IAAIb,CAAS,EACrF,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAACrB,EAAiB,UAAjB,EAA0B,OAAOkC,GAChC,UAAA,gBAAAb,EAAC,OAAA,EAAI,WAAWc,GAAkB,MAAK,SAAQ,eAAY,aACxD,UAAAzB,GACH,GACF;AAEJ;AAEAY,EAAU,OAAOhB;"}
1
+ {"version":3,"file":"index71.js","sources":["../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nexport interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n ghost?: boolean\n bordered?: boolean\n className?: string\n children?: React.ReactNode\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size,\n color,\n ghost = false,\n bordered = true,\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const sizeClasses = {\n xs: 'select-xs',\n sm: 'select-sm',\n md: 'select-md',\n lg: 'select-lg',\n xl: 'select-xl',\n }\n\n const colorClasses = {\n neutral: 'select-neutral',\n primary: 'select-primary',\n secondary: 'select-secondary',\n accent: 'select-accent',\n info: 'select-info',\n success: 'select-success',\n warning: 'select-warning',\n error: 'select-error',\n }\n\n const selectClasses = [\n 'select',\n 'w-full',\n bordered && 'select-bordered',\n ghost && 'select-ghost',\n size && sizeClasses[size],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <select ref={ref} className={selectClasses} {...props}>\n {children}\n </select>\n )\n }\n)\n\nSelect.displayName = 'Select'\n"],"names":["Select","forwardRef","size","color","ghost","bordered","className","children","props","ref","sizeClasses","colorClasses","selectClasses"],"mappings":";;AAWO,MAAMA,IAASC;AAAA,EACpB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAe;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,GAGHC,IAAgB;AAAA,MACpB;AAAA,MACA;AAAA,MACAP,KAAY;AAAA,MACZD,KAAS;AAAA,MACTF,KAAQQ,EAAYR,CAAI;AAAA,MACxBC,KAASQ,EAAaR,CAAK;AAAA,MAC3BG;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,6BACG,UAAA,EAAO,KAAAG,GAAU,WAAWG,GAAgB,GAAGJ,GAC7C,UAAAD,GACH;AAAA,EAEJ;AACF;AAEAP,EAAO,cAAc;"}
package/dist/index72.js CHANGED
@@ -1,24 +1,71 @@
1
- import { jsx as x } from "react/jsx-runtime";
2
- const i = ({
3
- width: s,
4
- height: t,
5
- circle: o = !1,
6
- variant: l = "default",
7
- className: n = "",
8
- children: r,
9
- style: f,
10
- ...u
1
+ import { jsx as b, jsxs as h } from "react/jsx-runtime";
2
+ import { useState as p, useCallback as S, createContext as j, useContext as v } from "react";
3
+ const C = j(null), I = () => {
4
+ const e = v(C);
5
+ if (!e)
6
+ throw new Error("Segmented.Item must be used within a Segmented component");
7
+ return e;
8
+ }, V = {
9
+ xs: "btn-xs",
10
+ sm: "btn-sm",
11
+ md: "",
12
+ lg: "btn-lg"
13
+ }, k = ({
14
+ value: e,
15
+ disabled: o = !1,
16
+ icon: n,
17
+ children: l,
18
+ className: a = ""
11
19
  }) => {
12
- const p = () => {
13
- const e = ["skeleton"];
14
- return l === "text" && e.push("skeleton-text"), o && e.push("rounded-full"), n && e.push(n), e.join(" ");
15
- }, c = () => {
16
- const e = {};
17
- return s && (e.width = typeof s == "number" ? `${s}px` : s), t && (e.height = typeof t == "number" ? `${t}px` : t), Object.keys(e).length > 0 ? e : void 0;
18
- };
19
- return /* @__PURE__ */ x("div", { className: p(), style: { ...c(), ...f }, ...u, children: r });
20
+ const { value: i, onChange: d, size: r, disabled: c } = I(), s = i === e, t = c || o, m = () => {
21
+ t || d?.(e);
22
+ }, u = [
23
+ "join-item",
24
+ "btn",
25
+ V[r],
26
+ s ? "btn-active" : "",
27
+ a
28
+ ].filter(Boolean).join(" ");
29
+ return /* @__PURE__ */ h(
30
+ "button",
31
+ {
32
+ type: "button",
33
+ className: u,
34
+ disabled: t,
35
+ onClick: m,
36
+ "aria-pressed": s,
37
+ "data-testid": `segmented-item-${e}`,
38
+ children: [
39
+ n && /* @__PURE__ */ b("span", { className: "mr-1", children: n }),
40
+ l
41
+ ]
42
+ }
43
+ );
44
+ }, w = ({
45
+ value: e,
46
+ defaultValue: o,
47
+ onChange: n,
48
+ size: l = "md",
49
+ block: a = !1,
50
+ disabled: i = !1,
51
+ className: d = "",
52
+ children: r
53
+ }) => {
54
+ const [c, s] = p(o), t = e !== void 0, m = t ? e : c, u = S(
55
+ (g) => {
56
+ t || s(g), n?.(g);
57
+ },
58
+ [t, n]
59
+ ), f = {
60
+ value: m,
61
+ onChange: u,
62
+ size: l,
63
+ disabled: i
64
+ }, x = ["join", a ? "w-full [&>.join-item]:flex-1" : "", d].filter(Boolean).join(" ");
65
+ return /* @__PURE__ */ b(C.Provider, { value: f, children: /* @__PURE__ */ b("div", { className: x, role: "group", "data-testid": "segmented", children: r }) });
20
66
  };
67
+ w.Item = k;
21
68
  export {
22
- i as Skeleton
69
+ w as Segmented
23
70
  };
24
71
  //# sourceMappingURL=index72.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index72.js","sources":["../src/components/Skeleton.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: string | number\n height?: string | number\n circle?: boolean\n variant?: 'default' | 'text'\n children?: React.ReactNode\n}\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n width,\n height,\n circle = false,\n variant = 'default',\n className = '',\n children,\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = ['skeleton']\n\n if (variant === 'text') {\n classes.push('skeleton-text')\n }\n\n if (circle) {\n classes.push('rounded-full')\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyles = () => {\n const styles: React.CSSProperties = {}\n\n if (width) {\n styles.width = typeof width === 'number' ? `${width}px` : width\n }\n\n if (height) {\n styles.height = typeof height === 'number' ? `${height}px` : height\n }\n\n return Object.keys(styles).length > 0 ? styles : undefined\n }\n\n return (\n <div className={getClasses()} style={{ ...getStyles(), ...style }} {...rest}>\n {children}\n </div>\n )\n}\n"],"names":["Skeleton","width","height","circle","variant","className","children","style","rest","getClasses","classes","getStyles","styles","jsx"],"mappings":";AAUO,MAAMA,IAAoC,CAAC;AAAA,EAChD,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAC,UAAU;AAE3B,WAAIN,MAAY,UACdM,EAAQ,KAAK,eAAe,GAG1BP,KACFO,EAAQ,KAAK,cAAc,GAGzBL,KACFK,EAAQ,KAAKL,CAAS,GAGjBK,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAY,MAAM;AACtB,UAAMC,IAA8B,CAAA;AAEpC,WAAIX,MACFW,EAAO,QAAQ,OAAOX,KAAU,WAAW,GAAGA,CAAK,OAAOA,IAGxDC,MACFU,EAAO,SAAS,OAAOV,KAAW,WAAW,GAAGA,CAAM,OAAOA,IAGxD,OAAO,KAAKU,CAAM,EAAE,SAAS,IAAIA,IAAS;AAAA,EACnD;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWJ,EAAA,GAAc,OAAO,EAAE,GAAGE,EAAA,GAAa,GAAGJ,EAAA,GAAU,GAAGC,GACpE,UAAAF,EAAA,CACH;AAEJ;"}
1
+ {"version":3,"file":"index72.js","sources":["../src/components/Segmented.tsx"],"sourcesContent":["import React, { useState, useCallback, createContext, useContext } from 'react'\n\nexport type SegmentedValue = string | number\n\ninterface SegmentedContextValue {\n value?: SegmentedValue\n onChange?: (value: SegmentedValue) => void\n size: 'xs' | 'sm' | 'md' | 'lg'\n disabled: boolean\n}\n\nconst SegmentedContext = createContext<SegmentedContextValue | null>(null)\n\nconst useSegmentedContext = () => {\n const context = useContext(SegmentedContext)\n if (!context) {\n throw new Error('Segmented.Item must be used within a Segmented component')\n }\n return context\n}\n\nexport interface SegmentedItemProps {\n /** Option value */\n value: SegmentedValue\n /** Disable this option */\n disabled?: boolean\n /** Icon to display before label */\n icon?: React.ReactNode\n /** Label content */\n children: React.ReactNode\n /** Additional CSS class */\n className?: string\n}\n\nconst sizeClasses = {\n xs: 'btn-xs',\n sm: 'btn-sm',\n md: '',\n lg: 'btn-lg',\n}\n\nconst SegmentedItem: React.FC<SegmentedItemProps> = ({\n value,\n disabled: itemDisabled = false,\n icon,\n children,\n className = '',\n}) => {\n const { value: selectedValue, onChange, size, disabled: groupDisabled } = useSegmentedContext()\n\n const isSelected = selectedValue === value\n const isDisabled = groupDisabled || itemDisabled\n\n const handleClick = () => {\n if (!isDisabled) {\n onChange?.(value)\n }\n }\n\n const buttonClasses = [\n 'join-item',\n 'btn',\n sizeClasses[size],\n isSelected ? 'btn-active' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n type=\"button\"\n className={buttonClasses}\n disabled={isDisabled}\n onClick={handleClick}\n aria-pressed={isSelected}\n data-testid={`segmented-item-${value}`}\n >\n {icon && <span className=\"mr-1\">{icon}</span>}\n {children}\n </button>\n )\n}\n\nexport interface SegmentedProps {\n /** Currently selected value (controlled) */\n value?: SegmentedValue\n /** Default selected value (uncontrolled) */\n defaultValue?: SegmentedValue\n /** Callback when selection changes */\n onChange?: (value: SegmentedValue) => void\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg'\n /** Take full width of container */\n block?: boolean\n /** Disable all options */\n disabled?: boolean\n /** Additional CSS class */\n className?: string\n /** Segmented.Item children */\n children: React.ReactNode\n}\n\nexport const Segmented: React.FC<SegmentedProps> & { Item: typeof SegmentedItem } = ({\n value,\n defaultValue,\n onChange,\n size = 'md',\n block = false,\n disabled = false,\n className = '',\n children,\n}) => {\n const [internalValue, setInternalValue] = useState<SegmentedValue | undefined>(defaultValue)\n\n const isControlled = value !== undefined\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = useCallback(\n (newValue: SegmentedValue) => {\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [isControlled, onChange]\n )\n\n const contextValue: SegmentedContextValue = {\n value: currentValue,\n onChange: handleChange,\n size,\n disabled,\n }\n\n const containerClasses = ['join', block ? 'w-full [&>.join-item]:flex-1' : '', className]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SegmentedContext.Provider value={contextValue}>\n <div className={containerClasses} role=\"group\" data-testid=\"segmented\">\n {children}\n </div>\n </SegmentedContext.Provider>\n )\n}\n\nSegmented.Item = SegmentedItem\n"],"names":["SegmentedContext","createContext","useSegmentedContext","context","useContext","sizeClasses","SegmentedItem","value","itemDisabled","icon","children","className","selectedValue","onChange","size","groupDisabled","isSelected","isDisabled","handleClick","buttonClasses","jsxs","jsx","Segmented","defaultValue","block","disabled","internalValue","setInternalValue","useState","isControlled","currentValue","handleChange","useCallback","newValue","contextValue","containerClasses"],"mappings":";;AAWA,MAAMA,IAAmBC,EAA4C,IAAI,GAEnEC,IAAsB,MAAM;AAChC,QAAMC,IAAUC,EAAWJ,CAAgB;AAC3C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,0DAA0D;AAE5E,SAAOA;AACT,GAeME,IAAc;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAA8C,CAAC;AAAA,EACnD,OAAAC;AAAA,EACA,UAAUC,IAAe;AAAA,EACzB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAM;AACJ,QAAM,EAAE,OAAOC,GAAe,UAAAC,GAAU,MAAAC,GAAM,UAAUC,EAAA,IAAkBb,EAAA,GAEpEc,IAAaJ,MAAkBL,GAC/BU,IAAaF,KAAiBP,GAE9BU,IAAc,MAAM;AACxB,IAAKD,KACHJ,IAAWN,CAAK;AAAA,EAEpB,GAEMY,IAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACAd,EAAYS,CAAI;AAAA,IAChBE,IAAa,eAAe;AAAA,IAC5BL;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWD;AAAA,MACX,UAAUF;AAAA,MACV,SAASC;AAAA,MACT,gBAAcF;AAAA,MACd,eAAa,kBAAkBT,CAAK;AAAA,MAEnC,UAAA;AAAA,QAAAE,KAAQ,gBAAAY,EAAC,QAAA,EAAK,WAAU,QAAQ,UAAAZ,GAAK;AAAA,QACrCC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,GAqBaY,IAAuE,CAAC;AAAA,EACnF,OAAAf;AAAA,EACA,cAAAgB;AAAA,EACA,UAAAV;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAU,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,WAAAd,IAAY;AAAA,EACZ,UAAAD;AACF,MAAM;AACJ,QAAM,CAACgB,GAAeC,CAAgB,IAAIC,EAAqCL,CAAY,GAErFM,IAAetB,MAAU,QACzBuB,IAAeD,IAAetB,IAAQmB,GAEtCK,IAAeC;AAAA,IACnB,CAACC,MAA6B;AAC5B,MAAKJ,KACHF,EAAiBM,CAAQ,GAE3BpB,IAAWoB,CAAQ;AAAA,IACrB;AAAA,IACA,CAACJ,GAAchB,CAAQ;AAAA,EAAA,GAGnBqB,IAAsC;AAAA,IAC1C,OAAOJ;AAAA,IACP,UAAUC;AAAA,IACV,MAAAjB;AAAA,IACA,UAAAW;AAAA,EAAA,GAGIU,IAAmB,CAAC,QAAQX,IAAQ,iCAAiC,IAAIb,CAAS,EACrF,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAACrB,EAAiB,UAAjB,EAA0B,OAAOkC,GAChC,UAAA,gBAAAb,EAAC,OAAA,EAAI,WAAWc,GAAkB,MAAK,SAAQ,eAAY,aACxD,UAAAzB,GACH,GACF;AAEJ;AAEAY,EAAU,OAAOhB;"}
package/dist/index73.js CHANGED
@@ -1,49 +1,24 @@
1
- import { jsx as y } from "react/jsx-runtime";
2
- const g = {
3
- xs: "gap-1",
4
- sm: "gap-2",
5
- md: "gap-4",
6
- lg: "gap-6",
7
- xl: "gap-8"
8
- }, C = {
9
- start: "items-start",
10
- end: "items-end",
11
- center: "items-center",
12
- baseline: "items-baseline",
13
- stretch: "items-stretch"
14
- }, j = {
15
- start: "justify-start",
16
- end: "justify-end",
17
- center: "justify-center",
18
- between: "justify-between",
19
- around: "justify-around",
20
- evenly: "justify-evenly"
21
- }, h = ({
22
- direction: n = "horizontal",
23
- size: s = "md",
24
- align: e,
25
- justify: t,
26
- wrap: l = !1,
27
- className: o = "",
28
- style: r,
29
- children: i,
30
- ...c
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ const i = ({
3
+ width: s,
4
+ height: t,
5
+ circle: o = !1,
6
+ variant: l = "default",
7
+ className: n = "",
8
+ children: r,
9
+ style: f,
10
+ ...u
31
11
  }) => {
32
- const a = typeof s == "number", p = a ? "" : g[s], f = e ? C[e] : "", m = t ? j[t] : "", d = [
33
- "flex",
34
- n === "horizontal" ? "flex-row" : "flex-col",
35
- p,
36
- f,
37
- m,
38
- l ? "flex-wrap" : "",
39
- o
40
- ].filter(Boolean).join(" "), u = {
41
- ...r,
42
- ...a ? { gap: `${s}px` } : {}
12
+ const p = () => {
13
+ const e = ["skeleton"];
14
+ return l === "text" && e.push("skeleton-text"), o && e.push("rounded-full"), n && e.push(n), e.join(" ");
15
+ }, c = () => {
16
+ const e = {};
17
+ return s && (e.width = typeof s == "number" ? `${s}px` : s), t && (e.height = typeof t == "number" ? `${t}px` : t), Object.keys(e).length > 0 ? e : void 0;
43
18
  };
44
- return /* @__PURE__ */ y("div", { className: d, style: u, ...c, children: i });
19
+ return /* @__PURE__ */ x("div", { className: p(), style: { ...c(), ...f }, ...u, children: r });
45
20
  };
46
21
  export {
47
- h as Space
22
+ i as Skeleton
48
23
  };
49
24
  //# sourceMappingURL=index73.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index73.js","sources":["../src/components/Space.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface SpaceProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'horizontal' | 'vertical'\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n wrap?: boolean\n children: React.ReactNode\n}\n\nconst gapClasses = {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n} as const\n\nconst alignClasses = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n} as const\n\nconst justifyClasses = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n} as const\n\nexport const Space: React.FC<SpaceProps> = ({\n direction = 'horizontal',\n size = 'md',\n align,\n justify,\n wrap = false,\n className = '',\n style,\n children,\n ...rest\n}) => {\n const isNumericSize = typeof size === 'number'\n const gapClass = isNumericSize ? '' : gapClasses[size]\n const alignClass = align ? alignClasses[align] : ''\n const justifyClass = justify ? justifyClasses[justify] : ''\n const wrapClass = wrap ? 'flex-wrap' : ''\n const directionClass = direction === 'horizontal' ? 'flex-row' : 'flex-col'\n\n const classes = [\n 'flex',\n directionClass,\n gapClass,\n alignClass,\n justifyClass,\n wrapClass,\n className\n ].filter(Boolean).join(' ')\n\n const combinedStyle: React.CSSProperties = {\n ...style,\n ...(isNumericSize ? { gap: `${size}px` } : {}),\n }\n\n return <div className={classes} style={combinedStyle} {...rest}>{children}</div>\n}\n"],"names":["gapClasses","alignClasses","justifyClasses","Space","direction","size","align","justify","wrap","className","style","children","rest","isNumericSize","gapClass","alignClass","justifyClass","classes","combinedStyle","jsx"],"mappings":";AAWA,MAAMA,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAAe;AAAA,EACnB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AACX,GAEMC,IAAiB;AAAA,EACrB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV,GAEaC,IAA8B,CAAC;AAAA,EAC1C,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAgB,OAAOR,KAAS,UAChCS,IAAWD,IAAgB,KAAKb,EAAWK,CAAI,GAC/CU,IAAaT,IAAQL,EAAaK,CAAK,IAAI,IAC3CU,IAAeT,IAAUL,EAAeK,CAAO,IAAI,IAInDU,IAAU;AAAA,IACd;AAAA,IAHqBb,MAAc,eAAe,aAAa;AAAA,IAK/DU;AAAA,IACAC;AAAA,IACAC;AAAA,IARgBR,IAAO,cAAc;AAAA,IAUrCC;AAAA,EAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG,GAEpBS,IAAqC;AAAA,IACzC,GAAGR;AAAA,IACH,GAAIG,IAAgB,EAAE,KAAK,GAAGR,CAAI,SAAS,CAAA;AAAA,EAAC;AAG9C,SAAO,gBAAAc,EAAC,SAAI,WAAWF,GAAS,OAAOC,GAAgB,GAAGN,GAAO,UAAAD,GAAS;AAC5E;"}
1
+ {"version":3,"file":"index73.js","sources":["../src/components/Skeleton.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: string | number\n height?: string | number\n circle?: boolean\n variant?: 'default' | 'text'\n children?: React.ReactNode\n}\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n width,\n height,\n circle = false,\n variant = 'default',\n className = '',\n children,\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = ['skeleton']\n\n if (variant === 'text') {\n classes.push('skeleton-text')\n }\n\n if (circle) {\n classes.push('rounded-full')\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyles = () => {\n const styles: React.CSSProperties = {}\n\n if (width) {\n styles.width = typeof width === 'number' ? `${width}px` : width\n }\n\n if (height) {\n styles.height = typeof height === 'number' ? `${height}px` : height\n }\n\n return Object.keys(styles).length > 0 ? styles : undefined\n }\n\n return (\n <div className={getClasses()} style={{ ...getStyles(), ...style }} {...rest}>\n {children}\n </div>\n )\n}\n"],"names":["Skeleton","width","height","circle","variant","className","children","style","rest","getClasses","classes","getStyles","styles","jsx"],"mappings":";AAUO,MAAMA,IAAoC,CAAC;AAAA,EAChD,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAC,UAAU;AAE3B,WAAIN,MAAY,UACdM,EAAQ,KAAK,eAAe,GAG1BP,KACFO,EAAQ,KAAK,cAAc,GAGzBL,KACFK,EAAQ,KAAKL,CAAS,GAGjBK,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAY,MAAM;AACtB,UAAMC,IAA8B,CAAA;AAEpC,WAAIX,MACFW,EAAO,QAAQ,OAAOX,KAAU,WAAW,GAAGA,CAAK,OAAOA,IAGxDC,MACFU,EAAO,SAAS,OAAOV,KAAW,WAAW,GAAGA,CAAM,OAAOA,IAGxD,OAAO,KAAKU,CAAM,EAAE,SAAS,IAAIA,IAAS;AAAA,EACnD;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWJ,EAAA,GAAc,OAAO,EAAE,GAAGE,EAAA,GAAa,GAAGJ,EAAA,GAAU,GAAGC,GACpE,UAAAF,EAAA,CACH;AAEJ;"}