@lindle/linoardo 1.0.46 → 1.0.48

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 (178) hide show
  1. package/dist/{ExpansionPanelItem-C9KW1yBc.d.cts → ExpansionPanelItem-By0ziOVw.d.cts} +1 -1
  2. package/dist/{ExpansionPanelItem-Pi3BM-4v.d.ts → ExpansionPanelItem-CFfWX7ia.d.ts} +1 -1
  3. package/dist/alert.cjs +3 -3
  4. package/dist/alert.cjs.map +1 -1
  5. package/dist/alert.js +1 -1
  6. package/dist/badge.cjs +10 -10
  7. package/dist/badge.cjs.map +1 -1
  8. package/dist/badge.d.cts +1 -1
  9. package/dist/badge.d.ts +1 -1
  10. package/dist/badge.js +1 -1
  11. package/dist/block.cjs +0 -1
  12. package/dist/block.cjs.map +1 -1
  13. package/dist/block.d.cts +1 -1
  14. package/dist/block.d.ts +1 -1
  15. package/dist/block.js +1 -1
  16. package/dist/button.cjs +111 -55
  17. package/dist/button.cjs.map +1 -1
  18. package/dist/button.d.cts +16 -5
  19. package/dist/button.d.ts +16 -5
  20. package/dist/button.js +1 -1
  21. package/dist/card.cjs +0 -1
  22. package/dist/card.cjs.map +1 -1
  23. package/dist/card.d.cts +1 -1
  24. package/dist/card.d.ts +1 -1
  25. package/dist/card.js +1 -1
  26. package/dist/chip.cjs +47 -55
  27. package/dist/chip.cjs.map +1 -1
  28. package/dist/chip.d.cts +1 -1
  29. package/dist/chip.d.ts +1 -1
  30. package/dist/chip.js +2 -2
  31. package/dist/{chunk-5GT6L4BE.js → chunk-4NKKWBMP.js} +2 -3
  32. package/dist/chunk-4NKKWBMP.js.map +1 -0
  33. package/dist/{chunk-VPF7M2PB.js → chunk-7TQUULYB.js} +23 -26
  34. package/dist/chunk-7TQUULYB.js.map +1 -0
  35. package/dist/{chunk-U4P2VJCV.js → chunk-7YZBEH2K.js} +2 -3
  36. package/dist/chunk-7YZBEH2K.js.map +1 -0
  37. package/dist/{chunk-NJU7XT54.js → chunk-DMI64Z53.js} +4 -4
  38. package/dist/chunk-DMI64Z53.js.map +1 -0
  39. package/dist/{chunk-NADLY6LM.js → chunk-DUEQOGNR.js} +3 -4
  40. package/dist/chunk-DUEQOGNR.js.map +1 -0
  41. package/dist/{chunk-5LWU5T2C.js → chunk-GKZFVQW6.js} +16 -16
  42. package/dist/chunk-GKZFVQW6.js.map +1 -0
  43. package/dist/{chunk-ZTP2JSQ6.js → chunk-H4742H2N.js} +53 -27
  44. package/dist/chunk-H4742H2N.js.map +1 -0
  45. package/dist/{chunk-PSMGRUU5.js → chunk-HGECC2JH.js} +48 -56
  46. package/dist/chunk-HGECC2JH.js.map +1 -0
  47. package/dist/{chunk-DIWGVTWO.js → chunk-HVGCLUW2.js} +113 -57
  48. package/dist/chunk-HVGCLUW2.js.map +1 -0
  49. package/dist/{chunk-GMDNSU26.js → chunk-KK33I72F.js} +5 -5
  50. package/dist/{chunk-GMDNSU26.js.map → chunk-KK33I72F.js.map} +1 -1
  51. package/dist/{chunk-HT5XBHWN.js → chunk-KVXZEMAH.js} +4 -4
  52. package/dist/{chunk-HT5XBHWN.js.map → chunk-KVXZEMAH.js.map} +1 -1
  53. package/dist/{chunk-5MVIF5GP.js → chunk-LRWM4ZWZ.js} +4 -7
  54. package/dist/chunk-LRWM4ZWZ.js.map +1 -0
  55. package/dist/{chunk-XA74HBMH.js → chunk-LSIAP7ZZ.js} +8 -8
  56. package/dist/chunk-LSIAP7ZZ.js.map +1 -0
  57. package/dist/{chunk-HEXJCQRO.js → chunk-LWCRKQEV.js} +10 -10
  58. package/dist/chunk-LWCRKQEV.js.map +1 -0
  59. package/dist/{chunk-FEGFA3FN.js → chunk-LZYVTGJD.js} +3 -3
  60. package/dist/{chunk-FEGFA3FN.js.map → chunk-LZYVTGJD.js.map} +1 -1
  61. package/dist/{chunk-U2AL7XFY.js → chunk-O3VFEMJ7.js} +4 -4
  62. package/dist/chunk-O3VFEMJ7.js.map +1 -0
  63. package/dist/{chunk-HIRPMCQJ.js → chunk-OQYPWJDA.js} +12 -12
  64. package/dist/{chunk-HIRPMCQJ.js.map → chunk-OQYPWJDA.js.map} +1 -1
  65. package/dist/{chunk-AUVYU7M5.js → chunk-Q7VTD6NY.js} +20 -20
  66. package/dist/chunk-Q7VTD6NY.js.map +1 -0
  67. package/dist/{chunk-F3PI7A6V.js → chunk-TRR7TDVA.js} +3 -4
  68. package/dist/chunk-TRR7TDVA.js.map +1 -0
  69. package/dist/chunk-UGG35FPX.js +141 -0
  70. package/dist/chunk-UGG35FPX.js.map +1 -0
  71. package/dist/{chunk-HAXGOTZO.js → chunk-UK6RSS4J.js} +3 -3
  72. package/dist/chunk-UK6RSS4J.js.map +1 -0
  73. package/dist/{chunk-KQOR3C7E.js → chunk-ZLBGPLM3.js} +5 -5
  74. package/dist/chunk-ZLBGPLM3.js.map +1 -0
  75. package/dist/dialog.cjs +2 -2
  76. package/dist/dialog.cjs.map +1 -1
  77. package/dist/dialog.js +1 -1
  78. package/dist/expansion-panel/item.cjs +18 -18
  79. package/dist/expansion-panel/item.cjs.map +1 -1
  80. package/dist/expansion-panel/item.d.cts +2 -2
  81. package/dist/expansion-panel/item.d.ts +2 -2
  82. package/dist/expansion-panel/item.js +1 -1
  83. package/dist/expansion-panel.cjs +23 -23
  84. package/dist/expansion-panel.cjs.map +1 -1
  85. package/dist/expansion-panel.d.cts +3 -3
  86. package/dist/expansion-panel.d.ts +3 -3
  87. package/dist/expansion-panel.js +2 -2
  88. package/dist/{global.types-gx9A7mUe.d.cts → global.types-CjO3VRWu.d.cts} +1 -1
  89. package/dist/{global.types-gx9A7mUe.d.ts → global.types-CjO3VRWu.d.ts} +1 -1
  90. package/dist/hero.cjs +21 -24
  91. package/dist/hero.cjs.map +1 -1
  92. package/dist/hero.d.cts +1 -1
  93. package/dist/hero.d.ts +1 -1
  94. package/dist/hero.js +1 -1
  95. package/dist/icon.cjs +8 -8
  96. package/dist/icon.cjs.map +1 -1
  97. package/dist/icon.d.cts +1 -1
  98. package/dist/icon.d.ts +1 -1
  99. package/dist/icon.js +1 -1
  100. package/dist/{index-CNwl6vmH.d.ts → index-BgLrabTA.d.ts} +1 -1
  101. package/dist/{index-BDrBOeFI.d.cts → index-C19gZTrO.d.cts} +1 -1
  102. package/dist/index.cjs +475 -489
  103. package/dist/index.cjs.map +1 -1
  104. package/dist/index.d.cts +4 -4
  105. package/dist/index.d.ts +4 -4
  106. package/dist/index.js +68 -68
  107. package/dist/index.js.map +1 -1
  108. package/dist/input.cjs +62 -145
  109. package/dist/input.cjs.map +1 -1
  110. package/dist/input.d.cts +6 -6
  111. package/dist/input.d.ts +6 -6
  112. package/dist/input.js +1 -2
  113. package/dist/list/item.d.cts +2 -2
  114. package/dist/list/item.d.ts +2 -2
  115. package/dist/list.cjs +1 -2
  116. package/dist/list.cjs.map +1 -1
  117. package/dist/list.d.cts +3 -3
  118. package/dist/list.d.ts +3 -3
  119. package/dist/list.js +1 -1
  120. package/dist/masonry.cjs +1 -1
  121. package/dist/masonry.cjs.map +1 -1
  122. package/dist/masonry.js +1 -1
  123. package/dist/menu.cjs +51 -25
  124. package/dist/menu.cjs.map +1 -1
  125. package/dist/menu.js +1 -1
  126. package/dist/notification.d.cts +1 -1
  127. package/dist/notification.d.ts +1 -1
  128. package/dist/profileCard.cjs +112 -59
  129. package/dist/profileCard.cjs.map +1 -1
  130. package/dist/profileCard.d.cts +1 -1
  131. package/dist/profileCard.d.ts +1 -1
  132. package/dist/profileCard.js +2 -2
  133. package/dist/select.cjs +1 -2
  134. package/dist/select.cjs.map +1 -1
  135. package/dist/select.d.cts +2 -2
  136. package/dist/select.d.ts +2 -2
  137. package/dist/select.js +1 -1
  138. package/dist/slider.cjs +3 -3
  139. package/dist/slider.cjs.map +1 -1
  140. package/dist/slider.d.cts +1 -1
  141. package/dist/slider.d.ts +1 -1
  142. package/dist/slider.js +1 -1
  143. package/dist/styles.css +1156 -148
  144. package/dist/switch.cjs +14 -14
  145. package/dist/switch.cjs.map +1 -1
  146. package/dist/switch.d.cts +1 -1
  147. package/dist/switch.d.ts +1 -1
  148. package/dist/switch.js +1 -1
  149. package/dist/timeline.cjs.map +1 -1
  150. package/dist/timeline.d.cts +2 -2
  151. package/dist/timeline.d.ts +2 -2
  152. package/dist/timeline.js +2 -2
  153. package/dist/tooltip.cjs +2 -2
  154. package/dist/tooltip.cjs.map +1 -1
  155. package/dist/tooltip.js +1 -1
  156. package/dist/{types-DaTHYIPO.d.ts → types-B4puM-zr.d.cts} +3 -4
  157. package/dist/{types-CJ0zqPXF.d.cts → types-BDisBwnf.d.ts} +3 -4
  158. package/package.json +1 -1
  159. package/readme.md +21 -1
  160. package/dist/chunk-5GT6L4BE.js.map +0 -1
  161. package/dist/chunk-5LWU5T2C.js.map +0 -1
  162. package/dist/chunk-5MVIF5GP.js.map +0 -1
  163. package/dist/chunk-AUVYU7M5.js.map +0 -1
  164. package/dist/chunk-DIWGVTWO.js.map +0 -1
  165. package/dist/chunk-F3PI7A6V.js.map +0 -1
  166. package/dist/chunk-HAXGOTZO.js.map +0 -1
  167. package/dist/chunk-HEXJCQRO.js.map +0 -1
  168. package/dist/chunk-KQOR3C7E.js.map +0 -1
  169. package/dist/chunk-NADLY6LM.js.map +0 -1
  170. package/dist/chunk-NJU7XT54.js.map +0 -1
  171. package/dist/chunk-OBGYXMZ3.js +0 -218
  172. package/dist/chunk-OBGYXMZ3.js.map +0 -1
  173. package/dist/chunk-PSMGRUU5.js.map +0 -1
  174. package/dist/chunk-U2AL7XFY.js.map +0 -1
  175. package/dist/chunk-U4P2VJCV.js.map +0 -1
  176. package/dist/chunk-VPF7M2PB.js.map +0 -1
  177. package/dist/chunk-XA74HBMH.js.map +0 -1
  178. package/dist/chunk-ZTP2JSQ6.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Containment/Masonry/index.tsx"],"names":["jsx","twMerge","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,gBAAA,GAAmB,qBAAA;AACzB,IAAM,aAAA,GAAgB,uCAAA;AAEtB,IAAM,WAAA,GAAc,CAAK,KAAA,EAAwB,GAAA,KAA4C;AAC3F,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA,GAAS,CAAA;AAAA,IACT,WAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA,GAAS,EAAA;AAAA,IACT,SAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,MAAA;AAAA,IACP,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,cAAA,GAAiB,YAAY,MAAM,CAAA;AACzC,EAAA,MAAM,cAAc,kBAAA,CAAmB,MAAA,EAAQ,SAAA,EAAW,OAAA,CAAQ,WAAW,CAAC,CAAA;AAE9E,EAAA,MAAM,WAAA,GAAmC;AAAA,IACvC,SAAA,EAAW,cAAA;AAAA,IACX,WAAA;AAAA,IACA,WAAA,EAAa,WAAA,GAAc,WAAA,CAAY,WAAW,CAAA,GAAI,MAAA;AAAA,IACtD,UAAA,EAAY,SAAA;AAAA,IACZ,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,OAAA,EAA0B,GAAA,qBAC1CA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,SAAA,EAAWC,qBAAA,CAAQ,aAAA,EAAe,aAAa,CAAA;AAAA,MAC/C,KAAA,EAAO,EAAE,WAAA,EAAa,OAAA,EAAS,cAAc,cAAA,EAAgB,KAAA,EAAO,MAAA,EAAQ,GAAG,SAAA,EAAU;AAAA,MAExF,QAAA,EAAA;AAAA,KAAA;AAAA,IAJI;AAAA,GAKP;AAGF,EAAA,MAAM,aAAA,GACJ,SAAS,KAAA,CAAM,MAAA,GACX,MAAM,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AACzB,IAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,IAAA,EAAM,KAAA,EAAO,UAAU,CAAA;AAC1D,IAAA,OAAO,SAAS,OAAA,EAAS,cAAA,CAAe,IAAA,EAAM,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,EAC9D,CAAC,CAAA,GACKC,gBAAA,CAAA,QAAA,CAAS,GAAA,CAAI,UAAU,CAAC,KAAA,EAAO,KAAA,KAAU,QAAA,CAAS,OAAO,eAAA,CAAgB,KAAA,EAAO,KAAK,CAAC,CAAC,CAAA,IAAK,IAAA;AAExG,EAAA,uBACEF,cAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,GAAA,EAAU,IAAA,EAAY,SAAA,EAAWC,qBAAA,CAAQ,gBAAA,EAAkB,SAAS,CAAA,EAAG,KAAA,EAAO,aAC1F,QAAA,EAAA,aAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAM,OAAA,GAAgBC,4BAAW,WAAW,CAAA;AAE5C,OAAA,CAAQ,WAAA,GAAc,SAAA;AAGtB,IAAO,eAAA,GAAQ;AAEf,SAAS,YAAY,KAAA,EAAyB;AAC5C,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA;AACpD;AAEA,SAAS,iBAAiB,KAAA,EAAgB;AACxC,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,GAAG,OAAO,MAAA;AACpC,EAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AACtC;AAEA,SAAS,kBAAA,CAAmB,MAAA,EAAiB,SAAA,EAAoB,cAAA,EAA0B;AACzF,EAAA,MAAM,aAAA,GAAgB,iBAAiB,SAAS,CAAA;AAChD,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAA,GAAmB,iBAAiB,MAAM,CAAA;AAEhD,EAAA,IAAI,oBAAoB,aAAA,EAAe;AACrC,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,gBAAA,EAAkB,aAAa,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,gBAAA,IAAoB,aAAA;AAC7B;AAEA,SAAS,cAAA,CAAkB,IAAA,EAAS,KAAA,EAAe,MAAA,EAAgD;AACjG,EAAA,IAAI,MAAA,EAAQ,OAAO,MAAA,CAAO,IAAA,EAAM,KAAK,CAAA;AACrC,EAAA,IAAUA,gBAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA,CAAK,OAAO,IAAA,EAAM;AAClD,IAAA,OAAO,IAAA,CAAK,GAAA;AAAA,EACd;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,eAAA,CAAgB,OAAwB,KAAA,EAAe;AAC9D,EAAA,IAAUA,gBAAA,CAAA,cAAA,CAAe,KAAK,CAAA,IAAK,KAAA,CAAM,OAAO,IAAA,EAAM;AACpD,IAAA,OAAO,KAAA,CAAM,GAAA;AAAA,EACf;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,kBAAA,CAAsB,IAAA,EAAS,KAAA,EAAe,UAAA,EAAmC;AACxF,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,IAAA;AACT","file":"masonry.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { MasonryComponent, MasonryProps, MasonryRenderItem } from './types.masonry';\n\nconst masonryBaseClass = 'masonry-grid w-full';\nconst itemBaseClass = 'masonry-item block break-inside-avoid';\n\nconst MasonryBase = <T,>(props: MasonryProps<T>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const {\n items,\n renderItem,\n getKey,\n column = 2,\n columnWidth,\n maxColumn,\n gutter = 16,\n className,\n itemClassName,\n itemStyle,\n children,\n style,\n role = 'list',\n ...rest\n } = props;\n\n const resolvedGutter = toCssLength(gutter);\n const columnCount = resolveColumnCount(column, maxColumn, Boolean(columnWidth));\n\n const layoutStyle: React.CSSProperties = {\n columnGap: resolvedGutter,\n columnCount,\n columnWidth: columnWidth ? toCssLength(columnWidth) : undefined,\n columnFill: 'balance',\n ...style\n };\n\n const wrapItem = (content: React.ReactNode, key: React.Key) => (\n <div\n key={key}\n className={twMerge(itemBaseClass, itemClassName)}\n style={{ breakInside: 'avoid', marginBottom: resolvedGutter, width: '100%', ...itemStyle }}\n >\n {content}\n </div>\n );\n\n const renderedItems =\n items && items.length\n ? items.map((item, index) => {\n const content = resolveItemContent(item, index, renderItem);\n return wrapItem(content, resolveItemKey(item, index, getKey));\n })\n : React.Children.map(children, (child, index) => wrapItem(child, resolveChildKey(child, index))) ?? null;\n\n return (\n <div {...rest} ref={ref} role={role} className={twMerge(masonryBaseClass, className)} style={layoutStyle}>\n {renderedItems}\n </div>\n );\n};\n\nconst Masonry = React.forwardRef(MasonryBase) as MasonryComponent;\n\nMasonry.displayName = 'Masonry';\n\nexport type { MasonryProps, MasonryRenderItem } from './types.masonry';\nexport default Masonry;\n\nfunction toCssLength(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction normalizeColumns(value?: number) {\n if (value === undefined) return undefined;\n if (!Number.isFinite(value)) return undefined;\n return Math.max(1, Math.floor(value));\n}\n\nfunction resolveColumnCount(column?: number, maxColumn?: number, hasColumnWidth?: boolean) {\n const normalizedMax = normalizeColumns(maxColumn);\n if (hasColumnWidth) {\n return normalizedMax;\n }\n\n const normalizedColumn = normalizeColumns(column);\n\n if (normalizedColumn && normalizedMax) {\n return Math.min(normalizedColumn, normalizedMax);\n }\n\n return normalizedColumn ?? normalizedMax;\n}\n\nfunction resolveItemKey<T>(item: T, index: number, getKey?: (item: T, index: number) => React.Key) {\n if (getKey) return getKey(item, index);\n if (React.isValidElement(item) && item.key != null) {\n return item.key;\n }\n return index;\n}\n\nfunction resolveChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key != null) {\n return child.key;\n }\n return index;\n}\n\nfunction resolveItemContent<T>(item: T, index: number, renderItem?: MasonryRenderItem<T>) {\n if (renderItem) {\n return renderItem(item, index);\n }\n return item as React.ReactNode;\n}\n"]}
1
+ {"version":3,"sources":["../src/Containment/Masonry/index.tsx"],"names":["jsx","twMerge","React"],"mappings":"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","file":"masonry.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { MasonryComponent, MasonryProps, MasonryRenderItem } from './types.masonry';\n\nconst masonryBaseClass = 'masonry-grid w-full text-gray-900 dark:text-gray-100';\nconst itemBaseClass = 'masonry-item block break-inside-avoid';\n\nconst MasonryBase = <T,>(props: MasonryProps<T>, ref: React.ForwardedRef<HTMLDivElement>) => {\n const {\n items,\n renderItem,\n getKey,\n column = 2,\n columnWidth,\n maxColumn,\n gutter = 16,\n className,\n itemClassName,\n itemStyle,\n children,\n style,\n role = 'list',\n ...rest\n } = props;\n\n const resolvedGutter = toCssLength(gutter);\n const columnCount = resolveColumnCount(column, maxColumn, Boolean(columnWidth));\n\n const layoutStyle: React.CSSProperties = {\n columnGap: resolvedGutter,\n columnCount,\n columnWidth: columnWidth ? toCssLength(columnWidth) : undefined,\n columnFill: 'balance',\n ...style\n };\n\n const wrapItem = (content: React.ReactNode, key: React.Key) => (\n <div\n key={key}\n className={twMerge(itemBaseClass, itemClassName)}\n style={{ breakInside: 'avoid', marginBottom: resolvedGutter, width: '100%', ...itemStyle }}\n >\n {content}\n </div>\n );\n\n const renderedItems =\n items && items.length\n ? items.map((item, index) => {\n const content = resolveItemContent(item, index, renderItem);\n return wrapItem(content, resolveItemKey(item, index, getKey));\n })\n : React.Children.map(children, (child, index) => wrapItem(child, resolveChildKey(child, index))) ?? null;\n\n return (\n <div {...rest} ref={ref} role={role} className={twMerge(masonryBaseClass, className)} style={layoutStyle}>\n {renderedItems}\n </div>\n );\n};\n\nconst Masonry = React.forwardRef(MasonryBase) as MasonryComponent;\n\nMasonry.displayName = 'Masonry';\n\nexport type { MasonryProps, MasonryRenderItem } from './types.masonry';\nexport default Masonry;\n\nfunction toCssLength(value?: number | string) {\n if (value === undefined) return undefined;\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction normalizeColumns(value?: number) {\n if (value === undefined) return undefined;\n if (!Number.isFinite(value)) return undefined;\n return Math.max(1, Math.floor(value));\n}\n\nfunction resolveColumnCount(column?: number, maxColumn?: number, hasColumnWidth?: boolean) {\n const normalizedMax = normalizeColumns(maxColumn);\n if (hasColumnWidth) {\n return normalizedMax;\n }\n\n const normalizedColumn = normalizeColumns(column);\n\n if (normalizedColumn && normalizedMax) {\n return Math.min(normalizedColumn, normalizedMax);\n }\n\n return normalizedColumn ?? normalizedMax;\n}\n\nfunction resolveItemKey<T>(item: T, index: number, getKey?: (item: T, index: number) => React.Key) {\n if (getKey) return getKey(item, index);\n if (React.isValidElement(item) && item.key != null) {\n return item.key;\n }\n return index;\n}\n\nfunction resolveChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key != null) {\n return child.key;\n }\n return index;\n}\n\nfunction resolveItemContent<T>(item: T, index: number, renderItem?: MasonryRenderItem<T>) {\n if (renderItem) {\n return renderItem(item, index);\n }\n return item as React.ReactNode;\n}\n"]}
package/dist/masonry.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Masonry_default as default } from './chunk-HAXGOTZO.js';
1
+ export { Masonry_default as default } from './chunk-UK6RSS4J.js';
2
2
  //# sourceMappingURL=masonry.js.map
3
3
  //# sourceMappingURL=masonry.js.map
package/dist/menu.cjs CHANGED
@@ -26,19 +26,28 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
27
  // src/Containment/Menu/index.tsx
28
28
  var placementClasses = {
29
- "bottom-start": "left-0 top-full origin-top-left",
30
- bottom: "left-1/2 top-full -translate-x-1/2 origin-top",
31
- "bottom-end": "right-0 top-full origin-top-right",
32
- "top-start": "left-0 bottom-full origin-bottom-left",
33
- top: "left-1/2 bottom-full -translate-x-1/2 origin-bottom",
34
- "top-end": "right-0 bottom-full origin-bottom-right"
29
+ "bottom-start": "left-0 top-full",
30
+ bottom: "left-1/2 top-full -translate-x-1/2",
31
+ "bottom-end": "right-0 top-full",
32
+ "top-start": "left-0 bottom-full",
33
+ top: "left-1/2 bottom-full -translate-x-1/2",
34
+ "top-end": "right-0 bottom-full"
35
+ };
36
+ var originClasses = {
37
+ "bottom-start": "origin-top-left",
38
+ bottom: "origin-top",
39
+ "bottom-end": "origin-top-right",
40
+ "top-start": "origin-bottom-left",
41
+ top: "origin-bottom",
42
+ "top-end": "origin-bottom-right"
35
43
  };
36
44
  var offsetClasses = {
37
- top: "mb-2",
38
- bottom: "mt-2"
45
+ top: "pb-2",
46
+ bottom: "pt-2"
39
47
  };
40
- var menuBaseClasses = "absolute z-50 min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2";
41
- var overlayBaseClasses = "fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px]";
48
+ var menuWrapperBaseClasses = "absolute z-50";
49
+ var menuBaseClasses = "min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:border-gray-700/80 dark:bg-gray-900/95 dark:text-gray-100 dark:shadow-black/30 dark:ring-white/10 dark:focus-visible:ring-offset-gray-900";
50
+ var overlayBaseClasses = "fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px] dark:bg-black/50";
42
51
  var Menu = React__namespace.forwardRef((props, ref) => {
43
52
  const {
44
53
  activator,
@@ -64,11 +73,17 @@ var Menu = React__namespace.forwardRef((props, ref) => {
64
73
  const shouldRenderContent = hasContent && (keepMounted || isOpen || allowHoverTrigger || allowFocusTrigger);
65
74
  const shouldRenderOverlay = scrim && hasContent && (isOpen || allowHoverTrigger || allowFocusTrigger);
66
75
  const verticalPlacement = placement.startsWith("top") ? "top" : "bottom";
67
- const visibilityClasses = tailwindMerge.twMerge(
68
- "pointer-events-none opacity-0 scale-95",
69
- isOpen ? "pointer-events-auto opacity-100 scale-100" : void 0,
70
- allowHoverTrigger ? "group-hover/menu:pointer-events-auto group-hover/menu:opacity-100 group-hover/menu:scale-100" : void 0,
71
- allowFocusTrigger ? "group-focus-within/menu:pointer-events-auto group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100" : void 0
76
+ const interactiveVisibilityClasses = tailwindMerge.twMerge(
77
+ "pointer-events-none",
78
+ isOpen ? "pointer-events-auto" : void 0,
79
+ allowHoverTrigger ? "group-hover/menu:pointer-events-auto" : void 0,
80
+ allowFocusTrigger ? "group-focus-within/menu:pointer-events-auto" : void 0
81
+ );
82
+ const visualVisibilityClasses = tailwindMerge.twMerge(
83
+ "opacity-0 scale-95",
84
+ isOpen ? "opacity-100 scale-100" : void 0,
85
+ allowHoverTrigger ? "group-hover/menu:opacity-100 group-hover/menu:scale-100" : void 0,
86
+ allowFocusTrigger ? "group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100" : void 0
72
87
  );
73
88
  const overlayVisibilityClasses = tailwindMerge.twMerge(
74
89
  "pointer-events-none opacity-0 transition-opacity duration-150",
@@ -103,21 +118,32 @@ var Menu = React__namespace.forwardRef((props, ref) => {
103
118
  shouldRenderContent ? /* @__PURE__ */ jsxRuntime.jsx(
104
119
  "div",
105
120
  {
106
- ...restContentProps,
107
121
  className: tailwindMerge.twMerge(
108
- menuBaseClasses,
122
+ menuWrapperBaseClasses,
109
123
  placementClasses[placement],
110
124
  offsetClasses[verticalPlacement],
111
125
  matchActivatorWidth ? "min-w-full" : void 0,
112
- visibilityClasses,
113
- contentClassName,
114
- contentExtraClassName
126
+ interactiveVisibilityClasses
115
127
  ),
116
- "data-state": isOpen ? "open" : "closed",
117
- role: contentRole ?? "menu",
118
- tabIndex: contentTabIndex ?? -1,
119
- style: contentStyle,
120
- children
128
+ children: /* @__PURE__ */ jsxRuntime.jsx(
129
+ "div",
130
+ {
131
+ ...restContentProps,
132
+ className: tailwindMerge.twMerge(
133
+ menuBaseClasses,
134
+ originClasses[placement],
135
+ visualVisibilityClasses,
136
+ matchActivatorWidth ? "min-w-full" : void 0,
137
+ contentClassName,
138
+ contentExtraClassName
139
+ ),
140
+ "data-state": isOpen ? "open" : "closed",
141
+ role: contentRole ?? "menu",
142
+ tabIndex: contentTabIndex ?? -1,
143
+ style: contentStyle,
144
+ children
145
+ }
146
+ )
121
147
  }
122
148
  ) : null
123
149
  ]
package/dist/menu.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Containment/Menu/index.tsx"],"names":["React","twMerge","jsx","jsxs"],"mappings":"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","file":"menu.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type MenuPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end';\n\nexport interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n activator: React.ReactNode;\n children: React.ReactNode;\n placement?: MenuPlacement;\n open?: boolean;\n openOnHover?: boolean;\n openOnFocus?: boolean;\n matchActivatorWidth?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n contentClassName?: string;\n contentProps?: React.HTMLAttributes<HTMLDivElement>;\n overlayClassName?: string;\n}\n\nconst placementClasses: Record<MenuPlacement, string> = {\n 'bottom-start': 'left-0 top-full origin-top-left',\n bottom: 'left-1/2 top-full -translate-x-1/2 origin-top',\n 'bottom-end': 'right-0 top-full origin-top-right',\n 'top-start': 'left-0 bottom-full origin-bottom-left',\n top: 'left-1/2 bottom-full -translate-x-1/2 origin-bottom',\n 'top-end': 'right-0 bottom-full origin-bottom-right'\n};\n\nconst offsetClasses: Record<'top' | 'bottom', string> = {\n top: 'mb-2',\n bottom: 'mt-2'\n};\n\nconst menuBaseClasses =\n 'absolute z-50 min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2';\n\nconst overlayBaseClasses = 'fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px]';\n\n/**\n * Contextual menu that opens relative to an activator with optional hover/focus behavior and scrim.\n */\nconst Menu = React.forwardRef<HTMLDivElement, MenuProps>((props, ref) => {\n const {\n activator,\n children,\n placement = 'bottom-start',\n open,\n openOnHover = true,\n openOnFocus = true,\n matchActivatorWidth = false,\n keepMounted = false,\n scrim = false,\n contentClassName,\n contentProps,\n overlayClassName,\n className,\n ...rest\n } = props;\n\n const hasContent = children !== undefined && children !== null;\n const isControlled = open !== undefined;\n const isOpen = open === true;\n const allowHoverTrigger = openOnHover && !isControlled;\n const allowFocusTrigger = openOnFocus && !isControlled;\n const shouldRenderContent =\n hasContent && (keepMounted || isOpen || allowHoverTrigger || allowFocusTrigger);\n const shouldRenderOverlay =\n scrim && hasContent && (isOpen || allowHoverTrigger || allowFocusTrigger);\n const verticalPlacement = placement.startsWith('top') ? 'top' : 'bottom';\n\n const visibilityClasses = twMerge(\n 'pointer-events-none opacity-0 scale-95',\n isOpen ? 'pointer-events-auto opacity-100 scale-100' : undefined,\n allowHoverTrigger\n ? 'group-hover/menu:pointer-events-auto group-hover/menu:opacity-100 group-hover/menu:scale-100'\n : undefined,\n allowFocusTrigger\n ? 'group-focus-within/menu:pointer-events-auto group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100'\n : undefined\n );\n\n const overlayVisibilityClasses = twMerge(\n 'pointer-events-none opacity-0 transition-opacity duration-150',\n allowHoverTrigger ? 'group-hover/menu:opacity-100' : undefined,\n allowFocusTrigger ? 'group-focus-within/menu:opacity-100' : undefined,\n isOpen ? 'pointer-events-auto opacity-100' : undefined\n );\n\n const {\n className: contentExtraClassName,\n style: contentStyle,\n role: contentRole,\n tabIndex: contentTabIndex,\n ...restContentProps\n } = contentProps ?? {};\n\n const overlayNode = shouldRenderOverlay ? (\n <div\n className={twMerge(overlayBaseClasses, overlayVisibilityClasses, overlayClassName)}\n aria-hidden\n />\n ) : null;\n\n return (\n <div\n {...rest}\n ref={ref}\n className={twMerge('relative inline-flex min-w-0 group/menu', className)}\n data-open={isOpen || undefined}\n >\n {overlayNode}\n <div className='inline-flex w-full min-w-0'>{activator}</div>\n {shouldRenderContent ? (\n <div\n {...restContentProps}\n className={twMerge(\n menuBaseClasses,\n placementClasses[placement],\n offsetClasses[verticalPlacement],\n matchActivatorWidth ? 'min-w-full' : undefined,\n visibilityClasses,\n contentClassName,\n contentExtraClassName\n )}\n data-state={isOpen ? 'open' : 'closed'}\n role={contentRole ?? 'menu'}\n tabIndex={contentTabIndex ?? -1}\n style={contentStyle}\n >\n {children}\n </div>\n ) : null}\n </div>\n );\n});\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n"]}
1
+ {"version":3,"sources":["../src/Containment/Menu/index.tsx"],"names":["React","twMerge","jsx","jsxs"],"mappings":"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","file":"menu.cjs","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type MenuPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end';\n\nexport interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n activator: React.ReactNode;\n children: React.ReactNode;\n placement?: MenuPlacement;\n open?: boolean;\n openOnHover?: boolean;\n openOnFocus?: boolean;\n matchActivatorWidth?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n contentClassName?: string;\n contentProps?: React.HTMLAttributes<HTMLDivElement>;\n overlayClassName?: string;\n}\n\nconst placementClasses: Record<MenuPlacement, string> = {\n 'bottom-start': 'left-0 top-full',\n bottom: 'left-1/2 top-full -translate-x-1/2',\n 'bottom-end': 'right-0 top-full',\n 'top-start': 'left-0 bottom-full',\n top: 'left-1/2 bottom-full -translate-x-1/2',\n 'top-end': 'right-0 bottom-full'\n};\n\nconst originClasses: Record<MenuPlacement, string> = {\n 'bottom-start': 'origin-top-left',\n bottom: 'origin-top',\n 'bottom-end': 'origin-top-right',\n 'top-start': 'origin-bottom-left',\n top: 'origin-bottom',\n 'top-end': 'origin-bottom-right'\n};\n\nconst offsetClasses: Record<'top' | 'bottom', string> = {\n top: 'pb-2',\n bottom: 'pt-2'\n};\n\nconst menuWrapperBaseClasses = 'absolute z-50';\n\nconst menuBaseClasses =\n 'min-w-[10rem] rounded-xl border border-gray-200/80 bg-white/95 p-2 text-sm text-gray-700 shadow-lg shadow-gray-900/10 ring-1 ring-black/5 backdrop-blur-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:border-gray-700/80 dark:bg-gray-900/95 dark:text-gray-100 dark:shadow-black/30 dark:ring-white/10 dark:focus-visible:ring-offset-gray-900';\n\nconst overlayBaseClasses = 'fixed inset-0 z-40 bg-gray-900/30 backdrop-blur-[1px] dark:bg-black/50';\n\n/**\n * Contextual menu that opens relative to an activator with optional hover/focus behavior and scrim.\n */\nconst Menu = React.forwardRef<HTMLDivElement, MenuProps>((props, ref) => {\n const {\n activator,\n children,\n placement = 'bottom-start',\n open,\n openOnHover = true,\n openOnFocus = true,\n matchActivatorWidth = false,\n keepMounted = false,\n scrim = false,\n contentClassName,\n contentProps,\n overlayClassName,\n className,\n ...rest\n } = props;\n\n const hasContent = children !== undefined && children !== null;\n const isControlled = open !== undefined;\n const isOpen = open === true;\n const allowHoverTrigger = openOnHover && !isControlled;\n const allowFocusTrigger = openOnFocus && !isControlled;\n const shouldRenderContent =\n hasContent && (keepMounted || isOpen || allowHoverTrigger || allowFocusTrigger);\n const shouldRenderOverlay =\n scrim && hasContent && (isOpen || allowHoverTrigger || allowFocusTrigger);\n const verticalPlacement = placement.startsWith('top') ? 'top' : 'bottom';\n\n const interactiveVisibilityClasses = twMerge(\n 'pointer-events-none',\n isOpen ? 'pointer-events-auto' : undefined,\n allowHoverTrigger ? 'group-hover/menu:pointer-events-auto' : undefined,\n allowFocusTrigger ? 'group-focus-within/menu:pointer-events-auto' : undefined\n );\n\n const visualVisibilityClasses = twMerge(\n 'opacity-0 scale-95',\n isOpen ? 'opacity-100 scale-100' : undefined,\n allowHoverTrigger\n ? 'group-hover/menu:opacity-100 group-hover/menu:scale-100'\n : undefined,\n allowFocusTrigger\n ? 'group-focus-within/menu:opacity-100 group-focus-within/menu:scale-100'\n : undefined\n );\n\n const overlayVisibilityClasses = twMerge(\n 'pointer-events-none opacity-0 transition-opacity duration-150',\n allowHoverTrigger ? 'group-hover/menu:opacity-100' : undefined,\n allowFocusTrigger ? 'group-focus-within/menu:opacity-100' : undefined,\n isOpen ? 'pointer-events-auto opacity-100' : undefined\n );\n\n const {\n className: contentExtraClassName,\n style: contentStyle,\n role: contentRole,\n tabIndex: contentTabIndex,\n ...restContentProps\n } = contentProps ?? {};\n\n const overlayNode = shouldRenderOverlay ? (\n <div\n className={twMerge(overlayBaseClasses, overlayVisibilityClasses, overlayClassName)}\n aria-hidden\n />\n ) : null;\n\n return (\n <div\n {...rest}\n ref={ref}\n className={twMerge('relative inline-flex min-w-0 group/menu', className)}\n data-open={isOpen || undefined}\n >\n {overlayNode}\n <div className='inline-flex w-full min-w-0'>{activator}</div>\n {shouldRenderContent ? (\n <div\n className={twMerge(\n menuWrapperBaseClasses,\n placementClasses[placement],\n offsetClasses[verticalPlacement],\n matchActivatorWidth ? 'min-w-full' : undefined,\n interactiveVisibilityClasses\n )}\n >\n <div\n {...restContentProps}\n className={twMerge(\n menuBaseClasses,\n originClasses[placement],\n visualVisibilityClasses,\n matchActivatorWidth ? 'min-w-full' : undefined,\n contentClassName,\n contentExtraClassName\n )}\n data-state={isOpen ? 'open' : 'closed'}\n role={contentRole ?? 'menu'}\n tabIndex={contentTabIndex ?? -1}\n style={contentStyle}\n >\n {children}\n </div>\n </div>\n ) : null}\n </div>\n );\n});\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n"]}
package/dist/menu.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Menu_default as default } from './chunk-ZTP2JSQ6.js';
1
+ export { Menu_default as default } from './chunk-H4742H2N.js';
2
2
  //# sourceMappingURL=menu.js.map
3
3
  //# sourceMappingURL=menu.js.map
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { P as PropIcon, b as GlobalVariant } from './global.types-gx9A7mUe.cjs';
2
+ import { P as PropIcon, b as GlobalVariant } from './global.types-CjO3VRWu.cjs';
3
3
 
4
4
  type NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
5
5
  type NotificationType = 'info' | 'success' | 'warning' | 'error';
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { P as PropIcon, b as GlobalVariant } from './global.types-gx9A7mUe.js';
2
+ import { P as PropIcon, b as GlobalVariant } from './global.types-CjO3VRWu.js';
3
3
 
4
4
  type NotificationPlacement = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
5
5
  type NotificationType = 'info' | 'success' | 'warning' | 'error';
@@ -32,87 +32,79 @@ var iconBaseClasses = {
32
32
  };
33
33
 
34
34
  // src/Containment/Button/states.button.ts
35
- var base = "btn-base focus-visible:outline-none focus-visible:ring-2 rounded-lg transition-colors duration-200 font-medium disabled:opacity-50 disabled:cursor-not-allowed";
35
+ var base = "btn-base focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 rounded-lg transition-colors duration-200 font-medium disabled:opacity-50 disabled:cursor-not-allowed";
36
36
  var blackAndWhitePaletteClasses = {
37
- solid: "bg-black text-white hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white",
38
- outline: "border-2 border-black text-black bg-white hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white",
39
- ghost: "text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent",
40
- text: "bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent",
41
- filled: "bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20",
42
- underlined: "bg-transparent text-black border border-transparent underline decoration-2 underline-offset-4 hover:bg-neutral-200 focus-visible:ring-black/20",
43
- rounded: "rounded-full border-2 border-black bg-white text-black hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white",
44
- sharp: "bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40"
37
+ solid: "bg-black text-white hover:bg-black/90 focus-visible:ring-black/40 focus-visible:ring-offset-white dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900",
38
+ outline: "border-2 border-black text-black bg-white hover:bg-black hover:text-white focus-visible:ring-black/40 focus-visible:ring-offset-white dark:border-white dark:text-white dark:bg-transparent dark:hover:bg-white dark:hover:text-black dark:focus-visible:ring-white/40 dark:focus-visible:ring-offset-gray-900",
39
+ ghost: "text-black bg-neutral-200 hover:bg-neutral-300 focus-visible:ring-black/20 border border-transparent dark:text-white dark:bg-neutral-800 dark:hover:bg-neutral-700",
40
+ text: "bg-transparent text-black hover:bg-neutral-200 focus-visible:ring-black/20 underline-offset-2 border border-transparent dark:text-white dark:hover:bg-neutral-800",
41
+ filled: "bg-black/10 text-black border border-black/30 hover:bg-black/20 focus-visible:ring-black/20 dark:bg-white/10 dark:text-white dark:border-white/30 dark:hover:bg-white/20",
42
+ underlined: "bg-transparent text-black border border-transparent underline decoration-2 underline-offset-4 hover:bg-neutral-200 focus-visible:ring-black/20 dark:text-white dark:hover:bg-neutral-800",
43
+ sharp: "bg-black text-white rounded-none hover:bg-black/90 focus-visible:ring-black/40 dark:bg-white dark:text-black dark:hover:bg-white/90 dark:focus-visible:ring-white/40"
45
44
  };
46
45
  var paletteVariantClasses = {
47
46
  primary: {
48
47
  solid: "bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary",
49
48
  sharp: "rounded-none bg-primary text-white hover:bg-primary/90 focus-visible:ring-primary",
50
- outline: "border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary",
51
- ghost: "text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent",
52
- text: "bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent",
53
- filled: "bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25",
54
- underlined: "bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25",
55
- rounded: "rounded-full border border-primary/60 bg-primary/10 text-primary hover:bg-primary/20 focus-visible:ring-primary/25"
49
+ outline: "border border-primary text-primary bg-white hover:bg-primary hover:text-white focus-visible:ring-primary dark:bg-gray-900 dark:text-primary dark:border-primary/60 dark:hover:bg-primary dark:hover:text-white",
50
+ ghost: "text-primary bg-primary/10 hover:bg-primary/20 focus-visible:ring-primary/40 border border-transparent dark:bg-primary/20 dark:hover:bg-primary/30",
51
+ text: "bg-transparent text-primary hover:bg-primary/10 focus-visible:ring-primary/30 underline-offset-2 border border-transparent dark:hover:bg-primary/20",
52
+ filled: "bg-primary/15 text-primary border border-primary/30 hover:bg-primary/25 focus-visible:ring-primary/25 dark:bg-primary/20 dark:border-primary/40 dark:hover:bg-primary/30",
53
+ underlined: "bg-transparent text-primary border border-transparent underline decoration-2 underline-offset-4 hover:bg-primary/5 focus-visible:ring-primary/25 dark:hover:bg-primary/15"
56
54
  },
57
55
  neutral: {
58
56
  solid: "bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500",
59
57
  sharp: "rounded-none bg-gray-600 text-white hover:bg-gray-700 focus-visible:ring-gray-500",
60
- outline: "border border-gray-400 text-gray-700 bg-white hover:bg-gray-700 hover:text-white focus-visible:ring-gray-400",
61
- ghost: "text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent",
62
- text: "bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
63
- filled: "bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300",
64
- underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300",
65
- rounded: "rounded-full border border-gray-400 bg-white text-gray-800 hover:bg-gray-100 focus-visible:ring-gray-300"
58
+ outline: "border border-gray-400 text-gray-700 bg-white hover:bg-gray-700 hover:text-white focus-visible:ring-gray-400 dark:border-gray-600 dark:text-gray-200 dark:bg-gray-900 dark:hover:bg-gray-200 dark:hover:text-gray-900",
59
+ ghost: "text-gray-700 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-300 border border-transparent dark:text-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700",
60
+ text: "bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-200 dark:hover:bg-gray-800",
61
+ filled: "bg-gray-200 text-gray-900 border border-gray-300 hover:bg-gray-300 focus-visible:ring-gray-300 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700",
62
+ underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-300 dark:text-gray-100 dark:hover:bg-gray-800"
66
63
  },
67
64
  info: {
68
65
  solid: "bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400",
69
66
  sharp: "rounded-none bg-sky-500 text-white hover:bg-sky-600 focus-visible:ring-sky-400",
70
- outline: "border border-sky-500 text-sky-600 bg-white hover:bg-sky-500 hover:text-white focus-visible:ring-sky-400",
71
- ghost: "text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent",
72
- text: "bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent",
73
- filled: "bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200",
74
- underlined: "bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200",
75
- rounded: "rounded-full border border-sky-500/70 bg-sky-50 text-sky-700 hover:bg-sky-100 focus-visible:ring-sky-200"
67
+ outline: "border border-sky-500 text-sky-600 bg-white hover:bg-sky-500 hover:text-white focus-visible:ring-sky-400 dark:bg-gray-900 dark:text-sky-400 dark:border-sky-500/70 dark:hover:bg-sky-500 dark:hover:text-white",
68
+ ghost: "text-sky-600 bg-sky-100 hover:bg-sky-200 focus-visible:ring-sky-300 border border-transparent dark:text-sky-300 dark:bg-sky-900/40 dark:hover:bg-sky-900/55",
69
+ text: "bg-transparent text-sky-600 hover:bg-sky-100 focus-visible:ring-sky-200 underline-offset-2 border border-transparent dark:text-sky-300 dark:hover:bg-sky-900/35",
70
+ filled: "bg-sky-100 text-sky-700 border border-sky-200 hover:bg-sky-200 focus-visible:ring-sky-200 dark:bg-sky-900/35 dark:text-sky-200 dark:border-sky-700/60 dark:hover:bg-sky-900/50",
71
+ underlined: "bg-transparent text-sky-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-sky-50 focus-visible:ring-sky-200 dark:text-sky-300 dark:hover:bg-sky-900/30"
76
72
  },
77
73
  success: {
78
74
  solid: "bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400",
79
75
  sharp: "rounded-none bg-emerald-500 text-white hover:bg-emerald-600 focus-visible:ring-emerald-400",
80
- outline: "border border-emerald-500 text-emerald-600 bg-white hover:bg-emerald-500 hover:text-white focus-visible:ring-emerald-400",
81
- ghost: "text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent",
82
- text: "bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent",
83
- filled: "bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200",
84
- underlined: "bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200",
85
- rounded: "rounded-full border border-emerald-500/70 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 focus-visible:ring-emerald-200"
76
+ outline: "border border-emerald-500 text-emerald-600 bg-white hover:bg-emerald-500 hover:text-white focus-visible:ring-emerald-400 dark:bg-gray-900 dark:text-emerald-400 dark:border-emerald-500/70 dark:hover:bg-emerald-500 dark:hover:text-white",
77
+ ghost: "text-emerald-600 bg-emerald-100 hover:bg-emerald-200 focus-visible:ring-emerald-300 border border-transparent dark:text-emerald-300 dark:bg-emerald-900/35 dark:hover:bg-emerald-900/50",
78
+ text: "bg-transparent text-emerald-600 hover:bg-emerald-100 focus-visible:ring-emerald-200 underline-offset-2 border border-transparent dark:text-emerald-300 dark:hover:bg-emerald-900/30",
79
+ filled: "bg-emerald-100 text-emerald-700 border border-emerald-200 hover:bg-emerald-200 focus-visible:ring-emerald-200 dark:bg-emerald-900/35 dark:text-emerald-200 dark:border-emerald-700/60 dark:hover:bg-emerald-900/50",
80
+ underlined: "bg-transparent text-emerald-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-emerald-50 focus-visible:ring-emerald-200 dark:text-emerald-300 dark:hover:bg-emerald-900/30"
86
81
  },
87
82
  warning: {
88
83
  solid: "bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400",
89
84
  sharp: "rounded-none bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-400",
90
- outline: "border border-amber-500 text-amber-600 bg-white hover:bg-amber-500 hover:text-white focus-visible:ring-amber-400",
91
- ghost: "text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent",
92
- text: "bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent",
93
- filled: "bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200",
94
- underlined: "bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200",
95
- rounded: "rounded-full border border-amber-500/70 bg-amber-50 text-amber-700 hover:bg-amber-100 focus-visible:ring-amber-200"
85
+ outline: "border border-amber-500 text-amber-600 bg-white hover:bg-amber-500 hover:text-white focus-visible:ring-amber-400 dark:bg-gray-900 dark:text-amber-300 dark:border-amber-500/70 dark:hover:bg-amber-500 dark:hover:text-white",
86
+ ghost: "text-amber-600 bg-amber-100 hover:bg-amber-200 focus-visible:ring-amber-300 border border-transparent dark:text-amber-300 dark:bg-amber-900/35 dark:hover:bg-amber-900/50",
87
+ text: "bg-transparent text-amber-600 hover:bg-amber-100 focus-visible:ring-amber-200 underline-offset-2 border border-transparent dark:text-amber-300 dark:hover:bg-amber-900/30",
88
+ filled: "bg-amber-100 text-amber-800 border border-amber-200 hover:bg-amber-200 focus-visible:ring-amber-200 dark:bg-amber-900/35 dark:text-amber-200 dark:border-amber-700/60 dark:hover:bg-amber-900/50",
89
+ underlined: "bg-transparent text-amber-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-amber-50 focus-visible:ring-amber-200 dark:text-amber-300 dark:hover:bg-amber-900/30"
96
90
  },
97
91
  danger: {
98
92
  solid: "bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400",
99
93
  sharp: "rounded-none bg-red-500 text-white hover:bg-red-600 focus-visible:ring-red-400",
100
- outline: "border border-red-500 text-red-600 bg-white hover:bg-red-500 hover:text-white focus-visible:ring-red-400",
101
- ghost: "text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent",
102
- text: "bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent",
103
- filled: "bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200",
104
- underlined: "bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200",
105
- rounded: "rounded-full border border-red-500/70 bg-red-50 text-red-700 hover:bg-red-100 focus-visible:ring-red-200"
94
+ outline: "border border-red-500 text-red-600 bg-white hover:bg-red-500 hover:text-white focus-visible:ring-red-400 dark:bg-gray-900 dark:text-red-400 dark:border-red-500/70 dark:hover:bg-red-500 dark:hover:text-white",
95
+ ghost: "text-red-600 bg-red-100 hover:bg-red-200 focus-visible:ring-red-300 border border-transparent dark:text-red-300 dark:bg-red-900/35 dark:hover:bg-red-900/50",
96
+ text: "bg-transparent text-red-600 hover:bg-red-100 focus-visible:ring-red-200 underline-offset-2 border border-transparent dark:text-red-300 dark:hover:bg-red-900/30",
97
+ filled: "bg-red-100 text-red-700 border border-red-200 hover:bg-red-200 focus-visible:ring-red-200 dark:bg-red-900/35 dark:text-red-200 dark:border-red-700/60 dark:hover:bg-red-900/50",
98
+ underlined: "bg-transparent text-red-600 border border-transparent underline decoration-2 underline-offset-4 hover:bg-red-50 focus-visible:ring-red-200 dark:text-red-300 dark:hover:bg-red-900/30"
106
99
  },
107
100
  surface: {
108
- solid: "bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200",
109
- sharp: "rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200",
110
- outline: "border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200",
111
- ghost: "text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent",
112
- text: "bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent",
113
- filled: "bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200",
114
- underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200",
115
- rounded: "rounded-full border border-gray-300 bg-white text-gray-900 hover:bg-gray-50 focus-visible:ring-gray-200"
101
+ solid: "bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800",
102
+ sharp: "rounded-none bg-white text-gray-900 border border-gray-200 hover:bg-gray-50 focus-visible:ring-gray-200 dark:bg-gray-900 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-800",
103
+ outline: "border border-gray-300 text-gray-900 bg-white hover:bg-gray-100 focus-visible:ring-gray-200 dark:border-gray-600 dark:text-gray-100 dark:bg-gray-900 dark:hover:bg-gray-800",
104
+ ghost: "text-gray-900 bg-gray-100 hover:bg-gray-200 focus-visible:ring-gray-200 border border-transparent dark:text-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700",
105
+ text: "bg-transparent text-gray-900 hover:bg-gray-100 focus-visible:ring-gray-200 underline-offset-2 border border-transparent dark:text-gray-100 dark:hover:bg-gray-800",
106
+ filled: "bg-gray-50 text-gray-900 border border-gray-200 hover:bg-white focus-visible:ring-gray-200 dark:bg-gray-800 dark:text-gray-100 dark:border-gray-700 dark:hover:bg-gray-700",
107
+ underlined: "bg-transparent text-gray-900 border border-transparent underline decoration-2 underline-offset-4 hover:bg-gray-100 focus-visible:ring-gray-200 dark:text-gray-100 dark:hover:bg-gray-800"
116
108
  },
117
109
  bw: blackAndWhitePaletteClasses
118
110
  };
@@ -168,7 +160,7 @@ var iconOnlyIconSizeClasses = {
168
160
  large: "text-xl",
169
161
  "x-large": "text-2xl"
170
162
  };
171
- var Button = React__namespace.forwardRef(
163
+ var ButtonBase = React__namespace.forwardRef(
172
164
  ({
173
165
  variant = "solid",
174
166
  color = "primary",
@@ -223,7 +215,71 @@ var Button = React__namespace.forwardRef(
223
215
  );
224
216
  }
225
217
  );
226
- Button.displayName = "Button";
218
+ ButtonBase.displayName = "Button";
219
+ var isButtonElement = (element) => {
220
+ if (!React__namespace.isValidElement(element)) {
221
+ return false;
222
+ }
223
+ const elementType = element.type;
224
+ return element.type === ButtonBase || elementType.displayName === ButtonBase.displayName;
225
+ };
226
+ var ButtonGroup = React__namespace.forwardRef((props, ref) => {
227
+ const {
228
+ variant,
229
+ color,
230
+ size,
231
+ block = false,
232
+ disabled = false,
233
+ loading = false,
234
+ iconOnly,
235
+ vertical = false,
236
+ attached = true,
237
+ className,
238
+ role,
239
+ children,
240
+ ...rest
241
+ } = props;
242
+ const groupBase = vertical ? "inline-flex w-fit flex-col" : "inline-flex w-fit items-stretch";
243
+ const blockClass = block ? "w-full [&>*]:flex-1" : void 0;
244
+ const attachedClass = attached ? vertical ? "[&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none" : "[&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none" : void 0;
245
+ const enhanceChild = (child) => {
246
+ if (!React__namespace.isValidElement(child)) {
247
+ return child;
248
+ }
249
+ if (isButtonElement(child)) {
250
+ return React__namespace.cloneElement(child, {
251
+ variant: child.props.variant ?? variant,
252
+ color: child.props.color ?? color,
253
+ size: child.props.size ?? size,
254
+ block: child.props.block ?? block,
255
+ disabled: child.props.disabled ?? disabled,
256
+ loading: child.props.loading ?? loading,
257
+ iconOnly: child.props.iconOnly ?? iconOnly
258
+ });
259
+ }
260
+ if (child.props && typeof child.props === "object" && "children" in child.props) {
261
+ const nestedChildren = React__namespace.Children.map(child.props.children, enhanceChild);
262
+ if (nestedChildren !== child.props.children) {
263
+ return React__namespace.cloneElement(child, void 0, nestedChildren);
264
+ }
265
+ }
266
+ return child;
267
+ };
268
+ const resolvedChildren = React__namespace.Children.map(children, enhanceChild);
269
+ return /* @__PURE__ */ jsxRuntime.jsx(
270
+ "div",
271
+ {
272
+ ...rest,
273
+ ref,
274
+ role: role ?? "group",
275
+ className: tailwindMerge.twMerge(groupBase, blockClass, attachedClass, className),
276
+ children: resolvedChildren
277
+ }
278
+ );
279
+ });
280
+ ButtonGroup.displayName = "Button.Group";
281
+ var Button = ButtonBase;
282
+ Button.Group = ButtonGroup;
227
283
  var Button_default = Button;
228
284
  var variantMap = {
229
285
  solid: "bg-white text-gray-900 border border-gray-200",
@@ -232,7 +288,6 @@ var variantMap = {
232
288
  ghost: "bg-slate-50 text-gray-900 border border-slate-100",
233
289
  filled: "bg-slate-900 text-white",
234
290
  underlined: "bg-white text-gray-900 border-b-4 border-primary/70",
235
- rounded: "bg-white text-gray-900 border border-gray-200 rounded-3xl",
236
291
  sharp: "bg-white text-gray-900 border border-gray-200 rounded-none"
237
292
  };
238
293
  var elevationClasses = {
@@ -251,7 +306,6 @@ var cardRadiusMap = {
251
306
  ghost: "rounded-2xl",
252
307
  filled: "rounded-3xl",
253
308
  underlined: "rounded-t-2xl",
254
- rounded: "rounded-3xl",
255
309
  sharp: "rounded-none"
256
310
  };
257
311
  var avatarRadiusMap = {
@@ -261,7 +315,6 @@ var avatarRadiusMap = {
261
315
  ghost: "rounded-2xl",
262
316
  filled: "rounded-3xl",
263
317
  underlined: "rounded-2xl",
264
- rounded: "rounded-3xl",
265
318
  sharp: "rounded-none"
266
319
  };
267
320
  var isDarkVariant = (variant) => variant === "filled";
@@ -270,7 +323,7 @@ var SocialIcons = ({ socials, dark }) => {
270
323
  if (Array.isArray(socials) && socials.length === 0) return null;
271
324
  const isSocialLinkArray = Array.isArray(socials) && socials.length > 0 && "href" in socials[0];
272
325
  if (isSocialLinkArray) {
273
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials.map((link) => /* @__PURE__ */ jsxRuntime.jsx(Button_default, { iconOnly: true, icon: link.icon, variant: "rounded", size: "x-small", ...{ href: link.href, as: "a" } }, link.href)) });
326
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials.map((link) => /* @__PURE__ */ jsxRuntime.jsx(Button_default, { iconOnly: true, icon: link.icon, variant: "outline", size: "x-small", ...{ href: link.href, as: "a" } }, link.href)) });
274
327
  }
275
328
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: socials });
276
329
  };